<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>SoSo한 개발 블로그</title>
    <link>https://baboototo.tistory.com/</link>
    <description>SoSo한 개발 블로그</description>
    <language>ko</language>
    <pubDate>Mon, 27 Jul 2026 17:09:59 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>곽재영</managingEditor>
    <item>
      <title>개인정보 처리방침</title>
      <link>https://baboototo.tistory.com/34</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt; Stcreative&amp;gt;('&lt;a href=&quot;https://lxxyeon.tistory.com/'이하&quot;&gt;https://baboototo.tistory.com/'이하&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;'Stcreative')은(는) 「개인정보 보호법」 제30조에 따라 정보주체의 개인정보를 보호하고 이와 관련한 고충을 신속하고 원활하게 처리할 수 있도록 하기 위하여 다음과 같이 개인정보 처리방침을 수립&amp;middot;공개합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;○ 이 개인정보처리방침은&lt;span&gt;&amp;nbsp;&lt;/span&gt;2022년&lt;span&gt;&amp;nbsp;&lt;/span&gt;1월&lt;span&gt;&amp;nbsp;&lt;/span&gt;1부터 적용됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;제1조(개인정보의 처리 목적)&lt;br /&gt;&lt;br /&gt;&amp;lt; Stcreative&amp;gt;('&lt;a href=&quot;https://lxxyeon.tistory.com/'이하&quot;&gt;https://&lt;/a&gt;&lt;a href=&quot;https://lxxyeon.tistory.com/'이하&quot;&gt;baboototo&lt;/a&gt;&lt;a href=&quot;https://lxxyeon.tistory.com/'이하&quot;&gt;.tistory.com/'이하&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;'Stcreative')은(는) 다음의 목적을 위하여 개인정보를 처리합니다. 처리하고 있는 개인정보는 다음의 목적 이외의 용도로는 이용되지 않으며 이용 목적이 변경되는 경우에는 「개인정보 보호법」 제18조에 따라 별도의 동의를 받는 등 필요한 조치를 이행할 예정입니다.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;제2조(개인정보의 처리 및 보유 기간)&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;①&lt;span&gt;&amp;nbsp;&lt;/span&gt;&amp;lt; Stcreative&amp;gt;은(는) 법령에 따른 개인정보 보유&amp;middot;이용기간 또는 정보주체로부터 개인정보를 수집 시에 동의받은 개인정보 보유&amp;middot;이용기간 내에서 개인정보를 처리&amp;middot;보유합니다.&lt;br /&gt;&lt;br /&gt;② 각각의 개인정보 처리 및 보유 기간은 다음과 같습니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;1.&amp;lt;홈페이지 회원가입 및 관리&amp;gt;&lt;/li&gt;
&lt;li&gt;&amp;lt;홈페이지 회원가입 및 관리&amp;gt;와 관련한 개인정보는 수집.이용에 관한 동의일로부터&amp;lt;10년&amp;gt;까지 위 이용목적을 위하여 보유.이용됩니다.&lt;/li&gt;
&lt;li&gt;보유근거 : 서비스 이용&lt;/li&gt;
&lt;li&gt;관련법령 :&lt;/li&gt;
&lt;li&gt;예외사유 :&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;제3조(정보주체와 법정대리인의 권리&amp;middot;의무 및 그 행사방법)&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;br /&gt;① 정보주체는 Stcreative에 대해 언제든지 개인정보 열람&amp;middot;정정&amp;middot;삭제&amp;middot;처리정지 요구 등의 권리를 행사할 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;② 제1항에 따른 권리 행사는 Stcreative에 대해 「개인정보 보호법」 시행령 제41조제1항에 따라 서면, 전자우편, 모사전송(FAX) 등을 통하여 하실 수 있으며 Stcreative은(는) 이에 대해 지체 없이 조치하겠습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;③ 제1항에 따른 권리 행사는 정보주체의 법정대리인이나 위임을 받은 자 등 대리인을 통하여 하실 수 있습니다.이 경우 &amp;ldquo;개인정보 처리 방법에 관한 고시(제2020-7호)&amp;rdquo; 별지 제11호 서식에 따른 위임장을 제출하셔야 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;④ 개인정보 열람 및 처리정지 요구는 「개인정보 보호법」 제35조 제4항, 제37조 제2항에 의하여 정보주체의 권리가 제한 될 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;⑤ 개인정보의 정정 및 삭제 요구는 다른 법령에서 그 개인정보가 수집 대상으로 명시되어 있는 경우에는 그 삭제를 요구할 수 없습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;⑥ Stcreative은(는) 정보주체 권리에 따른 열람의 요구, 정정&amp;middot;삭제의 요구, 처리정지의 요구 시 열람 등 요구를 한 자가 본인이거나 정당한 대리인인지를 확인합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;제4조(처리하는 개인정보의 항목 작성)&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;①&lt;span&gt;&amp;nbsp;&lt;/span&gt;&amp;lt; Stcreative &amp;gt;은(는) 다음의 개인정보 항목을 처리하고 있습니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;1&amp;lt; 홈페이지 회원가입 및 관리 &amp;gt;&lt;/li&gt;
&lt;li&gt;필수항목 : 이메일&lt;/li&gt;
&lt;li&gt;선택항목 :&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;제5조(개인정보의 파기)&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;① &amp;lt; Stcreative &amp;gt; 은(는) 개인정보 보유기간의 경과, 처리목적 달성 등 개인정보가 불필요하게 되었을 때에는 지체없이 해당 개인정보를 파기합니다.&lt;br /&gt;&lt;br /&gt;② 정보주체로부터 동의받은 개인정보 보유기간이 경과하거나 처리목적이 달성되었음에도 불구하고 다른 법령에 따라 개인정보를 계속 보존하여야 하는 경우에는, 해당 개인정보를 별도의 데이터베이스(DB)로 옮기거나 보관장소를 달리하여 보존합니다.&lt;br /&gt;1. 법령 근거 :&lt;br /&gt;2. 보존하는 개인정보 항목 : 계좌정보, 거래날짜&lt;br /&gt;&lt;br /&gt;③ 개인정보 파기의 절차 및 방법은 다음과 같습니다.&lt;br /&gt;1. 파기절차&lt;br /&gt;&amp;lt; Stcreative &amp;gt; 은(는) 파기 사유가 발생한 개인정보를 선정하고, &amp;lt; Stcreative &amp;gt; 의 개인정보 보호책임자의 승인을 받아 개인정보를 파기합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 파기방법&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;전자적 파일 형태의 정보는 기록을 재생할 수 없는 기술적 방법을 사용합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;종이에 출력된 개인정보는 분쇄기로 분쇄하거나 소각을 통하여 파기합니다&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;제6조(개인정보의 안전성 확보 조치)&lt;br /&gt;&lt;br /&gt;&amp;lt; Stcreative&amp;gt;은(는) 개인정보의 안전성 확보를 위해 다음과 같은 조치를 취하고 있습니다.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 개인정보 취급 직원의 최소화 및 교육&lt;br /&gt;개인정보를 취급하는 직원을 지정하고 담당자에 한정시켜 최소화 하여 개인정보를 관리하는 대책을 시행하고 있습니다.&lt;br /&gt;&lt;br /&gt;2. 문서보안을 위한 잠금장치 사용&lt;br /&gt;개인정보가 포함된 서류, 보조저장매체 등을 잠금장치가 있는 안전한 장소에 보관하고 있습니다.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;제7조(개인정보 자동 수집 장치의 설치&amp;bull;운영 및 거부에 관한 사항)&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;br /&gt;Stcreative은(는) 정보주체의 이용정보를 저장하고 수시로 불러오는 &amp;lsquo;쿠키(cookie)&amp;rsquo;를 사용하지 않습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;제8조 (개인정보 보호책임자)&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;①&lt;span&gt; Stcreative&lt;/span&gt;은(는) 개인정보 처리에 관한 업무를 총괄해서 책임지고, 개인정보 처리와 관련한 정보주체의 불만처리 및 피해구제 등을 위하여 아래와 같이 개인정보 보호책임자를 지정하고 있습니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;▶ 개인정보 보호책임자&lt;/li&gt;
&lt;li&gt;성명 :곽재영&lt;/li&gt;
&lt;li&gt;연락처 : baboototo@gmail.com,&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;※ 개인정보 보호 담당부서로 연결됩니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;▶ 개인정보 보호 담당부서&lt;/li&gt;
&lt;li&gt;부서명 :&lt;/li&gt;
&lt;li&gt;담당자 :&lt;/li&gt;
&lt;li&gt;연락처 :, ,&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;② 정보주체께서는 Stcreative의 서비스(또는 사업)을 이용하시면서 발생한 모든 개인정보 보호 관련 문의, 불만처리, 피해구제 등에 관한 사항을 개인정보 보호책임자 및 담당부서로 문의하실 수 있습니다. Stcreative은(는) 정보주체의 문의에 대해 지체 없이 답변 및 처리해드릴 것입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;제9조(개인정보 열람청구)&lt;br /&gt;정보주체는 ｢개인정보 보호법｣ 제35조에 따른 개인정보의 열람 청구를 아래의 부서에 할 수 있습니다.&lt;br /&gt;&amp;lt; Stcreative&amp;gt;은(는) 정보주체의 개인정보 열람청구가 신속하게 처리되도록 노력하겠습니다.&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;▶ 개인정보 열람청구 접수&amp;middot;처리 부서&lt;/li&gt;
&lt;li&gt;부서명 :&lt;/li&gt;
&lt;li&gt;담당자 :&lt;/li&gt;
&lt;li&gt;연락처 : , ,&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;제10조(권익침해 구제방법)&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;br /&gt;정보주체는 개인정보침해로 인한 구제를 받기 위하여 개인정보분쟁조정위원회, 한국인터넷진흥원 개인정보침해신고센터 등에 분쟁해결이나 상담 등을 신청할 수 있습니다. 이 밖에 기타 개인정보침해의 신고, 상담에 대하여는 아래의 기관에 문의하시기 바랍니다.&lt;br /&gt;&lt;br /&gt;1. 개인정보분쟁조정위원회 : (국번없이) 1833-6972 (www.kopico.go.kr)&lt;br /&gt;2. 개인정보침해신고센터 : (국번없이) 118 (privacy.kisa.or.kr)&lt;br /&gt;3. 대검찰청 : (국번없이) 1301 (www.spo.go.kr)&lt;br /&gt;4. 경찰청 : (국번없이) 182 (ecrm.cyber.go.kr)&lt;br /&gt;&lt;br /&gt;「개인정보보호법」제35조(개인정보의 열람), 제36조(개인정보의 정정&amp;middot;삭제), 제37조(개인정보의 처리정지 등)의 규정에 의한 요구에 대 하여 공공기관의 장이 행한 처분 또는 부작위로 인하여 권리 또는 이익의 침해를 받은 자는 행정심판법이 정하는 바에 따라 행정심판을 청구할 수 있습니다.&lt;br /&gt;&lt;br /&gt;※ 행정심판에 대해 자세한 사항은 중앙행정심판위원회(www.simpan.go.kr) 홈페이지를 참고하시기 바랍니다.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;제11조(개인정보 처리방침 변경)&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;① 이 개인정보처리방침은 2022년 1월 1부터 적용됩니다.&lt;/p&gt;</description>
      <author>곽재영</author>
      <guid isPermaLink="true">https://baboototo.tistory.com/34</guid>
      <comments>https://baboototo.tistory.com/34#entry34comment</comments>
      <pubDate>Fri, 3 Feb 2023 16:33:28 +0900</pubDate>
    </item>
    <item>
      <title>Open Korean Text 한국어 형태소 분석기 적용</title>
      <link>https://baboototo.tistory.com/33</link>
      <description>&lt;p&gt;Spring Boot / Gradle 기반 서비스에 Open Korean Text 한국어 형태소 분석기 적용&lt;/p&gt;
&lt;h4&gt;# Open Korean Text&lt;/h4&gt;
&lt;p&gt;트위터에서 개발된 오픈소스 한국어 처리기이지만, 이제는 Open Korean Text 오픈소스로 변경되었다.&lt;br&gt;스칼라로 쓰인 Java 한국어 처리 라이브러리이며, 텍스트 정규화 형태소 분석기이다.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/twitter/twitter-korean-text&quot;&gt;twitter-korean-text Github&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/open-korean-text/open-korean-text&quot;&gt;Open Korean Text Github&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h4&gt;# 라이브러리 다운로드 및 라이브러리 적용&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://jar-download.com/artifacts/org.openkoreantext/open-korean-text/2.1.0/source-code&quot;&gt;Open Korean Text 라이브러리 다운로드&lt;/a&gt;&lt;blockquote&gt;
&lt;p&gt;파일 다운로드 및 압축 해제&lt;br&gt;open-korean-text-2.1.0.jar 파일을 프로젝트 라이브러리 폴더에 복사&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h4&gt;# Gradle build.gradle 설정&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Scala 라이브러리를 추가&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;트위터 한국어 라이브러리 추가&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Open Korean Text 라이브러리 추가 시 트위터 라이브러리가 없을 경우 오류 남.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;pre&gt;&lt;code class=&quot;language-[java]&quot;&gt;
  repositories {
      maven { url &amp;#39;https://jitpack.io&amp;#39; }
  }
  dependencies {
      implementation files(&amp;#39;lib/open-korean-text-2.1.0.jar&amp;#39;)

      implementation &amp;#39;org.scala-lang:scala-library:2.12.4&amp;#39;
      implementation &amp;#39;com.twitter.penguin:korean-text:4.4.4&amp;#39;
  }&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h4&gt;# com.twitter.penguin:korean-text 미적용시 발생하는 오류&lt;/h4&gt;
&lt;blockquote&gt;
&lt;p&gt;Gradle build.gradle 설정에 com.twitter.penguin:korean-text를 미적용 하니 아래와 같은 문제가 발생했다.&lt;br&gt;open-korean-text 라이브러리는 트위터 라이브러리 의존성을 가지고 있는듯 하다.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&quot;http://baboototo.github.io/images/blogs/springboot/springboot-okt.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h4&gt;# Open Korean Text 테스트&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Spring Boot 테스트 진행&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-[java]&quot;&gt; @SpringBootTest
 @ActiveProfiles(&amp;quot;local-live&amp;quot;)
 @AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE)    // DB 사용 설정
 @RunWith(SpringRunner.class)
 public class OpenKoreanTextTest {

     private static final Logger log = LoggerFactory.getLogger(OpenKoreanTextTest.class);

     @Test
     public void Test() {

         String text = &amp;quot;BTS방탄소년단야동#방소 &amp;quot;;

         // Normalize
         CharSequence normalized = OpenKoreanTextProcessorJava.normalize(text);
         System.out.println(normalized);

         // Tokenize
         Seq&amp;lt;KoreanTokenizer.KoreanToken&amp;gt; tokens = OpenKoreanTextProcessorJava.tokenize(normalized);
         System.out.println(OpenKoreanTextProcessorJava.tokensToJavaStringList(tokens));
         System.out.println(OpenKoreanTextProcessorJava.tokensToJavaKoreanTokenList(tokens));

         // Phrase extraction
         List&amp;lt;KoreanPhraseExtractor.KoreanPhrase&amp;gt; phrases = OpenKoreanTextProcessorJava.extractPhrases(tokens, true, true);
         System.out.println(phrases);

         phrases = OpenKoreanTextProcessorJava.extractPhrases(tokens, false, true);
         System.out.println(phrases);

         phrases = OpenKoreanTextProcessorJava.extractPhrases(tokens, true, false);
         System.out.println(phrases);
     }
 }
&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;실행 결과&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-[java]&quot;&gt; // OpenKoreanTextTest 테스트
 BTS방탄소년단야동#방소
 [BTS, 방탄소년단, 야동, #, 방소]
 [BTS(Alpha: 0, 3), 방탄소년단(Noun: 3, 5), 야동(Noun: 8, 2), #(Punctuation: 10, 1), 방소(Noun: 11, 2)]
 [방소(Noun: 11, 2), BTS(Noun: 0, 3), 방탄소년단(Noun: 3, 5)]
 [BTS방탄소년단야동(Noun: 0, 10), 방소(Noun: 11, 2), BTS(Noun: 0, 3), 방탄소년단(Noun: 3, 5), 야동(Noun: 8, 2)]
 [방소(Noun: 11, 2), BTS(Noun: 0, 3), 방탄소년단(Noun: 3, 5)]&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h4&gt;# Open Korean Text 적용기&lt;/h4&gt;
&lt;p&gt;데이터 분석 설계하는 곳에서 open-korean-text 사용하기에 나도 동일한 OKT(Open Korean Text) 적용했다.&lt;br&gt;Java 라이브로리가 있다고 해서 적용을 해보니 Gradle 등록된 라이브러리가 아니였으며, 또 Scala 개발된 라이브러리 였다.&lt;br&gt;적용하기 힘들었다. 힘들다기 보다는 다 찾아 가는것이 살짝 귀찮아 졌다.&lt;br&gt;직접 라이브러리를 찾아 다운로드 후 프로젝트에 적용하고 스칼라 라이브러리 등록 하고 테스트 했더니&lt;br&gt;트위터 라이브러리가 또 필요해 졌다. 트위터에서 파생되 나온 라이브러리인지 꼭 필요했다. 그래서 모두 적용했다.&lt;br&gt;적용 후 테스트 실행을 해보니 나름 만족했다.&lt;br&gt;트위터에서 개발된 것이라 그런지 검색 제외 필터 기능과 해시태그 분석이 가능해서 좋핬다.&lt;br&gt;지금 Komoran과 OKR(Open Korean Text) 두개 모두 적용후 테스트 중에 있다.&lt;br&gt;두 기능을 모두 장단점을 파악 하기 위해 테스트 진행중에 있다. 하나를 선택 해야 한다. ㅎㅎㅎ&lt;br&gt;관리 측면에서 계속 발생하는 한글 자연어 형태소 분석을 진행하게 될것 같은데&lt;br&gt;사전등록 / 제어 단어 필터 / 실시간 처리는 어떻게 해야 할지 많은 생각이 든다.&lt;br&gt;자연어 형태소 분석을 하면서 우리는 많은 문장과 단어를 축약해서 사용하고 있다는걸 느끼게 됐다.&lt;br&gt;축약된 단어를 사용하기는 편하지만 그 단어의 순수 의미를 잃어버리는것 같아 아쉬움이 남는다.&lt;br&gt;참고로 난 엄마 라는 단어가 참 좋은데~ 왜? 다들 맘 이라고 부르는지 살짝 이해가 안되네 ㅎㅎㅎㅎ&lt;/p&gt;
&lt;hr&gt;</description>
      <category>DEV/Spring Boot</category>
      <category>gradle</category>
      <category>open korean text</category>
      <category>spring boot</category>
      <category>한국어</category>
      <category>형태소 분석기</category>
      <author>곽재영</author>
      <guid isPermaLink="true">https://baboototo.tistory.com/33</guid>
      <comments>https://baboototo.tistory.com/33#entry33comment</comments>
      <pubDate>Wed, 14 Aug 2019 17:39:11 +0900</pubDate>
    </item>
    <item>
      <title>Komoran 한국어 형태소 분석기 적용</title>
      <link>https://baboototo.tistory.com/32</link>
      <description>&lt;p&gt;Spring Boot / Gradle 기반 서비스에 Komoran 한국어 형태소 분석기 적용&lt;/p&gt;
&lt;h4&gt;# Komoran&lt;/h4&gt;
&lt;p&gt;Java로 구현된 한국어 형태소 분석기이다.&lt;br&gt;Jar 또는 Maven/Gradle 형태로 빌드 후 바로 사용이 가능하다.&lt;br&gt;외부 의존성이 없어서 설치 후 바로 사용 가능하기에 간단한 서비스에 적용해 사용하기에 최적인 것 같다.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.shineware.co.kr/products/komoran/&quot;&gt;Komoran 공식 사이트&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/shin285/KOMORAN&quot;&gt;Komoran Githiub&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://docs.komoran.kr/firststep/installation.html?utm_source=komoran-repo&amp;amp;utm_medium=Referral&amp;amp;utm_campaign=github-demo&quot;&gt;Komoran 설치 가이드&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://docs.komoran.kr/firststep/postypes.html&quot;&gt;Komoran 품사표&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h4&gt;# Gradle build.gradle 설정&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Komoran 3.3.4 버전 설정&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-[java]&quot;&gt;
  repositories {
      maven { url &amp;#39;https://jitpack.io&amp;#39; }
  }
  dependencies {
      implementation &amp;#39;com.github.shin285:KOMORAN:3.3.4&amp;#39;
  }&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h4&gt;# Komoran Util&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Singleton Pattern Util 생성 후 사용&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;여러 곳에서 사용해야 하는 경우가 발생해 싱글톤 패턴으로 Util Class 생성&lt;br&gt;형태소 분석 사전 등록 및 관리 편하게 하기 위해...&lt;/p&gt;
&lt;/blockquote&gt;
&lt;pre&gt;&lt;code class=&quot;language-[java]&quot;&gt;  // Komoran 형태소 분석 사용 Util
  public class KomoranUtils {
      private static final Logger log = LoggerFactory.getLogger(KomoranUtils.class);
      private KomoranUtils(){}

      public static Komoran getInstance() {
          return KomoranInstance.instance;
      }

      private static class KomoranInstance {
          public static final Komoran instance = new Komoran(DEFAULT_MODEL.FULL);
      }
  }&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h4&gt;# Komoran 테스트&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Spring Boot 테스트 진행&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-[java]&quot;&gt; @SpringBootTest
 @ActiveProfiles(&amp;quot;local-live&amp;quot;)
 @AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE)    // DB 사용 설정
 @RunWith(SpringRunner.class)
 public class KomoranTest {

     private static final Logger log = LoggerFactory.getLogger(KomoranTest.class);

     @Test
     public void KomoranUtilSingletonTest() {
         List&amp;lt;String&amp;gt; analyzeList = KomoranUtils.analyzeKeywordList(&amp;quot;광주세계선수권대회&amp;quot;);
         for (String title : analyzeList) {
             log.info(title);
         }
     }

     @Test
     public void Test() {
         Komoran komoran = KomoranUtils.getInstance();
         KomoranResult analyzeResultList = komoran.analyze(&amp;quot;부산코미디페스티벌NAVER&amp;quot;);

         List&amp;lt;Token&amp;gt; tokenList = analyzeResultList.getTokenList();

         // 1. print each tokens by getTokenList()
         log.info(&amp;quot;==========print &amp;#39;getTokenList()&amp;#39;==========&amp;quot;);
         for (Token token : tokenList) {
             log.info(token.toString());
             log.info(token.getMorph()+&amp;quot;/&amp;quot;+token.getPos()+&amp;quot;(&amp;quot;+token.getBeginIndex()+&amp;quot;,&amp;quot;+token.getEndIndex()+&amp;quot;)&amp;quot;);

         }

         // 2. print nouns
         log.info(&amp;quot;==========print &amp;#39;getNouns()&amp;#39;==========&amp;quot;);
         log.info(analyzeResultList.getNouns().toString());

         // 3. print analyzed result as pos-tagged text
         log.info(&amp;quot;==========print &amp;#39;getPlainText()&amp;#39;==========&amp;quot;);
         log.info(analyzeResultList.getPlainText());

         // 4. print analyzed result as list
         log.info(&amp;quot;==========print &amp;#39;getList()&amp;#39;==========&amp;quot;);
         log.info(analyzeResultList.getList().toString());

         // 5. print morphes with selected pos
         log.info(&amp;quot;==========print &amp;#39;getMorphesByTags()&amp;#39;==========&amp;quot;);
         log.info(analyzeResultList.getMorphesByTags(&amp;quot;NNG&amp;quot;, &amp;quot;NNP&amp;quot;, &amp;quot;NNB&amp;quot;, &amp;quot;SL&amp;quot;).toString());
     }
 }&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;실행 결과&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-[java]&quot;&gt; // KomoranUtilSingletonTest 테스트
 20190813 17:10:48.984 [main] INFO c.s.s.v.KomoranTest - 광주 
 20190813 17:10:48.984 [main] INFO c.s.s.v.KomoranTest - 세계 
 20190813 17:10:48.984 [main] INFO c.s.s.v.KomoranTest - 선수권대회 

 // Test 테스트
 20190813 17:10:48.971 [main] INFO c.s.s.v.KomoranTest - ==========print &amp;#39;getTokenList()&amp;#39;========== 
 20190813 17:10:48.971 [main] INFO c.s.s.v.KomoranTest - Token [morph=부산, pos=NNP, beginIndex=0, endIndex=2] 
 20190813 17:10:48.971 [main] INFO c.s.s.v.KomoranTest - 부산/NNP(0,2) 
 20190813 17:10:48.971 [main] INFO c.s.s.v.KomoranTest - Token [morph=코미디, pos=NNG, beginIndex=2, endIndex=5] 
 20190813 17:10:48.971 [main] INFO c.s.s.v.KomoranTest - 코미디/NNG(2,5) 
 20190813 17:10:48.971 [main] INFO c.s.s.v.KomoranTest - Token [morph=페스티벌, pos=NNP, beginIndex=5, endIndex=9] 
 20190813 17:10:48.971 [main] INFO c.s.s.v.KomoranTest - 페스티벌/NNP(5,9) 
 20190813 17:10:48.971 [main] INFO c.s.s.v.KomoranTest - Token [morph=NAVER, pos=SL, beginIndex=9, endIndex=14] 
 20190813 17:10:48.971 [main] INFO c.s.s.v.KomoranTest - NAVER/SL(9,14) 
 20190813 17:10:48.971 [main] INFO c.s.s.v.KomoranTest - ==========print &amp;#39;getNouns()&amp;#39;========== 
 20190813 17:10:48.972 [main] INFO c.s.s.v.KomoranTest - [부산, 코미디, 페스티벌] 
 20190813 17:10:48.972 [main] INFO c.s.s.v.KomoranTest - ==========print &amp;#39;getPlainText()&amp;#39;========== 
 20190813 17:10:48.972 [main] INFO c.s.s.v.KomoranTest - 부산/NNP 코미디/NNG 페스티벌/NNP NAVER/SL 
 20190813 17:10:48.972 [main] INFO c.s.s.v.KomoranTest - ==========print &amp;#39;getList()&amp;#39;========== 
 20190813 17:10:48.972 [main] INFO c.s.s.v.KomoranTest - [Pair [first=부산, second=NNP], Pair [first=코미디, second=NNG], Pair [first=페스티벌, second=NNP], Pair [first=NAVER, second=SL]] 
 20190813 17:10:48.972 [main] INFO c.s.s.v.KomoranTest - ==========print &amp;#39;getMorphesByTags()&amp;#39;========== 
 20190813 17:10:48.972 [main] INFO c.s.s.v.KomoranTest - [부산, 코미디, 페스티벌, NAVER] &lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h4&gt;# Komoran 사용기&lt;/h4&gt;
&lt;blockquote&gt;
&lt;p&gt;한국어 자연어 형태소 분석기를 찾던중 설치 방법과 사용법이 간단해 바로 적용해 봤다.&lt;br&gt;결과는 대만족 이었다.&lt;br&gt;아주 간단한 내용이기 때문에.. 여기에 아주 적격이었다.&lt;br&gt;하지만, 특정 키워드 분석 및 실시간 처리 속도는 다른 형태소 분석기에 살짝 부족한면이 있는것 같다.&lt;br&gt;Tomcat 서버에 min:256, max:512 설정 후 순간 처리 속도를 테스트 하다 보니 out of memory 놨다.&lt;br&gt;실시간 검색 키워드 처리는 살짝 무리일듯~ 그냥 엘라스틱서치를 사용하는게 좋을것 같다.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;</description>
      <category>DEV/Spring Boot</category>
      <category>gradle</category>
      <category>KOMORAN</category>
      <category>spring boot</category>
      <category>한국어</category>
      <category>형태소 분석기</category>
      <author>곽재영</author>
      <guid isPermaLink="true">https://baboototo.tistory.com/32</guid>
      <comments>https://baboototo.tistory.com/32#entry32comment</comments>
      <pubDate>Tue, 13 Aug 2019 17:40:00 +0900</pubDate>
    </item>
    <item>
      <title>Windows Server 서비스에 Tomcat 등록 및 확인</title>
      <link>https://baboototo.tistory.com/31</link>
      <description>&lt;p&gt;Spring Boot / Gradle 기반 서비스를 외부 Tomcat 배포 및 서비스 등록까지 블로그 작성&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&quot;https://baboototo.tistory.com/29&quot;&gt;[Spring Boot / Gradle 기반] Spring Boot 서비스 배포 War 만들기 (IntelliJ IDE 사용)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://baboototo.tistory.com/30&quot;&gt;[Spring Boot / Gradle 기반] Windows Server Java 및 Tomcat 설치 및 설정&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://baboototo.tistory.com/31&quot;&gt;[Spring Boot / Gradle 기반] Windows Server 서비스에 Tomcat 등록 및 확인&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h4&gt;#  Windows Service 설정 준비&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Tomcat service.bat 설정&lt;/li&gt;
&lt;li&gt;Tomcat 설정 옵션 exe 파일 만들기&lt;/li&gt;
&lt;li&gt;윈도우 서비스 Tomcat 등록&lt;/li&gt;
&lt;li&gt;윈도우 서비스 Tomcat 삭제&lt;/li&gt;
&lt;li&gt;윈도우 서비스 Tomcat 확인&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h4&gt;# Tomcat service.bat 설정 [ tomcat\bin\service.bat ]&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Tomcat service.bat 에서 SERVICE_NOME / DISPLAYNAME 설정&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;소스 편집기 또는 메모장을 열어서 라인 83 줄에 SERVICE_NOME / DISPLAYNAME 변경&lt;br&gt;SERVICE_NOME : 서비스 이름&lt;br&gt;DISPLAYNAME  : 표시 이름&lt;/p&gt;
&lt;/blockquote&gt;
&lt;pre&gt;&lt;code class=&quot;language-[xml]&quot;&gt;  rem Set default Service name
  rem set SERVICE_NAME=Tomcat8
  rem set DISPLAYNAME=Apache Tomcat 8.5 %SERVICE_NAME%

  set SERVICE_NAME=test-api
  set DISPLAYNAME=Test Api Server&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h4&gt;#Tomcat 설정 옵션 exe 파일 만들기 [ tomcat\bin\tomcat8w.exe ]&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Tomcat Properites 설정 화면 만든기&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;tomcat\bin\tomcat8w.exe 파일을 복사 붙여 넣기 한다.&lt;br&gt;tomcat8w.exe 파일명을 위에 설정한 SERVICE_NAME 동일하게 변경&lt;br&gt;test-api.exe 파일을 실행하면 Tomcat Properties 설정 화면 실행 됨&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&quot;http://baboototo.github.io/images/blogs/springboot/springboot-windows-service-setting-01.png&quot; alt=&quot;&quot;&gt;&lt;br&gt;&lt;img src=&quot;http://baboototo.github.io/images/blogs/springboot/springboot-windows-service-setting-02.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h4&gt;# 윈도우 서비스 Tomcat 등록 [ tomcat\bin\service.bat ]&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Tomcat 윈도우 서비스 등록 (cmd에서 실행)&lt;pre&gt;&lt;code class=&quot;language-[xml]&quot;&gt;  tomcat\bin\service.bat install&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h4&gt;# 윈도우 서비스 Tomcat 삭제 [ tomcat\bin\service.bat ]&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Tomcat 윈도우 서비스 삭제 (cmd에서 실행)&lt;pre&gt;&lt;code class=&quot;language-[xml]&quot;&gt;  tomcat\bin\service.bat remove&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h4&gt;# 윈도우 서비스 Tomcat 확인&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;윈도우 서비스 실행&lt;blockquote&gt;
&lt;p&gt;윈도우키 + R 누르고 services.msc 입력 후 엔터&lt;br&gt;윈도우 서비스 창에서 등록된 서비스명 검색 후 속성 확인&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;</description>
      <category>DEV/Spring Boot</category>
      <category>gradle</category>
      <category>spring boot</category>
      <category>tomcat</category>
      <author>곽재영</author>
      <guid isPermaLink="true">https://baboototo.tistory.com/31</guid>
      <comments>https://baboototo.tistory.com/31#entry31comment</comments>
      <pubDate>Fri, 9 Aug 2019 17:20:41 +0900</pubDate>
    </item>
    <item>
      <title>Windows Server Java 및 Tomcat 설치 및 설정</title>
      <link>https://baboototo.tistory.com/30</link>
      <description>&lt;p&gt;Spring Boot / Gradle 기반 서비스를 외부 Tomcat 배포 및 서비스 등록까지 블로그 작성&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&quot;https://baboototo.tistory.com/29&quot;&gt;[Spring Boot / Gradle 기반] Spring Boot 서비스 배포 War 만들기 (IntelliJ IDE 사용)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://baboototo.tistory.com/30&quot;&gt;[Spring Boot / Gradle 기반] Windows Server Java 및 Tomcat 설치 및 설정&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://baboototo.tistory.com/31&quot;&gt;[Spring Boot / Gradle 기반] Windows Server 서비스에 Tomcat 등록 및 확인&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h4&gt;#  Windows Server 설정 준비&lt;/h4&gt;
&lt;blockquote&gt;
&lt;p&gt;Spring Boot 설정된 내부 톰캣이 아닌 외부 톰캣을 이용해 윈도우 서버에 배포&lt;br&gt;외부 톰캣 설정 시 아래 3가지 설정값을 꼭 넣어서 설정해 줘야 다른 서비스와 충돌을 피할 수 있다.&lt;br&gt;JRE_HOME 따로 설정한 이유는 기본 설정된 Java 버전이 다를 경우를 위해 설정한 것이다.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;JRE_HOME&lt;/li&gt;
&lt;li&gt;CATALINA_HOME&lt;/li&gt;
&lt;li&gt;CATALINA_BASE&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Java / Tomcat 다운로드&lt;/li&gt;
&lt;li&gt;서비스 디렉토리 구성&lt;/li&gt;
&lt;li&gt;Tomcat 설정&lt;/li&gt;
&lt;li&gt;Tomcat Start / Shutdown&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h4&gt;# Java / Tomcat 다운로드&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href=&quot;https://www.oracle.com/technetwork/java/javase/downloads/index.html&quot;&gt;Java Download&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Java 다운로드 및 설치 방법은 구글링을 통해 참고&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href=&quot;https://tomcat.apache.org/download-80.cgi&quot;&gt;Tomcat Download&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h4&gt;# 서비스 디렉토리 구성&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Java / Was / Source 디렉토리 구성&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;p&gt;java - Java 설치된 디렉토리&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;신규로 개발된 서비스가 기존 동일한 자바 버전이 같은 경우 기존 자바 디렉토리를 설정&lt;br&gt;신규로 개발된 자바 버전이 더 높을 경우 위와 동일하게 설정한다.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;was - Tomcat 설치된 디렉토리&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;다른 서비스와 같은 톰캣으로 사용할 경우 배포 또는 장애시 모든 서비스가 Shutdown 되는 것을 막기 위해 별도로 사용&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;source - 서비스 대상 디렉토리&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;신규로 개발된 소스 디렉토리 (WAR 파일 또는 WAR 압축 해제 후 소스 적용)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&quot;http://baboototo.github.io/images/blogs/springboot/springboot-windows-service-setting-01.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h4&gt;# Tomcat startup.bat 설정 [ tomcat\bin\startup.bat ]&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Java / Catalina 경로 설정&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;소스 편집기 또는 메모장을 열어서 setlocal 아래에 JRE_HOME/CATALINA_HOME/CATALINA_BASE 경로 정보 설정&lt;/p&gt;
&lt;/blockquote&gt;
&lt;pre&gt;&lt;code class=&quot;language-[xml]&quot;&gt; setlocal

 set &amp;quot;JRE_HOME=E:\Test\java\jdk1.8.0_171\jre&amp;quot;
 set &amp;quot;CATALINA_HOME=E:\Test\was\apache-tomcat-8.5.43&amp;quot;
 set &amp;quot;CATALINA_BASE=E:\Test\was\apache-tomcat-8.5.43&amp;quot;&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h4&gt;# Tomcat shutdown.bat 설정 [ tomcat\bin\shutdown.bat ]&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Java / Catalina 경로 설정&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;소스 편집기 또는 메모장을 열어서 setlocal 아래에 JRE_HOME/CATALINA_HOME/CATALINA_BASE 경로 정보 설정&lt;/p&gt;
&lt;/blockquote&gt;
&lt;pre&gt;&lt;code class=&quot;language-[xml]&quot;&gt; setlocal

 set &amp;quot;JRE_HOME=E:\Test\java\jdk1.8.0_171\jre&amp;quot;
 set &amp;quot;CATALINA_HOME=E:\Test\was\apache-tomcat-8.5.43&amp;quot;
 set &amp;quot;CATALINA_BASE=E:\Test\was\apache-tomcat-8.5.43&amp;quot;&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h4&gt;# Tomcat shutdown.bat 설정 [ tomcat\bin\shutdown.bat ]&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Java / Catalina 경로 설정&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;소스 편집기 또는 메모장을 열어서 setlocal 아래에 JRE_HOME/CATALINA_HOME/CATALINA_BASE 경로 정보 설정&lt;/p&gt;
&lt;/blockquote&gt;
&lt;pre&gt;&lt;code class=&quot;language-[xml]&quot;&gt; setlocal

 set &amp;quot;JRE_HOME=E:\Test\java\jdk1.8.0_171\jre&amp;quot;
 set &amp;quot;CATALINA_HOME=E:\Test\was\apache-tomcat-8.5.43&amp;quot;
 set &amp;quot;CATALINA_BASE=E:\Test\was\apache-tomcat-8.5.43&amp;quot;&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h4&gt;# Tomcat catalina.bat 설정 [ tomcat\bin\catalina.bat ]&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Catalina 옵션 설정&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;소스 편집기 또는 메모장을 열어서 setlocal 아래에 JRE_HOME/CATALINA_HOME/CATALINA_BASE 경로 정보 설정&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;옵션 참고&lt;/li&gt;
&lt;li&gt;Xms : 최소 힙 사이즈&lt;/li&gt;
&lt;li&gt;Xmx : 최대 힙 사이즈&lt;/li&gt;
&lt;li&gt;XX:NewSize : New Generation의 최소 사이즈&lt;/li&gt;
&lt;li&gt;XX:MaxNewSize : New Generation의 최대 사이즈&lt;/li&gt;
&lt;li&gt;XX:MaxPermSize : Permanent Generation의 최대 사이즈&lt;/li&gt;
&lt;li&gt;XX:SurvivorRatio : 영역비율(New Generation)&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;pre&gt;&lt;code class=&quot;language-[xml]&quot;&gt; setlocal

 set &amp;quot;CATALINA_OPTS=-Xms1024M -Xmx2048M -XX:PermSize=512M -XX:MaxPermSize=512M&amp;quot;&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h4&gt;# Tomcat setenv.bat 설정 [  tomcat\bin\setenv.bat ]&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Tomcat bin 디렉토리에 setenv.bat 파일 생성&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;setenv.bat 파일은 톰캣 구동시 자동으로 실행 된다.&lt;br&gt;setenv.bat 파일에는 커스텀 옵션을 지정할 수 있다.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;pre&gt;&lt;code class=&quot;language-[xml]&quot;&gt; set JAVA_OPTS=%JAVA_OPTS% -Djava.awt.headless=true -Dfile.encoding=UTF-8 -server -Xms1024M -Xmx1024M -XX:NewSize=512m -XX:MaxNewSize=512m -XX:PermSize=512M -XX:MaxPermSize=512M -XX:+DisableExplicitGC
&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h4&gt;# Tomcat web.xml 설정 [  tomcat\conf\web.xml ]&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;[참고] Spring Boot application.yaml 또는 application.properties 설정 시 Active profiles을 설정 할 수 있다.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-[xml]&quot;&gt; &amp;lt;context-param&amp;gt;
     &amp;lt;param-name&amp;gt;spring.profiles.active&amp;lt;/param-name&amp;gt;
     &amp;lt;param-value&amp;gt;live&amp;lt;/param-value&amp;gt;
 &amp;lt;/context-param&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h4&gt;# Tomcat server.xml 설정 [  tomcat\conf\server.xml ]&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Tomcat Context 등록&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-[xml]&quot;&gt; &amp;lt;Host name=&amp;quot;localhost&amp;quot;  appBase=&amp;quot;webapps&amp;quot; unpackWARs=&amp;quot;true&amp;quot; autoDeploy=&amp;quot;true&amp;quot;&amp;gt;
      &amp;lt;!-- Tomcat 서비스 구동 Context 설정  --&amp;gt;
     &amp;lt;Context docBase=&amp;quot;E:\Test\source\test-api&amp;quot; path=&amp;quot;/&amp;quot; reloadable=&amp;quot;true&amp;quot;/&amp;gt;
 &amp;lt;/Host&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h4&gt;# Tomcat Start / Shutdown&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Windows cmd Console 실행 후 아래 명령어로 실행 및 중지&lt;blockquote&gt;
&lt;p&gt;E:\Test\was\apache-tomcat-8.5.43\bin&amp;gt; startup.bat&lt;br&gt;E:\Test\was\apache-tomcat-8.5.43\bin&amp;gt; shutdown.bat&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;</description>
      <category>DEV/Spring Boot</category>
      <category>gradle</category>
      <category>spring boot</category>
      <category>tomcat</category>
      <author>곽재영</author>
      <guid isPermaLink="true">https://baboototo.tistory.com/30</guid>
      <comments>https://baboototo.tistory.com/30#entry30comment</comments>
      <pubDate>Fri, 9 Aug 2019 17:09:52 +0900</pubDate>
    </item>
    <item>
      <title>Spring Boot 서비스 배포 War 만들기 (IntelliJ IDE 사용)</title>
      <link>https://baboototo.tistory.com/29</link>
      <description>&lt;p&gt;Spring Boot / Gradle 기반 서비스를 외부 Tomcat 배포 및 서비스 등록까지 블로그 작성&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&quot;https://baboototo.tistory.com/29&quot;&gt;[Spring Boot / Gradle 기반] Spring Boot 서비스 배포 War 만들기 (IntelliJ IDE 사용)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://baboototo.tistory.com/30&quot;&gt;[Spring Boot / Gradle 기반] Windows Server Java 및 Tomcat 설치 및 설정&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://baboototo.tistory.com/31&quot;&gt;[Spring Boot / Gradle 기반] Windows Server 서비스에 Tomcat 등록 및 확인&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h4&gt;# Spring Boot War 배포 준비&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Gradle build.gradle 설정&lt;/li&gt;
&lt;li&gt;Spring Boot Application 설정&lt;/li&gt;
&lt;li&gt;Gradle Build war 파일 생성&lt;/li&gt;
&lt;li&gt;Gradle Build war 파일 확인&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h4&gt;# Gradle build.gradle 설정&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;플러그인 war 설정 되어 있는 지 확인 (없을 경우 플러그인 추가)&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-[java]&quot;&gt;  apply plugin: &amp;#39;war&amp;#39;&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;war 배포 파일명 설정&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-[java]&quot;&gt;  bootWar {
      archiveBaseName = &amp;quot;test-api&amp;quot;
      archiveFileName = &amp;quot;test-api.war&amp;quot;
      archiveVersion = &amp;quot;0.0.0&amp;quot;
  }&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h4&gt;# Spring Boot Application 설정&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Spring Boot Application Class 설정 확인&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;SpringBootServletInitializer extends 여부 확인&lt;/li&gt;
&lt;li&gt;configure 메소드 ServletInitializer.class 설정 확인&lt;/li&gt;
&lt;li&gt;main 메소드 ServletInitializer.class 설정 확인&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code class=&quot;language-[java]&quot;&gt;  @SpringBootApplication
  public class TestApiApplication extends SpringBootServletInitializer {
      @Override
      protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
          return application.sources(ServletInitializer.class);
      }

      public static void main(String[] args) {
          SpringApplication.run(ServletInitializer.class, args);
      }
  }&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h4&gt;# Gradle Build war 파일 생성&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Gradle &amp;gt; Tasks &amp;gt; build &amp;gt; bootWar 실행&lt;br&gt;&lt;img src=&quot;http://baboototo.github.io/images/blogs/springboot/springboot-war-export.png&quot; alt=&quot;&quot;&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h4&gt;# Gradle Build war 파일 확인&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;${project directory}/build/libs/test-api.war&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;</description>
      <category>DEV/Spring Boot</category>
      <category>gradle</category>
      <category>Intellij</category>
      <category>spring boot</category>
      <author>곽재영</author>
      <guid isPermaLink="true">https://baboototo.tistory.com/29</guid>
      <comments>https://baboototo.tistory.com/29#entry29comment</comments>
      <pubDate>Fri, 9 Aug 2019 14:45:13 +0900</pubDate>
    </item>
    <item>
      <title>[Windows10] Elasticsearch 설치</title>
      <link>https://baboototo.tistory.com/26</link>
      <description>&lt;h4&gt;# Windows10에 Elasticsearch7 설치&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Java8 이상 버전 설치 (추후 Java11 버전 설치 권장)&lt;/li&gt;
&lt;li&gt;Elasticsearch 다운로드&lt;/li&gt;
&lt;li&gt;Elasticsearch 설치&lt;/li&gt;
&lt;li&gt;Elasticsearch 최초 실행 및 서비스 등록&lt;/li&gt;
&lt;li&gt;Elasticsearch 실행 및 종료&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h4&gt;# Elasticsearch 다운로드&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;http://baboototo.github.io/images/blogs/elasticsearch/elasticsearch-setting-01.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://baboototo.github.io/images/blogs/elasticsearch/elasticsearch-setting-02.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h4&gt;# Elasticsearch 설치&lt;/h4&gt;
&lt;blockquote&gt;
&lt;p&gt;다운로드 받은 폴더에서 압축을 해제 한다.&lt;br&gt;압축을 해제한 폴더를 원하는 특정 폴더로 이동&lt;br&gt;설치 끝 ( 다운로드 해지 후 바로 실행이 가능함. )&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h4&gt;# Elasticsearch 실행 및 서비스 등록&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Window cmd 실행&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;cd ..\elasticsearch-7.3.0\bin&lt;/strong&gt; 폴더로 이동&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;elasticsearch.bat&lt;/strong&gt; 입력 후 실행 아래 메세지 출력시 실행 완료&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://baboototo.github.io/images/blogs/elasticsearch/elasticsearch-setting-03.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;curl localhost:9200&lt;/strong&gt; cmd 입력 후 실행&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://baboototo.github.io/images/blogs/elasticsearch/elasticsearch-setting-04.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;elasticsearch-service.bat install&lt;/strong&gt; cmd 입력 후 실행 아래 메세지 출력시 서비스 등록 완료&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://baboototo.github.io/images/blogs/elasticsearch/elasticsearch-setting-05.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h4&gt;# Elasticsearch 실행 및 종료&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;elasticsearch-service 명령어를 통해 시작/중지/삭제/관리등을 실행할 수 있음.&lt;br&gt;&lt;img src=&quot;http://baboototo.github.io/images/blogs/elasticsearch/elasticsearch-setting-06.png&quot; alt=&quot;&quot;&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h4&gt;# Elasticsearch elasticsearch.bat 실행 오류 시&lt;/h4&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;elasticsearch-7.3.0\bin&lt;/strong&gt; 폴더로 이동&lt;br&gt;&lt;strong&gt;elasticsearch.bat&lt;/strong&gt; 파일 편집 실행(메모장, Atom, EditPlus 등..)&lt;br&gt;&lt;strong&gt;SET &amp;quot;JAVA_HOME=C:\Program Files\Java\jdk1.8.0_191&amp;quot;&lt;/strong&gt; 내용 입력 후 저장(자바경로 설정)&lt;br&gt;&lt;strong&gt;elasticsearch.bat&lt;/strong&gt; Window cmd 다시 실행&lt;/p&gt;
&lt;/blockquote&gt;</description>
      <category>DEV/Elasticsearch</category>
      <category>elasticsearch</category>
      <author>곽재영</author>
      <guid isPermaLink="true">https://baboototo.tistory.com/26</guid>
      <comments>https://baboototo.tistory.com/26#entry26comment</comments>
      <pubDate>Fri, 2 Aug 2019 15:55:35 +0900</pubDate>
    </item>
    <item>
      <title>Spring Boot Gradle Mybatis Logback 설정</title>
      <link>https://baboototo.tistory.com/25</link>
      <description>&lt;p&gt;Spring Boot / Gradle 기반 Mybatis SQL Logback 설정 입니다.&lt;/p&gt;
&lt;h4&gt;# [참고] Logback 기본 설정&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://baboototo.tistory.com/24&quot;&gt;Spring Boot Gradle Logback 설정&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h4&gt;# Logback 설정 디렉토리 및 파일 구성&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;    - src
        - main
            - resources
                - log
                    - console.xml
                    - file.xml
                - logback-spring.xml
                - log4jdbc.log4j2.properties&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;
&lt;h4&gt;# Logback 로그 설정 파일 추가&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;log4jdbc.log4j2.properties : SQL Log Delegator 설정&lt;pre&gt;&lt;code&gt;log4jdbc.spylogdelegator.name=net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator
log4jdbc.dump.sql.maxlinelength=0&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;# Loagback 설정 application.yaml Datasource 설정 변경&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;url: log4jdbc 변경&lt;/li&gt;
&lt;li&gt;driver-class-name: net.sf.log4jdbc.sql.jdbcapi.DriverSpy&lt;pre&gt;&lt;code&gt; spring:
     profiles: local
     datasource:
         url: jdbc:log4jdbc:oracle:thin:@123.123.123:1521:ORCL
         driver-class-name: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
         username: name
         password: password&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>DEV/Spring Boot</category>
      <category>gradle</category>
      <category>log</category>
      <category>logback</category>
      <category>mybatis</category>
      <category>spring boot</category>
      <author>곽재영</author>
      <guid isPermaLink="true">https://baboototo.tistory.com/25</guid>
      <comments>https://baboototo.tistory.com/25#entry25comment</comments>
      <pubDate>Thu, 1 Aug 2019 17:58:03 +0900</pubDate>
    </item>
    <item>
      <title>Spring Boot Gradle Logback 설정</title>
      <link>https://baboototo.tistory.com/24</link>
      <description>&lt;p&gt;Spring Boot / Gradle 기반에서 Logback 설정 입니다.&lt;br&gt;콘솔 로그와 파일 로그 기본 설정 방법으로 작성되었습니다.&lt;/p&gt;
&lt;h4&gt;# Gradle 설정&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Logback dependencies 추가&lt;pre&gt;&lt;code&gt;  dependencies {
      implementation &amp;#39;org.bgee.log4jdbc-log4j2:log4jdbc-log4j2-jdbc4:1.16&amp;#39;
  }&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h4&gt;# Logback 설정 디렉토리 및 파일 구성&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;    - src
        - main
            - resources
                - log
                    - console.xml
                    - file.xml
                - logback-spring.xml&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;
&lt;h4&gt;# Logback 로그 설정 파일 추가&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;console.xml : 콘솔 로그 설정&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;  &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;
  &amp;lt;appender name=&amp;quot;CONSOLE&amp;quot; class=&amp;quot;ch.qos.logback.core.ConsoleAppender&amp;quot;&amp;gt;
      &amp;lt;encoder&amp;gt;
          &amp;lt;charset&amp;gt;UTF-8&amp;lt;/charset&amp;gt;
          &amp;lt;pattern&amp;gt;%d{yyyyMMdd HH:mm:ss.SSS} [%thread] %-3level %logger{5} - %msg %n&amp;lt;/pattern&amp;gt;
      &amp;lt;/encoder&amp;gt;
  &amp;lt;/appender&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;파일 로그 설정 XML 파일 추가&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;  &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;
  &amp;lt;appender name=&amp;quot;FILE&amp;quot; class=&amp;quot;ch.qos.logback.core.rolling.RollingFileAppender&amp;quot;&amp;gt;
      &amp;lt;rollingPolicy class=&amp;quot;ch.qos.logback.core.rolling.TimeBasedRollingPolicy&amp;quot;&amp;gt;
          &amp;lt;fileNamePattern&amp;gt;${LOG_FILE}/stc_api_server_log.%d{yyyy-MM-dd}-%i.log&amp;lt;/fileNamePattern&amp;gt;
          &amp;lt;maxHistory&amp;gt;30&amp;lt;/maxHistory&amp;gt;
          &amp;lt;timeBasedFileNamingAndTriggeringPolicy class=&amp;quot;ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP&amp;quot;&amp;gt;
              &amp;lt;maxFileSize&amp;gt;100MB&amp;lt;/maxFileSize&amp;gt;
          &amp;lt;/timeBasedFileNamingAndTriggeringPolicy&amp;gt;
      &amp;lt;/rollingPolicy&amp;gt;
      &amp;lt;encoder&amp;gt;
          &amp;lt;charset&amp;gt;UTF-8&amp;lt;/charset&amp;gt;
          &amp;lt;pattern&amp;gt;%d{yyyy:MM:dd HH:mm:ss.SSS} %-5level --- [%thread] %logger{35} : %msg %n&amp;lt;/pattern&amp;gt;
      &amp;lt;/encoder&amp;gt;
  &amp;lt;/appender&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Spring Boot Logback 설정 XML 추가&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;
  &amp;lt;configuration&amp;gt;

      &amp;lt;logger name=&amp;quot;jdbc.sqlonly&amp;quot; level=&amp;quot;off&amp;quot; /&amp;gt;
      &amp;lt;logger name=&amp;quot;jdbc.sqltiming&amp;quot; level=&amp;quot;info&amp;quot; /&amp;gt;
      &amp;lt;logger name=&amp;quot;jdbc.audit&amp;quot; level=&amp;quot;off&amp;quot; /&amp;gt;
      &amp;lt;logger name=&amp;quot;jdbc.resultset&amp;quot; level=&amp;quot;off&amp;quot; /&amp;gt;
      &amp;lt;logger name=&amp;quot;jdbc.resultsettable&amp;quot; level=&amp;quot;off&amp;quot; /&amp;gt;
      &amp;lt;logger name=&amp;quot;jdbc.connection&amp;quot; level=&amp;quot;off&amp;quot; /&amp;gt;

      &amp;lt;springProfile name=&amp;quot;local&amp;quot;&amp;gt;
          &amp;lt;include resource=&amp;quot;log/console.xml&amp;quot; /&amp;gt;
          &amp;lt;root level=&amp;quot;info&amp;quot;&amp;gt;
              &amp;lt;appender-ref ref=&amp;quot;CONSOLE&amp;quot;/&amp;gt;
          &amp;lt;/root&amp;gt;
      &amp;lt;/springProfile&amp;gt;

      &amp;lt;springProfile name=&amp;quot;local-live&amp;quot;&amp;gt;
          &amp;lt;include resource=&amp;quot;log/console.xml&amp;quot; /&amp;gt;
          &amp;lt;root level=&amp;quot;info&amp;quot;&amp;gt;
              &amp;lt;appender-ref ref=&amp;quot;CONSOLE&amp;quot;/&amp;gt;
          &amp;lt;/root&amp;gt;
      &amp;lt;/springProfile&amp;gt;

      &amp;lt;springProfile name=&amp;quot;real&amp;quot;&amp;gt;
          &amp;lt;include resource=&amp;quot;log/file.xml&amp;quot; /&amp;gt;
          &amp;lt;root level=&amp;quot;info&amp;quot;&amp;gt;
              &amp;lt;appender-ref ref=&amp;quot;FILE&amp;quot;/&amp;gt;
          &amp;lt;/root&amp;gt;
      &amp;lt;/springProfile&amp;gt;

  &amp;lt;/configuration&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;# Loagback 설정 application.yaml 추가&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;com.project.package : 프로젝트 기본 패키지로 설정&lt;pre&gt;&lt;code&gt; logging:
     file: /usr/local/logs
     level:
         com.project.package: info&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>DEV/Spring Boot</category>
      <category>gradle</category>
      <category>log</category>
      <category>logback</category>
      <category>spring boot</category>
      <author>곽재영</author>
      <guid isPermaLink="true">https://baboototo.tistory.com/24</guid>
      <comments>https://baboototo.tistory.com/24#entry24comment</comments>
      <pubDate>Thu, 1 Aug 2019 17:34:53 +0900</pubDate>
    </item>
    <item>
      <title>APP 아이콘 자동 생성 사이트</title>
      <link>https://baboototo.tistory.com/22</link>
      <description>&lt;div style=&quot;font-family: 'Lucida Grande', 'Segoe UI', 'Apple SD Gothic Neo', 'Malgun Gothic', 'Lucida Sans Unicode', Helvetica, Arial, sans-serif; font-size: 0.9em; overflow-x: hidden; overflow-y: auto; margin: 0px !important; padding: 5px 20px 26px !important; background-color: rgb(255, 255, 255);font-family: 'Hiragino Sans GB', 'Microsoft YaHei', STHeiti, SimSun, 'Lucida Grande', 'Lucida Sans Unicode', 'Lucida Sans', 'Segoe UI', AppleSDGothicNeo-Medium, 'Malgun Gothic', Verdana, Tahoma, sans-serif; padding: 20px;padding: 20px; color: rgb(34, 34, 34); font-size: 15px; font-family: 'Roboto Condensed', Tauri, 'Hiragino Sans GB', 'Microsoft YaHei', STHeiti, SimSun, 'Lucida Grande', 'Lucida Sans Unicode', 'Lucida Sans', 'Segoe UI', AppleSDGothicNeo-Medium, 'Malgun Gothic', Verdana, Tahoma, sans-serif; line-height: 1.6; -webkit-font-smoothing: antialiased; background: rgb(255, 255, 255);&quot;&gt;&lt;h3 id=&quot;#-app-아이콘-자동-생성-사이트&quot; style=&quot;clear: both;font-size: 1.6em; font-weight: bold; margin: 1.125em 0px 0.75em;margin-top: 0px;&quot;&gt;&lt;a name=&quot;#-app-아이콘-자동-생성-사이트&quot; href=&quot;##-app-아이콘-자동-생성-사이트&quot; style=&quot;text-decoration: none; vertical-align: baseline;color: rgb(50, 105, 160);&quot;&gt;&lt;/a&gt;# APP 아이콘 자동 생성 사이트&lt;/h3&gt;&lt;p style=&quot;margin-top: 0px;margin: 1em 0px; word-wrap: break-word;&quot;&gt;Android / iOS APP 개발시 각 단말기 해상도에 따른 앱 아이콘을 만들어야 한다.&lt;br style=&quot;clear: both;&quot;&gt;그런데.. 자동으로 만들어 주는 사이트가 있다. ㅎㅎㅎ&lt;br style=&quot;clear: both;&quot;&gt;프로토타입 앱을 만들거나 테스트 하는 앱에도 적용하면 좋겠죠?? ㅎㅎㅎ&lt;/p&gt;&lt;h3 id=&quot;#-makeappicon&quot; style=&quot;clear: both;font-size: 1.6em; font-weight: bold; margin: 1.125em 0px 0.75em;&quot;&gt;&lt;a name=&quot;#-makeappicon&quot; href=&quot;##-makeappicon&quot; style=&quot;text-decoration: none; vertical-align: baseline;color: rgb(50, 105, 160);&quot;&gt;&lt;/a&gt;# MakeAppIcon&lt;/h3&gt;&lt;ul&gt;
&lt;li style=&quot;display: list-item; line-height: 1.4em;&quot;&gt;&lt;a href=&quot;http://makeappicon.com&quot; style=&quot;text-decoration: none; vertical-align: baseline;color: rgb(50, 105, 160);&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://makeappicon.com&quot; style=&quot;text-decoration: none; vertical-align: baseline;color: rgb(50, 105, 160);&quot;&gt;http://makeappicon.com&lt;/a&gt;&lt;blockquote style=&quot;margin: 1em 20px;border-left-width: 4px; border-left-style: solid; border-left-color: rgb(230, 230, 230); padding: 0px 15px; color: rgb(119, 119, 119);&quot;&gt;
&lt;p style=&quot;margin: 1em 0px; word-wrap: break-word;margin-top: 0px;margin-bottom: 0px;&quot;&gt;이미지 파일 jpg, png, psd의 1536x1536 해상도이면, 최적화된 아이콘을 생성해 준다.&lt;br style=&quot;clear: both;&quot;&gt;이미지 파일을 업로드 후 이메일 입력시 메일로 전송해 준다.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;h3 id=&quot;#-icon-generator-for-corona-sdk&quot; style=&quot;clear: both;font-size: 1.6em; font-weight: bold; margin: 1.125em 0px 0.75em;&quot;&gt;&lt;a name=&quot;#-icon-generator-for-corona-sdk&quot; href=&quot;##-icon-generator-for-corona-sdk&quot; style=&quot;text-decoration: none; vertical-align: baseline;color: rgb(50, 105, 160);&quot;&gt;&lt;/a&gt;# Icon Generator for Corona SDK&lt;/h3&gt;&lt;ul&gt;
&lt;li style=&quot;display: list-item; line-height: 1.4em;&quot;&gt;&lt;a href=&quot;http://icon.angrymarmot.org&quot; style=&quot;text-decoration: none; vertical-align: baseline;color: rgb(50, 105, 160);&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://icon.angrymarmot.org&quot; style=&quot;text-decoration: none; vertical-align: baseline;color: rgb(50, 105, 160);&quot;&gt;http://icon.angrymarmot.org&lt;/a&gt;&lt;blockquote style=&quot;margin: 1em 20px;border-left-width: 4px; border-left-style: solid; border-left-color: rgb(230, 230, 230); padding: 0px 15px; color: rgb(119, 119, 119);&quot;&gt;
&lt;p style=&quot;margin: 1em 0px; word-wrap: break-word;margin-top: 0px;margin-bottom: 0px;&quot;&gt;이미지 파일 png의 1024x1024 해상도이면, 최적화된 아이콘을 생성해 준다.&lt;br style=&quot;clear: both;&quot;&gt;이미지 파일을 업로드 후 바로 다운로드 된다.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;</description>
      <category>DEV/Etc</category>
      <category>Android</category>
      <category>Swift</category>
      <author>곽재영</author>
      <guid isPermaLink="true">https://baboototo.tistory.com/22</guid>
      <comments>https://baboototo.tistory.com/22#entry22comment</comments>
      <pubDate>Tue, 24 Oct 2017 16:40:42 +0900</pubDate>
    </item>
  </channel>
</rss>