<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>데브심의 개발자 레퍼런스</title>
    <link>https://devesim.tistory.com/</link>
    <description>데브심의 개발자 레퍼런스 공간</description>
    <language>ko</language>
    <pubDate>Sun, 31 May 2026 04:16:22 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>데브심</managingEditor>
    <image>
      <title>데브심의 개발자 레퍼런스</title>
      <url>https://t1.daumcdn.net/cfile/tistory/2754113D57AC16BF32</url>
      <link>https://devesim.tistory.com</link>
    </image>
    <item>
      <title>젠킨스 The username you provided is not allowed to use the text-based Tomcat Manager 해결방법</title>
      <link>https://devesim.tistory.com/157</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;jenkins.png&quot; data-origin-width=&quot;184&quot; data-origin-height=&quot;55&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/pCDLm/dJMcagE5TcC/DVfTaWePdnZH6b8SpsFmXK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/pCDLm/dJMcagE5TcC/DVfTaWePdnZH6b8SpsFmXK/img.png&quot; data-alt=&quot;Jenkins&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/pCDLm/dJMcagE5TcC/DVfTaWePdnZH6b8SpsFmXK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FpCDLm%2FdJMcagE5TcC%2FDVfTaWePdnZH6b8SpsFmXK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;184&quot; height=&quot;55&quot; data-filename=&quot;jenkins.png&quot; data-origin-width=&quot;184&quot; data-origin-height=&quot;55&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Jenkins&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;환경: 톰캣 9, 젠킨스 2.346.1&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;설명: 톰캣 8에서 9로 변경중에 오류 발생&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;오류 메시지:&lt;/p&gt;
&lt;pre id=&quot;code_1775542057734&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;org.codehaus.cargo.container.ContainerException: Failed to redeploy [/var/lib/jenkins/workspace/.war파일]
..
.
Caused by: org.codehaus.cargo.container.tomcat.internal.TomcatManagerException: 
The username you provided is not allowed to use the text-based Tomcat Manager (error 403)
..
.
Caused by: java.io.IOException: Server returned HTTP response code: 403 for URL: https://도메인:포트/manager/text/list
..
.
org.codehaus.cargo.container.tomcat.internal.TomcatManagerException: 
The username you provided is not allowed to use the text-based Tomcat Manager (error 403)
..
.
Caused by: java.io.IOException: Server returned HTTP response code: 403 for URL: https://도메인:포트/manager/text/list
..
.
Build step 'Deploy war/ear to a container' marked build as failure
Finished: FAILURE&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;해결방법:&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp; &amp;nbsp;1. /usr/local/apache-tomcat-9.0.115/conf/Catalina 경로 dir 내부에 도메인과 일치하는 dir 생성(예시: devsim.dev.co.kr)&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;해당 dir은 chmod 750 ok&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp; &amp;nbsp;2. 해당 dir 내부에 vi manager.xml 파일 생성 후 3번 내용을 입력(manager.xml 파일은 chmod 644 ok)&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp; &amp;nbsp;3. 내용&lt;/p&gt;
&lt;pre id=&quot;code_1775542252941&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;Context privileged=&quot;true&quot; antiResourceLocking=&quot;false&quot; docBase=&quot;${catalina.home}/webapps/manager&quot;&amp;gt;
&amp;lt;Valve className=&quot;org.apache.catalina.valves.RemoteAddrValve&quot; allow=&quot;^.*$&quot; /&amp;gt; &amp;lt;/Context&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp; &amp;nbsp;4. service jenkins restart 로 젠킨스 재시작&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp; &amp;nbsp;5. 빌드를 진행해서 정상적으로 동작하는지 확인한다.&lt;/p&gt;</description>
      <category>VCS, CI</category>
      <category>error 403</category>
      <category>jenkins</category>
      <category>text-based Tomcat Manager</category>
      <category>tomcat 9</category>
      <category>젠킨스</category>
      <category>톰캣9</category>
      <author>데브심</author>
      <guid isPermaLink="true">https://devesim.tistory.com/157</guid>
      <comments>https://devesim.tistory.com/157#entry157comment</comments>
      <pubDate>Tue, 7 Apr 2026 15:15:25 +0900</pubDate>
    </item>
    <item>
      <title>이클립스 &amp;amp; STS Git Team Synchronizing Unstaged Changes 파일 숨기기</title>
      <link>https://devesim.tistory.com/156</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;sts_version.png&quot; data-origin-width=&quot;615&quot; data-origin-height=&quot;349&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dk9rZe/dJMcaeFXzV5/4EceKEMl88TmKhpGK0kXkk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dk9rZe/dJMcaeFXzV5/4EceKEMl88TmKhpGK0kXkk/img.png&quot; data-alt=&quot;STS Version&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dk9rZe/dJMcaeFXzV5/4EceKEMl88TmKhpGK0kXkk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdk9rZe%2FdJMcaeFXzV5%2F4EceKEMl88TmKhpGK0kXkk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;615&quot; height=&quot;349&quot; data-filename=&quot;sts_version.png&quot; data-origin-width=&quot;615&quot; data-origin-height=&quot;349&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;STS Version&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;개요:&amp;nbsp;예를 들어서 local.properties 파일을 숨기고 싶은데 싱크 맞출 때마다 Unstaged Changes 목록에 떠서 거슬린다면 아래와 같이 진행한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;git1.png&quot; data-origin-width=&quot;531&quot; data-origin-height=&quot;552&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bZMyx0/dJMcahJr5B6/v6u56a6GY7JBKfrlweHbbk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bZMyx0/dJMcahJr5B6/v6u56a6GY7JBKfrlweHbbk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bZMyx0/dJMcahJr5B6/v6u56a6GY7JBKfrlweHbbk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbZMyx0%2FdJMcahJr5B6%2Fv6u56a6GY7JBKfrlweHbbk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;531&quot; height=&quot;552&quot; data-filename=&quot;git1.png&quot; data-origin-width=&quot;531&quot; data-origin-height=&quot;552&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. .gitignore 파일의 제외 글자를 입력 후 Git Staging 오른쪽의 Refresh 버튼을 클릭 시 Synchronize 창의 파일이 제외된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;git2.png&quot; data-origin-width=&quot;742&quot; data-origin-height=&quot;246&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/LcFMv/dJMcahbB81F/F7J2JPaX4njDfRsciOywD1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/LcFMv/dJMcahbB81F/F7J2JPaX4njDfRsciOywD1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/LcFMv/dJMcahbB81F/F7J2JPaX4njDfRsciOywD1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FLcFMv%2FdJMcahbB81F%2FF7J2JPaX4njDfRsciOywD1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;742&quot; height=&quot;246&quot; data-filename=&quot;git2.png&quot; data-origin-width=&quot;742&quot; data-origin-height=&quot;246&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 제외하고자 하는 파일의 마우스 오른쪽 버튼 클릭 후 Assume Unchanged 클릭 시 Unstaged Changes 파일에서 제외된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; (다시 보이게 하는 경우 해당 파일 오른쪽 클릭 후 Team &amp;rarr; Advanced &amp;rarr; No Assume Unchanged 클릭)&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;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://bada744.tistory.com/19&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://bada744.tistory.com/19&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure id=&quot;og_1761612313553&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[Eclipse] Eclipse 프로젝트 파일 관련 .gitignore 설정하기&quot; data-og-description=&quot;이클립스에서 생성한 프로젝트를 로컬 저장소(Local Repository)로 설정하면, 해당 경로에 .git파일이 생성되며 git의 관리하에 들어가게된다. 다만, 해당 프로젝트를 Commit and Push할 때 아래와 같이 [Uns&quot; data-og-host=&quot;bada744.tistory.com&quot; data-og-source-url=&quot;https://bada744.tistory.com/19&quot; data-og-url=&quot;https://bada744.tistory.com/19&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/ln33L/hyZLdMw7Ov/WbsK9mpHkHwZQl3FhkkXw1/img.png?width=800&amp;amp;height=305&amp;amp;face=0_0_800_305,https://scrap.kakaocdn.net/dn/bgiDSq/hyZMvdLsV8/7eIJRLMfdKhUMcpxNXH6L0/img.png?width=800&amp;amp;height=305&amp;amp;face=0_0_800_305,https://scrap.kakaocdn.net/dn/34P6V/hyZMQWiEhP/QR8oVlEGf5a61AmiQIVDQ1/img.png?width=861&amp;amp;height=703&amp;amp;face=0_0_861_703&quot;&gt;&lt;a href=&quot;https://bada744.tistory.com/19&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://bada744.tistory.com/19&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/ln33L/hyZLdMw7Ov/WbsK9mpHkHwZQl3FhkkXw1/img.png?width=800&amp;amp;height=305&amp;amp;face=0_0_800_305,https://scrap.kakaocdn.net/dn/bgiDSq/hyZMvdLsV8/7eIJRLMfdKhUMcpxNXH6L0/img.png?width=800&amp;amp;height=305&amp;amp;face=0_0_800_305,https://scrap.kakaocdn.net/dn/34P6V/hyZMQWiEhP/QR8oVlEGf5a61AmiQIVDQ1/img.png?width=861&amp;amp;height=703&amp;amp;face=0_0_861_703');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;[Eclipse] Eclipse 프로젝트 파일 관련 .gitignore 설정하기&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;이클립스에서 생성한 프로젝트를 로컬 저장소(Local Repository)로 설정하면, 해당 경로에 .git파일이 생성되며 git의 관리하에 들어가게된다. 다만, 해당 프로젝트를 Commit and Push할 때 아래와 같이 [Uns&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;bada744.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&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;a href=&quot;https://heavenlake.tistory.com/183#google_vignette&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://heavenlake.tistory.com/183#google_vignette&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1761612345364&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;이클립스 git ignore 파일 적용이 안될때.&quot; data-og-description=&quot;원격 저장소와 연결된 로컬 저장소 내 프로젝트 폴더 최상단에 .gitignore 파일에 리스트를 만들면Git Staging에 안보여야 하는데.&amp;nbsp;이런 식으로. classpath나 class 파일들이 그대로 track 된다.&amp;nbsp;&amp;nbsp;답은 이&quot; data-og-host=&quot;heavenlake.tistory.com&quot; data-og-source-url=&quot;https://heavenlake.tistory.com/183#google_vignette&quot; data-og-url=&quot;https://heavenlake.tistory.com/183&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/Wxlrv/hyZLjeXxeR/3iLmBBjszXMTeCkNdCbguK/img.jpg?width=612&amp;amp;height=179&amp;amp;face=0_0_612_179,https://scrap.kakaocdn.net/dn/bq1WfG/hyZMhgUcVu/UR6kFSaQFPGn9rVfZpOr60/img.jpg?width=612&amp;amp;height=179&amp;amp;face=0_0_612_179,https://scrap.kakaocdn.net/dn/bCempN/hyZMt75lVD/gky7GOmWYxN7zDMET5LIXk/img.jpg?width=689&amp;amp;height=389&amp;amp;face=0_0_689_389&quot;&gt;&lt;a href=&quot;https://heavenlake.tistory.com/183#google_vignette&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://heavenlake.tistory.com/183#google_vignette&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/Wxlrv/hyZLjeXxeR/3iLmBBjszXMTeCkNdCbguK/img.jpg?width=612&amp;amp;height=179&amp;amp;face=0_0_612_179,https://scrap.kakaocdn.net/dn/bq1WfG/hyZMhgUcVu/UR6kFSaQFPGn9rVfZpOr60/img.jpg?width=612&amp;amp;height=179&amp;amp;face=0_0_612_179,https://scrap.kakaocdn.net/dn/bCempN/hyZMt75lVD/gky7GOmWYxN7zDMET5LIXk/img.jpg?width=689&amp;amp;height=389&amp;amp;face=0_0_689_389');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;이클립스 git ignore 파일 적용이 안될때.&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;원격 저장소와 연결된 로컬 저장소 내 프로젝트 폴더 최상단에 .gitignore 파일에 리스트를 만들면Git Staging에 안보여야 하는데.&amp;nbsp;이런 식으로. classpath나 class 파일들이 그대로 track 된다.&amp;nbsp;&amp;nbsp;답은 이&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;heavenlake.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&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;&amp;nbsp;&lt;/p&gt;</description>
      <category>Eclipse &amp;amp; STS</category>
      <category>Eclipse</category>
      <category>GitHub</category>
      <category>Sts</category>
      <category>Team Synchronizing</category>
      <category>Unstaged Changes</category>
      <author>데브심</author>
      <guid isPermaLink="true">https://devesim.tistory.com/156</guid>
      <comments>https://devesim.tistory.com/156#entry156comment</comments>
      <pubDate>Tue, 28 Oct 2025 09:46:57 +0900</pubDate>
    </item>
    <item>
      <title>오라클 Pivot 사용(월별 합계 구하기)</title>
      <link>https://devesim.tistory.com/154</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;ora1.png&quot; data-origin-width=&quot;562&quot; data-origin-height=&quot;227&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dTCnBj/btsPuQNqvFz/aPhGWqUot2puaaCkc3ICnK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dTCnBj/btsPuQNqvFz/aPhGWqUot2puaaCkc3ICnK/img.png&quot; data-alt=&quot;TMP2 테이블&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dTCnBj/btsPuQNqvFz/aPhGWqUot2puaaCkc3ICnK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdTCnBj%2FbtsPuQNqvFz%2FaPhGWqUot2puaaCkc3ICnK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;562&quot; height=&quot;227&quot; data-filename=&quot;ora1.png&quot; data-origin-width=&quot;562&quot; data-origin-height=&quot;227&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;TMP2 테이블&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;만약 위와 같이 월별로 직원에게 입금된 금액의 DATA가 있는 TABLE이 있다고 하고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;월별 합계를 구하고자 한다면 오라클 PIVOT을 사용하자&lt;/p&gt;
&lt;pre id=&quot;code_1753235343861&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT
	*
FROM (
	SELECT
    	  VMONTH
        , VNAME
        , NAMOUNT
     FROM
        TMP2
     WHERE
     	VYEAR = '2025'
  )
  PIVOT (
  	SUM(NAMOUNT)
    FOR VMONTH IN ('01' AS &quot;1월&quot;, '02' AS &quot;2월&quot;, '03' AS &quot;3월&quot;)
  )
  ORDER BY VNAME DESC;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;ora3.png&quot; data-origin-width=&quot;529&quot; data-origin-height=&quot;327&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/SPbzV/btsPulHhm4H/YOh3d6jILwPLkFQJFJBl10/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/SPbzV/btsPulHhm4H/YOh3d6jILwPLkFQJFJBl10/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/SPbzV/btsPulHhm4H/YOh3d6jILwPLkFQJFJBl10/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FSPbzV%2FbtsPulHhm4H%2FYOh3d6jILwPLkFQJFJBl10%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;644&quot; height=&quot;398&quot; data-filename=&quot;ora3.png&quot; data-origin-width=&quot;529&quot; data-origin-height=&quot;327&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;ora2.png&quot; data-origin-width=&quot;364&quot; data-origin-height=&quot;89&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/p51SS/btsPtzzj6em/lvrI8A2vCAg0IyD72RJTE0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/p51SS/btsPtzzj6em/lvrI8A2vCAg0IyD72RJTE0/img.png&quot; data-alt=&quot;결과 쿼리&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/p51SS/btsPtzzj6em/lvrI8A2vCAg0IyD72RJTE0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fp51SS%2FbtsPtzzj6em%2FlvrI8A2vCAg0IyD72RJTE0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;446&quot; height=&quot;109&quot; data-filename=&quot;ora2.png&quot; data-origin-width=&quot;364&quot; data-origin-height=&quot;89&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;결과 쿼리&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&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;도움을 얻은 곳: &lt;a href=&quot;https://gent.tistory.com/42&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://gent.tistory.com/42&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1753235438708&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[Oracle] 오라클  PIVOT(피벗) 함수 사용법 (행을 열로 변환, 피봇)&quot; data-og-description=&quot;오라클 11g부터 PIVOT 기능을 제공합니다. 기존 이하버전에서는 DECODE 함수를 이용하여 로우를 컬럼으로 변경하는 작업을 하였습니다. PIVOT 기능을 이용하면 DECODE의 복잡하고 비직관적인 코드를 조&quot; data-og-host=&quot;gent.tistory.com&quot; data-og-source-url=&quot;https://gent.tistory.com/42&quot; data-og-url=&quot;https://gent.tistory.com/42&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cXFj39/hyZny37vZM/qo2HhPKaAElrtKxuVQmoik/img.png?width=569&amp;amp;height=272&amp;amp;face=0_0_569_272,https://scrap.kakaocdn.net/dn/31Q7j/hyZnfKvdmr/k0e7SxZSR0oZkL4u4Tn0LK/img.png?width=569&amp;amp;height=272&amp;amp;face=0_0_569_272,https://scrap.kakaocdn.net/dn/Yhm4Q/hyZnvM4Wkc/MG3ZtZ4dJzchwbD1hUnjAK/img.png?width=728&amp;amp;height=563&amp;amp;face=0_0_728_563&quot;&gt;&lt;a href=&quot;https://gent.tistory.com/42&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://gent.tistory.com/42&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cXFj39/hyZny37vZM/qo2HhPKaAElrtKxuVQmoik/img.png?width=569&amp;amp;height=272&amp;amp;face=0_0_569_272,https://scrap.kakaocdn.net/dn/31Q7j/hyZnfKvdmr/k0e7SxZSR0oZkL4u4Tn0LK/img.png?width=569&amp;amp;height=272&amp;amp;face=0_0_569_272,https://scrap.kakaocdn.net/dn/Yhm4Q/hyZnvM4Wkc/MG3ZtZ4dJzchwbD1hUnjAK/img.png?width=728&amp;amp;height=563&amp;amp;face=0_0_728_563');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;[Oracle] 오라클 PIVOT(피벗) 함수 사용법 (행을 열로 변환, 피봇)&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;오라클 11g부터 PIVOT 기능을 제공합니다. 기존 이하버전에서는 DECODE 함수를 이용하여 로우를 컬럼으로 변경하는 작업을 하였습니다. PIVOT 기능을 이용하면 DECODE의 복잡하고 비직관적인 코드를 조&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;gent.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Database</category>
      <category>Pivot</category>
      <category>오라클</category>
      <category>월별통계</category>
      <author>데브심</author>
      <guid isPermaLink="true">https://devesim.tistory.com/154</guid>
      <comments>https://devesim.tistory.com/154#entry154comment</comments>
      <pubDate>Wed, 23 Jul 2025 10:50:45 +0900</pubDate>
    </item>
    <item>
      <title>이클립스 STS Properties Switch Location 후에 서버 실행이 안되는 현상 조치</title>
      <link>https://devesim.tistory.com/153</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;old_thing.png&quot; data-origin-width=&quot;413&quot; data-origin-height=&quot;272&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/MlOkj/btsMwpxXZC5/2sKhm3bIdmXoiXW0C6BIRk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/MlOkj/btsMwpxXZC5/2sKhm3bIdmXoiXW0C6BIRk/img.png&quot; data-alt=&quot;모든 툴은 시간이 지나면 바랜다.....&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/MlOkj/btsMwpxXZC5/2sKhm3bIdmXoiXW0C6BIRk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FMlOkj%2FbtsMwpxXZC5%2F2sKhm3bIdmXoiXW0C6BIRk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;413&quot; height=&quot;272&quot; data-filename=&quot;old_thing.png&quot; data-origin-width=&quot;413&quot; data-origin-height=&quot;272&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;모든 툴은 시간이 지나면 바랜다.....&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;환경: STS 3.9.4.RELEASE&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;개요: 이클립스(or STS) Servers 우측 Properties 클릭 하고&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;477&quot; data-origin-height=&quot;191&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/l67hQ/btsMvcM8AZe/Cts0z6gZojbPPfrcCf0rP1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/l67hQ/btsMvcM8AZe/Cts0z6gZojbPPfrcCf0rP1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/l67hQ/btsMvcM8AZe/Cts0z6gZojbPPfrcCf0rP1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fl67hQ%2FbtsMvcM8AZe%2FCts0z6gZojbPPfrcCf0rP1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;477&quot; height=&quot;191&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;477&quot; data-origin-height=&quot;191&quot;/&gt;&lt;/span&gt;&lt;/figure&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;Properties 화면에서 [Switch Location] 버튼을 클릭하는 실수를 종종 하곤 한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;606&quot; data-origin-height=&quot;531&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dCgQLN/btsMtFWZbnX/AJOvSMXQdaJbLw44RWEqFK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dCgQLN/btsMtFWZbnX/AJOvSMXQdaJbLw44RWEqFK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dCgQLN/btsMtFWZbnX/AJOvSMXQdaJbLw44RWEqFK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdCgQLN%2FbtsMtFWZbnX%2FAJOvSMXQdaJbLw44RWEqFK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;606&quot; height=&quot;531&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;606&quot; data-origin-height=&quot;531&quot;/&gt;&lt;/span&gt;&lt;/figure&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;[Switch Location] 버튼 클릭 후 화면이다. Location이 변경되어있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;3.png&quot; data-origin-width=&quot;607&quot; data-origin-height=&quot;535&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/den25J/btsMu9XakZp/hW0SHgRHKqKjCv1npW0eDk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/den25J/btsMu9XakZp/hW0SHgRHKqKjCv1npW0eDk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/den25J/btsMu9XakZp/hW0SHgRHKqKjCv1npW0eDk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fden25J%2FbtsMu9XakZp%2FhW0SHgRHKqKjCv1npW0eDk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;607&quot; height=&quot;535&quot; data-filename=&quot;3.png&quot; data-origin-width=&quot;607&quot; data-origin-height=&quot;535&quot;/&gt;&lt;/span&gt;&lt;/figure&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;서버를 실행하면 아래와 같이 오류가 발생한다.(로컬에서 실행이 안된다.)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;4.png&quot; data-origin-width=&quot;1820&quot; data-origin-height=&quot;768&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/P4Eoo/btsMvw5Iohc/tBWdrGiJrvCT2EfT1cWZKk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/P4Eoo/btsMvw5Iohc/tBWdrGiJrvCT2EfT1cWZKk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/P4Eoo/btsMvw5Iohc/tBWdrGiJrvCT2EfT1cWZKk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FP4Eoo%2FbtsMvw5Iohc%2FtBWdrGiJrvCT2EfT1cWZKk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1820&quot; height=&quot;768&quot; data-filename=&quot;4.png&quot; data-origin-width=&quot;1820&quot; data-origin-height=&quot;768&quot;/&gt;&lt;/span&gt;&lt;/figure&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;내가 생각한 조치 방법:&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일단 Run 하위 [Run Configurations...]&amp;nbsp; -&amp;gt; 해당 프로젝트의 VM arguments 설정값이 초기화 되는 것은 확인하였다. 본인이 추가했던 것이 있다면 다시 추가하도록 한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;5.png&quot; data-origin-width=&quot;199&quot; data-origin-height=&quot;327&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lAlEg/btsMvaV6MGy/SmWOIDwgRBnLTuuSJ2AuGk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lAlEg/btsMvaV6MGy/SmWOIDwgRBnLTuuSJ2AuGk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lAlEg/btsMvaV6MGy/SmWOIDwgRBnLTuuSJ2AuGk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlAlEg%2FbtsMvaV6MGy%2FSmWOIDwgRBnLTuuSJ2AuGk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;199&quot; height=&quot;327&quot; data-filename=&quot;5.png&quot; data-origin-width=&quot;199&quot; data-origin-height=&quot;327&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;6.png&quot; data-origin-width=&quot;812&quot; data-origin-height=&quot;784&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bs0JY0/btsMu9bMOfX/QLmVj0vidoYo0LkCMClJok/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bs0JY0/btsMu9bMOfX/QLmVj0vidoYo0LkCMClJok/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bs0JY0/btsMu9bMOfX/QLmVj0vidoYo0LkCMClJok/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbs0JY0%2FbtsMu9bMOfX%2FQLmVj0vidoYo0LkCMClJok%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;812&quot; height=&quot;784&quot; data-filename=&quot;6.png&quot; data-origin-width=&quot;812&quot; data-origin-height=&quot;784&quot;/&gt;&lt;/span&gt;&lt;/figure&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;되겠지? 이제...&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;7.png&quot; data-origin-width=&quot;1814&quot; data-origin-height=&quot;602&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lwUjL/btsMuza1XnH/YU14vMAvmfGEHkClpzpRok/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lwUjL/btsMuza1XnH/YU14vMAvmfGEHkClpzpRok/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lwUjL/btsMuza1XnH/YU14vMAvmfGEHkClpzpRok/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlwUjL%2FbtsMuza1XnH%2FYU14vMAvmfGEHkClpzpRok%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1814&quot; height=&quot;602&quot; data-filename=&quot;7.png&quot; data-origin-width=&quot;1814&quot; data-origin-height=&quot;602&quot;/&gt;&lt;/span&gt;&lt;/figure&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;하지만 안된다.........&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;어 뭐지?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아 그럼 Maven Update 해보자....&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;8.png&quot; data-origin-width=&quot;726&quot; data-origin-height=&quot;424&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bkavlK/btsMuq574Qo/PkXkqkELej4kW07caks9lk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bkavlK/btsMuq574Qo/PkXkqkELej4kW07caks9lk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bkavlK/btsMuq574Qo/PkXkqkELej4kW07caks9lk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbkavlK%2FbtsMuq574Qo%2FPkXkqkELej4kW07caks9lk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;726&quot; height=&quot;424&quot; data-filename=&quot;8.png&quot; data-origin-width=&quot;726&quot; data-origin-height=&quot;424&quot;/&gt;&lt;/span&gt;&lt;/figure&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;이제 잘되겠지?&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;9.png&quot; data-origin-width=&quot;1912&quot; data-origin-height=&quot;182&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/I9spD/btsMvPDXJQR/seKThemuzGXkoe9O8UfVlK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/I9spD/btsMvPDXJQR/seKThemuzGXkoe9O8UfVlK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/I9spD/btsMvPDXJQR/seKThemuzGXkoe9O8UfVlK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FI9spD%2FbtsMvPDXJQR%2FseKThemuzGXkoe9O8UfVlK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1912&quot; height=&quot;182&quot; data-filename=&quot;9.png&quot; data-origin-width=&quot;1912&quot; data-origin-height=&quot;182&quot;/&gt;&lt;/span&gt;&lt;/figure&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;그런데 Server startup in 6441 ms에서 더이상 진행이 안된다....&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;자 그럼 이제 Cleanup....&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;10.png&quot; data-origin-width=&quot;820&quot; data-origin-height=&quot;307&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cduBsW/btsMwy2IFRM/mkoDRNdDHG0KzZfcx0HhQ0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cduBsW/btsMwy2IFRM/mkoDRNdDHG0KzZfcx0HhQ0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cduBsW/btsMwy2IFRM/mkoDRNdDHG0KzZfcx0HhQ0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcduBsW%2FbtsMwy2IFRM%2FmkoDRNdDHG0KzZfcx0HhQ0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;820&quot; height=&quot;307&quot; data-filename=&quot;10.png&quot; data-origin-width=&quot;820&quot; data-origin-height=&quot;307&quot;/&gt;&lt;/span&gt;&lt;/figure&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;또 안된다...&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;당황하기 시작한다....&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;남은건 Servers의 Clean Tomcat Work Directory...&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;11.png&quot; data-origin-width=&quot;500&quot; data-origin-height=&quot;302&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qj6Ji/btsMuKwBVN1/wvckFoJQoUIsOw7kOIxIOk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qj6Ji/btsMuKwBVN1/wvckFoJQoUIsOw7kOIxIOk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qj6Ji/btsMuKwBVN1/wvckFoJQoUIsOw7kOIxIOk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fqj6Ji%2FbtsMuKwBVN1%2FwvckFoJQoUIsOw7kOIxIOk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;500&quot; height=&quot;302&quot; data-filename=&quot;11.png&quot; data-origin-width=&quot;500&quot; data-origin-height=&quot;302&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&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;해결책: STS를 종료시키고 다시 실행한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;12.png&quot; data-origin-width=&quot;521&quot; data-origin-height=&quot;164&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cJ3FP7/btsMvTsI2hd/DOx8PTBKaInncTBCz5SyJ1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cJ3FP7/btsMvTsI2hd/DOx8PTBKaInncTBCz5SyJ1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cJ3FP7/btsMvTsI2hd/DOx8PTBKaInncTBCz5SyJ1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcJ3FP7%2FbtsMvTsI2hd%2FDOx8PTBKaInncTBCz5SyJ1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;521&quot; height=&quot;164&quot; data-filename=&quot;12.png&quot; data-origin-width=&quot;521&quot; data-origin-height=&quot;164&quot;/&gt;&lt;/span&gt;&lt;/figure&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;종료했다가 다시 실행하니 잘 실행된다...&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;13.png&quot; data-origin-width=&quot;1472&quot; data-origin-height=&quot;135&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dOCGDm/btsMuqZirlU/3iTQ5ebHTldxYxariEGlkK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dOCGDm/btsMuqZirlU/3iTQ5ebHTldxYxariEGlkK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dOCGDm/btsMuqZirlU/3iTQ5ebHTldxYxariEGlkK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdOCGDm%2FbtsMuqZirlU%2F3iTQ5ebHTldxYxariEGlkK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1472&quot; height=&quot;135&quot; data-filename=&quot;13.png&quot; data-origin-width=&quot;1472&quot; data-origin-height=&quot;135&quot;/&gt;&lt;/span&gt;&lt;/figure&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;결론: 최신 툴을 사용하자 !&lt;/p&gt;</description>
      <category>Eclipse &amp;amp; STS</category>
      <category>Sts</category>
      <category>switch location</category>
      <category>로컬 실행 오류</category>
      <category>이클립스</category>
      <author>데브심</author>
      <guid isPermaLink="true">https://devesim.tistory.com/153</guid>
      <comments>https://devesim.tistory.com/153#entry153comment</comments>
      <pubDate>Tue, 25 Feb 2025 09:10:36 +0900</pubDate>
    </item>
    <item>
      <title>이클립스 STS Servers 톰캣 Unknown version of Tomcat was specified 오류 조치</title>
      <link>https://devesim.tistory.com/152</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;* Tool: 이클립스 or STS&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;* 개요: 이제는 오래된 툴인 이클립스에서 Servers 창에서 New Server로 아파치 톰캣 추가 시 Unknown version of Tomcat was specified. 오류 조치하는 방법&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;at1.png&quot; data-origin-width=&quot;512&quot; data-origin-height=&quot;303&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bn6JDO/btsMh3ouikm/LWiLrPcLEgmRHFGzI6F3vk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bn6JDO/btsMh3ouikm/LWiLrPcLEgmRHFGzI6F3vk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bn6JDO/btsMh3ouikm/LWiLrPcLEgmRHFGzI6F3vk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbn6JDO%2FbtsMh3ouikm%2FLWiLrPcLEgmRHFGzI6F3vk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;512&quot; height=&quot;303&quot; data-filename=&quot;at1.png&quot; data-origin-width=&quot;512&quot; data-origin-height=&quot;303&quot;/&gt;&lt;/span&gt;&lt;/figure&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;* 확인: 아파치 톰캣을 오래된 버전을 사용하는 경우 src 디렉토리가 아닌 bin 디렉토리 하위의 zip파일을 다운 받은 후 Tomcat installation directory 경로를 잡는다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;at2.png&quot; data-origin-width=&quot;1512&quot; data-origin-height=&quot;787&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/KEOCC/btsMfYilGHg/GtydhCuK4vk0sx2kZ6IND0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/KEOCC/btsMfYilGHg/GtydhCuK4vk0sx2kZ6IND0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/KEOCC/btsMfYilGHg/GtydhCuK4vk0sx2kZ6IND0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FKEOCC%2FbtsMfYilGHg%2FGtydhCuK4vk0sx2kZ6IND0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1512&quot; height=&quot;787&quot; data-filename=&quot;at2.png&quot; data-origin-width=&quot;1512&quot; data-origin-height=&quot;787&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Eclipse &amp;amp; STS</category>
      <category>unkown version of tomcat was specified</category>
      <category>아파치 톰캣 8.5</category>
      <author>데브심</author>
      <guid isPermaLink="true">https://devesim.tistory.com/152</guid>
      <comments>https://devesim.tistory.com/152#entry152comment</comments>
      <pubDate>Thu, 13 Feb 2025 14:22:42 +0900</pubDate>
    </item>
    <item>
      <title>VSCODE 자바 프로젝트 실행 시 Could not find or load main class App 에러 해결</title>
      <link>https://devesim.tistory.com/151</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;○ 개요: VSCODE&amp;nbsp;자바&amp;nbsp;프로젝트&amp;nbsp;실행&amp;nbsp;시&amp;nbsp;Could&amp;nbsp;not&amp;nbsp;find&amp;nbsp;or&amp;nbsp;load&amp;nbsp;main&amp;nbsp;class&amp;nbsp;App&amp;nbsp;에러&amp;nbsp;해결&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;error.png&quot; data-origin-width=&quot;741&quot; data-origin-height=&quot;211&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bbTEpa/btsLXsvocry/z1UB6Yycte1xTumFtA3mA1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bbTEpa/btsLXsvocry/z1UB6Yycte1xTumFtA3mA1/img.png&quot; data-alt=&quot;VSCODE 실행 오류&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bbTEpa/btsLXsvocry/z1UB6Yycte1xTumFtA3mA1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbbTEpa%2FbtsLXsvocry%2Fz1UB6Yycte1xTumFtA3mA1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;741&quot; height=&quot;211&quot; data-filename=&quot;error.png&quot; data-origin-width=&quot;741&quot; data-origin-height=&quot;211&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;VSCODE 실행 오류&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;○&lt;span&gt; 증상: 오른쪽 상단 화살표 클릭 시 에러, 왼쪽 Run 클릭 시 정상 동작&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;○&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt; 조치: 확장 프로그램 중 Code Runner 「사용 안 함」 처리&lt;/span&gt;&lt;/span&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;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;○ 개요:&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;VSCODE 자바 프로젝트 실행 시 터미널에서 실행이 안되고 윈도우 CMD에서 실행될 때 조치&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;console.png&quot; data-origin-width=&quot;1207&quot; data-origin-height=&quot;388&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c5bYTR/btsLW3ijGgT/GXO4VzW6JncSPtnL1kR2m0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c5bYTR/btsLW3ijGgT/GXO4VzW6JncSPtnL1kR2m0/img.png&quot; data-alt=&quot;VSCODE Java program Console Option&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c5bYTR/btsLW3ijGgT/GXO4VzW6JncSPtnL1kR2m0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc5bYTR%2FbtsLW3ijGgT%2FGXO4VzW6JncSPtnL1kR2m0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1207&quot; height=&quot;388&quot; data-filename=&quot;console.png&quot; data-origin-width=&quot;1207&quot; data-origin-height=&quot;388&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;VSCODE Java program Console Option&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;○&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;조치: Ctrl + , 후에 console 입력 후 위 이미지와 같이 Java program Console 위치 설정&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt; &amp;nbsp;○&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; 도움을 받은 곳: &lt;a href=&quot;https://stackoverflow.com/questions/57857855/could-not-find-or-load-main-class-vs-code&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://stackoverflow.com/questions/57857855/could-not-find-or-load-main-class-vs-code&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1737531693506&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Could not find or load main class - VS Code&quot; data-og-description=&quot;I created a new java project (with the option Create Java Project), and When I click the run button (marked with the red circle), it gives me the error Could not find or load main class. When I r...&quot; data-og-host=&quot;stackoverflow.com&quot; data-og-source-url=&quot;https://stackoverflow.com/questions/57857855/could-not-find-or-load-main-class-vs-code&quot; data-og-url=&quot;https://stackoverflow.com/questions/57857855/could-not-find-or-load-main-class-vs-code&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/qaNla/hyX4oVYaOc/Nyr7K6KTsTncJpWKSXUqxk/img.png?width=316&amp;amp;height=316&amp;amp;face=0_0_316_316,https://scrap.kakaocdn.net/dn/t2FGA/hyX4mDRaRM/JTIHIYbGKifVvIgb9VSNH1/img.png?width=1280&amp;amp;height=727&amp;amp;face=0_0_1280_727,https://scrap.kakaocdn.net/dn/Bgb97/hyX4nCJIMl/4xkZUMHiijZocMDjgukjbK/img.png?width=790&amp;amp;height=354&amp;amp;face=0_0_790_354&quot;&gt;&lt;a href=&quot;https://stackoverflow.com/questions/57857855/could-not-find-or-load-main-class-vs-code&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://stackoverflow.com/questions/57857855/could-not-find-or-load-main-class-vs-code&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/qaNla/hyX4oVYaOc/Nyr7K6KTsTncJpWKSXUqxk/img.png?width=316&amp;amp;height=316&amp;amp;face=0_0_316_316,https://scrap.kakaocdn.net/dn/t2FGA/hyX4mDRaRM/JTIHIYbGKifVvIgb9VSNH1/img.png?width=1280&amp;amp;height=727&amp;amp;face=0_0_1280_727,https://scrap.kakaocdn.net/dn/Bgb97/hyX4nCJIMl/4xkZUMHiijZocMDjgukjbK/img.png?width=790&amp;amp;height=354&amp;amp;face=0_0_790_354');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Could not find or load main class - VS Code&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;I created a new java project (with the option Create Java Project), and When I click the run button (marked with the red circle), it gives me the error Could not find or load main class. When I r...&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;stackoverflow.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Source Code Editor</category>
      <category>cmd 실행</category>
      <category>could not find or load main class app</category>
      <category>vscode</category>
      <category>자바 실행</category>
      <author>데브심</author>
      <guid isPermaLink="true">https://devesim.tistory.com/151</guid>
      <comments>https://devesim.tistory.com/151#entry151comment</comments>
      <pubDate>Wed, 22 Jan 2025 16:35:21 +0900</pubDate>
    </item>
    <item>
      <title>CentOS 7-2009 다운로드 및 USB 만들기</title>
      <link>https://devesim.tistory.com/150</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;centos_logo.png&quot; data-origin-width=&quot;140&quot; data-origin-height=&quot;54&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dMdiXG/btsLEYivF7y/jU7OXe7FEsNKV5WrV7uTTk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dMdiXG/btsLEYivF7y/jU7OXe7FEsNKV5WrV7uTTk/img.png&quot; data-alt=&quot;CentOS&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dMdiXG/btsLEYivF7y/jU7OXe7FEsNKV5WrV7uTTk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdMdiXG%2FbtsLEYivF7y%2FjU7OXe7FEsNKV5WrV7uTTk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;140&quot; height=&quot;54&quot; data-filename=&quot;centos_logo.png&quot; data-origin-width=&quot;140&quot; data-origin-height=&quot;54&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;CentOS&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;* 개요: 이제는 서비스 종료된 CentOS 7-2009를 오래된 장비 사용 등의 이유로 설치하는 경우 ISO 파일 다운로드 및 USB 만드는 법을 기록한다. 최신 장비에는 로키 리눅스를 설치하도록 하자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;1. &lt;a href=&quot;https://www.centos.org/download/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.centos.org/download/&lt;/a&gt; 이동&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;2. 하단의 CentOS Vault 클릭&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;956&quot; data-origin-height=&quot;137&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cqDsfx/btsLHS8Lmdq/XOFaXsk2NhngdE799uqzk1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cqDsfx/btsLHS8Lmdq/XOFaXsk2NhngdE799uqzk1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cqDsfx/btsLHS8Lmdq/XOFaXsk2NhngdE799uqzk1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcqDsfx%2FbtsLHS8Lmdq%2FXOFaXsk2NhngdE799uqzk1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;956&quot; height=&quot;137&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;956&quot; data-origin-height=&quot;137&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;3. 본인이 다운로드 하고자 하는 버전을 다운로드 한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;844&quot; data-origin-height=&quot;453&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/1nizq/btsLF94ZNbi/b1SkKfDm48NgOfdbZBirNK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/1nizq/btsLF94ZNbi/b1SkKfDm48NgOfdbZBirNK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/1nizq/btsLF94ZNbi/b1SkKfDm48NgOfdbZBirNK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F1nizq%2FbtsLF94ZNbi%2Fb1SkKfDm48NgOfdbZBirNK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;844&quot; height=&quot;453&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;844&quot; data-origin-height=&quot;453&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;4. isos 디렉토리 클릭&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;3.png&quot; data-origin-width=&quot;693&quot; data-origin-height=&quot;521&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bIitYY/btsLHyWYmvI/mhar3rkozdxESp1XW476Z1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bIitYY/btsLHyWYmvI/mhar3rkozdxESp1XW476Z1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bIitYY/btsLHyWYmvI/mhar3rkozdxESp1XW476Z1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbIitYY%2FbtsLHyWYmvI%2Fmhar3rkozdxESp1XW476Z1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;693&quot; height=&quot;521&quot; data-filename=&quot;3.png&quot; data-origin-width=&quot;693&quot; data-origin-height=&quot;521&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;5. x86_64 디렉토리 클릭&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;4.png&quot; data-origin-width=&quot;647&quot; data-origin-height=&quot;98&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c2790L/btsLHLV8Tir/oU7gV6wOKC6LHytLpS6RDK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c2790L/btsLHLV8Tir/oU7gV6wOKC6LHytLpS6RDK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c2790L/btsLHLV8Tir/oU7gV6wOKC6LHytLpS6RDK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc2790L%2FbtsLHLV8Tir%2FoU7gV6wOKC6LHytLpS6RDK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;647&quot; height=&quot;98&quot; data-filename=&quot;4.png&quot; data-origin-width=&quot;647&quot; data-origin-height=&quot;98&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;6. 원하는 iso 파일을 다운로드 한다. 보통 DVD-버전.iso 파일이 적당하다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;5.png&quot; data-origin-width=&quot;1229&quot; data-origin-height=&quot;687&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/czaCq0/btsLHxw4vz6/1kzZBuXI5tL6hknkKM5G2K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/czaCq0/btsLHxw4vz6/1kzZBuXI5tL6hknkKM5G2K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/czaCq0/btsLHxw4vz6/1kzZBuXI5tL6hknkKM5G2K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FczaCq0%2FbtsLHxw4vz6%2F1kzZBuXI5tL6hknkKM5G2K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1229&quot; height=&quot;687&quot; data-filename=&quot;5.png&quot; data-origin-width=&quot;1229&quot; data-origin-height=&quot;687&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;7. Rufus 프로그램으로 USB에 부팅디스크를 생성한다. Rufus 프로그램 사용법은 인터넷에 많이 나와있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;6.png&quot; data-origin-width=&quot;416&quot; data-origin-height=&quot;577&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/oZXL2/btsLHpZ6Sog/6yxG6ipgG3pUGLIw9Mlvs0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/oZXL2/btsLHpZ6Sog/6yxG6ipgG3pUGLIw9Mlvs0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/oZXL2/btsLHpZ6Sog/6yxG6ipgG3pUGLIw9Mlvs0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FoZXL2%2FbtsLHpZ6Sog%2F6yxG6ipgG3pUGLIw9Mlvs0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;416&quot; height=&quot;577&quot; data-filename=&quot;6.png&quot; data-origin-width=&quot;416&quot; data-origin-height=&quot;577&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;8. /etc/sysconfig/network-scripts/ 경로로 이동한다. ifcfg-enXXXX 파일을 vi를 이용하여 수정한다.&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1736297287815&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;...
BOOTPROTO=none
...
ONBOOT=yes
IPADDR=
prefix=24
GATEWAY=
DNS1=
을 입력한다.
wq를 저장한 후 systemctl restart network 명령어를 이용하여 네트워크 재시작 후 ping 8.8.8.8 해서 ping이 가면
네트워크 연결 끝!&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;9. putty 등으로 sshd 접속을 하기 위해 준비한다.&lt;/p&gt;
&lt;pre id=&quot;code_1736297491407&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;vi /etc/ssh/sshd_config
이동 후 Port 22 주석을 해제한다.

systemctl restart sshd.service
명령어로 sshd 서비스를 재시작한다.

그 후
firewall-cmd --permanent --zone=public --add-port=22/tcp
방화벽에 22포트를 추가한다.

firewall-cmd --reload
방화벽 재시작 후
putty로 접속해본다.

// 방화벽 목록 조회: firewall-cmd --zone=public --list-all&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;10. 이제 모든 준비는 끝났으니 본인이 원하는 작업을 시작하자 !&lt;/p&gt;</description>
      <category>Operating System</category>
      <category>centOS</category>
      <category>iso 부팅디스크</category>
      <author>데브심</author>
      <guid isPermaLink="true">https://devesim.tistory.com/150</guid>
      <comments>https://devesim.tistory.com/150#entry150comment</comments>
      <pubDate>Wed, 8 Jan 2025 09:09:46 +0900</pubDate>
    </item>
    <item>
      <title>자바스크립트 Web Component</title>
      <link>https://devesim.tistory.com/149</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;* 개요: 자바스크립트 웹 컴포넌트 정보를 탐색해 보았다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. jQWidgets&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;logo-jqwidgets.svg&quot; data-origin-width=&quot;274&quot; data-origin-height=&quot;69&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/CephD/btsJoV8N7hW/wGJr8uw8SpMzrtTvwGzl40/tfile.svg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/CephD/btsJoV8N7hW/wGJr8uw8SpMzrtTvwGzl40/tfile.svg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/CephD/btsJoV8N7hW/wGJr8uw8SpMzrtTvwGzl40/tfile.svg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FCephD%2FbtsJoV8N7hW%2FwGJr8uw8SpMzrtTvwGzl40%2Ftfile.svg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;274&quot; height=&quot;69&quot; data-filename=&quot;logo-jqwidgets.svg&quot; data-origin-width=&quot;274&quot; data-origin-height=&quot;69&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;- &lt;a href=&quot;https://www.jqwidgets.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.jqwidgets.com/&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;- 주요 컴포넌트: jqxGrid, jqxTextArea, jqxWindow, jqxTree, jqxComboBox, jqxEditor...&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;- 업무때문에 개인적으로 많이 사용해본 웹 컴포넌트이다. 자잘한 버그가 있지만 커뮤니티 응답이 빠른 편이어서 유용하게 사용할만 하다.&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;2. Smart HTML&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;smarthtml.png&quot; data-origin-width=&quot;234&quot; data-origin-height=&quot;75&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bn9koh/btsJoZXEinf/GxWAfkAPW1eXJAzYcKHWF0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bn9koh/btsJoZXEinf/GxWAfkAPW1eXJAzYcKHWF0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bn9koh/btsJoZXEinf/GxWAfkAPW1eXJAzYcKHWF0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbn9koh%2FbtsJoZXEinf%2FGxWAfkAPW1eXJAzYcKHWF0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;234&quot; height=&quot;75&quot; data-filename=&quot;smarthtml.png&quot; data-origin-width=&quot;234&quot; data-origin-height=&quot;75&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;- &lt;a href=&quot;https://www.htmlelements.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.htmlelements.com/&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;- 주요 컴포넌트: Grid, Scheduler, Chart, Gantt Chart, Card View, Editor...&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;- 위에서 소개한 jQWidgets 회사에서 새제품으로 출시한 컴포넌트다. html에 태그를 입력하는 것만으로도 위젯 생성이 가능하다. 단, 복잡한 기능 구현에는 자바스크립트 작성이 필요하다.&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;3. ax5ui&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;ax5ui.png&quot; data-origin-width=&quot;130&quot; data-origin-height=&quot;131&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b7OC5g/btsJqezu7Mv/HCRXV93JzVgwKaYETeHWM0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b7OC5g/btsJqezu7Mv/HCRXV93JzVgwKaYETeHWM0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b7OC5g/btsJqezu7Mv/HCRXV93JzVgwKaYETeHWM0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb7OC5g%2FbtsJqezu7Mv%2FHCRXV93JzVgwKaYETeHWM0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;89&quot; height=&quot;90&quot; data-filename=&quot;ax5ui.png&quot; data-origin-width=&quot;130&quot; data-origin-height=&quot;131&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;- https://ax5ui.axisj.com/&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;- 주요 컴포넌트: ax5ui-grid, ax5ui-mask, ax5ui-dialog, ax5ui-toast, ax5ui-modal, ax5ui-calendar...&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;- 한때 AxisJ라는 대한민국 grid 컴포넌트로 매우 유명한 라이브러리였으나 현재는 ax5ui로 변경되고 더 이상의 유지 보수가 되고 있지 않는 것 같다.&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;4. Kendo UI&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;kendoui.png&quot; data-origin-width=&quot;349&quot; data-origin-height=&quot;144&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/MEmmP/btsJotFayJ1/Oi6rkmI6UiomTFS5s6khs0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/MEmmP/btsJotFayJ1/Oi6rkmI6UiomTFS5s6khs0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/MEmmP/btsJotFayJ1/Oi6rkmI6UiomTFS5s6khs0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FMEmmP%2FbtsJotFayJ1%2FOi6rkmI6UiomTFS5s6khs0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;274&quot; height=&quot;113&quot; data-filename=&quot;kendoui.png&quot; data-origin-width=&quot;349&quot; data-origin-height=&quot;144&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;- &lt;a href=&quot;https://www.telerik.com/kendo-ui&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.telerik.com/kendo-ui&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;- 주요 컴포넌트: Grid, Charts, Button, Calendar, Scheduler, AutoComplete...&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;- 여기저기서 많이 들어본 컴포넌트다. 하지만 써보지는 않았다. Angular, React, Vue, jQuery를 지원하며 약 100여가지의 컴포넌트가 있다.&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;5. DHTMLX&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;dhtmlx.png&quot; data-origin-width=&quot;98&quot; data-origin-height=&quot;63&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/CBYL0/btsJoXTj2GI/f6egqaeUUxPr4DrtEcNezK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/CBYL0/btsJoXTj2GI/f6egqaeUUxPr4DrtEcNezK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/CBYL0/btsJoXTj2GI/f6egqaeUUxPr4DrtEcNezK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FCBYL0%2FbtsJoXTj2GI%2Ff6egqaeUUxPr4DrtEcNezK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;98&quot; height=&quot;63&quot; data-filename=&quot;dhtmlx.png&quot; data-origin-width=&quot;98&quot; data-origin-height=&quot;63&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;- &lt;a href=&quot;https://dhtmlx.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://dhtmlx.com/&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;- 주요 컴포넌트: Suite, Gantt, Scheduler, Kanban, Event Calendar, Spreadsheet, Pivot, Grid...&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;- 폴란드 중소기업에사 만든 UI 컴포넌트다. 사용해보지는 않았지만 UI가 시원시원하고 직관적이어서 마음에 든다.&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;6. Ext JS&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;extjs.png&quot; data-origin-width=&quot;163&quot; data-origin-height=&quot;54&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cyTWzt/btsJqfkW8LB/IzkUw0O9rT3Ivn2F2LJLm0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cyTWzt/btsJqfkW8LB/IzkUw0O9rT3Ivn2F2LJLm0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cyTWzt/btsJqfkW8LB/IzkUw0O9rT3Ivn2F2LJLm0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcyTWzt%2FbtsJqfkW8LB%2FIzkUw0O9rT3Ivn2F2LJLm0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;163&quot; height=&quot;54&quot; data-filename=&quot;extjs.png&quot; data-origin-width=&quot;163&quot; data-origin-height=&quot;54&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;- &lt;a href=&quot;https://www.sencha.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.sencha.com/&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;- 주요 컴포넌트: app, calendar, chart, d3, dataview...&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;- Ext JS도 여기저기서 많이 들어본 UI컴포넌트다. 홈페이지를 가보면 대기업에서 많이 사용한다고 광고하고 있다. 도큐먼트를 보면 거의 UI 컴포넌트를 넘어서서 프레임워크로 사용해도 될 정도로 기능이 정말 많다.&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;/p&gt;</description>
      <category>IT Terms Glossary</category>
      <category>ax5ui</category>
      <category>dhtmlx</category>
      <category>ext js</category>
      <category>javascript ui component</category>
      <category>jQWidgets</category>
      <category>kendo ui</category>
      <category>smart html</category>
      <author>데브심</author>
      <guid isPermaLink="true">https://devesim.tistory.com/149</guid>
      <comments>https://devesim.tistory.com/149#entry149comment</comments>
      <pubDate>Tue, 3 Sep 2024 14:08:57 +0900</pubDate>
    </item>
    <item>
      <title>VSCode ESLint 노란색 경고 밑줄 생기게 하는 법</title>
      <link>https://devesim.tistory.com/148</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;※ 개요: TypeScript 때문에 VSCode에 ESLint를 설치하였는데 노란색 경고 밑줄이 생기지 않아서 당황하였다. 노란색 밑줄이 생기게 하는 방법을 알아보자.&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;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;1208&quot; data-origin-height=&quot;641&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bhMojO/btsI40CG4W9/GRcgS2cxkNgFnUEUia6bL0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bhMojO/btsI40CG4W9/GRcgS2cxkNgFnUEUia6bL0/img.png&quot; data-alt=&quot;VSCode 확장 프로그램 설정 진입&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bhMojO/btsI40CG4W9/GRcgS2cxkNgFnUEUia6bL0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbhMojO%2FbtsI40CG4W9%2FGRcgS2cxkNgFnUEUia6bL0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1208&quot; height=&quot;641&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;1208&quot; data-origin-height=&quot;641&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;VSCode 확장 프로그램 설정 진입&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 확장 탭에서 ESLint 설치 상태화면의 오른쪽 톱니바퀴 클릭 후 확장 설정 항목을 선택한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;1753&quot; data-origin-height=&quot;364&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/MWtXV/btsI6CghXaC/UFmqnWpzohc2wMtfN0GY9K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/MWtXV/btsI6CghXaC/UFmqnWpzohc2wMtfN0GY9K/img.png&quot; data-alt=&quot;Working Directories 옵션 검색&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/MWtXV/btsI6CghXaC/UFmqnWpzohc2wMtfN0GY9K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FMWtXV%2FbtsI6CghXaC%2FUFmqnWpzohc2wMtfN0GY9K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1753&quot; height=&quot;364&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;1753&quot; data-origin-height=&quot;364&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Working Directories 옵션 검색&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 검색 필드에서 vscode-eslint 오른쪽에 스페이스 한칸 띄고 working이라고 입력 후에 엔터를 친다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;3.png&quot; data-origin-width=&quot;1340&quot; data-origin-height=&quot;558&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/deuyys/btsI5kAWIbS/vb8vGBDQ0rYhSStfkBhH40/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/deuyys/btsI5kAWIbS/vb8vGBDQ0rYhSStfkBhH40/img.png&quot; data-alt=&quot;settings.json 파일 수정&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/deuyys/btsI5kAWIbS/vb8vGBDQ0rYhSStfkBhH40/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdeuyys%2FbtsI5kAWIbS%2Fvb8vGBDQ0rYhSStfkBhH40%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1340&quot; height=&quot;558&quot; data-filename=&quot;3.png&quot; data-origin-width=&quot;1340&quot; data-origin-height=&quot;558&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;settings.json 파일 수정&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. settings.json 파일하단에 위 이미지와 같이 &quot;eslint.workingDirectories&quot; 하위에 {&quot;mode&quot;:&quot;auto&quot;} 입력 후 저장한다.&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;4. 위의 방법을 하였는데도 반응이 없으면 ts 프로젝트의 .eslintrc.js 파일의 rules 하위를 아래 이미지와 같이 수정한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; prettier/prettier 하위에 endOfLine: 'auto' 옵션을 추가한다. 나머지 코드는 모두 주석처리 후 저정한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blogimg4.png&quot; data-origin-width=&quot;1175&quot; data-origin-height=&quot;1403&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/crEBaU/btsI5wIRDsb/R0yFR0vB7W6Sps9Vuq7351/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/crEBaU/btsI5wIRDsb/R0yFR0vB7W6Sps9Vuq7351/img.png&quot; data-alt=&quot;.eslintrc.js 파일 수정&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/crEBaU/btsI5wIRDsb/R0yFR0vB7W6Sps9Vuq7351/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcrEBaU%2FbtsI5wIRDsb%2FR0yFR0vB7W6Sps9Vuq7351%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1175&quot; height=&quot;1403&quot; data-filename=&quot;blogimg4.png&quot; data-origin-width=&quot;1175&quot; data-origin-height=&quot;1403&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;.eslintrc.js 파일 수정&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Source Code Editor</category>
      <category>eslint</category>
      <category>vscode</category>
      <category>yellow warning</category>
      <category>노란색 경고</category>
      <author>데브심</author>
      <guid isPermaLink="true">https://devesim.tistory.com/148</guid>
      <comments>https://devesim.tistory.com/148#entry148comment</comments>
      <pubDate>Thu, 15 Aug 2024 16:25:14 +0900</pubDate>
    </item>
    <item>
      <title>AbstractXlsxView를 활용한 엑셀 저장 ajax로 호출하여 로딩바 추가하기</title>
      <link>https://devesim.tistory.com/147</link>
      <description>&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;jquery.png&quot; data-origin-width=&quot;304&quot; data-origin-height=&quot;166&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/3XowN/btsH4XHXnpd/6Ct54KBYhy92xboOUtkxY1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/3XowN/btsH4XHXnpd/6Ct54KBYhy92xboOUtkxY1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/3XowN/btsH4XHXnpd/6Ct54KBYhy92xboOUtkxY1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F3XowN%2FbtsH4XHXnpd%2F6Ct54KBYhy92xboOUtkxY1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;304&quot; height=&quot;166&quot; data-filename=&quot;jquery.png&quot; data-origin-width=&quot;304&quot; data-origin-height=&quot;166&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;sp.png&quot; data-origin-width=&quot;318&quot; data-origin-height=&quot;159&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cF7ZnY/btsH646buXO/khdYmKRzDpewk8JEPGyW0k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cF7ZnY/btsH646buXO/khdYmKRzDpewk8JEPGyW0k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cF7ZnY/btsH646buXO/khdYmKRzDpewk8JEPGyW0k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcF7ZnY%2FbtsH646buXO%2FkhdYmKRzDpewk8JEPGyW0k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;318&quot; height=&quot;159&quot; data-filename=&quot;sp.png&quot; data-origin-width=&quot;318&quot; data-origin-height=&quot;159&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;* 개요: 서버단은 View를 반환하고 반환하는 View는 AbstractXlsxView를 상속받은 클래스의 객체를 반환하도록 되어 있는 엑셀저장이 form.submit이나 window.location.href로 잘 동작하는데 로딩바를 추가할 필요가 있어서 ajax 호출로 변경하는 경우 참고하면 된다.&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1718866073572&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$.ajax({
	type: &quot;GET&quot;,
    url: &quot;your URL&quot;,
    data: &quot;your param&quot;,
    contentType: &quot;application/json&quot;,
    xhrFields: {
    	responseType: &quot;blob&quot;
    },
    // xhrFields 필드는 ajax 공식 문서에 보면 나온다.
    // https://api.jquery.com/jQuery.ajax/
    // blob은 Binary Large Object 그림, 오디오, 멀티미디어 오브젝트를 뜻한다.
    success: function (data, status, xhr) {
    	if (xhr.status == 200) {
        	let blob = new Blob([data], { type: 'application/vnd.ms-excel' });
            let link = document.createElement(&quot;a&quot;);
            link.href = window.URL.createObjectURL(blob);
            let disposition = xhr.getResponseHeader(&quot;Content-Disposition&quot;);
            // 서버단에서 response header에서 filename을 넘겨주면 클라이언트에서 응답받아 사용한다.
            let filename = decodeURI(disposition.substring(23, disposition.indexOf('&quot;;charset=&quot;UTF-8&quot;')));
            // 자르고 버무려서 파일명을 만든다.
            link.click();
            
            window.URL.revokeObjectURL(link.href);
            // mdn web docs를 보면 &quot;URL.revokeObjectURL() 정적 메서드는 이전에 URL.createObjectURL()을 통해 
            // 생성한 객체 URL을 해제합니다&quot; 라고 설명되어 있다.
        }
        // 본인 환경에 맞게 처리
    },
    error: function (err) {
       // 본인 환경에 맞게 처리
    }&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;* 주저리: 스프링 공식 문서를 아무리 찾아봐도 AbstractXlsxView 공식 예제를 찾을 수가 없다. 시간이 너무 지나서인가.... ajax 공식 doc은 왜이렇게 뭐가 없는지.... 믿을건 쳇gpt뿐이다... 쳇gpt가 출현하니 샘플 코드를 너무 잘 보여줘서 이런 블로그를 운영할 필요가 있는지 회의감이 들기도 한다..........&lt;/p&gt;</description>
      <category>jQuery</category>
      <category>abstractxlsxview</category>
      <category>ajax</category>
      <category>jquery</category>
      <category>로딩바</category>
      <category>엑셀 다운로드</category>
      <author>데브심</author>
      <guid isPermaLink="true">https://devesim.tistory.com/147</guid>
      <comments>https://devesim.tistory.com/147#entry147comment</comments>
      <pubDate>Thu, 20 Jun 2024 15:49:57 +0900</pubDate>
    </item>
    <item>
      <title>Linux shell script ps kill 후 apache tomcat 재기동</title>
      <link>https://devesim.tistory.com/146</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;shell_logo.jpg&quot; data-origin-width=&quot;360&quot; data-origin-height=&quot;250&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Oqmgl/btsH3qJpsoO/6RS2gggT5d3QQKxjOxY0M1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Oqmgl/btsH3qJpsoO/6RS2gggT5d3QQKxjOxY0M1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Oqmgl/btsH3qJpsoO/6RS2gggT5d3QQKxjOxY0M1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FOqmgl%2FbtsH3qJpsoO%2F6RS2gggT5d3QQKxjOxY0M1%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;360&quot; height=&quot;250&quot; data-filename=&quot;shell_logo.jpg&quot; data-origin-width=&quot;360&quot; data-origin-height=&quot;250&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;* 개요: 서버가 문제가 있어서 shell script로 아파치 톰캣 재기동 sh을 작성할 때 정상적으로 동작을 하지 않아서 강제로 ps를 kill 하고 톰캣을 재기동하는 shell script를 작성해보았다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1718763633324&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;var1=`netstat -nap | grep 9091`   // 톰캣 ps 확인 명령어
// 포트 정보와 listen 상태 ps/ps명이 결과로 나타난다

IFS=' ' read -ra ps_arr &amp;lt;&amp;lt;&amp;lt; &quot;$var1&quot;   // 위 결과를 배열로 만든다

arr_size=${#ps_arr[@]}   // 배열 크기 저장

var_str=${ps_arr[arr_size - 1]}   // ps/ps명 마지막 string만 필요하니 변수에 담는다

var_ps=&quot;${var_str:0:(-5)}&quot;   // ps/ps명(예: 12345/java)에서 /java 글자를 빼고 ps만 담는다

kill ${var_ps}   // kill ps&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;* 주의: 깔끔하게 한다고 변수명 뒤 = 앞뒤에 공백이 있으면 에러가 발생한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;* 마무리: 생각보다 어렵지는 않아서 검색하면서 수정하면 본인에 맞게 원하는 sh 작성이 가능하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;* 배열 관련 참고: &lt;a href=&quot;https://blog.naver.com/juner84/100191014657&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://blog.naver.com/juner84/100191014657&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1718763722368&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[Linux-shell] bash shell에서 배열 선언 및 배열 크기 확인&quot; data-og-description=&quot;[Linux-shell] bash shell에서 배열 선언 및 배열 크기 확인 &amp;nbsp; bash shell에서도 다른 언어에서 처럼...&quot; data-og-host=&quot;blog.naver.com&quot; data-og-source-url=&quot;https://blog.naver.com/juner84/100191014657&quot; data-og-url=&quot;https://blog.naver.com/juner84/100191014657&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bBTX7S/hyWliRC02r/jsYgULKjzK5JbRgyH8kjzK/img.png?width=270&amp;amp;height=270&amp;amp;face=0_0_270_270&quot;&gt;&lt;a href=&quot;https://blog.naver.com/juner84/100191014657&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://blog.naver.com/juner84/100191014657&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bBTX7S/hyWliRC02r/jsYgULKjzK5JbRgyH8kjzK/img.png?width=270&amp;amp;height=270&amp;amp;face=0_0_270_270');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;[Linux-shell] bash shell에서 배열 선언 및 배열 크기 확인&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;[Linux-shell] bash shell에서 배열 선언 및 배열 크기 확인 &amp;nbsp; bash shell에서도 다른 언어에서 처럼...&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;blog.naver.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Operating System</category>
      <category>kill ps</category>
      <category>rocky linux</category>
      <category>Shell</category>
      <category>start apache tomcat</category>
      <author>데브심</author>
      <guid isPermaLink="true">https://devesim.tistory.com/146</guid>
      <comments>https://devesim.tistory.com/146#entry146comment</comments>
      <pubDate>Wed, 19 Jun 2024 11:22:36 +0900</pubDate>
    </item>
    <item>
      <title>MS 엣지에서 한글 입력 시 자바스크립트에서 keydown 이벤트가 안먹는 현상</title>
      <link>https://devesim.tistory.com/145</link>
      <description>&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;win11logo.png&quot; data-origin-width=&quot;2227&quot; data-origin-height=&quot;900&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mqNXc/btsHylUXqUz/L4oGrKvcHMdKDCXCbsli31/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mqNXc/btsHylUXqUz/L4oGrKvcHMdKDCXCbsli31/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mqNXc/btsHylUXqUz/L4oGrKvcHMdKDCXCbsli31/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmqNXc%2FbtsHylUXqUz%2FL4oGrKvcHMdKDCXCbsli31%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2227&quot; height=&quot;900&quot; data-filename=&quot;win11logo.png&quot; data-origin-width=&quot;2227&quot; data-origin-height=&quot;900&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;msedge.png&quot; data-origin-width=&quot;512&quot; data-origin-height=&quot;512&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dTCxKX/btsHwvLKI6q/dI60EMo7lQhUA2UmypH0M1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dTCxKX/btsHwvLKI6q/dI60EMo7lQhUA2UmypH0M1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dTCxKX/btsHwvLKI6q/dI60EMo7lQhUA2UmypH0M1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdTCxKX%2FbtsHwvLKI6q%2FdI60EMo7lQhUA2UmypH0M1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;155&quot; height=&quot;155&quot; data-filename=&quot;msedge.png&quot; data-origin-width=&quot;512&quot; data-origin-height=&quot;512&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;※ 개요: 웹페이지 서비스 시 한글 입력 시 jQuery on이벤트 하위 keydown 이벤트가 동작하도록 구현된 페이지에서 MS 엣지 브라우저 사용 시 keydown 이벤트가 먹지 않는 현상이 발생한다. 윈도우 10보다 특히 윈도우 11에서는 거의 발생하는 것을 확인 하였다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;※ 조치: 윈도우 11 기준 -&amp;gt; 설정 진입 -&amp;gt; 시간 및 언어 -&amp;gt; 언어 및 지역 -&amp;gt; 한국어 -&amp;gt; 언어 옵션 -&amp;gt; Microsoft 입력기 -&amp;gt; 키보드 옵션 -&amp;gt; 호환성 켬으로 설정&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;a href=&quot;http://www.mnkorea.co.kr/bbsmnk/board.php?board=mnkpds01&amp;amp;config=2&amp;amp;command=body&amp;amp;no=28&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;http://www.mnkorea.co.kr/bbsmnk/board.php?board=mnkpds01&amp;amp;config=2&amp;amp;command=body&amp;amp;no=28&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;※ 고민: 꼭 코드를 고쳐서 해결하기 보다는 윈도우 설정을 변경해서 문제를 해결하는 방법도 고민해보자. 물론 설정을 바꾸고 충분한 테스트는 필수인 것 같다. 앞으로 이 방법이 제대로 동작하는지 더 확인을 해봐야 할 것 같다...&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Web browser</category>
      <category>keydown event</category>
      <category>MS Edge</category>
      <category>window 11</category>
      <category>한글 입력</category>
      <author>데브심</author>
      <guid isPermaLink="true">https://devesim.tistory.com/145</guid>
      <comments>https://devesim.tistory.com/145#entry145comment</comments>
      <pubDate>Wed, 22 May 2024 13:25:17 +0900</pubDate>
    </item>
    <item>
      <title>[Windows] putty 접속 시 타이틀명 고정</title>
      <link>https://devesim.tistory.com/144</link>
      <description>&lt;p data-ke-size=&quot;size18&quot;&gt;※ 개요: putty로 여러 서버를 띄우고 접속하는 경우 내가 작업중인 putty가 어느 서버인지 헷갈릴 때가 있다. hostname이나 맨 상단에 IP주소가 나오지만 hostname이 동일하거나 특수한 상황으로 상단의 IP주소를 확인하기 어려울 때가 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #ef6f53;&quot;&gt;&lt;b&gt;putty 접속 시 타이틀명을 고정하는 방법&lt;/b&gt;&lt;/span&gt;을 알아보자 !&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;※&lt;span&gt; 방법&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;p11.png&quot; data-origin-width=&quot;784&quot; data-origin-height=&quot;565&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bkBodT/btsGI5y9WiO/SD5w0RLZdf3HPc9hXedVoK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bkBodT/btsGI5y9WiO/SD5w0RLZdf3HPc9hXedVoK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bkBodT/btsGI5y9WiO/SD5w0RLZdf3HPc9hXedVoK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbkBodT%2FbtsGI5y9WiO%2FSD5w0RLZdf3HPc9hXedVoK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;784&quot; height=&quot;565&quot; data-filename=&quot;p11.png&quot; data-origin-width=&quot;784&quot; data-origin-height=&quot;565&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;1. putty 좌측 상단 아이콘 &amp;rarr; 마우스 오른쪽 클릭 &amp;rarr; Change Settings... 클릭 &amp;rarr; Window 하위 Behaviour 클릭 &amp;rarr; Window title에 원하는 명칭 입력&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;p2.png&quot; data-origin-width=&quot;451&quot; data-origin-height=&quot;540&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ckhHVW/btsGIMe7eXg/xFuHikU4oogTpWI94AyeN1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ckhHVW/btsGIMe7eXg/xFuHikU4oogTpWI94AyeN1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ckhHVW/btsGIMe7eXg/xFuHikU4oogTpWI94AyeN1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FckhHVW%2FbtsGIMe7eXg%2FxFuHikU4oogTpWI94AyeN1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;451&quot; height=&quot;540&quot; data-filename=&quot;p2.png&quot; data-origin-width=&quot;451&quot; data-origin-height=&quot;540&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;2. Teminal - Features 선택 후 - Disable remote-controlled window title changing 체크&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;p3.png&quot; data-origin-width=&quot;453&quot; data-origin-height=&quot;537&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Q9MR4/btsGJpXX6pE/TMNf4Azr8tqS6d5jKLqY0K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Q9MR4/btsGJpXX6pE/TMNf4Azr8tqS6d5jKLqY0K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Q9MR4/btsGJpXX6pE/TMNf4Azr8tqS6d5jKLqY0K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FQ9MR4%2FbtsGJpXX6pE%2FTMNf4Azr8tqS6d5jKLqY0K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;453&quot; height=&quot;537&quot; data-filename=&quot;p3.png&quot; data-origin-width=&quot;453&quot; data-origin-height=&quot;537&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;3. Session 탭 - 타이틀명을 입력한 서버를 선택 후 - Save - Apply 버튼 클릭&lt;/p&gt;</description>
      <category>Operating System</category>
      <category>linux</category>
      <category>putty</category>
      <category>타이틀명 고정</category>
      <author>데브심</author>
      <guid isPermaLink="true">https://devesim.tistory.com/144</guid>
      <comments>https://devesim.tistory.com/144#entry144comment</comments>
      <pubDate>Thu, 18 Apr 2024 08:38:31 +0900</pubDate>
    </item>
    <item>
      <title>직장인이 알아야 할 보고서 양식</title>
      <link>https://devesim.tistory.com/143</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;※ 문서 표기법 &lt;br /&gt;&lt;br /&gt;-&amp;nbsp;숫자&amp;nbsp;및&amp;nbsp;금액&amp;nbsp;:&amp;nbsp;금123,456원(금일십이만삼천사백오십육원) &lt;br /&gt;-&amp;nbsp;날짜&amp;nbsp;:&amp;nbsp;2024.03.26 &lt;br /&gt;-&amp;nbsp;시간&amp;nbsp;:&amp;nbsp;09:30 &lt;br /&gt;- 항목표기 방법 : 1. -&amp;gt; 가. -&amp;gt; 1) -&amp;gt; 가) -&amp;gt; (1) -&amp;gt; (가) -&amp;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;IT 개발자 &amp;amp; 엔지니어도 회사원이다... 일반적인 교양도 알아야된다...&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;잘모르면 공공기관의 문서를 참고하고 보고서를 작성하자 !&lt;/p&gt;</description>
      <category>Office Work</category>
      <category>문서 표기법</category>
      <author>데브심</author>
      <guid isPermaLink="true">https://devesim.tistory.com/143</guid>
      <comments>https://devesim.tistory.com/143#entry143comment</comments>
      <pubDate>Tue, 26 Mar 2024 16:47:46 +0900</pubDate>
    </item>
    <item>
      <title>톰캣 모니터링 VisualVM 설정</title>
      <link>https://devesim.tistory.com/142</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;visualvm_logo_big.png&quot; data-origin-width=&quot;351&quot; data-origin-height=&quot;102&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/rWfUH/btsE0gPTSKr/Ig2ownHlekyDm3D86SBG6k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/rWfUH/btsE0gPTSKr/Ig2ownHlekyDm3D86SBG6k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/rWfUH/btsE0gPTSKr/Ig2ownHlekyDm3D86SBG6k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FrWfUH%2FbtsE0gPTSKr%2FIg2ownHlekyDm3D86SBG6k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;351&quot; height=&quot;102&quot; data-filename=&quot;visualvm_logo_big.png&quot; data-origin-width=&quot;351&quot; data-origin-height=&quot;102&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;※ 개요: 서버를 운영하다보면 속도가 느려지는 등의 이유로 서버 모니터링에 대한 관심을 가져야할 때가 있다. VisualVM이 입문자가 사용하기에 괜찮은 프로그램인데 초기 설정에 애를 많이 먹었다... 겨우 성공하여서 나중에 삽질을 덜하기 위하여 적어논다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;※ 환경:&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp; &amp;nbsp;- CentOS Linux release .7.1908 (Core)&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp; &amp;nbsp;- apache-tomcat-8.5.50&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp; &amp;nbsp;- VisualVM 2.1.7&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;※ catalina-jmx-remote.jar 파일 다운로드 명령어&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp; &amp;nbsp;- 톰캣/lib 하위에 위치시킨다.&lt;/p&gt;
&lt;pre id=&quot;code_1708307589147&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;wget http://apache.mirror.cdnetworks.com/tomcat/tomcat-8/v8.0.45/bin/extras/catalina-jmx-remote.jar&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;※&lt;span&gt; catalina.sh 옵션 추가 방법&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;- 입력 내용중 -Dcom 부분을 보기 좋게 한다고 엔터를 쳐서 입력하면 오류가 발생한다. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;그냥 복사해서 사용하자..)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;- 인터넷에서 찾아보면 setenv.sh 파일만 입력하거나 setenv.sh와 sever.xml을 수정하는 방법 2가지가 나오는데 나는&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;두번째만 되서 두번째 방법을 기록한다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1708307742347&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#setenv.sh
#파일 권한체크도 중요 -rwxr-x---

JMX_OPTS=&quot; -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.s
erver.hostname=서버주소 -Dcom.sun.management.jmxremote.ssl=false&quot;
JAVA_OPTS=&quot;$JAVA_OPTS $JMX_OPTS -Djava.security.egd=file:/dev/./urandom -Xms8192m -Xmx8192m&quot;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;※&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt; server.xml 파일 수정&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1708307906139&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;Server port=&quot;8005&quot; shutdown=&quot;SHUTDOWN&quot;&amp;gt;

  &amp;lt;Listener className=&quot;org.apache.catalina.mbeans.JmxRemoteLifecycleListener&quot;
        rmiRegistryPortPlatform=&quot;9840&quot; rmiServerPortPlatform=&quot;9841&quot; /&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp; &amp;nbsp;- SHUTDOWN 아래에 내용을 추가한다. 9840, 9841 포트는 당연히 방화벽 예외에 추가되어야 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp; &amp;nbsp;- 수정이 완료되면 톰캣 재기동 !&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;※&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;&lt;span&gt; 접속 테스트&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;1. 처음은 JConsole 로 접속이 되는지 테스트 해본다. Remote Process 체크 후 IP주소: 포트(위의 예시 9840) 입력 후 Connect&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;2. JConsole이 정상적으로 접속되면 VisualVM 접속을 시도한다. Remote에 IP가 추가되었으면 아이피 우측 선택 후 Add JMX Connection 클릭 후 IP주소와 포트(위의 예시 9840)를 입력하고 Connect 하면 정상적으로 연결된다.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;※&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt; 도움을 받은 곳&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;a href=&quot;https://infotake.tistory.com/87&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://infotake.tistory.com/87&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1708308466085&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[Tomcat] 톰캣 자원 모니터링 - JMX&quot; data-og-description=&quot;촌놈입니다! 앞서서 JConsole을 이용한 로컬 JDK 자원 모니터링(profiling) 을 해보았는데요 이번에는 JMX라는 확장 라이브러리를 이용 JConsole, VisualVM 기반으로 톰캣에 대한 자원내역을 분석 해보는 방&quot; data-og-host=&quot;infotake.tistory.com&quot; data-og-source-url=&quot;https://infotake.tistory.com/87&quot; data-og-url=&quot;https://infotake.tistory.com/87&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/b4xYG3/hyVjgtMXcz/zGsGbFRixVkxBquFRPfpAK/img.png?width=500&amp;amp;height=249&amp;amp;face=0_0_500_249,https://scrap.kakaocdn.net/dn/bcKy7F/hyVmYSzdqB/Q1kA3qVvn6DXzNeFCYKAc1/img.png?width=500&amp;amp;height=249&amp;amp;face=0_0_500_249,https://scrap.kakaocdn.net/dn/Y19sn/hyVm5jP5t5/CGKAtXuNhMRZyk69iqnie1/img.png?width=500&amp;amp;height=430&amp;amp;face=0_0_500_430&quot;&gt;&lt;a href=&quot;https://infotake.tistory.com/87&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://infotake.tistory.com/87&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/b4xYG3/hyVjgtMXcz/zGsGbFRixVkxBquFRPfpAK/img.png?width=500&amp;amp;height=249&amp;amp;face=0_0_500_249,https://scrap.kakaocdn.net/dn/bcKy7F/hyVmYSzdqB/Q1kA3qVvn6DXzNeFCYKAc1/img.png?width=500&amp;amp;height=249&amp;amp;face=0_0_500_249,https://scrap.kakaocdn.net/dn/Y19sn/hyVm5jP5t5/CGKAtXuNhMRZyk69iqnie1/img.png?width=500&amp;amp;height=430&amp;amp;face=0_0_500_430');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;[Tomcat] 톰캣 자원 모니터링 - JMX&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;촌놈입니다! 앞서서 JConsole을 이용한 로컬 JDK 자원 모니터링(profiling) 을 해보았는데요 이번에는 JMX라는 확장 라이브러리를 이용 JConsole, VisualVM 기반으로 톰캣에 대한 자원내역을 분석 해보는 방&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;infotake.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>WAS</category>
      <category>apache tomcat</category>
      <category>centOS</category>
      <category>jConole</category>
      <category>visualvm</category>
      <category>서버 모니터링</category>
      <author>데브심</author>
      <guid isPermaLink="true">https://devesim.tistory.com/142</guid>
      <comments>https://devesim.tistory.com/142#entry142comment</comments>
      <pubDate>Mon, 19 Feb 2024 11:08:49 +0900</pubDate>
    </item>
    <item>
      <title>reduce를 이용한 Object Array 중복 값 찾기</title>
      <link>https://devesim.tistory.com/141</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;ecma-logo.svg&quot; data-origin-width=&quot;496&quot; data-origin-height=&quot;133&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/4AQ1J/btsEyPdoFFH/L3AdEFNy7L3UeYDEcMa0Bk/tfile.svg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/4AQ1J/btsEyPdoFFH/L3AdEFNy7L3UeYDEcMa0Bk/tfile.svg&quot; data-alt=&quot;ECMAScript 2024&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/4AQ1J/btsEyPdoFFH/L3AdEFNy7L3UeYDEcMa0Bk/tfile.svg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F4AQ1J%2FbtsEyPdoFFH%2FL3AdEFNy7L3UeYDEcMa0Bk%2Ftfile.svg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;496&quot; height=&quot;133&quot; data-filename=&quot;ecma-logo.svg&quot; data-origin-width=&quot;496&quot; data-origin-height=&quot;133&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;ECMAScript 2024&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;웹개발 시 유효성 검사 등으로 Object Array의 중복값을 알아내서 사용자에게 경고해주는 기능을 만드는 경우가 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이를 예시로 만든 자바스크립트 코드이다.&lt;/p&gt;
&lt;pre id=&quot;code_1707205275106&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;let arr = [
	{
    	year: '2024', 
    	name: '가철수'
	},
	{
    	year: '2024', 
    	name: '나철수'
	},
	{
    	year: '2024', 
    	name: '다철수'
	},
	{
    	year: '2024', 
    	name: '다철수'
	},
	{
    	year: '2024', 
    	name: '라철수'
	}
];

let dup = [];
let check = arr.reduce((acc, cur) =&amp;gt; {
	if (objFound = acc.find(accItem =&amp;gt; accItem.year === cur.year &amp;amp;&amp;amp; accItem.name === cur.name)) {
		dup.push(cur);
	}
	else {
		acc.push(cur);
	}
	return acc;
}, []);
     
// console.log(&quot;check: &quot;, check);
console.log(&quot;dup:&quot;, dup);   // {year: '2024', name: '다철수'}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;개선하는 방법이 있으면 댓글 부탁드립니다..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;reduce.. find.. filter.. map.. set..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&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;도움을 받은 곳..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://stackoverflow.com/questions/58754685/find-duplicate-objects-in-array-and-return-new-array-of-object-with-number-of-du&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://stackoverflow.com/questions/58754685/find-duplicate-objects-in-array-and-return-new-array-of-object-with-number-of-du&lt;/a&gt;&lt;/p&gt;</description>
      <category>JavaScript</category>
      <category>javascript</category>
      <category>Object Array</category>
      <category>자바스크립트</category>
      <category>중복 object 구하기</category>
      <author>데브심</author>
      <guid isPermaLink="true">https://devesim.tistory.com/141</guid>
      <comments>https://devesim.tistory.com/141#entry141comment</comments>
      <pubDate>Tue, 6 Feb 2024 16:42:41 +0900</pubDate>
    </item>
    <item>
      <title>오라클 설치 할 때 체크할 점</title>
      <link>https://devesim.tistory.com/140</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;oracle91c.png&quot; data-origin-width=&quot;500&quot; data-origin-height=&quot;300&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/GqJzf/btsDGqr07uE/mkl12Dcz6Eyi1XA18AuX4k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/GqJzf/btsDGqr07uE/mkl12Dcz6Eyi1XA18AuX4k/img.png&quot; data-alt=&quot;오라클 19c&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/GqJzf/btsDGqr07uE/mkl12Dcz6Eyi1XA18AuX4k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FGqJzf%2FbtsDGqr07uE%2Fmkl12Dcz6Eyi1XA18AuX4k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;500&quot; height=&quot;300&quot; data-filename=&quot;oracle91c.png&quot; data-origin-width=&quot;500&quot; data-origin-height=&quot;300&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;오라클 19c&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;shovel.jpg&quot; data-origin-width=&quot;360&quot; data-origin-height=&quot;360&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dBQQb7/btsDDWSFilh/gG600P7SLccxQHIamDsnUK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dBQQb7/btsDDWSFilh/gG600P7SLccxQHIamDsnUK/img.jpg&quot; data-alt=&quot;삽질&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dBQQb7/btsDDWSFilh/gG600P7SLccxQHIamDsnUK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdBQQb7%2FbtsDDWSFilh%2FgG600P7SLccxQHIamDsnUK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;360&quot; height=&quot;360&quot; data-filename=&quot;shovel.jpg&quot; data-origin-width=&quot;360&quot; data-origin-height=&quot;360&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;삽질&lt;/figcaption&gt;
&lt;/figure&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;오랜만에 오라클을 설치 해보았다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;노트북에 centos 7을 설치하고 오라클 19c 스탠다드를 설치하였다. 오랜만에 설치해보니 역시나 삽질을 너무 많이 했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&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;1. 원격으로 접속해서 설치할 것인지 서버에서 직접 설치할 것인지.. 알아야될 키워드는 x11과 xhost +&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. oracle 계정으로 접속 시 bash 쉘이 정상적으로 동작중인지 확인하자(오라클 설치 디렉토리 권한 체크는 덤~)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. oracle_home과 oracle_base를 나도 모르게 이상한 위치에 설치했을 수도 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. 환경설정도 잊지 말자 ! more ~/.bash_profile&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5. oracle_home/network/admin 위치의 listener.ora, tnsnames.ora IP주소도 설정해야 해요~&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;6. 방화벽은 selinux는 ??&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;7. 오라클 서비스는 당연히 실행했겠죠? sqlplus &quot;/as sysdba&quot; startup lsnrctl start .....&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;8. 오라클 접속 계정 만들기 ~ create, grant&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;9. 자 이정도만 체크해도 오라클 설치 후 접속은 OK~!&lt;/p&gt;</description>
      <category>Database</category>
      <category>oracle 19c</category>
      <category>삽질</category>
      <category>오라클 19c</category>
      <author>데브심</author>
      <guid isPermaLink="true">https://devesim.tistory.com/140</guid>
      <comments>https://devesim.tistory.com/140#entry140comment</comments>
      <pubDate>Thu, 18 Jan 2024 13:42:06 +0900</pubDate>
    </item>
    <item>
      <title>록키리눅스 8.8 tar.gz 특정 디렉토리 제외 시 에러발생하는 경우 조치</title>
      <link>https://devesim.tistory.com/139</link>
      <description>&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;* 환경 : Rocky Linux release 8.8 (Green Obsidian)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;* 개요 : 디렉토리를 백업하는 경우 해당 디렉토리 내부에 있는 특정 디렉토리를 제외하고 tar.gz 압축을 하는데 에러가 발생함.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;* 에러메시지 :&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1697696098437&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;tar: The following options were used after any non-optional arguments in archive create or update mode.  These options are positional and affect only arguments that follow them.  Please, rearrange them properly.
tar: --exclude `./test/result' has no effect
tar: 앞서 발생한 오류로 실패 코드를 반환하며 빠져나감&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;* 해결책 :&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;예를 들어서&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1697696203884&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;tmp/test
tmp/test/a.txt
tmp/test/result
tmp/test/result/b.txt&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;위와 같이 디렉토리와 파일이 있는데 test라는 디렉토리를 압축하고 result 라는 디렉토리를 제외하고 싶은 경우 아래와 같이 명령어를 구성한다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1697696397129&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;tar -zcvf test.tar.gz --exclude=&quot;result&quot; test/
tar -zcvf test.tar.gz --exclude=&quot;apple/result/&quot; test/   // 제외하려는 디렉토리가 2depth 인 경우
tar -zcvf test.tar.gz --exclude=&quot;apple/result/&quot; --exclude=&quot;apple/recruit/&quot; test/   // 제외하려는 디렉토리가 2개인 경우&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;록키 리눅스의 경우 압축하려는 디렉토리 위치가 맨 뒤로 와야되고 --exclude 명령어에 절대 경로를 사용하지 말고 압축하려는 디렉토리 내부의 제외하려는 디렉토리 경로만 정확하게 적어주면 된다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;리눅스가 계속 버전이 바뀌다 보니 centos 기준의 글들의 정보가 정확하지 않은 경우가 많은 것 같다...&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;* 도움을 받은 곳 : &lt;a href=&quot;https://www.nodinrogers.com/post/2022-01-15-excluding-files-from-a-tar-archive/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.nodinrogers.com/post/2022-01-15-excluding-files-from-a-tar-archive/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1697696606585&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;Excluding files from a tar archive&quot; data-og-description=&quot;I was trying to make a backup, but exclude my working directory, which just has a lot of temp files in it. . . . easier said than done . . . The concept is &amp;hellip;&quot; data-og-host=&quot;www.nodinrogers.com&quot; data-og-source-url=&quot;https://www.nodinrogers.com/post/2022-01-15-excluding-files-from-a-tar-archive/&quot; data-og-url=&quot;https://www.nodinrogers.com/post/2022-01-15-excluding-files-from-a-tar-archive/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/uvyZr/hyUdZGBmdX/AxrTqk4hi3D54pJeGe8zLk/img.png?width=641&amp;amp;height=401&amp;amp;face=0_0_641_401,https://scrap.kakaocdn.net/dn/cEq7SF/hyUgJIRUER/NDwAQHVlfeUr6zG6VhjxKk/img.png?width=641&amp;amp;height=401&amp;amp;face=0_0_641_401&quot;&gt;&lt;a href=&quot;https://www.nodinrogers.com/post/2022-01-15-excluding-files-from-a-tar-archive/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.nodinrogers.com/post/2022-01-15-excluding-files-from-a-tar-archive/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/uvyZr/hyUdZGBmdX/AxrTqk4hi3D54pJeGe8zLk/img.png?width=641&amp;amp;height=401&amp;amp;face=0_0_641_401,https://scrap.kakaocdn.net/dn/cEq7SF/hyUgJIRUER/NDwAQHVlfeUr6zG6VhjxKk/img.png?width=641&amp;amp;height=401&amp;amp;face=0_0_641_401');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Excluding files from a tar archive&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;I was trying to make a backup, but exclude my working directory, which just has a lot of temp files in it. . . . easier said than done . . . The concept is &amp;hellip;&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.nodinrogers.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Operating System</category>
      <category>exclude</category>
      <category>tar.gz</category>
      <category>디렉토리 제외 압축하기 오류</category>
      <category>록키 리눅스 8.8</category>
      <author>데브심</author>
      <guid isPermaLink="true">https://devesim.tistory.com/139</guid>
      <comments>https://devesim.tistory.com/139#entry139comment</comments>
      <pubDate>Thu, 19 Oct 2023 15:24:12 +0900</pubDate>
    </item>
    <item>
      <title>Apache POI 금액 화폐 단위 콤마 추가</title>
      <link>https://devesim.tistory.com/138</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;poi_logo.png&quot; data-origin-width=&quot;487&quot; data-origin-height=&quot;140&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/duPDYU/btspRJFsovC/uBapNAOIMObYbtWPr0U9N1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/duPDYU/btspRJFsovC/uBapNAOIMObYbtWPr0U9N1/img.png&quot; data-alt=&quot;Apache POI&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/duPDYU/btspRJFsovC/uBapNAOIMObYbtWPr0U9N1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FduPDYU%2FbtspRJFsovC%2FuBapNAOIMObYbtWPr0U9N1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;487&quot; height=&quot;140&quot; data-filename=&quot;poi_logo.png&quot; data-origin-width=&quot;487&quot; data-origin-height=&quot;140&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Apache POI&lt;/figcaption&gt;
&lt;/figure&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;* 방법&lt;/p&gt;
&lt;pre id=&quot;code_1690949465799&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;CellStyle cs = workbook.createCellStyle();
DataFormat df = workbook.createDataFormat();
cs.setDataFormat(df.getFormat(&quot;#,##0&quot;));
...
row.getCell(0).setCellStyle(cs);   // 본인의 환경에 맞춰서 스타일을 적용한다&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&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;a href=&quot;https://stackoverflow.com/questions/73478240/apache-poi-changing-cell-format-from-dot-to-comma&quot;&gt;java - Apache POI changing cell format from dot to comma - Stack Overflow&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1690949505752&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Apache POI changing cell format from dot to comma&quot; data-og-description=&quot;I'm using Apache POI to generate excel files. I'm trying to format my cells to display no decimal cases and use dot as the thousand separator. (187103,915 -&amp;gt; 187.103). If I apply the format #.##0&quot; data-og-host=&quot;stackoverflow.com&quot; data-og-source-url=&quot;https://stackoverflow.com/questions/73478240/apache-poi-changing-cell-format-from-dot-to-comma&quot; data-og-url=&quot;https://stackoverflow.com/questions/73478240/apache-poi-changing-cell-format-from-dot-to-comma&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bor8X6/hyTu85gB5q/VyeKTAjjJfNCB6etT8eNxk/img.png?width=316&amp;amp;height=316&amp;amp;face=0_0_316_316,https://scrap.kakaocdn.net/dn/d1miPG/hyTwiZtkyc/fO8dHCs4JGSZvecZGLEIj0/img.png?width=525&amp;amp;height=301&amp;amp;face=0_0_525_301,https://scrap.kakaocdn.net/dn/bbvejq/hyTvjZ0wQt/LyPT6faqIqqztL1Cz9g9Q1/img.png?width=420&amp;amp;height=317&amp;amp;face=0_0_420_317&quot;&gt;&lt;a href=&quot;https://stackoverflow.com/questions/73478240/apache-poi-changing-cell-format-from-dot-to-comma&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://stackoverflow.com/questions/73478240/apache-poi-changing-cell-format-from-dot-to-comma&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bor8X6/hyTu85gB5q/VyeKTAjjJfNCB6etT8eNxk/img.png?width=316&amp;amp;height=316&amp;amp;face=0_0_316_316,https://scrap.kakaocdn.net/dn/d1miPG/hyTwiZtkyc/fO8dHCs4JGSZvecZGLEIj0/img.png?width=525&amp;amp;height=301&amp;amp;face=0_0_525_301,https://scrap.kakaocdn.net/dn/bbvejq/hyTvjZ0wQt/LyPT6faqIqqztL1Cz9g9Q1/img.png?width=420&amp;amp;height=317&amp;amp;face=0_0_420_317');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Apache POI changing cell format from dot to comma&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;I'm using Apache POI to generate excel files. I'm trying to format my cells to display no decimal cases and use dot as the thousand separator. (187103,915 -&amp;gt; 187.103). If I apply the format #.##0&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;stackoverflow.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Java</category>
      <category>Apache POI</category>
      <category>금액 콤마</category>
      <category>아파치 POI</category>
      <category>화폐 단위 콤마</category>
      <author>데브심</author>
      <guid isPermaLink="true">https://devesim.tistory.com/138</guid>
      <comments>https://devesim.tistory.com/138#entry138comment</comments>
      <pubDate>Wed, 2 Aug 2023 13:11:53 +0900</pubDate>
    </item>
    <item>
      <title>부모 창에서 자식 창으로 배열 값 전달하기</title>
      <link>https://devesim.tistory.com/137</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;* 실무에서 부모 창에서 팝업을 구현할 때에 대량의 배열 데이터를 자식 창으로 전달하는 경우가 종종있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;* 비슷비슷해서 헷갈리다 보니 시간 낭비가 너무 심해서 기록해둔다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt;부모창&amp;gt;&lt;/p&gt;
&lt;pre id=&quot;code_1690260309544&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;input id=&quot;devsim01&quot; type=&quot;hidden&quot;&amp;gt;

$(&quot;#devsim01&quot;).val(JSON.stringify(배열));&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt;자식창&amp;gt;&lt;/p&gt;
&lt;pre id=&quot;code_1690260393928&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;let json_child = opener.document.getElementById(&quot;devsim01&quot;).value;
let data = JSON.parse(json_child);

console.log(data);

#배열이 출력되겠죠?&lt;/code&gt;&lt;/pre&gt;</description>
      <category>JavaScript</category>
      <category>json</category>
      <category>부모창</category>
      <category>윈도우</category>
      <category>자바스크립트</category>
      <category>자식창</category>
      <category>팝업창</category>
      <author>데브심</author>
      <guid isPermaLink="true">https://devesim.tistory.com/137</guid>
      <comments>https://devesim.tistory.com/137#entry137comment</comments>
      <pubDate>Tue, 25 Jul 2023 13:47:28 +0900</pubDate>
    </item>
    <item>
      <title>자바스크립트 정규식 변수를 사용하는 경우 해결법</title>
      <link>https://devesim.tistory.com/136</link>
      <description>&lt;p data-ke-size=&quot;size18&quot;&gt;* 개요 : 웹개발 시 보통 문자나 특수문자를 치환하는 경우 자바스크립트 정규식을 사용한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;* 설명 : 정규식 형식에는 리터럴 표기법과 RegExp 함수의 생성자 함수를 사용하는 방법이 있는데 생성자 함수를 사용하면 동적으로 변하는 변수를 정규식으로 사용할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;* 해결법 :&lt;/p&gt;
&lt;pre id=&quot;code_1689050859661&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;let arr = ['a', 'b'];

let reg;

let exp;

let str = 'abc';

// for문 내부에서

reg = `[^${arr[i]}` + ${arr[j]}]';

exp = new RegExp(reg, &quot;gi&quot;);

str = str.replace(exp, '');&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;핵심은 키보드 느낌표(!) 왼쪽에 있는 ` 문자와 달러 + 중괄호 사용이다. 테스트 해보고 이해하고 사용해본다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;* 도움을 받은 곳 :&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;a href=&quot;https://leeseong010.tistory.com/142&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://leeseong010.tistory.com/142&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1689050936321&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[JavaScript] 정규 표현식 안에 동적으로 변수를 넣는 방법&quot; data-og-description=&quot;정규 표현식(Regular Expression)은 문자열에서 특정 문자 조합을 찾기 위한 패턴이다. RegExp RegExp 생성자는 패턴을 사용해 텍스트를 판별할 때 사용한다. 리터럴 표기법의 매개변수는 두 빗금으로 감&quot; data-og-host=&quot;leeseong010.tistory.com&quot; data-og-source-url=&quot;https://leeseong010.tistory.com/142&quot; data-og-url=&quot;https://leeseong010.tistory.com/142&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/qUiLt/hyTioyqYkS/JwqDSW1RMALhyHKgR59vN1/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/rgYWd/hyTimACBWJ/NKSNL5TdfXbkN82aMAdbxK/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800&quot;&gt;&lt;a href=&quot;https://leeseong010.tistory.com/142&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://leeseong010.tistory.com/142&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/qUiLt/hyTioyqYkS/JwqDSW1RMALhyHKgR59vN1/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/rgYWd/hyTimACBWJ/NKSNL5TdfXbkN82aMAdbxK/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;[JavaScript] 정규 표현식 안에 동적으로 변수를 넣는 방법&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;정규 표현식(Regular Expression)은 문자열에서 특정 문자 조합을 찾기 위한 패턴이다. RegExp RegExp 생성자는 패턴을 사용해 텍스트를 판별할 때 사용한다. 리터럴 표기법의 매개변수는 두 빗금으로 감&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;leeseong010.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Regular Expression</category>
      <category>동적 변수 정규식 사용</category>
      <category>자바스크립트 정규식</category>
      <author>데브심</author>
      <guid isPermaLink="true">https://devesim.tistory.com/136</guid>
      <comments>https://devesim.tistory.com/136#entry136comment</comments>
      <pubDate>Tue, 11 Jul 2023 13:49:48 +0900</pubDate>
    </item>
    <item>
      <title>CENTOS 설치 중 네트워크 이더넷이 없는 경우 조치 방법</title>
      <link>https://devesim.tistory.com/135</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 64.6512%; height: 138px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignCenter&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;centos8.png&quot; data-origin-width=&quot;454&quot; data-origin-height=&quot;240&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cwO4Bh/btsbmSZqPWx/qov8PTxM5LbHR059lmLgw1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cwO4Bh/btsbmSZqPWx/qov8PTxM5LbHR059lmLgw1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cwO4Bh/btsbmSZqPWx/qov8PTxM5LbHR059lmLgw1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcwO4Bh%2FbtsbmSZqPWx%2Fqov8PTxM5LbHR059lmLgw1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;227&quot; height=&quot;120&quot; data-filename=&quot;centos8.png&quot; data-origin-width=&quot;454&quot; data-origin-height=&quot;240&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;asus.png&quot; data-origin-width=&quot;568&quot; data-origin-height=&quot;413&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nnKfG/btsbBOUPMNi/FuJkTx6THK6KCcDR4GJTm0/img.gif&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nnKfG/btsbBOUPMNi/FuJkTx6THK6KCcDR4GJTm0/img.gif&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nnKfG/btsbBOUPMNi/FuJkTx6THK6KCcDR4GJTm0/img.gif&quot; srcset=&quot;https://blog.kakaocdn.net/dn/nnKfG/btsbBOUPMNi/FuJkTx6THK6KCcDR4GJTm0/img.gif&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;176&quot; height=&quot;413&quot; data-filename=&quot;asus.png&quot; data-origin-width=&quot;568&quot; data-origin-height=&quot;413&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;⊙ 개요 : 내가 가진 ASUS A52F 라는 오래전에 구입한 노트북이 있다. 여기에 록키 리눅스를 설치하기 위해 CENTOS 8을 설치하려고 하는데 네트워크 장치중 이더넷을 찾을 수가 없었다... 인터넷이 되어야 rpm이든 dnf든 작업을 할텐데.. 상당히 난감한 상황이다... 검색을 해봐도 도통 잘 나오지를 않는다. 이 문제는 예전에도 엄청 삽질을 하면서 해결을 했었는데 몇 개월 지나고 까먹고 또 삽질을 하고있었다..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;⊙ 원인 : CENTOS 8에서 노트북 네트워크 카드(JMicron(R) JMC250 PCI-E Ethernet Adapter)의 장치가 너무 오래되서 자동 설치를 지원해주지 못해서 일어난 문제이다.&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;1. CENTOS 8 설치 시 10GB 짜리 USB로 ISO 파일을 준비 후 서버-GUI로 설치한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 서버-GUI로 설치하면 WIFI를 바로 사용할 수 있을 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. 인터넷이 되는 윈도우 PC로 윈도우의 3DP 같은 ELREPO (&lt;a href=&quot;http://elrepo.org/tiki/HomePage&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;http://elrepo.org/tiki/HomePage&lt;/a&gt;) 사이트에 접속한다. Download -&amp;gt; Asia-Pacific -&amp;gt; 아무 주소에 접속해도 되고 /elrepo/elrepo/el8/x86_64/RPMS/ 요 순서대로 마우스로 클릭하면 rpm 목록을 확인 할 수 있다. -&amp;gt; elrepo.noarch 문구로 검색해보면 2023년 4월 20일 기준(글을 다 작성하고 보니 그냥 WIFI 연결 상태에서 직접 파일들을 받아도 된다 -0-;;)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;elrepo-release-8.0-2.el8.elrepo.noarch.rpm &lt;br /&gt;elrepo-release-8.1-1.el8.elrepo.noarch.rpm &lt;br /&gt;elrepo-release-8.2-1.el8.elrepo.noarch.rpm &lt;br /&gt;elrepo-release-8.3-1.el8.elrepo.noarch.rpm&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4개를 확인 할 수 있는데 가장 최신인 elrepo-release-8.3-1.el8.elrepo.noarch.rpm 파일을 다운로드 후에 centos를 설치한 USB에 본인만의 디렉토리를 생성하고 위에서 다운 받은 파일을 복사한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. CENTOS에 USB를 다시 장착하고 findmnt 명령어를 이용해서 마운트 정보를 확인 후 본인이 편한 디렉토리에 받은 파일을 복사한다.(만약 5번에서 뭔가 문제가 발생하면 네트워크 카드와 관련된 파일도 복사한다. 본인의 경우 /elrepo/archive/elrepo/el8/x86_64/RPMS 경로의 kmod-jme-1.0.8-1.el8_2.elrepo.x86_64.rpm 파일, 본인 PC의 네트워크 카드 정보를 확인 후 찾아본다)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5. root로 쉘을 변경 후에&lt;/p&gt;
&lt;pre id=&quot;code_1681970749779&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// ELREPO 활성화
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
dnf -y install https://www.elrepo.org/elrepo-release-8.el8.elrepo.noarch.rpm

// 커널 설치
sudo dnf --enablerepo=elrepo-kernel install kernel-ml kernel-ml-{devel,headers}

// 재기동
reboot&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;명령어로 커널을 업데이트 한다. 4번을 빼먹으면 오류가 날 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;6. 이더넷 활성화 하기 위해 다음 명령어를 입력한다.&lt;/p&gt;
&lt;pre id=&quot;code_1681971234674&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;nmcli dev status
// or
nmcli con show
// 명령어를 사용하여 이더넷 nic의 DEVICE 명을 파악한다. 본인의 경우 ens5f5 였다.

nmcli con add con-name eth0 type ethernet ifname ens5f5
// eth0은 내마음대로 작명한 것이다.
// 위에서 알아낸 장치의 ens5f5와 동일한 것을 확인 할 수 있다.

nmcli con up eth0
// 드디어 장치를 활성화 시킨다.&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;7. 위 설정을 완료하면 잠시 bash가 먹통이 될 것이다. 잠시 기다리다가 X 윈도우 설정 네트워크에 들어가면 앞서 보이지 않았던 [유선] 항목이 보일 것이다. 톱니바퀴를 클릭 후 본인 IP및 기타 정보를 입력하고 끔 -&amp;gt; 켬 하면 드디어 인터넷에 연결된 것을 확인 할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;⊙&lt;span&gt; 애필로그 : 완전히 같은 환경은 아니겠지만 나와 비슷한 문제를 만나는 분들에게 조금이라도 도움이 되었으면 좋겠다.. 벌써 이 문제로 몇번이나 삽질을 하는건지...&lt;/span&gt;&lt;/span&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;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;※ 도움을 받은 곳 :&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;&lt;a href=&quot;https://www.mail-archive.com/elrepo@lists.elrepo.org/msg04138.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://www.mail-archive.com/elrepo@lists.elrepo.org/msg04138.html&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1681972098832&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Re: [elrepo] kmod-jme for el8 (x86_64)&quot; data-og-description=&quot;Many thanks Phil. Downloaded, installed and working as expected. Perfect! Appreciate your help on this and all the work on this repo. Regards, Richard On Tue, 29 Sep 2020, 17:00 , wrote: &amp;gt; Send elrepo mailing list submissions to &amp;gt; elrepo@lists.elrepo.org &amp;gt;&quot; data-og-host=&quot;www.mail-archive.com&quot; data-og-source-url=&quot;https://www.mail-archive.com/elrepo@lists.elrepo.org/msg04138.html&quot; data-og-url=&quot;https://www.mail-archive.com/elrepo@lists.elrepo.org/msg04138.html&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://www.mail-archive.com/elrepo@lists.elrepo.org/msg04138.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.mail-archive.com/elrepo@lists.elrepo.org/msg04138.html&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Re: [elrepo] kmod-jme for el8 (x86_64)&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Many thanks Phil. Downloaded, installed and working as expected. Perfect! Appreciate your help on this and all the work on this repo. Regards, Richard On Tue, 29 Sep 2020, 17:00 , wrote: &amp;gt; Send elrepo mailing list submissions to &amp;gt; elrepo@lists.elrepo.org &amp;gt;&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.mail-archive.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://blog.kerus.net/2328/centos-8-install-latest-kernel/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://blog.kerus.net/2328/centos-8-install-latest-kernel/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1681972110225&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;CentOS 8 최신버전 커널 설치&quot; data-og-description=&quot;(Last Updated On: November 29, 2020)CentOS 8 에서 elrepo repository를 통한 최신버전 커널 설치&amp;nbsp; 1 Enable ELREPO 2 INSTALL MAINLINE KERNEL 3 REBOOT Reference https://computingforgeeks.com/how-to-install-latest-kernel-on-centos-linux/ More from &quot; data-og-host=&quot;blog.kerus.net&quot; data-og-source-url=&quot;https://blog.kerus.net/2328/centos-8-install-latest-kernel/&quot; data-og-url=&quot;https://blog.kerus.net/2328/centos-8-install-latest-kernel/&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://blog.kerus.net/2328/centos-8-install-latest-kernel/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://blog.kerus.net/2328/centos-8-install-latest-kernel/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;CentOS 8 최신버전 커널 설치&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;(Last Updated On: November 29, 2020)CentOS 8 에서 elrepo repository를 통한 최신버전 커널 설치&amp;nbsp; 1 Enable ELREPO 2 INSTALL MAINLINE KERNEL 3 REBOOT Reference https://computingforgeeks.com/how-to-install-latest-kernel-on-centos-linux/ More from&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;blog.kerus.net&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://flightsim.tistory.com/154&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://flightsim.tistory.com/154&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1681972122155&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[Linux, CentOS] CentOS 8 네트워크 관리 명령어, nmcli&quot; data-og-description=&quot;현재 CentOS 공식 홈페이지(https://centos.org/) 에 따르면 최적화 버젼은 매뉴얼화된 CentOS 7.8.2003과 CentOS 8.0.1905 이고 최신 버젼은 CentOS 8.2.2004 이다. RHEL 8 버전 부터는 service network restart 와 systemctl restar&quot; data-og-host=&quot;flightsim.tistory.com&quot; data-og-source-url=&quot;https://flightsim.tistory.com/154&quot; data-og-url=&quot;https://flightsim.tistory.com/154&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/QIoUA/hySlyCuwTw/OFUeI77gEyDAPOIeywRt31/img.png?width=800&amp;amp;height=500&amp;amp;face=0_0_800_500,https://scrap.kakaocdn.net/dn/blW8oh/hySlDX560l/yPkquqmHduWZcC1g0bukY0/img.png?width=800&amp;amp;height=500&amp;amp;face=0_0_800_500,https://scrap.kakaocdn.net/dn/bdjt8r/hySlNzEfmZ/8IjyYoiBytuGkgYH1Qik31/img.jpg?width=1062&amp;amp;height=947&amp;amp;face=0_0_1062_947&quot;&gt;&lt;a href=&quot;https://flightsim.tistory.com/154&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://flightsim.tistory.com/154&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/QIoUA/hySlyCuwTw/OFUeI77gEyDAPOIeywRt31/img.png?width=800&amp;amp;height=500&amp;amp;face=0_0_800_500,https://scrap.kakaocdn.net/dn/blW8oh/hySlDX560l/yPkquqmHduWZcC1g0bukY0/img.png?width=800&amp;amp;height=500&amp;amp;face=0_0_800_500,https://scrap.kakaocdn.net/dn/bdjt8r/hySlNzEfmZ/8IjyYoiBytuGkgYH1Qik31/img.jpg?width=1062&amp;amp;height=947&amp;amp;face=0_0_1062_947');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;[Linux, CentOS] CentOS 8 네트워크 관리 명령어, nmcli&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;현재 CentOS 공식 홈페이지(https://centos.org/) 에 따르면 최적화 버젼은 매뉴얼화된 CentOS 7.8.2003과 CentOS 8.0.1905 이고 최신 버젼은 CentOS 8.2.2004 이다. RHEL 8 버전 부터는 service network restart 와 systemctl restar&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;flightsim.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Operating System</category>
      <category>centos8</category>
      <category>네트워크 찾을 수 없음</category>
      <category>이더넷 없음</category>
      <author>데브심</author>
      <guid isPermaLink="true">https://devesim.tistory.com/135</guid>
      <comments>https://devesim.tistory.com/135#entry135comment</comments>
      <pubDate>Thu, 20 Apr 2023 15:22:09 +0900</pubDate>
    </item>
    <item>
      <title>젠킨스 no suitable constructor found 오류 해결</title>
      <link>https://devesim.tistory.com/134</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;brno256.png&quot; data-origin-width=&quot;211&quot; data-origin-height=&quot;256&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/d5KpMQ/btr7TZlQJrI/AY7UOeLHHWGEP2gePk5T71/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/d5KpMQ/btr7TZlQJrI/AY7UOeLHHWGEP2gePk5T71/img.png&quot; data-alt=&quot;&amp;amp;lt;맥주마시는 젠킨스&amp;amp;gt;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/d5KpMQ/btr7TZlQJrI/AY7UOeLHHWGEP2gePk5T71/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fd5KpMQ%2Fbtr7TZlQJrI%2FAY7UOeLHHWGEP2gePk5T71%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;211&quot; height=&quot;256&quot; data-filename=&quot;brno256.png&quot; data-origin-width=&quot;211&quot; data-origin-height=&quot;256&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;&amp;lt;맥주마시는 젠킨스&amp;gt;&lt;/figcaption&gt;
&lt;/figure&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;&lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&amp;nbsp; &amp;nbsp;[ERROR] no suitable constructor found for &lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&amp;nbsp; &amp;nbsp;[ERROR] (actual and formal argument lists differ in length)&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;* 환경 : 스프링 4.0 , 자바 1.8, 젠킨스 Jenkins 2.346.1, SVN&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;* 원인 : 프로젝트에서 jar 라이브러리등을 변경할 때에 pom등에서 버젼을 정상적으로 올리는 것이 아닌 이름은 동일하게 하고 파일만 바꾸면 젠킨스에서 빌드 시 실제 jar 파일의 크기가 맞지 않아서 발생하는 문제&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;* 해결법 : 문제가 되는 라이브러리 파일은 교체하고 이름은 그대로 사용하지 않고 파일명으로 버전업을 시킨다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;외부 라이브러리를 pom에 등록하는 방법은 &lt;a href=&quot;https://devesim.tistory.com/116&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://devesim.tistory.com/116&lt;/a&gt; 게시글을 참고한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;* 독백 : 젠킨스 관련된 한글 정보가 너무 없어서 올렸습니다..........&lt;/p&gt;</description>
      <category>VCS, CI</category>
      <category>error</category>
      <category>jenkins</category>
      <category>no suitable constructor</category>
      <category>젠킨스</category>
      <author>데브심</author>
      <guid isPermaLink="true">https://devesim.tistory.com/134</guid>
      <comments>https://devesim.tistory.com/134#entry134comment</comments>
      <pubDate>Tue, 4 Apr 2023 13:19:01 +0900</pubDate>
    </item>
    <item>
      <title>혼공학습단 9기 활동 회고하기</title>
      <link>https://devesim.tistory.com/133</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;웹서핑을 하다가 한빛출판네트워크를 알게 되었고 IT 관련 도서를 구매하고 이벤트에 참여하는 등 한빛출판네트워크 사이트에 종종 접속하게 되었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러던 중 혼공학습단 이라는 활동을 알게 되었다. 도서를 구매하고 해당 커리큘럼 과정에 맡게 스스로 학습하고 학습 결과를 개인 운영 SNS나 블로그 등에 올리는 이벤트이다.... 개인은 혼자 학습을 하고 출판사는 PR을 하는 등 서로 win-win 하는 과정이다....&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;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;비록 혼공 9기 활동은 오늘로 끝이났지만 혼자공부하는 데이터 분석은 나중에 시간을 내서 다시 공부를 하고 저자의 강의도 꼼꼼하게 볼 예정이다.&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;/p&gt;</description>
      <category>Public(Study)</category>
      <category>데이터분석</category>
      <category>한공학습</category>
      <category>한빛출판네트워크</category>
      <category>혼공</category>
      <category>혼공학습단</category>
      <author>데브심</author>
      <guid isPermaLink="true">https://devesim.tistory.com/133</guid>
      <comments>https://devesim.tistory.com/133#entry133comment</comments>
      <pubDate>Sun, 19 Feb 2023 21:07:13 +0900</pubDate>
    </item>
    <item>
      <title>[스터디 그룹] 혼공학습단 9기 6주차 미션</title>
      <link>https://devesim.tistory.com/132</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;한빛미디어&amp;nbsp;혼공학습단&amp;nbsp;9기&amp;nbsp;미션&amp;nbsp;진행합니다. &lt;br /&gt;&lt;br /&gt;도서&amp;nbsp;:&amp;nbsp;혼자&amp;nbsp;공부하는&amp;nbsp;데이터&amp;nbsp;분석&amp;nbsp;with&amp;nbsp;파이썬 &lt;br /&gt;&lt;br /&gt;저자&amp;nbsp;:&amp;nbsp;박해선 &lt;br /&gt;&lt;br /&gt;출판&amp;nbsp;:&amp;nbsp;한빛미디어 &lt;br /&gt;&lt;br /&gt;--- &lt;br /&gt;&lt;br /&gt;06-01&amp;nbsp;객체지향&amp;nbsp;API로&amp;nbsp;그래프&amp;nbsp;꾸미기 &lt;br /&gt;&lt;br /&gt;&amp;nbsp;*&amp;nbsp;맷플롯의&amp;nbsp;객체지향&amp;nbsp;API는&amp;nbsp;명시적으로&amp;nbsp;피겨&amp;nbsp;객체와&amp;nbsp;서브플롯&amp;nbsp;객체를&amp;nbsp;만들고&amp;nbsp;이&amp;nbsp;객체의&amp;nbsp;메서드를&amp;nbsp;사용하여&amp;nbsp;맷플롯립&amp;nbsp;그래프를&amp;nbsp;그리는&amp;nbsp;방법입니다. &lt;br /&gt;&lt;br /&gt;&amp;nbsp;*&amp;nbsp;컬러맵은&amp;nbsp;맷플롯립에서&amp;nbsp;그래프를&amp;nbsp;그리는&amp;nbsp;데&amp;nbsp;사용하기&amp;nbsp;위해&amp;nbsp;사전에&amp;nbsp;정의한&amp;nbsp;색상&amp;nbsp;리스트입니다.&amp;nbsp;기본&amp;nbsp;컬러맵은&amp;nbsp;진녹색에서&amp;nbsp;노란색으로&amp;nbsp;변화하는&amp;nbsp;viridis입니다.&amp;nbsp;파란색에서&amp;nbsp;노란색에서&amp;nbsp;빨간색으로&amp;nbsp;바뀌는&amp;nbsp;jet&amp;nbsp;컬러맵도&amp;nbsp;많이&amp;nbsp;사용합니다. &lt;br /&gt;&lt;br /&gt;&amp;nbsp;*&amp;nbsp;컬러&amp;nbsp;막대는&amp;nbsp;데이터&amp;nbsp;포인트에&amp;nbsp;적용된&amp;nbsp;색상의&amp;nbsp;범위를&amp;nbsp;보여주는&amp;nbsp;막대입니다.&amp;nbsp;보통&amp;nbsp;그래프의&amp;nbsp;오른쪽에&amp;nbsp;나란히&amp;nbsp;놓이며&amp;nbsp;색깔이&amp;nbsp;의미하는&amp;nbsp;실제&amp;nbsp;값을&amp;nbsp;참조한느데&amp;nbsp;사용됩니다. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;06-02&amp;nbsp;맷플롯립의&amp;nbsp;고급&amp;nbsp;기능&amp;nbsp;배우기 &lt;br /&gt;&lt;br /&gt;&amp;nbsp;*&amp;nbsp;범례는&amp;nbsp;그래프에&amp;nbsp;그려진&amp;nbsp;데이터의&amp;nbsp;이름과&amp;nbsp;색상을&amp;nbsp;요약한&amp;nbsp;표입니다. &lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp;*&amp;nbsp;피벗&amp;nbsp;테이블은&amp;nbsp;테이블&amp;nbsp;형태의&amp;nbsp;데이터를&amp;nbsp;평균,&amp;nbsp;합&amp;nbsp;등의&amp;nbsp;방식으로&amp;nbsp;집계하여&amp;nbsp;만든&amp;nbsp;요약표입니다. &lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp;*&amp;nbsp;스택&amp;nbsp;영역&amp;nbsp;그래프는&amp;nbsp;여러&amp;nbsp;개의&amp;nbsp;선&amp;nbsp;그래프를&amp;nbsp;y축&amp;nbsp;방향으로&amp;nbsp;쌓은&amp;nbsp;그래프입니다.&amp;nbsp;선&amp;nbsp;아래로&amp;nbsp;색상이&amp;nbsp;채워진&amp;nbsp;영역&amp;nbsp;형태로&amp;nbsp;표현됩니다.&amp;nbsp;마찬가지로&amp;nbsp;여러&amp;nbsp;개의&amp;nbsp;막대&amp;nbsp;그래프를&amp;nbsp;y축&amp;nbsp;방향으로&amp;nbsp;쌓으면&amp;nbsp;스택&amp;nbsp;막대&amp;nbsp;그래프가&amp;nbsp;됩니다.&amp;nbsp;막대&amp;nbsp;위에&amp;nbsp;막대가&amp;nbsp;누적되듯이&amp;nbsp;표현됩니다. &lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp;*&amp;nbsp;원&amp;nbsp;그래프는&amp;nbsp;데이터의&amp;nbsp;비율을&amp;nbsp;부채꼴&amp;nbsp;모양으로&amp;nbsp;나타낸&amp;nbsp;그래프입니다.&amp;nbsp;다만,&amp;nbsp;그래프에&amp;nbsp;비율이&amp;nbsp;표시되어&amp;nbsp;있지&amp;nbsp;않으면&amp;nbsp;크기를&amp;nbsp;비교하기&amp;nbsp;어려우므로&amp;nbsp;autopct&amp;nbsp;매개변수를&amp;nbsp;사용하여&amp;nbsp;명확하게&amp;nbsp;비율을&amp;nbsp;표시해&amp;nbsp;주는&amp;nbsp;것이&amp;nbsp;좋습니다. &lt;br /&gt;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[독백]&amp;nbsp; &lt;br /&gt;어느덧 혼공 학습이 끝이났다... 애초에 사이드 of 사이드 학습으로 시작했던 것인데 너무 작은 틈을 내서 완주하기에 상당히 벅차서 이번 학습은 개인적으로 만족하지는 못한 코스였던 것 같다... 다음에 조금더 시간을 낼 수 있고 집중할 수 있으면 혼공을 제대로 준비해서 제대로 한번 완주해보고 싶다......&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #8a3db6;&quot;&gt;&lt;b&gt;※&amp;nbsp;본&amp;nbsp;내용의&amp;nbsp;저작권은&amp;nbsp;한빛미디어&amp;nbsp;및&amp;nbsp;저자&amp;nbsp;박해선님에게&amp;nbsp;있습니다.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;</description>
      <category>Public(Study)</category>
      <category>데이터 분석</category>
      <category>혼공</category>
      <category>혼공분석</category>
      <category>혼공학습단</category>
      <author>데브심</author>
      <guid isPermaLink="true">https://devesim.tistory.com/132</guid>
      <comments>https://devesim.tistory.com/132#entry132comment</comments>
      <pubDate>Sun, 19 Feb 2023 20:55:12 +0900</pubDate>
    </item>
    <item>
      <title>[스터디 그룹] 혼공학습단 9기 5주차 미션</title>
      <link>https://devesim.tistory.com/131</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;한빛미디어&amp;nbsp;혼공학습단&amp;nbsp;9기&amp;nbsp;미션&amp;nbsp;진행합니다. &lt;br /&gt;&lt;br /&gt;도서&amp;nbsp;:&amp;nbsp;혼자&amp;nbsp;공부하는&amp;nbsp;데이터&amp;nbsp;분석&amp;nbsp;with&amp;nbsp;파이썬 &lt;br /&gt;&lt;br /&gt;저자&amp;nbsp;:&amp;nbsp;박해선 &lt;br /&gt;&lt;br /&gt;출판&amp;nbsp;:&amp;nbsp;한빛미디어 &lt;br /&gt;&lt;br /&gt;--- &lt;br /&gt;&lt;br /&gt;05-1.&amp;nbsp;맷플롯립&amp;nbsp;기본&amp;nbsp;요소&amp;nbsp;알아보기 &lt;br /&gt;&lt;br /&gt;&amp;nbsp;* 피겨는 맷플롯립의 그래프 요소를 모두 담고 있는 최상위 객체입니다. 맷플롯립으로 그래프를 그릴 때 자동으로 피겨가 생성되고, 그래프가 그려진 후 삭제됩니다. 명시적으로 피겨 객체를 만들면 다양한 옵션을 제어할 수 있습니다. &lt;br /&gt;&lt;br /&gt;&amp;nbsp;* rcParams는 맷플롯립 그래프의 기본값을 관리하는 객체입니다. 객체에 담긴 값만 출력하는 것뿐만 아니라 새로운 값으로 바꿀 수도 있습니다. 이후에 그려지는 모든 그래프에 바뀐 설정이 적용됩니다. &lt;br /&gt;&lt;br /&gt;&amp;nbsp;* 축은 그래프에서 데이터 좌표를 표현합니다. 2차원 그래프는 2개의 축을 가지며 3차원 그래프는 3개의 축을 가집니다. 맷플롯립에서는 Axis 클래스로 축 객체를 다룹니다. 두 개 이상의 Axis 객체로 이루어진 Axes 객체는 그래프가 그려질 영역을 표현합니다. &lt;br /&gt;&lt;br /&gt;&amp;nbsp;* 마커는 그래프에 포인트를 표시하는 방법입니다. 맷플롯립의 기본 마커는 동그라미를 나타내는 'o'입니다. rcParams 객체나 scatter() 함수의 marker 매개변수로 마커를 바꿀 수 있습니다. &lt;br /&gt;&lt;br /&gt;&amp;nbsp;* 서브플롯은 피겨 안에 포함된 그래프 영역입니다. 보통 Axes 객체를 일컫습니다. subplots() 함수로 여러 개의 서브플롯과 서브플롯을 포함하는 피겨를 만들 수 있습니다. &lt;br /&gt;&lt;br /&gt;05-2.&amp;nbsp;선&amp;nbsp;그래프와&amp;nbsp;막대&amp;nbsp;그래프&amp;nbsp;그리기 &lt;br /&gt;&lt;br /&gt;&amp;nbsp;* 선 그래프는 각 데이터 포인트를 직선으로 연결한 그래프입니다. 선의 스타일이나 마커의 모양을 바꾸어 풍부하게 표현할 수 있고 데이터값을 그래프에 텍스트로 쓸 수 있습니다. &lt;br /&gt;&lt;br /&gt;&amp;nbsp;* 막대 그래프는 데이터 포인트의 크기를 막대 높이로 나타낸 그래프입니다. 전형적으로 x 좌표는 연속적이지 않은 범주형이며 y 좌표는 해당 범주의 값입니다. 가로 막대 그래프는 값이 클수록 막대의 길이가 가로로 길어집니다. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[독백]&amp;nbsp;이제&amp;nbsp;마지막&amp;nbsp;전주이다..&amp;nbsp;얼마&amp;nbsp;남지&amp;nbsp;않았다..&amp;nbsp;일단&amp;nbsp;이번&amp;nbsp;혼공은&amp;nbsp;경험하는&amp;nbsp;것이니&amp;nbsp;완주해보고&amp;nbsp;뭐가&amp;nbsp;문제인지&amp;nbsp;고민해보고&amp;nbsp;다음번&amp;nbsp;혼공은&amp;nbsp;더&amp;nbsp;잘&amp;nbsp;준비할&amp;nbsp;수&amp;nbsp;있도록&amp;nbsp;해야겠다. &lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #8a3db6;&quot;&gt;&lt;b&gt;※&amp;nbsp;본&amp;nbsp;내용의&amp;nbsp;저작권은&amp;nbsp;한빛미디어&amp;nbsp;및&amp;nbsp;저자&amp;nbsp;박해선님에게&amp;nbsp;있습니다.&lt;/b&gt;&lt;/span&gt; &lt;br /&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>Public(Study)</category>
      <category>데이터 분석</category>
      <category>혼공</category>
      <category>혼공분석</category>
      <category>혼공학습단</category>
      <author>데브심</author>
      <guid isPermaLink="true">https://devesim.tistory.com/131</guid>
      <comments>https://devesim.tistory.com/131#entry131comment</comments>
      <pubDate>Sun, 12 Feb 2023 22:22:33 +0900</pubDate>
    </item>
    <item>
      <title>[스터디 그룹] 혼공학습단 9기 4주차 미션</title>
      <link>https://devesim.tistory.com/130</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;한빛미디어&amp;nbsp;혼공학습단&amp;nbsp;9기&amp;nbsp;미션&amp;nbsp;진행합니다. &lt;br /&gt;&lt;br /&gt;도서&amp;nbsp;:&amp;nbsp;혼자&amp;nbsp;공부하는&amp;nbsp;데이터&amp;nbsp;분석&amp;nbsp;with&amp;nbsp;파이썬 &lt;br /&gt;&lt;br /&gt;저자&amp;nbsp;:&amp;nbsp;박해선 &lt;br /&gt;&lt;br /&gt;출판&amp;nbsp;:&amp;nbsp;한빛미디어 &lt;br /&gt;&lt;br /&gt;--- &lt;br /&gt;&lt;br /&gt;04-1 통계로 요약하기&lt;br /&gt;&lt;br /&gt;* 평균은 데이터값을 모두 더한 후 데이터 개수로 나눈 값입니다. 평균은 일상생활에서도 널리 사용되기 때문에 이해하기 쉽지만, 어떤 기준으로 평균을 계산하는지에 따라 조금씩 다른 의미를 가질 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;* 중앙값은 전체 데이터를 크기 순서대로 일렬로 늘어 놓았을 때 중간에 위치한 값입니다. 전체 데이터 개수가 짝수일 때는 중간의 두 데이터의 평균을 계산합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;* 분위수는 순서대로 나열된 데이터를 일정한 간격으로 나누는 기준입니다. 예를 들어 사분위수는 데이터를 4등분하여, 25%, 50%, 75%에 위치한 값입니다. 백분위수는 데이터를 100개의 구간으로 나눕니다.&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;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;* 최빈값은 데이터에서 가장 많이 등장하는 값을 알려 줍니다. 최빈값은 숫자와 문자 데이터에 모두 적용할 수 있습니다.&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;04-2 분포 요약하기&lt;br /&gt;* 맷플롯립은 파이썬의 대표적인 그래프 패키지입니다. 산점도, 히스토그램, 상사 수염 그림을 비롯하여 막대 그래프, 선 그래프 등 많은 종류의 그래프를 지원합니다. 또한 그래프의 구성 요소를 다양하게 제어할 수 있는 많은 옵션을 제공합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;* 산점도는 데이터를 2차원 평면 또는 3차원 공간에 점으로 표시하는 그래프입니다. 차원의 제약으로 일반적으로 두 개 또는 세 개의 특성을 표현할 수 있지만, 점의 색깔을 달리하여 한 개의 특성을 더 표현할 수도 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;* 히스토그램은 데이터를 일정 구간으로 나누어 구간에 속한 데이터 개수(도수)를 막대로 표현하는 그래프입니다. 데이터가 어떤 부부넹 집중되어 분포되어 있는지 잘 볼 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;* 그래프가 한쪽에 편중되어 그려진다면 x, y축을 로그 스케일로 바꾸어 그릴 수 있습니다. 수치를 로그로 간결하게 표시할 수 있어 넓은 범위의 데이터를 표시하기 좋습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;* 상자 수염 그림은 사분위수, 최솟값, 최대값을 사용해 여러 특성의 분포를 비교할 수 있는 그래프입니다. 제1사분위수와 제3사분위수를 사용해 상자를 그리고, 상자의 IQR 거리의 1.5배 범위 안에서 가장 멀리 떨어진 데이터까지 수직선(수염)을 그려서 분포를 표현합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[독백] 음... 원래 계획데로 뭔가 잘 안되고 있다........ 음 ... 아무튼 혼공 끝나고 다시 곱씹어볼 생각이다. 처음에 혼공 들어갈때는 이렇게 빡센지를 몰랐다 .... ㅡ0ㅡ;;;; 혼공족장이 알려준 Q&amp;amp;A나 저자와의 대화를 할려면 정말 엄청난 노력이 필요하다......&amp;nbsp;&lt;br /&gt;&lt;br /&gt;※&amp;nbsp;본&amp;nbsp;내용의&amp;nbsp;저작권은&amp;nbsp;한빛미디어&amp;nbsp;및&amp;nbsp;저자&amp;nbsp;박해선님에게&amp;nbsp;있습니다.&lt;/p&gt;</description>
      <category>Public(Study)</category>
      <category>데이터 분석</category>
      <category>혼공</category>
      <category>혼공분석</category>
      <category>혼공학습단</category>
      <author>데브심</author>
      <guid isPermaLink="true">https://devesim.tistory.com/130</guid>
      <comments>https://devesim.tistory.com/130#entry130comment</comments>
      <pubDate>Sun, 5 Feb 2023 20:16:49 +0900</pubDate>
    </item>
    <item>
      <title>Apache POI 엑셀 저장 시 높이를 자동으로 설정하기</title>
      <link>https://devesim.tistory.com/129</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;apache poi logo.png&quot; data-origin-width=&quot;487&quot; data-origin-height=&quot;140&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/BHJkH/btrXIzdd4lo/XtjFJh6d57qUdrAk4YAdw0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/BHJkH/btrXIzdd4lo/XtjFJh6d57qUdrAk4YAdw0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/BHJkH/btrXIzdd4lo/XtjFJh6d57qUdrAk4YAdw0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FBHJkH%2FbtrXIzdd4lo%2FXtjFJh6d57qUdrAk4YAdw0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;487&quot; height=&quot;140&quot; data-filename=&quot;apache poi logo.png&quot; data-origin-width=&quot;487&quot; data-origin-height=&quot;140&quot;/&gt;&lt;/span&gt;&lt;/figure&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;* 개요 : 스프링을 이용하여 엑셀 저장 기능 구현 시 아래 그림 [A]와 같이 여러줄의 내용이 한줄에 나와서 사용자가 높이를 조절해야만 [B]처럼 깔끔하게 나와 번거로운 상황이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;explain.png&quot; data-origin-width=&quot;810&quot; data-origin-height=&quot;282&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cZYOBn/btrXHHwwGkh/XK8zWI5J0atXezKcIvtqqK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cZYOBn/btrXHHwwGkh/XK8zWI5J0atXezKcIvtqqK/img.png&quot; data-alt=&quot;Apache POI 구현 설명&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cZYOBn/btrXHHwwGkh/XK8zWI5J0atXezKcIvtqqK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcZYOBn%2FbtrXHHwwGkh%2FXK8zWI5J0atXezKcIvtqqK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;810&quot; height=&quot;282&quot; data-filename=&quot;explain.png&quot; data-origin-width=&quot;810&quot; data-origin-height=&quot;282&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Apache POI 구현 설명&lt;/figcaption&gt;
&lt;/figure&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;* 해결 방법 : 하단 코드와 같이 row의 스타일을 적용하는 부분 아래에 setWrapText(true) 옵션을 추가한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;적용하는 컬럼 1개만 적용해도 모든 row에 적용된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;본인 소스에 맡게 수정한다.&lt;/p&gt;
&lt;pre id=&quot;code_1675214020194&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import org.apache.poi.ss.usermodel.Row;
...

Row row = null;



...
...

row.getCell(5).getCellStyle(left_style);   // 스타일을 적요하는 부분
row.getCell(5).getCellStyle().setWrapText(true);   // 자동 줄 바꿈 기능

...&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&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;a href=&quot;https://goni9071.tistory.com/5&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://goni9071.tistory.com/5&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1675214115391&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;apache poi 엑셀 병합된 셀 자동 높이 조절하기&quot; data-og-description=&quot;apache poi 로 엑셀작업을 하다보면 셀(Cell) 크기 문제로 어려움을 겪는 경우가 많이 있습니다. Cell 세로 높이에 대해서 알아보겠습니다. 가로 크기를 자동으로 해놓으면 내용에 따라 가로 넓이가 &quot; data-og-host=&quot;goni9071.tistory.com&quot; data-og-source-url=&quot;https://goni9071.tistory.com/5&quot; data-og-url=&quot;https://goni9071.tistory.com/5&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/c9u2uP/hyRt3QofwQ/hskR0jkIKjFPygqfY0qQck/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/rUCvM/hyRsu3alD0/UVB3uVTyc8m6xlowdy7tK0/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800&quot;&gt;&lt;a href=&quot;https://goni9071.tistory.com/5&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://goni9071.tistory.com/5&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/c9u2uP/hyRt3QofwQ/hskR0jkIKjFPygqfY0qQck/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/rUCvM/hyRsu3alD0/UVB3uVTyc8m6xlowdy7tK0/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;apache poi 엑셀 병합된 셀 자동 높이 조절하기&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;apache poi 로 엑셀작업을 하다보면 셀(Cell) 크기 문제로 어려움을 겪는 경우가 많이 있습니다. Cell 세로 높이에 대해서 알아보겠습니다. 가로 크기를 자동으로 해놓으면 내용에 따라 가로 넓이가&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;goni9071.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Java</category>
      <category>Apache POI</category>
      <category>아파치 피오아이</category>
      <category>엑셀 높이 자동 수정</category>
      <category>엑셀 저장 구현</category>
      <author>데브심</author>
      <guid isPermaLink="true">https://devesim.tistory.com/129</guid>
      <comments>https://devesim.tistory.com/129#entry129comment</comments>
      <pubDate>Wed, 1 Feb 2023 10:15:45 +0900</pubDate>
    </item>
    <item>
      <title>젠킨스 centos shell로 톰캣 재기동 시키기</title>
      <link>https://devesim.tistory.com/128</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;개요 : 개발서버에서 젠킨스를 이용하여 svn에 등록된 소스를 톰캣에 반영시키는 중인데 젠킨스에서 빌드를 시킬 때 톰캣을 수동으로 재기동 시키기 않으면 적용이 제대로 안되는 문제가 발생하였다. 그리하여 젠킨스 빌드후에 쉘을 사용하여 톰캣이 재기동 되도록 하였다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;환경 : centos 7, 젠킨스 2.346.1, 톰캣 8.5&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;1. 본인이 원하는 경로에 vi나 vim으로 sh 파일을 만든다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; * 예시 : /usr/local/etc/jenkins_custom/custom_tomcat_restart.sh&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; * sh 파일의 내용&lt;/p&gt;
&lt;pre id=&quot;code_1674776471379&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;echo 'Tomcat shutdown'
/usr/local/apache-tomcat-8.5.xx/bin/shutdown.sh

sleep 10

echo 'Tomcat start'
/usr/local/apache-tomcat-8.5.xx/bin/startup.sh&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. visudo 명령어를 사용하여 /etc/sudoers 파일을 수정한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;약 100라인쯤에 root ALL=(ALL)&amp;nbsp; &amp;nbsp; &amp;nbsp;ALL 라인이 보이면 하단에&lt;/p&gt;
&lt;pre id=&quot;code_1674776897641&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;root    ALL=(ALL)          ALL
jenkins ALL=(ALL)   NOPASSWD: ALL&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;추가 후 저장한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. 젠킨스에서 빌드 후에 쉘을 실행하도록 지정한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;jenkins.png&quot; data-origin-width=&quot;1263&quot; data-origin-height=&quot;646&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ckHIKw/btrXgxHKBAg/8wzCKDaRVEWcLBInNCAis0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ckHIKw/btrXgxHKBAg/8wzCKDaRVEWcLBInNCAis0/img.png&quot; data-alt=&quot;젠킨스에서 빌드 후에 쉘을 실행하도록 설정&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ckHIKw/btrXgxHKBAg/8wzCKDaRVEWcLBInNCAis0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FckHIKw%2FbtrXgxHKBAg%2F8wzCKDaRVEWcLBInNCAis0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1263&quot; height=&quot;646&quot; data-filename=&quot;jenkins.png&quot; data-origin-width=&quot;1263&quot; data-origin-height=&quot;646&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;젠킨스에서 빌드 후에 쉘을 실행하도록 설정&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. 젠킨스에서 빌드를 진행하면 쉘(sh)이 동작하는 것을 로그를 통해서 확인 할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5. &lt;span style=&quot;color: #ef6f53;&quot;&gt;&lt;b&gt;문제발생&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;sh 파일에서 sleep을 10초 이상으로 설정하면 젠킨스 오류가 발생한다...&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;그리고 자바나 sql 이 정상적으로 반영이 안되는 문제가 발생하였다. 메모리에 톰캣이 남아있어서 발생하는 문제인 것 같은데 추후에 해결책을 찾아봐야겠다......&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[도움을 받은 곳]&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;visudo : &lt;a href=&quot;https://mans-daily.tistory.com/entry/%EB%A6%AC%EB%88%85%EC%8A%A4UbuntuCentOS-etcsudoers-%ED%8C%8C%EC%9D%BC%EC%9D%84-%EC%88%98%EC%A0%95%ED%95%98%EC%97%AC-sudo-%EA%B6%8C%ED%95%9C-%EB%B0%8F-root-%EA%B6%8C%ED%95%9C-%EB%B6%80%EC%97%AC%ED%95%98%EA%B8%B0&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://mans-daily.tistory.com/entry/%EB%A6%AC%EB%88%85%EC%8A%A4UbuntuCentOS-etcsudoers-%ED%8C%8C%EC%9D%BC%EC%9D%84-%EC%88%98%EC%A0%95%ED%95%98%EC%97%AC-sudo-%EA%B6%8C%ED%95%9C-%EB%B0%8F-root-%EA%B6%8C%ED%95%9C-%EB%B6%80%EC%97%AC%ED%95%98%EA%B8%B0&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1674776769268&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[리눅스(Ubuntu/CentOS)] /etc/sudoers 파일을 수정하여 sudo 권한 및 root 권한 부여하기&quot; data-og-description=&quot;안녕하세요 오늘 포스팅에서는 리눅스 사용자에게 sudo 권한과 root 권한을 부여하기 위해 /etc/sudoers 파일을 수정하는 방법을 설명하도록 하겠습니다. 우선 /etc/sudoers 파일은 root 권한이 있어야지&quot; data-og-host=&quot;mans-daily.tistory.com&quot; data-og-source-url=&quot;https://mans-daily.tistory.com/entry/%EB%A6%AC%EB%88%85%EC%8A%A4UbuntuCentOS-etcsudoers-%ED%8C%8C%EC%9D%BC%EC%9D%84-%EC%88%98%EC%A0%95%ED%95%98%EC%97%AC-sudo-%EA%B6%8C%ED%95%9C-%EB%B0%8F-root-%EA%B6%8C%ED%95%9C-%EB%B6%80%EC%97%AC%ED%95%98%EA%B8%B0&quot; data-og-url=&quot;https://mans-daily.tistory.com/entry/%EB%A6%AC%EB%88%85%EC%8A%A4UbuntuCentOS-etcsudoers-%ED%8C%8C%EC%9D%BC%EC%9D%84-%EC%88%98%EC%A0%95%ED%95%98%EC%97%AC-sudo-%EA%B6%8C%ED%95%9C-%EB%B0%8F-root-%EA%B6%8C%ED%95%9C-%EB%B6%80%EC%97%AC%ED%95%98%EA%B8%B0&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/b4yBij/hyRoFEbc4L/2NEKQSO7FpXBpSCZr4SlPk/img.png?width=446&amp;amp;height=239&amp;amp;face=0_0_446_239,https://scrap.kakaocdn.net/dn/c86kAv/hyRoKldcXf/pOEvEFNfah81q9T8QDKzO1/img.png?width=446&amp;amp;height=239&amp;amp;face=0_0_446_239,https://scrap.kakaocdn.net/dn/u5zZN/hyRpHmSIW6/nD1vrFAyLEwD2a5ThzSol0/img.png?width=1465&amp;amp;height=892&amp;amp;face=0_0_1465_892&quot;&gt;&lt;a href=&quot;https://mans-daily.tistory.com/entry/%EB%A6%AC%EB%88%85%EC%8A%A4UbuntuCentOS-etcsudoers-%ED%8C%8C%EC%9D%BC%EC%9D%84-%EC%88%98%EC%A0%95%ED%95%98%EC%97%AC-sudo-%EA%B6%8C%ED%95%9C-%EB%B0%8F-root-%EA%B6%8C%ED%95%9C-%EB%B6%80%EC%97%AC%ED%95%98%EA%B8%B0&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://mans-daily.tistory.com/entry/%EB%A6%AC%EB%88%85%EC%8A%A4UbuntuCentOS-etcsudoers-%ED%8C%8C%EC%9D%BC%EC%9D%84-%EC%88%98%EC%A0%95%ED%95%98%EC%97%AC-sudo-%EA%B6%8C%ED%95%9C-%EB%B0%8F-root-%EA%B6%8C%ED%95%9C-%EB%B6%80%EC%97%AC%ED%95%98%EA%B8%B0&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/b4yBij/hyRoFEbc4L/2NEKQSO7FpXBpSCZr4SlPk/img.png?width=446&amp;amp;height=239&amp;amp;face=0_0_446_239,https://scrap.kakaocdn.net/dn/c86kAv/hyRoKldcXf/pOEvEFNfah81q9T8QDKzO1/img.png?width=446&amp;amp;height=239&amp;amp;face=0_0_446_239,https://scrap.kakaocdn.net/dn/u5zZN/hyRpHmSIW6/nD1vrFAyLEwD2a5ThzSol0/img.png?width=1465&amp;amp;height=892&amp;amp;face=0_0_1465_892');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;[리눅스(Ubuntu/CentOS)] /etc/sudoers 파일을 수정하여 sudo 권한 및 root 권한 부여하기&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;안녕하세요 오늘 포스팅에서는 리눅스 사용자에게 sudo 권한과 root 권한을 부여하기 위해 /etc/sudoers 파일을 수정하는 방법을 설명하도록 하겠습니다. 우선 /etc/sudoers 파일은 root 권한이 있어야지&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;mans-daily.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;젠킨스 설정 : &lt;a href=&quot;https://velog.io/@livenow/Jenkins-Execute-Shell-%EB%AA%85%EB%A0%B9%EC%96%B4%EC%97%90%EC%84%9C-sudo%EB%A5%BC-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0-%EC%9C%84%ED%95%9C-%EC%84%A4%EC%A0%95&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://velog.io/@livenow/Jenkins-Execute-Shell-%EB%AA%85%EB%A0%B9%EC%96%B4%EC%97%90%EC%84%9C-sudo%EB%A5%BC-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0-%EC%9C%84%ED%95%9C-%EC%84%A4%EC%A0%95&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1674777105975&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[Jenkins] Execute Shell 명령어에서 sudo를 사용하기 위한 설정&quot; data-og-description=&quot;젠킨스에서 빌드 진행 시 관리자 권한으로 실행이 필요한 경우가 있습니다.&quot; data-og-host=&quot;velog.io&quot; data-og-source-url=&quot;https://velog.io/@livenow/Jenkins-Execute-Shell-%EB%AA%85%EB%A0%B9%EC%96%B4%EC%97%90%EC%84%9C-sudo%EB%A5%BC-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0-%EC%9C%84%ED%95%9C-%EC%84%A4%EC%A0%95&quot; data-og-url=&quot;https://velog.io/@livenow/Jenkins-Execute-Shell-명령어에서-sudo를-사용하기-위한-설정&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/frRod/hyRoDl5xIj/i5deBYGvke3rxfSRQYkOTK/img.png?width=950&amp;amp;height=500&amp;amp;face=0_0_950_500,https://scrap.kakaocdn.net/dn/gBlg4/hyRpGhejPz/oMPdoTcb5rPG4GWYNS6D7K/img.png?width=1790&amp;amp;height=829&amp;amp;face=0_0_1790_829,https://scrap.kakaocdn.net/dn/bRysHV/hyRpHf8ba3/RTbnM52B9JQ7w5LKsKyEP1/img.png?width=494&amp;amp;height=468&amp;amp;face=0_0_494_468&quot;&gt;&lt;a href=&quot;https://velog.io/@livenow/Jenkins-Execute-Shell-%EB%AA%85%EB%A0%B9%EC%96%B4%EC%97%90%EC%84%9C-sudo%EB%A5%BC-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0-%EC%9C%84%ED%95%9C-%EC%84%A4%EC%A0%95&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://velog.io/@livenow/Jenkins-Execute-Shell-%EB%AA%85%EB%A0%B9%EC%96%B4%EC%97%90%EC%84%9C-sudo%EB%A5%BC-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0-%EC%9C%84%ED%95%9C-%EC%84%A4%EC%A0%95&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/frRod/hyRoDl5xIj/i5deBYGvke3rxfSRQYkOTK/img.png?width=950&amp;amp;height=500&amp;amp;face=0_0_950_500,https://scrap.kakaocdn.net/dn/gBlg4/hyRpGhejPz/oMPdoTcb5rPG4GWYNS6D7K/img.png?width=1790&amp;amp;height=829&amp;amp;face=0_0_1790_829,https://scrap.kakaocdn.net/dn/bRysHV/hyRpHf8ba3/RTbnM52B9JQ7w5LKsKyEP1/img.png?width=494&amp;amp;height=468&amp;amp;face=0_0_494_468');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;[Jenkins] Execute Shell 명령어에서 sudo를 사용하기 위한 설정&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;젠킨스에서 빌드 진행 시 관리자 권한으로 실행이 필요한 경우가 있습니다.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;velog.io&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>VCS, CI</category>
      <category>SH</category>
      <category>쉘</category>
      <category>젠킨스</category>
      <category>톰캣 재기동</category>
      <author>데브심</author>
      <guid isPermaLink="true">https://devesim.tistory.com/128</guid>
      <comments>https://devesim.tistory.com/128#entry128comment</comments>
      <pubDate>Fri, 27 Jan 2023 08:56:42 +0900</pubDate>
    </item>
    <item>
      <title>[스터디 그룹] 혼공학습단 9기 3주차 미션</title>
      <link>https://devesim.tistory.com/127</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000;&quot;&gt;한빛미디어&amp;nbsp;혼공학습단&amp;nbsp;9기&amp;nbsp;미션&amp;nbsp;진행합니다.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000;&quot;&gt;도서&amp;nbsp;:&amp;nbsp;혼자&amp;nbsp;공부하는&amp;nbsp;데이터&amp;nbsp;분석&amp;nbsp;with&amp;nbsp;파이썬&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000;&quot;&gt;저자&amp;nbsp;:&amp;nbsp;박해선&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000;&quot;&gt;출판&amp;nbsp;:&amp;nbsp;한빛미디어&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000;&quot;&gt;---&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000;&quot;&gt;03-1 불필요한 데이터 삭제하기&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000;&quot;&gt;* 데이터 정제는 수집된 데이터에서 잘못된 부분을 고치거나 제거하여 필요한 데이터를 준비하는 과정입니다. 데이터가 올바르게 정제되지 못하면 분석된 결과를 왜곡시킬 수 있으며 잘못된 의사 결정을 초래하기도 합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000;&quot;&gt;* 데이터를 정제하는 과정과 데이터 분석 및 머신러닝에 적합한 형태로 데이터를 변환하는 과정을 합쳐서 데이터 랭글링(혹은 데이터 먼징)이라고 합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000;&quot;&gt;* 판다스의 데이터프레임과 인덱스를 하나의 값과 비교하면 데이터프레임과 인덱스에 있는 모든 원소와 비교합니다. 이를 원소별 비교라고 부릅니다. 비교한 결과는 True 또는 False로 이루어진 불리언 배열로 변환됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000;&quot;&gt;* 넘파이는 파이썬의 대표적인 다차원 배열입니다. 판다스의 데이터프레임과 달리 한 종류의 데이터만 담을 수 있지만 매우 효율적이고 성능이 높습니다. 파이썬의 다른 과학 패키지와 호환성이 높으며 기본 데이터 구조로 널리 사용됩니다.&lt;/span&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;&lt;span style=&quot;background-color: #ffffff; color: #000000;&quot;&gt;03-2 잘못된 데이터 수집하기&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000;&quot;&gt;* NaN은 판다스에서 누락된 값을 표시하는 기호입니다. insa() 메서드를 사용하여 NaN의 여부를 확인하거나 notna() 메서드를 사용해 NaN이 아닌 값인지 체크할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000;&quot;&gt;* 정규 표현식은 문자열에서 패턴을 찾고 대체하기 위한 규칙의 모음입니다. 정규 표현식을 사용하면 복잡한 패턴을 가진 문자열을 쉽게 검색할 수 있습니다.&lt;/span&gt;&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;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;※&amp;nbsp;본&amp;nbsp;내용의&amp;nbsp;저작권은&amp;nbsp;한빛미디어&amp;nbsp;및&amp;nbsp;저자&amp;nbsp;박해선님에게&amp;nbsp;있습니다.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;</description>
      <category>Public(Study)</category>
      <category>데이터 분석</category>
      <category>혼공</category>
      <category>혼공분석</category>
      <category>혼공학습단</category>
      <author>데브심</author>
      <guid isPermaLink="true">https://devesim.tistory.com/127</guid>
      <comments>https://devesim.tistory.com/127#entry127comment</comments>
      <pubDate>Tue, 24 Jan 2023 21:17:01 +0900</pubDate>
    </item>
    <item>
      <title>[스터디 그룹] 혼공학습단 9기 2주차 미션</title>
      <link>https://devesim.tistory.com/126</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;한빛미디어&amp;nbsp;혼공학습단&amp;nbsp;9기&amp;nbsp;미션&amp;nbsp;진행합니다. &lt;br /&gt;&lt;br /&gt;도서&amp;nbsp;:&amp;nbsp;혼자&amp;nbsp;공부하는&amp;nbsp;데이터&amp;nbsp;분석&amp;nbsp;with&amp;nbsp;파이썬 &lt;br /&gt;&lt;br /&gt;저자&amp;nbsp;:&amp;nbsp;박해선 &lt;br /&gt;&lt;br /&gt;출판&amp;nbsp;:&amp;nbsp;한빛미디어 &lt;br /&gt;&lt;br /&gt;---&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4가지 키워드로 정리하는 핵심 포인트&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;˙ API는 프로그램 간 데이터를 전달하기 위해 정한 규칙입니다. 수동으로 데이터를 받는 방법은 매주, 매일 반복되는 작업에는 적절하지 않습니다. 이런 경우 공개 API가 제공되는지 살펴보세요. 공개 API를 사용하면 데이터 수집 과정을 자동화할 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;˙ HTTP는 웹에서 데이터를 주고받기 위한 프로토콜입니다. 예를 들면 웹 페이지, 이미지 등을 받아 웹 브라우저에 나타내는데 HTTP를 사용합니다. 그래서 웹 브라우저로 접속하는 인터넷 URL 주소는 모두 http 혹은 보안이 강화된 https로 시작합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;˙ JSON은 근래에 아주 많이 사용하는 데이터 전달 포맷입니다. 자바스크립트뿐만 아니라 웹기반 API에서도 널리 대중화되어 있습니다. JSON의 장점은 HTML이나 XML보다 사람이 읽기 편하고 간단하게 파이썬 객체로 변환할 수 있는 것입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;˙ XML은 JSON 보다 조금 장황하지만 사람이 이해하기 쉬운 구조적인 포맷을 제공합니다. 파이썬에서는 기본으로 제공되는 xml 패키지를 사용하여 XML 문서에 있는 엘리먼트를 탐색할 수 있고, 판다스의 경우 read_xml() 함수를 사용하여 데이터프레임으로 바꿀 수 있습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;2week 1 (2).jpg&quot; data-origin-width=&quot;640&quot; data-origin-height=&quot;479&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/TWevR/btrWdfhaDoj/TIQ3BWPQhwpYrNlRUekQR1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/TWevR/btrWdfhaDoj/TIQ3BWPQhwpYrNlRUekQR1/img.jpg&quot; data-alt=&quot;2-1 연습문제 풀이&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/TWevR/btrWdfhaDoj/TIQ3BWPQhwpYrNlRUekQR1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FTWevR%2FbtrWdfhaDoj%2FTIQ3BWPQhwpYrNlRUekQR1%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;640&quot; height=&quot;479&quot; data-filename=&quot;2week 1 (2).jpg&quot; data-origin-width=&quot;640&quot; data-origin-height=&quot;479&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;2-1 연습문제 풀이&lt;/figcaption&gt;
&lt;/figure&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;2가지 키워드로 정리하는 핵심 포인트&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;˙&lt;span&gt; 웹 스크래핑은 웹사이트에서 필요한 데이터를 추출하는 기술입니다. HTML은 구조적이지 않기 때문에 스크래핑으로 데이터를 수집하는데 비교적 많은 노력이 필요합니다. 따라서 웹 스크래핑을 사용하기 전에 먼저 공개 API를 통해 사용할 수 있는지 살펴보는 것이 좋습니다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;˙&lt;span&gt; 뷰티플수프는 HTML 문서를 파싱하는데 사용하는 대표적인 파이썬 패키지입니다. 사용법이 쉽고 빠르기 때문에 파이썬 프로그래머들이 즐겨 사용합니다. 뷰티플수프는 requests 패키지로 가져온 HTML에서 원하는 태그나 텍스트를 찾는 기능을 제공합니다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;2week 2 (2).jpg&quot; data-origin-width=&quot;640&quot; data-origin-height=&quot;479&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/uFwDs/btrWlmr3lAG/WxFZEk2wWWlQkCw7iXJua0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/uFwDs/btrWlmr3lAG/WxFZEk2wWWlQkCw7iXJua0/img.jpg&quot; data-alt=&quot;2-2 연습문제 풀이&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/uFwDs/btrWlmr3lAG/WxFZEk2wWWlQkCw7iXJua0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FuFwDs%2FbtrWlmr3lAG%2FWxFZEk2wWWlQkCw7iXJua0%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;640&quot; height=&quot;479&quot; data-filename=&quot;2week 2 (2).jpg&quot; data-origin-width=&quot;640&quot; data-origin-height=&quot;479&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;2-2 연습문제 풀이&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&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;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;※&amp;nbsp;본&amp;nbsp;내용의&amp;nbsp;저작권은&amp;nbsp;한빛미디어&amp;nbsp;및&amp;nbsp;저자&amp;nbsp;박해선님에게&amp;nbsp;있습니다.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;</description>
      <category>Public(Study)</category>
      <category>데이터 분석</category>
      <category>혼공</category>
      <category>혼공분석</category>
      <category>혼공학습단</category>
      <author>데브심</author>
      <guid isPermaLink="true">https://devesim.tistory.com/126</guid>
      <comments>https://devesim.tistory.com/126#entry126comment</comments>
      <pubDate>Sun, 15 Jan 2023 21:29:41 +0900</pubDate>
    </item>
    <item>
      <title>[스터디 그룹] 혼공학습단 9기 1주차 미션</title>
      <link>https://devesim.tistory.com/125</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;한빛미디어 혼공학습단 9기 미션 진행합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;도서 : 혼자 공부하는 데이터 분석 with 파이썬&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;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;---&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;챕터 01 데이터 분석을 시작하며&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; 01-1 데이터 분석이란&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; 데이터 분석은 데이터를 수집, 처리, 정체, 분석, 모델링하여 의사 결정을 내리는 데 도움을 주는 작업입니다. 통계학과 머신러닝의 기술을 사용하고 비지니스 문제를 해결하기 위해 도메인 지식이 필요합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; 데이터 과학은 데이터 분석, 머신러닝을 아우르는 개념입니다. 데이터 분석에 비해 머신러닝 모델을 만들어 문제를 해결하는데 많은 비중을 둡니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; 파이썬은 데이터 분석, 데이터 과학, 머신러닝 작업에 사요할 수 있는 인기 있는 프로그래밍 언어입니다. 넘파이, 판다스, 맷플롯립 등 데이터 분석에 필요한 다양한 패키지를 손쉽게 사용할 수 있습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;011.jpg&quot; data-origin-width=&quot;1058&quot; data-origin-height=&quot;1411&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cMz6Q1/btrVG0i653N/OQ81l0JiSRHFvaWuihF2l1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cMz6Q1/btrVG0i653N/OQ81l0JiSRHFvaWuihF2l1/img.jpg&quot; data-alt=&quot;01-1 확인 문제&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cMz6Q1/btrVG0i653N/OQ81l0JiSRHFvaWuihF2l1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcMz6Q1%2FbtrVG0i653N%2FOQ81l0JiSRHFvaWuihF2l1%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;440&quot; height=&quot;587&quot; data-filename=&quot;011.jpg&quot; data-origin-width=&quot;1058&quot; data-origin-height=&quot;1411&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;01-1 확인 문제&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; 01-2 구글 코랩과 주피터 노트북&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; 코랩은 구글 계정을 가지고 있다면 누구나 사용할 수 있는 웹 브라우저 기반의 파이썬 코드 실행 환경입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; 노트북은 코랩의 프로그램 작성 파일입니다. 일반 프로그램 파일과 달리 대화식으로 프로그램을 만들 수 있기 때문에 데이터 분석이나 교육에 매우 적합합니다. 노트북에는 코드, 코드 실행 결과, 문서를 모두 저장하여 보관할 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; 구글 드라이브는 구글이 제공하는 클라우드 파일 저장 서비스입니다. 코랩에서 만든 노트북을 구글 드라이브의 'Colab Notebooks' 폴더에 저장할 수 있고 필요할 때 다시 코랩에서 열 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; 깃허브는 분산 버전 관리 툴인 깃의 저장소를 호스팅하는 웹 서비스입니다. 코드 수정 이력을 버전별로 관리할 수 있고 여러 사람이 공동으로 작업하기 편리한 환경을 제공합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; 마크다운은 HTML과 같이 일반 텍스트로 서식이쓴 문서를 작성하는데 사용합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;012.jpg&quot; data-origin-width=&quot;1058&quot; data-origin-height=&quot;1411&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ntelZ/btrVKZYjGVa/bw652w9xL61egJrNU0fPkK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ntelZ/btrVKZYjGVa/bw652w9xL61egJrNU0fPkK/img.jpg&quot; data-alt=&quot;01-2 구글 코랩과 주피터 노트북&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ntelZ/btrVKZYjGVa/bw652w9xL61egJrNU0fPkK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FntelZ%2FbtrVKZYjGVa%2Fbw652w9xL61egJrNU0fPkK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;470&quot; height=&quot;627&quot; data-filename=&quot;012.jpg&quot; data-origin-width=&quot;1058&quot; data-origin-height=&quot;1411&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;01-2 구글 코랩과 주피터 노트북&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; 01-3 이 도서가 얼마나 인기가 좋을까요?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; 공개 데이터 세트는 기업이나 정부 등이 무료로 공개하는 데이터 세트입니다. 누구나 저작권에 상관없이 다운로드하여 데이터 분석이나 제품 개발에 활용할 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; CSV 파일은 콤마(,)로 구분된 텍스트 파일입니다. 한 줄의 하나의 레코드이며, 레코드는 콤마로 구분된 여러 필드 혹은 열로 구성됩니다. 데이터가 엑셀처럼 표 형태를 가져야 하기 때문에 레코드에 있는 필드 개수는 모두 동일해야 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; 판다스는 표 형식 데이터를 위한 편리한 도구를 다양하게 제공하는 강력한 데이터 분석 패키지입니다. CSV나 엑셀 파일을 읽거나 쓸 수 있으며 데이터 분석을 위한 많은 기능을 제공합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; 데이터프레임은 판다스의 핵심 데이터 구조로 행과 열로 구성됩니다. CSV 파일이나 엑셀 파일로부터 데이터프레임을 만들 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; 시리즈는 1차원 배열과 흡사한 판다스의 객체입니다. 시리즈는 한 종류의 데이터만 포함할 수 있습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;013.jpg&quot; data-origin-width=&quot;1058&quot; data-origin-height=&quot;1411&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bYDaQu/btrVLvbNH8V/W3FC6PLxS2EuWYhKAip6UK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bYDaQu/btrVLvbNH8V/W3FC6PLxS2EuWYhKAip6UK/img.jpg&quot; data-alt=&quot;01-3 이 도서가 얼마나 인기가 좋을까요?&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bYDaQu/btrVLvbNH8V/W3FC6PLxS2EuWYhKAip6UK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbYDaQu%2FbtrVLvbNH8V%2FW3FC6PLxS2EuWYhKAip6UK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;477&quot; height=&quot;636&quot; data-filename=&quot;013.jpg&quot; data-origin-width=&quot;1058&quot; data-origin-height=&quot;1411&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;01-3 이 도서가 얼마나 인기가 좋을까요?&lt;/figcaption&gt;
&lt;/figure&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;[독백] 내가 평소에 하는 웹개발 쪽이 아닌 새로운 분야를 side of side로 공부하고 싶어서 한빛 출판사 혼공족 9기에 지원해서 미션을 진행중이다... 와 이거 데이터 분석 공부하는 것은 처음인데 용어가 왜이렇게 낯선지.... 아아아 ㅡ0ㅡ;;;;;&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;※ 본 내용의 저작권은 한빛미디어 및 저자 박해선님에게 있습니다.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;</description>
      <category>Public(Study)</category>
      <category>혼공</category>
      <category>혼공분석</category>
      <category>혼공학습단</category>
      <category>혼자 공부하는 데이터 분석</category>
      <author>데브심</author>
      <guid isPermaLink="true">https://devesim.tistory.com/125</guid>
      <comments>https://devesim.tistory.com/125#entry125comment</comments>
      <pubDate>Sun, 8 Jan 2023 22:21:54 +0900</pubDate>
    </item>
    <item>
      <title>DBeaver 쿼리 작성 시 맨앞 문자 대문자 자동변환 끄기</title>
      <link>https://devesim.tistory.com/124</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;dbeaver_logo_bg.png&quot; data-origin-width=&quot;153&quot; data-origin-height=&quot;62&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Eaxdv/btrQK02pa3h/otA31I9t9r5I7O358aKOv0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Eaxdv/btrQK02pa3h/otA31I9t9r5I7O358aKOv0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Eaxdv/btrQK02pa3h/otA31I9t9r5I7O358aKOv0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FEaxdv%2FbtrQK02pa3h%2FotA31I9t9r5I7O358aKOv0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;153&quot; height=&quot;62&quot; data-filename=&quot;dbeaver_logo_bg.png&quot; data-origin-width=&quot;153&quot; data-origin-height=&quot;62&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;개요 : DBMS로 훌륭한 DBeaver를 최근부터 사용중이다.. 자잘한 오류를 제외하면 나름 만족하며 사용하고 있다. 헌데 쿼리 작성 시 as를 치면 자꾸 As로 자동 변환되어서 상당히 귀찮다. 끄는 옵션을 알아보자&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사용버전 : DBeaver 22.1.0&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;끄는 방법 :&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;dbeaver exp.png&quot; data-origin-width=&quot;1456&quot; data-origin-height=&quot;532&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b0ZyEU/btrQJHWOgWy/bpiDhIy8WMcKgcdpYRmkAK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b0ZyEU/btrQJHWOgWy/bpiDhIy8WMcKgcdpYRmkAK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b0ZyEU/btrQJHWOgWy/bpiDhIy8WMcKgcdpYRmkAK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb0ZyEU%2FbtrQJHWOgWy%2FbpiDhIy8WMcKgcdpYRmkAK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1456&quot; height=&quot;532&quot; data-filename=&quot;dbeaver exp.png&quot; data-origin-width=&quot;1456&quot; data-origin-height=&quot;532&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;1. 파일 &amp;rarr; 설정 &amp;rarr; 팝업이 뜨면 &amp;rarr; 편집기 &amp;rarr; SQL 편집기 &amp;rarr; SQL 포맷 설정 &amp;rarr; 우측 상단 Global settings 클릭&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;2. 환경 설정 팝업 &amp;rarr; 편집기 &amp;rarr; SQL 편집기 &amp;rarr; Code Editor &amp;rarr; Auto format 항목 &lt;span style=&quot;color: #009a87;&quot;&gt;&lt;b&gt;Convert keyword case 체크해제&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;버전이 다른 경우 설정 위치가 다를 수 있으나 &lt;span style=&quot;color: #009a87;&quot;&gt;&lt;b&gt;Convert keyword case&lt;/b&gt;&lt;/span&gt; 만 찾으면 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;도움을 받은 곳 : &lt;a href=&quot;https://stackoverflow.com/questions/42004796/how-to-switch-the-capitals-characters-transform-in-dbeaver&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://stackoverflow.com/questions/42004796/how-to-switch-the-capitals-characters-transform-in-dbeaver&lt;/a&gt;&lt;/p&gt;</description>
      <category>Database</category>
      <category>DBeaver</category>
      <category>대문자</category>
      <category>영문 맨앞자리</category>
      <category>자동변환</category>
      <author>데브심</author>
      <guid isPermaLink="true">https://devesim.tistory.com/124</guid>
      <comments>https://devesim.tistory.com/124#entry124comment</comments>
      <pubDate>Wed, 9 Nov 2022 09:22:48 +0900</pubDate>
    </item>
    <item>
      <title>오라클 Database 11g 설치 유의 사항</title>
      <link>https://devesim.tistory.com/122</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;oracle11g.png&quot; data-origin-width=&quot;172&quot; data-origin-height=&quot;48&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/oOGUl/btrK9Z9p9lb/0a0beZ1V01i8naVM3pivDK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/oOGUl/btrK9Z9p9lb/0a0beZ1V01i8naVM3pivDK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/oOGUl/btrK9Z9p9lb/0a0beZ1V01i8naVM3pivDK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FoOGUl%2FbtrK9Z9p9lb%2F0a0beZ1V01i8naVM3pivDK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;172&quot; height=&quot;48&quot; data-filename=&quot;oracle11g.png&quot; data-origin-width=&quot;172&quot; data-origin-height=&quot;48&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;개요 : 현재는 매우 오래된 버전인 오라클 Database 11g를 테스트 목적등으로 설치하는 경우 참고사항을 정리&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;환경 : CentOS 7, Oracle Database 11g 설치&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;유의사항 :&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp; &amp;nbsp;1. 서버에 오라클을 설치할 예정이고 본인 사용 PC에서 putty로 붙어서 설치하는 경우&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;접속할 PC에 Xming을 설치한다&lt;/b&gt;&lt;/span&gt;. &lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;(최소 256 색상을 표시하도록 구성되어 있어야 합니다.. -&amp;gt; 대응)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp; &amp;nbsp;2. &lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;클라이언트에서 putty로 Xming을 사용하여 접속할 때는 root가 아닌 oracle 계정으로 접속함에 주의&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (su 명령어 사용하지 말고 직접 putty id에 oracle 계정으로 접속 할 것)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp; &amp;nbsp;3. 오라클 11g의 경우 압축 파일이 2개다. V17530-01_1of2.zip과 V17530-01_2of2.zip 인데 깜빡하고&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;1 압축 파일만 해제하지 말고 2 압축파일도 함께 압축해제 한다.&lt;/b&gt;&lt;b&gt; (압축 해제 명령을 실패했습니다.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;oraparam.ini를 확인하고 적합한 소스 경로를 지정하십시오. -&amp;gt; 대응)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp; &amp;nbsp;4. 보통 oracle 계정으로 설치하는데 압축파일은 root등으로 설치하는 경우가 많다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;chmod, chown 등 명령어를 &lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;사용하여 그룹, Other 소유자가 적합한지, database 폴더 내부 파일 &lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 권한은 적합한지 체크한다 &lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;(/db/oracle/database/install/.oui 허가 거부 -&amp;gt; 대응)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp;5. &lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;보통 /app/oracle/ 나 /db/oracle 하위에 오라클을 설치하는데 설치 전 본인이 설치할 디렉토리를 &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 생성하고 하위에 &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;압축파일을 복사한 후 압축을 풀고 ./runInstaller 명령어를 실행한는 것이 좋다&lt;/b&gt;&lt;/span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Database</category>
      <category>오라클 11g</category>
      <category>오라클 설치</category>
      <category>오류 조치</category>
      <author>데브심</author>
      <guid isPermaLink="true">https://devesim.tistory.com/122</guid>
      <comments>https://devesim.tistory.com/122#entry122comment</comments>
      <pubDate>Thu, 1 Sep 2022 15:19:41 +0900</pubDate>
    </item>
    <item>
      <title>젠킨스 FileNotFoundException 파일 cannot be oppend because it does not exist 문제</title>
      <link>https://devesim.tistory.com/121</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;mono_jenkins.png&quot; data-origin-width=&quot;772&quot; data-origin-height=&quot;1066&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Diqgx/btrHSBpIMRf/PS4HnKKUM6RmaJHKERB3S0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Diqgx/btrHSBpIMRf/PS4HnKKUM6RmaJHKERB3S0/img.png&quot; data-alt=&quot;회색 젠킨스...&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Diqgx/btrHSBpIMRf/PS4HnKKUM6RmaJHKERB3S0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FDiqgx%2FbtrHSBpIMRf%2FPS4HnKKUM6RmaJHKERB3S0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;120&quot; height=&quot;166&quot; data-filename=&quot;mono_jenkins.png&quot; data-origin-width=&quot;772&quot; data-origin-height=&quot;1066&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;회색 젠킨스...&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;● 환경 : Centos 7, 젠킨스 2.346.1, openJDK 1.8, 스프링, SVN, Maven 환경&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;span&gt;&amp;nbsp;●&lt;span&gt; 개요 : 요세는 거의 잘 안쓰는 SVN 환경에서 젠킨스를 구축할 일이 생겨서 설치 및 설정 후 빌드를 실행하니 자꾸 아래의 오류 메시지가 나타나면서 빌드가 실패하였다.&lt;/span&gt;&lt;/span&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;&amp;nbsp;●&lt;span&gt;&lt;span&gt; 오류메시지 :&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1658370886336&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;The Tomcat Manager responded &quot;FAIL - Deployed application at context path [/devsim-1.0.0-BUILD-SNAPSHOT] but context failed to start
&quot; instead of the expected &quot;OK&quot; message&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;「젠킨스 콘솔 오류 메시지」&lt;/p&gt;
&lt;pre id=&quot;code_1658370931247&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;java.io.FileNotFoundException: class path resource [config/file.properties] cannot be opened because it does not exist&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;「톰캣 Catalina.out 로그 오류 메시지」&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; 아무리 구글링을 해보아도 마땅한 방법이 나오지 않고 SVN 리포지토리를 확인해보니 SNAPSHOT.jar 파일에서 없다고 나타나는 파일이 SVN 오류로 제대로 커밋이 안되어서 나타나는 문제인가 하고 한참을 헤맸었다&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;&amp;nbsp;●&lt;span&gt;&lt;span&gt;&lt;span&gt; 해결책 :&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp; 한참 삽질을 하다가 아래와 같은 내용으로 문제를 해결하였다.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;1. 먼저 SVN에 찾을 수 없다는 파일이 정상적으로 커밋이 되었는지 체크한다.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;2. 젠킨스 해당 프로젝트 [구성] -&amp;gt; [Build] 항목의 Goals and options에 clean install 이 누락되었는지 확인한다.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;jenkins_img.png&quot; data-origin-width=&quot;858&quot; data-origin-height=&quot;340&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bJNjwI/btrHPd4cEyA/8BFLPCXwRcUbXE5lRut5MK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bJNjwI/btrHPd4cEyA/8BFLPCXwRcUbXE5lRut5MK/img.png&quot; data-alt=&quot;젠킨스 설정&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bJNjwI/btrHPd4cEyA/8BFLPCXwRcUbXE5lRut5MK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbJNjwI%2FbtrHPd4cEyA%2F8BFLPCXwRcUbXE5lRut5MK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;742&quot; height=&quot;294&quot; data-filename=&quot;jenkins_img.png&quot; data-origin-width=&quot;858&quot; data-origin-height=&quot;340&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;젠킨스 설정&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;3. 빌드전에 해당 프로젝트 war 파일, 프로젝트 디렉토리를 삭제한다.(테스트 중 snapshot이 붙은 war 파일이 있는 경우 해당 파일과 디렉토리 전부 삭제한다.)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;4. 그리고 다시 빌드를 해보면 정상적으로 빌드가 되는 것을 확인 할 수 있다.&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;&amp;nbsp;●&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt; 마치며&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;- 설정을 제대로 하였는데도 작은 부분때문에 고생하는 누군가에게 도움이 되기를......&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;</description>
      <category>VCS, CI</category>
      <category>file cannot be opend because it does not exist</category>
      <category>SVN</category>
      <category>젠킨스</category>
      <author>데브심</author>
      <guid isPermaLink="true">https://devesim.tistory.com/121</guid>
      <comments>https://devesim.tistory.com/121#entry121comment</comments>
      <pubDate>Thu, 21 Jul 2022 11:46:03 +0900</pubDate>
    </item>
    <item>
      <title>젠킨스 Jenkins TomcatManagerException: The Tomcat Manager responded &amp;quot;&amp;lt;html&amp;gt; ... 문제 해결</title>
      <link>https://devesim.tistory.com/119</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;general.png&quot; data-origin-width=&quot;878&quot; data-origin-height=&quot;1024&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c5ATkM/btrHafg0XgV/t11LKucXhpn8XQRnJEcfV1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c5ATkM/btrHafg0XgV/t11LKucXhpn8XQRnJEcfV1/img.png&quot; data-alt=&quot;장군 젠킨스..&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c5ATkM/btrHafg0XgV/t11LKucXhpn8XQRnJEcfV1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc5ATkM%2FbtrHafg0XgV%2Ft11LKucXhpn8XQRnJEcfV1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;180&quot; height=&quot;210&quot; data-filename=&quot;general.png&quot; data-origin-width=&quot;878&quot; data-origin-height=&quot;1024&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;장군 젠킨스..&lt;/figcaption&gt;
&lt;/figure&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;▶ 환경&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; - Jenkins 2.346.1&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; - Centos 7&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; - 아파치 톰캣 8.5&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;▶&amp;nbsp;문제&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; - 젠킨스 빌드를 하는데 아래와 같은 오류 메시지가 나타난다...&lt;/p&gt;
&lt;pre class=&quot;bash&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;Caused by: org.codehaus.cargo.container.tomcat.internal.TomcatManagerException: The Tomcat Manager responded &quot;&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
&amp;lt;style&amp;gt;
h1 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:22px;} h2 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:16px;} h3 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:14px;} body {font-family:Tahoma,Arial,sans-serif;color:black;background-color:white;} b {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;} p {font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;} a {color:black;} a.name {color:black;} .line {height:1px;background-color:#525D76;border:none;}
  table {
    width: 100%;
  }
  
  ......
  ......
  ......&lt;/code&gt;&lt;/pre&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;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; - 톰캣 매니저를 찾지 못해서 발생하는 문제인 것 같다. 해당 프로젝트의 구성 -&amp;gt; 빌드 후 조치에서 Containers의 Manager context path를 비우도록 한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;jen_solution.png&quot; data-origin-width=&quot;864&quot; data-origin-height=&quot;790&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bdGW1g/btrG8svkAbT/qQyK9VGptwhnEXeWNOeqk1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bdGW1g/btrG8svkAbT/qQyK9VGptwhnEXeWNOeqk1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bdGW1g/btrG8svkAbT/qQyK9VGptwhnEXeWNOeqk1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbdGW1g%2FbtrG8svkAbT%2FqQyK9VGptwhnEXeWNOeqk1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;864&quot; height=&quot;790&quot; data-filename=&quot;jen_solution.png&quot; data-origin-width=&quot;864&quot; data-origin-height=&quot;790&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>VCS, CI</category>
      <category>TomcatManagerException responded html</category>
      <category>배치실패</category>
      <category>젠킨스</category>
      <author>데브심</author>
      <guid isPermaLink="true">https://devesim.tistory.com/119</guid>
      <comments>https://devesim.tistory.com/119#entry119comment</comments>
      <pubDate>Wed, 13 Jul 2022 10:12:35 +0900</pubDate>
    </item>
    <item>
      <title>젠킨스 SSLHandshakeException: No subject alternative names matching IP address IP Address found 문제 해결</title>
      <link>https://devesim.tistory.com/118</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;jenkins_fire.png&quot; data-origin-width=&quot;877&quot; data-origin-height=&quot;1024&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/phKrK/btrG9UEjOVy/W4rDnL7MMIrjFAuBnkbs9k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/phKrK/btrG9UEjOVy/W4rDnL7MMIrjFAuBnkbs9k/img.png&quot; data-alt=&quot;빡치는 젠킨스...&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/phKrK/btrG9UEjOVy/W4rDnL7MMIrjFAuBnkbs9k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FphKrK%2FbtrG9UEjOVy%2FW4rDnL7MMIrjFAuBnkbs9k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;157&quot; height=&quot;183&quot; data-filename=&quot;jenkins_fire.png&quot; data-origin-width=&quot;877&quot; data-origin-height=&quot;1024&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;빡치는 젠킨스...&lt;/figcaption&gt;
&lt;/figure&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;&amp;nbsp; 젠킨스 환경설정의 길은 멀고도 험했다.... 가상호스트에 TLS(SSL)까지 적용된 환경에서는 뭔놈의 에러가 이리 많이 발생하는지... 테스트 환경의 설정하고는 난이도가 비교조차 되지 않았다 ㅡㅡ;;;; 구글에서 검색조차 되지 않을 정도로 삽질한 사람들도 적다................&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; 아무튼 각설하고 젠킨스 자동빌드 환경을 구성하려고 하는데&lt;/p&gt;
&lt;pre class=&quot;bash&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;Caused by: javax.net.ssl.SSLHandshakeException: No subject alternative names matching IP address 아이피주소 found&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&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;● 환경&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; - CentOS 7&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; - 젠킨스 2.346.1&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; - 아파치 톰캣 8.5&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;&amp;nbsp; - 톰캣 가상호스트 사용중&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; - TLS(SSL) 적용중..&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;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; 일단 웹브라우저로 톰캣 매니저에 접속해본다. (예: https://서버IP주소:SSL포트/manager/html 와 https://서버IP주소:SSL포트/host-manager/html 이다. 접속 성공하면 아이디 비밀번호를 물어본다..) 정상적으로 접속이 된다면 넘어간다..&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;젠킨스_설명.png&quot; data-origin-width=&quot;850&quot; data-origin-height=&quot;768&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cTfaJO/btrG9T6uZUU/PI2aEdkiN7TJgCLwtHQ2UK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cTfaJO/btrG9T6uZUU/PI2aEdkiN7TJgCLwtHQ2UK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cTfaJO/btrG9T6uZUU/PI2aEdkiN7TJgCLwtHQ2UK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcTfaJO%2FbtrG9T6uZUU%2FPI2aEdkiN7TJgCLwtHQ2UK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;850&quot; height=&quot;768&quot; data-filename=&quot;젠킨스_설명.png&quot; data-origin-width=&quot;850&quot; data-origin-height=&quot;768&quot;/&gt;&lt;/span&gt;&lt;/figure&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;&amp;nbsp; 이 상태에서 빌드 후 배포를 하려고 하면 젠킨스가 IP 주소로 톰캣 메니저에 접근 할려고 하니 인증서 도메인과 일치하지 않아서 SSLHandShakeException이 발생한다... 서버 jre의 keystore에 TLS(SSL)파일을 등록해도 안된다... 죽어도 안된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&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;&amp;nbsp; https://서버IP주소:SSL포트/manager/html&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; https://서버IP주소:SSL포트/host-manager/html&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; 이런식으로 되어 있는데 본인이 업무하는 곳이라면 DNS 담당자에게 요청해서 DNS서버에 도메인으로 접속할 수 있도록 도메인을 생성해야 한다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;span&gt; 예시) &lt;/span&gt;&lt;/span&gt;https://devsim.dev.co.kr:443/manager/html&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; 예시) https://devsim.dev.co.kr:443/host-manager/html&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; 도메인이 새롭게 생성되었으면 당연히 톰캣 server.xml 파일도 수정이 되어야 한다.&lt;/p&gt;
&lt;pre id=&quot;code_1657673150086&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;//보통 webapps 접속 Host 구문은 아래와 같을 것이다.
&amp;lt;Host name=&quot;localhost&quot; appBase=&quot;webapps&quot; unpackWARs=&quot;true&quot; autoDeploy=&quot;true&quot;&amp;gt;

//이것을 새로 생성한 DNS로 변경한다.
&amp;lt;Host name=&quot;devsim.dev.co.kr&quot; appBase=&quot;webapps&quot; unpackWARs=&quot;true&quot; autoDeploy=&quot;true&quot;&amp;gt;

//당연히 톰캣은 재시작해야한다...&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; 그럼 이제 도메인으로 톰캣 매니저에 접속이 가능하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;젠킨스_설명2.png&quot; data-origin-width=&quot;660&quot; data-origin-height=&quot;746&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cfwMFt/btrHaorEHOz/XVBB5TKPbdrZw6cqGMY8e1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cfwMFt/btrHaorEHOz/XVBB5TKPbdrZw6cqGMY8e1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cfwMFt/btrHaorEHOz/XVBB5TKPbdrZw6cqGMY8e1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcfwMFt%2FbtrHaorEHOz%2FXVBB5TKPbdrZw6cqGMY8e1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;660&quot; height=&quot;746&quot; data-filename=&quot;젠킨스_설명2.png&quot; data-origin-width=&quot;660&quot; data-origin-height=&quot;746&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; 다시 젠킨스로 돌아와서 해당 프로젝트 구성 -&amp;gt; 빌드 후 조치 -&amp;gt; Tomcat URL 항목을 TLS(SSL)과 도메인 형식으로 변경한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; 이제 SSLHANDSHAKE 오류는 더이상 발생하지 않을 것이다...&lt;/p&gt;</description>
      <category>VCS, CI</category>
      <category>Deploy failure</category>
      <category>jenkins</category>
      <category>matching IP address</category>
      <category>SSLHandshakeException</category>
      <category>젠킨스</category>
      <author>데브심</author>
      <guid isPermaLink="true">https://devesim.tistory.com/118</guid>
      <comments>https://devesim.tistory.com/118#entry118comment</comments>
      <pubDate>Wed, 13 Jul 2022 09:50:46 +0900</pubDate>
    </item>
    <item>
      <title>젠킨스 TLS(SSL) 접속 설정 방법</title>
      <link>https://devesim.tistory.com/117</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;jenkinslogo.png&quot; data-origin-width=&quot;185&quot; data-origin-height=&quot;256&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/FdM4A/btrGKRmTztg/iMvRkykLfy2DKUUM8F0Jzk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/FdM4A/btrGKRmTztg/iMvRkykLfy2DKUUM8F0Jzk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/FdM4A/btrGKRmTztg/iMvRkykLfy2DKUUM8F0Jzk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFdM4A%2FbtrGKRmTztg%2FiMvRkykLfy2DKUUM8F0Jzk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;92&quot; height=&quot;127&quot; data-filename=&quot;jenkinslogo.png&quot; data-origin-width=&quot;185&quot; data-origin-height=&quot;256&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;젠킨스 자동빌드 환경 구축의 길은 멀고도 험하다..... 도데체 뭐가 이렇게 설정할 것이 많은 것인지.... ㅡㅡ;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;●&amp;nbsp;환경&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp; &amp;nbsp;- CentOS 7&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp; &amp;nbsp;- 젠킨스 2.346.1&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp; &amp;nbsp;- TLS(SSL) 발급하여 사용중인 환경&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;● 설정 방법&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;1. TLS(SSL) 인증서 파일이 위치하는 곳에 가면&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp; &amp;nbsp;내가사용중인인증서.crt&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp; &amp;nbsp;내가사용중인인증서.key&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp; &amp;nbsp;내가사용중인인증서.pfx&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp; &amp;nbsp;이 3개의 파일이 있는 것을 확인할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;2. 인증 요청서(.crt) 파일과 개인키(.key) 파일을 이용하여 jenkins.pfx 파일을 생성한다&lt;/p&gt;
&lt;pre id=&quot;code_1657176070749&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#openssl pkcs12 -export -in 인증서.crt -inkey 인증서.key -out jenkins.pfx&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp; &amp;nbsp;비밀번호 입력을 묻는데 본인이 원하는데로 입력 후 잘 기억해둔다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;3. 생성한 pfx 파일 확인&lt;/p&gt;
&lt;pre id=&quot;code_1657176157827&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#openssl pkcs12 -info -in jenkins.pfx&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; 비밀번호를 묻는데 비밀번호가 정확한지 확인 할 수 있고 정상적으로 입력하면 숫자들이 주르륵 나오는데 확인만 하고 Ctrl + C를 이용하여 종료 하도록 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. pfx 파일을 jks 파일로 변환&lt;/p&gt;
&lt;pre id=&quot;code_1657176316058&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#keytool -importkeystore -srckeystore jenkins.pfx -srcstoretype pkcs12 -destkeystore jenkins.jks -deststoretype jks&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; 비밀번호를 입력하라고 나오는데 위에서 만든 비번과 동일하게 전부 입력하도록 한다. 총 3번 물어본다..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5. 생성된 jenkins.jks 파일을 본인이 원하는 곳에 cp 명령어를 이용하여 복사한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;6. 젠킨스 환경설정 파일을 수정한다.&lt;/p&gt;
&lt;pre id=&quot;code_1657176518100&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#vi /usr/lib/systemd/system/jenkins.service

#Environment=&quot;JENKINS_PORT=9090&quot;
Environment=&quot;JENKINS_HTTPS_PORT=8443&quot;
Environment=&quot;JENKINS_HTTPS_KEYSTORE=/devsim/jenkins.jks&quot;
Environment=&quot;JENKINS_HTTPS_KEYSTORE_PASSWORD=비밀번호&quot;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;vi나 vim등을 이용하여 파일을 수정하는데 특히 &lt;span style=&quot;color: #ee2323;&quot;&gt;JENKINS_PORT 항목을 주석 처리&lt;/span&gt;해야 하는 것에 주의한다. 주석처리를 하지 않으면 젠킨스 실행 시 오류가 발생한다. 포트의 경우 방화벽 예외 포트에 등록하는 것은 필수 !&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;7. 젠킨스 서비스 재시작&lt;/p&gt;
&lt;pre id=&quot;code_1657176709676&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#systemctl daemon-reload
#systemctl restart jenkins&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;설정 파일에 오타 등이 있으면 젠킨스 실행 시 오류가 발생하니 주의하도록 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;다른 블로그 검색 시 나타나는 과거글들의 /etc/sysconfig/jenkins 파일도 최신 젠킨스 버전 등에서는 적용이 되지 않으니 또한 주의하도록 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;7번까지 모두 완료 후 https://서버 IP주소:8443 으로 접속하면 관리자페이지에 성공적으로 접속되는 것을 확인 할 수 있다. 크롬 등에서는 고급 버튼을 클릭 후 안전하지 않은 페이지로 접속 글자를 클릭하면 접속이 가능하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;자 이제 관리자 페이지에 다시 접속해서 자동 빌드를 위한 삽질을 계속하자.... 파이팅 !!&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;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://magnuxx.tistory.com/entry/jenkins-cenots7-%EC%A0%A0%ED%82%A8%EC%8A%A4-https-ssl-%EC%9D%B8%EC%A6%9D%EC%84%9C-%EC%84%A4%EC%B9%98&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://magnuxx.tistory.com/entry/jenkins-cenots7-%EC%A0%A0%ED%82%A8%EC%8A%A4-https-ssl-%EC%9D%B8%EC%A6%9D%EC%84%9C-%EC%84%A4%EC%B9%98&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1657176909745&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[jenkins] cenots7 젠킨스 https  ssl 인증서 설치&quot; data-og-description=&quot;젠킨스 설정에 관해 구글에 검색해보면 죄다 /etc/sysconfig/jenkins 에서 수정해서 재적용하면 된다고 하지만 2022년 cenots7 에서 yum으로 젠킨스를 설치하여 젠키스 버전 2.332.2 인 나의 환경에서는 해당&quot; data-og-host=&quot;magnuxx.tistory.com&quot; data-og-source-url=&quot;https://magnuxx.tistory.com/entry/jenkins-cenots7-%EC%A0%A0%ED%82%A8%EC%8A%A4-https-ssl-%EC%9D%B8%EC%A6%9D%EC%84%9C-%EC%84%A4%EC%B9%98&quot; data-og-url=&quot;https://magnuxx.tistory.com/entry/jenkins-cenots7-%EC%A0%A0%ED%82%A8%EC%8A%A4-https-ssl-%EC%9D%B8%EC%A6%9D%EC%84%9C-%EC%84%A4%EC%B9%98&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cA670S/hyO0JurZUp/CE0UYZJYrHcb7wsE120NC0/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/2DUKq/hyO0IWBYY2/LC99xALPOsA3jEHO0rgCqk/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800&quot;&gt;&lt;a href=&quot;https://magnuxx.tistory.com/entry/jenkins-cenots7-%EC%A0%A0%ED%82%A8%EC%8A%A4-https-ssl-%EC%9D%B8%EC%A6%9D%EC%84%9C-%EC%84%A4%EC%B9%98&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://magnuxx.tistory.com/entry/jenkins-cenots7-%EC%A0%A0%ED%82%A8%EC%8A%A4-https-ssl-%EC%9D%B8%EC%A6%9D%EC%84%9C-%EC%84%A4%EC%B9%98&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cA670S/hyO0JurZUp/CE0UYZJYrHcb7wsE120NC0/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/2DUKq/hyO0IWBYY2/LC99xALPOsA3jEHO0rgCqk/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;[jenkins] cenots7 젠킨스 https ssl 인증서 설치&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;젠킨스 설정에 관해 구글에 검색해보면 죄다 /etc/sysconfig/jenkins 에서 수정해서 재적용하면 된다고 하지만 2022년 cenots7 에서 yum으로 젠킨스를 설치하여 젠키스 버전 2.332.2 인 나의 환경에서는 해당&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;magnuxx.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>VCS, CI</category>
      <category>SSL</category>
      <category>tls</category>
      <category>인증서 등록</category>
      <category>젠킨스</category>
      <author>데브심</author>
      <guid isPermaLink="true">https://devesim.tistory.com/117</guid>
      <comments>https://devesim.tistory.com/117#entry117comment</comments>
      <pubDate>Thu, 7 Jul 2022 15:55:50 +0900</pubDate>
    </item>
    <item>
      <title>스프링 외부 jar 파일 추가 후 젠킨스 빌드하기</title>
      <link>https://devesim.tistory.com/116</link>
      <description>&lt;p data-ke-size=&quot;size18&quot;&gt;● 환경 : 스프링 4, Jenkins 2.346.1&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;● 개요 : 외부 API를 참조하는 상황에서 젠킨스로 자동빌드 환경을 구성하려고 하는데 젠킨스에서 빌드 시도 시 BUILD FAIL이 나타나는 현상 조치&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;● 방법 :&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;jenkinsdevsim1.png&quot; data-origin-width=&quot;222&quot; data-origin-height=&quot;94&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bUrgd1/btrGs0Twuuf/6jKxZMOdsSkCBvLoSYmjkK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bUrgd1/btrGs0Twuuf/6jKxZMOdsSkCBvLoSYmjkK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bUrgd1/btrGs0Twuuf/6jKxZMOdsSkCBvLoSYmjkK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbUrgd1%2FbtrGs0Twuuf%2F6jKxZMOdsSkCBvLoSYmjkK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;222&quot; height=&quot;94&quot; data-filename=&quot;jenkinsdevsim1.png&quot; data-origin-width=&quot;222&quot; data-origin-height=&quot;94&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp; 1. jar 파일은 프로젝트 하위 [lib] - [외부 API명] - [파일명] - [버전] - [파일명-버전] 으로 한다&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size18&quot;&gt;예시) [lib] - [devsim] - [custapi] - [1.10.7] - custapi-1.10.7.jar&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size18&quot;&gt;본인이 추가할 외부 jar 파일을 위와 같은 형식으로 맞추는게 정신건강에 좋다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;span&gt;&lt;span&gt;2. pom.xml에 다음과 같이 추가한다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;span&gt;&lt;span&gt;아래 코드는 &amp;lt;repositories&amp;gt; 내부에 추가한다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1656985541313&quot; class=&quot;dust&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;repository&amp;gt;
   &amp;lt;id&amp;gt;in-project&amp;lt;/id&amp;gt;
   &amp;lt;name&amp;gt;custom jars&amp;lt;/name&amp;gt;
   &amp;lt;url&amp;gt;file://${project.basedir}/lib&amp;lt;/url&amp;gt;
&amp;lt;/repository&amp;gt;

&amp;lt;repository&amp;gt;
   &amp;lt;id&amp;gt;in-project-jenkins&amp;lt;/id&amp;gt;
   &amp;lt;name&amp;gt;custom jars-jenkins&amp;lt;/name&amp;gt;
   &amp;lt;url&amp;gt;file://${JENKINS_HOME}/jobs/${JOB_NAME}/workspace/lib&amp;lt;/url&amp;gt;
&amp;lt;/repository&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size18&quot;&gt;3. 아래 코드는 &amp;lt;dependencies&amp;gt; 내부에 추가한다.&lt;/p&gt;
&lt;pre id=&quot;code_1656985679082&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;dependency&amp;gt;
   &amp;lt;groupId&amp;gt;devsim&amp;lt;/groupId&amp;gt;
   &amp;lt;artifactId&amp;gt;custapi&amp;lt;/artifactId&amp;gt;
   &amp;lt;version&amp;gt;1.10.7&amp;lt;/version&amp;gt;
&amp;lt;/dependency&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size18&quot;&gt;1번에서 작성한 groupId - API명, artifactId - 파일명, version - 버전이 정확하게 일치해야 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size18&quot;&gt;4. 젠킨스 빌드&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size18&quot;&gt;빌드를 해보면 빌드 성공 메시지가 뜨는 것을 확인할 수 있다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size18&quot;&gt;● 도움받은 곳 : &lt;a href=&quot;https://denodo1.tistory.com/282&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://denodo1.tistory.com/282&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1656985833498&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[maven] 외부 jar 추가&quot; data-og-description=&quot;환경 java 1.7.0 maven 3.2.2 단순 참조만 필요한 경우 maven repository 가 없는 로컬 jar 파알을 maven 프로젝트에 추가 하기 위해서는 사설 repository를 만드는 방법도 있지만 다음과 같이 &amp;quot;dependency&amp;quot; 정의..&quot; data-og-host=&quot;denodo1.tistory.com&quot; data-og-source-url=&quot;https://denodo1.tistory.com/282&quot; data-og-url=&quot;https://denodo1.tistory.com/282&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/d1WuGN/hyOYiq4VRL/BxOYUKDySiKMt3BPRroiOk/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/kkrXk/hyOZGDSUEQ/kdfeSdjeKWlAvoqoE3KPI1/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800&quot;&gt;&lt;a href=&quot;https://denodo1.tistory.com/282&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://denodo1.tistory.com/282&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/d1WuGN/hyOYiq4VRL/BxOYUKDySiKMt3BPRroiOk/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/kkrXk/hyOZGDSUEQ/kdfeSdjeKWlAvoqoE3KPI1/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;[maven] 외부 jar 추가&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;환경 java 1.7.0 maven 3.2.2 단순 참조만 필요한 경우 maven repository 가 없는 로컬 jar 파알을 maven 프로젝트에 추가 하기 위해서는 사설 repository를 만드는 방법도 있지만 다음과 같이 &quot;dependency&quot; 정의..&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;denodo1.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;[dBack님 블로그]&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>VCS, CI</category>
      <category>빌드실패</category>
      <category>외부 API</category>
      <category>외부 jar</category>
      <category>젠킨스</category>
      <author>데브심</author>
      <guid isPermaLink="true">https://devesim.tistory.com/116</guid>
      <comments>https://devesim.tistory.com/116#entry116comment</comments>
      <pubDate>Tue, 5 Jul 2022 10:51:48 +0900</pubDate>
    </item>
    <item>
      <title>젠킨스 설치 후 구동 시 Failed to start Jenkins Continous Integration Server 에러 조치</title>
      <link>https://devesim.tistory.com/115</link>
      <description>&lt;p data-ke-size=&quot;size18&quot;&gt;환경 : CentOS 7&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;설치 프로그램 : 젠킨스&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;문제 : CentOS 7 환경에서 젠킨스를 테스트 하기 위하여 설치 후 서비스를 시작하려고 하는데&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;자꾸 아래와 같은 오류가 발생하였다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;[root@localhost&amp;nbsp;~]# service jenkins start &lt;br /&gt;Starting jenkins (via systemctl):&amp;nbsp;&amp;nbsp;Job for jenkins.service failed because the control process exited with error code. See &quot;systemctl status jenkins.service&quot; and &quot;journalctl -xe&quot; for details. &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[&lt;span style=&quot;color: #ee2323;&quot;&gt;실패&lt;/span&gt;] &lt;br /&gt;[root@localhost ~]# systemctl status jenkins.service &lt;span style=&quot;color: #006dd7;&quot;&gt;//자세한 사항을 확인하라고 하여 확인을 해보았다&lt;/span&gt;&lt;br /&gt;●&amp;nbsp;jenkins.service&amp;nbsp;-&amp;nbsp;Jenkins&amp;nbsp;Continuous&amp;nbsp;Integration&amp;nbsp;Server &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;Loaded:&amp;nbsp;loaded&amp;nbsp;(/usr/lib/systemd/system/jenkins.service;&amp;nbsp;disabled;&amp;nbsp;vendor&amp;nbsp;preset:&amp;nbsp;disabled) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;Active:&amp;nbsp;&lt;span style=&quot;color: #ee2323;&quot;&gt;failed&amp;nbsp;&lt;/span&gt;(Result:&amp;nbsp;start-limit)&amp;nbsp;since&amp;nbsp;목&amp;nbsp;2022-06-30&amp;nbsp;08:32:00&amp;nbsp;KST;&amp;nbsp;7s&amp;nbsp;ago &lt;br /&gt;&amp;nbsp;&amp;nbsp;Process:&amp;nbsp;7079&amp;nbsp;ExecStart=/usr/bin/jenkins&amp;nbsp;&lt;span style=&quot;color: #ee2323;&quot;&gt;(code=exited,&amp;nbsp;status=1/FAILURE)&lt;/span&gt; &lt;br /&gt;&amp;nbsp;Main&amp;nbsp;PID:&amp;nbsp;7079&amp;nbsp;(code=exited,&amp;nbsp;status=1/FAILURE) &lt;br /&gt;&lt;br /&gt;localhost.localdomain systemd[1]: &lt;span style=&quot;color: #ee2323;&quot;&gt;Failed&amp;nbsp;to&amp;nbsp;start&amp;nbsp;Jenkins&amp;nbsp;Continuous&amp;nbsp;Integration&amp;nbsp;Server.&lt;/span&gt; &lt;br /&gt;localhost.localdomain systemd[1]: Unit jenkins.service entered failed state. &lt;br /&gt;localhost.localdomain systemd[1]: jenkins.service failed. &lt;br /&gt;localhost.localdomain systemd[1]: jenkins.service holdoff time over, scheduling restart. &lt;br /&gt;localhost.localdomain systemd[1]: Stopped Jenkins Continuous Integration Server. &lt;br /&gt;localhost.localdomain systemd[1]: start request repeated too quickly for jenkins.service &lt;br /&gt;localhost.localdomain systemd[1]:&amp;nbsp;&lt;span style=&quot;color: #ee2323;&quot;&gt;Failed&amp;nbsp;to&amp;nbsp;start&amp;nbsp;Jenkins&amp;nbsp;Continuous&amp;nbsp;Integration&amp;nbsp;Server.&lt;/span&gt; &lt;br /&gt;localhost.localdomain systemd[1]: Unit jenkins.service entered failed state. &lt;br /&gt;localhost.localdomain systemd[1]: jenkins.service failed. &lt;br /&gt;[root@localhost ~]# journalctl -xe&amp;nbsp; &amp;nbsp;&lt;span style=&quot;color: #006dd7;&quot;&gt;//더 자세한 사항을 확인해보라고 하여 확인 해보았다.....&lt;/span&gt;&lt;br /&gt;localhost.localdomain jenkins[7079]: Caused: java.io.IOException: Failed to bind to 0.0.0.0/0.0.0.0:8080 &lt;br /&gt;localhost.localdomain jenkins[7079]: at org.eclipse.jetty.server.ServerConnector.openAcceptChannel(ServerConnector.java:349) &lt;br /&gt;localhost.localdomain jenkins[7079]: at org.eclipse.jetty.server.ServerConnector.open(ServerConnector.java:310) &lt;br /&gt;localhost.localdomain jenkins[7079]: at org.eclipse.jetty.server.AbstractNetworkConnector.doStart(AbstractNetworkConnector.java:80) &lt;br /&gt;localhost.localdomain jenkins[7079]: at org.eclipse.jetty.server.ServerConnector.doStart(ServerConnector.java:234) &lt;br /&gt;localhost.localdomain jenkins[7079]: at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:73) &lt;br /&gt;localhost.localdomain jenkins[7079]: at org.eclipse.jetty.server.Server.doStart(Server.java:401) &lt;br /&gt;localhost.localdomain jenkins[7079]: at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:73) &lt;br /&gt;localhost.localdomain jenkins[7079]: at winstone.Launcher.&amp;lt;init&amp;gt;(Launcher.java:202) &lt;br /&gt;localhost.localdomain jenkins[7079]: Caused: java.io.IOException: Failed to start Jetty &lt;br /&gt;localhost.localdomain jenkins[7079]: at winstone.Launcher.&amp;lt;init&amp;gt;(Launcher.java:206) &lt;br /&gt;localhost.localdomain jenkins[7079]: at winstone.Launcher.main(Launcher.java:405) &lt;br /&gt;localhost.localdomain jenkins[7079]: at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) &lt;br /&gt;localhost.localdomain jenkins[7079]: at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) &lt;br /&gt;localhost.localdomain jenkins[7079]: at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) &lt;br /&gt;localhost.localdomain jenkins[7079]: at java.lang.reflect.Method.invoke(Method.java:498) &lt;br /&gt;localhost.localdomain jenkins[7079]: at Main._main(Main.java:342) &lt;br /&gt;localhost.localdomain jenkins[7079]: at Main.main(Main.java:117) &lt;br /&gt;localhost.localdomain systemd[1]: jenkins.service: main process exited, code=exited, status=1/FAILURE &lt;br /&gt;localhost.localdomain systemd[1]:&amp;nbsp;&lt;span style=&quot;color: #ee2323;&quot;&gt;Failed&amp;nbsp;to&amp;nbsp;start&amp;nbsp;Jenkins&amp;nbsp;Continuous&amp;nbsp;Integration&amp;nbsp;Server.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;원인 : 포트가 충돌나서 발생하는 문제이다. 분명 블로그 등에서 검색해서 &amp;nbsp;/etc/sysconfig/jenkins 경로의 포트를 8080에서 9090으로 변경했는데... 오류가 발생하였다. 그리하여 로그를 자세히 보니 /usr/lib/systemd/system/jenkins.service 파일에도 동일한 내용이 들어있었다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;해결책 : vi나 vim을 사용하여 jenkins.service 파일의 Environment=&quot;JENKINS_PORT=9090&quot;로 변경 후 다시 service jenkins start를 시도해 보면 정상적으로 젠킨스 서비스가 올라오는 것을 확인 할 수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>VCS, CI</category>
      <category>오류</category>
      <category>젠킨스</category>
      <category>참조 파일</category>
      <category>포트충돌</category>
      <author>데브심</author>
      <guid isPermaLink="true">https://devesim.tistory.com/115</guid>
      <comments>https://devesim.tistory.com/115#entry115comment</comments>
      <pubDate>Thu, 30 Jun 2022 10:19:39 +0900</pubDate>
    </item>
    <item>
      <title>CentOS7에서 Oracle 11g 설치 시 unable to open display 해결</title>
      <link>https://devesim.tistory.com/114</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;devsimlogo.png&quot; data-origin-width=&quot;582&quot; data-origin-height=&quot;230&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bwRQ2r/btru9PHjRuP/yYp67gkYSVH1OI3nKZGWY0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bwRQ2r/btru9PHjRuP/yYp67gkYSVH1OI3nKZGWY0/img.png&quot; data-alt=&quot;CentOS 7 with Oracle 11g&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bwRQ2r/btru9PHjRuP/yYp67gkYSVH1OI3nKZGWY0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbwRQ2r%2Fbtru9PHjRuP%2FyYp67gkYSVH1OI3nKZGWY0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;582&quot; height=&quot;230&quot; data-filename=&quot;devsimlogo.png&quot; data-origin-width=&quot;582&quot; data-origin-height=&quot;230&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;CentOS 7 with Oracle 11g&lt;/figcaption&gt;
&lt;/figure&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;CentOS7 에서 Oracel 11g Enterprise 버전을 설치하려고 서버에 putty로 접속 후 ./runInstaller 를 실행하면&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;unable to open display 라는 경고가 나오면서 설치가 안되는데...&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;구글링해도 명확한 해법이 안나오고... 아주 골치가 아프다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;원인은 putty로 원격 접속한 상태에서 xhost 권한이 꼬여서 그런 것 같은데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일단 오라클 설치 전 본인 작업 pc에서 원격 서버에 putty로 접속해서 진행을 하였고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;CentOS7에 root계정과 oracle 계정을 만든상태에서 oracle 계정으로 11g를 설치한다고 가정하면&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;※ 원격으로 오라클 설치시에는 putty에서 oracle 계정으로 직접 접속한다.&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;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;root 에서&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;root] # export DISPLAY=localhost:10.0&amp;nbsp; &amp;nbsp;// 설정을 변경하고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;root] # echo $DISPLAY&amp;nbsp; &amp;nbsp;// 변경된 설정을 조회한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;root] # xclock&amp;nbsp; &amp;nbsp;// xclock을 실행해서 정상적으로 뜨는지 확인 후&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;root] # xhost +&amp;nbsp; &amp;nbsp;// 명령어를 친 후 access control disabled, clients can connect from any host 응답이 나오면 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그 후에&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;oracle 계정으로 접속 후&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;oracle] # export DISPLAY=localhost:10. 0&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;oracle] # xclock&amp;nbsp; &amp;nbsp;// 정상적으로 xclock이 실행되면 오라클 설치가 가능하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;// 간단히 하면 root로 display 설정 -&amp;gt; xhost + 설정 -&amp;gt; oracle 계정으로 display 설정 순이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;===&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #009a87;&quot;&gt;&lt;b&gt;1. 본인 작업 PC에 Xming 을 설치한다.&lt;/b&gt;&lt;/span&gt; (&lt;a href=&quot;https://sourceforge.net/projects/xming/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://sourceforge.net/projects/xming/&lt;/a&gt;)&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #009a87;&quot;&gt;&lt;b&gt;2. putty로 접속한다. (Connection - SSH - X11의 X11 forwarding Enable X11 forwarding에 체크 후 접속)&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #009a87;&quot;&gt;&lt;b&gt;3. putty에서 xclock 명령어로 본인 PC에서 시계가 정상적으로 뜨는지 확인 후 오라클 설치를 진행하면 install 화면이 정상적으로 뜨는 것을 확인할 수 있다.&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[출처] Xming 설치법 : &lt;a title=&quot;S01ving Note s01Va님 블로그&quot; href=&quot;https://s01va.github.io/CentOS7%EC%97%90%EC%84%9C-X11-forwarding-%EC%84%A4%EC%A0%95/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;S01ving Note s01Va님 블로그&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1646628961614&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;CentOS7에서 X11 forwarding 설정(X Window 설치)&quot; data-og-description=&quot;1. CentOS yum install xorg&quot; data-og-host=&quot;s01va.github.io&quot; data-og-source-url=&quot;https://s01va.github.io/CentOS7%EC%97%90%EC%84%9C-X11-forwarding-%EC%84%A4%EC%A0%95/&quot; data-og-url=&quot;https://s01va.github.io/CentOS7%EC%97%90%EC%84%9C-X11-forwarding-%EC%84%A4%EC%A0%95/&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://s01va.github.io/CentOS7%EC%97%90%EC%84%9C-X11-forwarding-%EC%84%A4%EC%A0%95/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://s01va.github.io/CentOS7%EC%97%90%EC%84%9C-X11-forwarding-%EC%84%A4%EC%A0%95/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;CentOS7에서 X11 forwarding 설정(X Window 설치)&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;1. CentOS yum install xorg&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;s01va.github.io&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[오라클 11g 설치 시 정리가 매우 잘된 곳] &lt;a title=&quot;띠용이의 일상 블로그&quot; href=&quot;https://xxsiyoung.tistory.com/3&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;띠용이의 일상 블로그 띠용님 글&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1646629017202&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[21.02.02 수정] CentOS 7에 Oracle 11g 설치 완벽정리!&quot; data-og-description=&quot;- 사전준비 Oracle 11g 파일을 준비합니다. https://www.oracle.com/database/technologies/oracle-database-software-downloads.html Database Software Downloads | Oracle Oracle Database 11g Release 2 Stand..&quot; data-og-host=&quot;xxsiyoung.tistory.com&quot; data-og-source-url=&quot;https://xxsiyoung.tistory.com/3&quot; data-og-url=&quot;https://xxsiyoung.tistory.com/3&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cyVU7a/hyNEeg2Vmv/NbjkEZgZz1bbkF1B9BE7NK/img.png?width=800&amp;amp;height=544&amp;amp;face=0_0_800_544,https://scrap.kakaocdn.net/dn/bm9Ice/hyNCZZ6IEO/uMxQ8iXblkEkwmfFdGO4M0/img.png?width=800&amp;amp;height=544&amp;amp;face=0_0_800_544,https://scrap.kakaocdn.net/dn/c2YV5T/hyNCXBcWcv/3vtqLiMswAG3l6peePYARk/img.png?width=1002&amp;amp;height=790&amp;amp;face=0_0_1002_790&quot;&gt;&lt;a href=&quot;https://xxsiyoung.tistory.com/3&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://xxsiyoung.tistory.com/3&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cyVU7a/hyNEeg2Vmv/NbjkEZgZz1bbkF1B9BE7NK/img.png?width=800&amp;amp;height=544&amp;amp;face=0_0_800_544,https://scrap.kakaocdn.net/dn/bm9Ice/hyNCZZ6IEO/uMxQ8iXblkEkwmfFdGO4M0/img.png?width=800&amp;amp;height=544&amp;amp;face=0_0_800_544,https://scrap.kakaocdn.net/dn/c2YV5T/hyNCXBcWcv/3vtqLiMswAG3l6peePYARk/img.png?width=1002&amp;amp;height=790&amp;amp;face=0_0_1002_790');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;[21.02.02 수정] CentOS 7에 Oracle 11g 설치 완벽정리!&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;- 사전준비 Oracle 11g 파일을 준비합니다. https://www.oracle.com/database/technologies/oracle-database-software-downloads.html Database Software Downloads | Oracle Oracle Database 11g Release 2 Stand..&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;xxsiyoung.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;오라클 11g 설치 정리가 매우 잘되어있다. centos 7에 오라클 11g 설치하는데 정말 많은 도움을 받았다.&lt;/b&gt;&lt;/span&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;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;&lt;a href=&quot;https://blog.naver.com/cordba/220061803210&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://blog.naver.com/cordba/220061803210&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1705475058645&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;xclock root에서만 보이는 경우(displayed only for &amp;quot;root&amp;quot; but not for another user)&quot; data-og-description=&quot;xclock Error: Can't open display &amp;nbsp; &amp;nbsp; 최근 Solaris 10 x86에 Oracle DB를 설치하는 도중...&quot; data-og-host=&quot;blog.naver.com&quot; data-og-source-url=&quot;https://blog.naver.com/cordba/220061803210&quot; data-og-url=&quot;https://blog.naver.com/cordba/220061803210&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/MNgGv/hyU5I4orqy/ygk16r8AlRTMWVAUxS4fMk/img.jpg?width=180&amp;amp;height=202&amp;amp;face=0_0_180_202&quot;&gt;&lt;a href=&quot;https://blog.naver.com/cordba/220061803210&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://blog.naver.com/cordba/220061803210&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/MNgGv/hyU5I4orqy/ygk16r8AlRTMWVAUxS4fMk/img.jpg?width=180&amp;amp;height=202&amp;amp;face=0_0_180_202');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;xclock root에서만 보이는 경우(displayed only for &quot;root&quot; but not for another user)&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;xclock Error: Can't open display &amp;nbsp; &amp;nbsp; 최근 Solaris 10 x86에 Oracle DB를 설치하는 도중...&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;blog.naver.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Database</category>
      <category>11g</category>
      <category>centOS7</category>
      <category>unable open to display</category>
      <category>오라클</category>
      <author>데브심</author>
      <guid isPermaLink="true">https://devesim.tistory.com/114</guid>
      <comments>https://devesim.tistory.com/114#entry114comment</comments>
      <pubDate>Fri, 4 Mar 2022 16:58:26 +0900</pubDate>
    </item>
    <item>
      <title>크롬에서 a태그 상태표시줄에 href 주소 숨기기</title>
      <link>https://devesim.tistory.com/113</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&amp;middot;&amp;nbsp;개요 : a태그를 사용하여 href 링크 사용 시 크롬 하단에 나타나는 주소 숨기는 방법&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;&amp;nbsp;&amp;middot; 방법 :&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1635992462230&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;a href=&quot;javascript:void(0)&quot; onclick=&quot;location.href='http://www.google.com'&quot;&amp;gt;Hide Link&amp;lt;/a&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; 위 코드를 자신의 상태에 맞게 수정하여 사용한다.&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;&amp;nbsp;&amp;middot;&amp;nbsp;출처 : &lt;a href=&quot;https://allinworld99.blogspot.com/2015/02/hide-url-hover-over-link-hide-link-from.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://allinworld99.blogspot.com/2015/02/hide-url-hover-over-link-hide-link-from.html&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1635992509358&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Hide url hover over link / Hide link from status bar&quot; data-og-description=&quot;--&amp;gt; --&amp;gt; AllInWorld99 provides a reference manual covering many aspects of web programming, including technologies such as HTML, XHTML, CSS, XML, JavaScript, PHP, ASP, SQL,FLASH, jQuery, java, for loop, switch case, if, if else, for...of, for...in, for...ea&quot; data-og-host=&quot;allinworld99.blogspot.com&quot; data-og-source-url=&quot;https://allinworld99.blogspot.com/2015/02/hide-url-hover-over-link-hide-link-from.html&quot; data-og-url=&quot;https://allinworld99.blogspot.com/2015/02/hide-url-hover-over-link-hide-link-from.html&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cliTYa/hyMcfKFLCg/TmhVKjVALmQ86HNFSgALS1/img.jpg?width=72&amp;amp;height=72&amp;amp;face=0_0_72_72&quot;&gt;&lt;a href=&quot;https://allinworld99.blogspot.com/2015/02/hide-url-hover-over-link-hide-link-from.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://allinworld99.blogspot.com/2015/02/hide-url-hover-over-link-hide-link-from.html&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cliTYa/hyMcfKFLCg/TmhVKjVALmQ86HNFSgALS1/img.jpg?width=72&amp;amp;height=72&amp;amp;face=0_0_72_72');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Hide url hover over link / Hide link from status bar&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;--&amp;gt; --&amp;gt; AllInWorld99 provides a reference manual covering many aspects of web programming, including technologies such as HTML, XHTML, CSS, XML, JavaScript, PHP, ASP, SQL,FLASH, jQuery, java, for loop, switch case, if, if else, for...of, for...in, for...ea&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;allinworld99.blogspot.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&amp;middot; 개요 : GET 방식으로 파라미터 전송 시 공백에서 잘리는 현상 조치&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&amp;middot; 방법 : href= 뒤 파라미터 부분을 &quot; 따옴표(Double Quotation Mark) 로 감싼다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;href=&quot;블라블라&quot;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&amp;middot; 출처 : &lt;a href=&quot;https://blog.naver.com/justgo000/150130283919&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://blog.naver.com/justgo000/150130283919&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1636009079217&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;Get방식으로 공백넘길때 처리방법&quot; data-og-description=&quot;[ 주소(URL)의 뒤에 정보를 추가하는 GET 방식은 최대 2,047 글자를 넘어갈 수 없습니다. ] - (taeyo...&quot; data-og-host=&quot;blog.naver.com&quot; data-og-source-url=&quot;https://blog.naver.com/justgo000/150130283919&quot; data-og-url=&quot;https://blog.naver.com/justgo000/150130283919&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/chjXew/hyMdCLmPOD/oGSf2mxVqFV5ETXkuKu1Dk/img.png?width=270&amp;amp;height=270&amp;amp;face=0_0_270_270&quot;&gt;&lt;a href=&quot;https://blog.naver.com/justgo000/150130283919&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://blog.naver.com/justgo000/150130283919&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/chjXew/hyMdCLmPOD/oGSf2mxVqFV5ETXkuKu1Dk/img.png?width=270&amp;amp;height=270&amp;amp;face=0_0_270_270');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Get방식으로 공백넘길때 처리방법&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;[ 주소(URL)의 뒤에 정보를 추가하는 GET 방식은 최대 2,047 글자를 넘어갈 수 없습니다. ] - (taeyo...&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;blog.naver.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>JavaScript</category>
      <category>a 태그</category>
      <category>상태표시줄</category>
      <category>주소 숨기기</category>
      <author>데브심</author>
      <guid isPermaLink="true">https://devesim.tistory.com/113</guid>
      <comments>https://devesim.tistory.com/113#entry113comment</comments>
      <pubDate>Thu, 4 Nov 2021 11:22:32 +0900</pubDate>
    </item>
    <item>
      <title>자바스크립트에서 JSON Array 폼형식으로 컨트롤러에 보내기</title>
      <link>https://devesim.tistory.com/112</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&amp;middot; 개요 : 상황에 따라서 ajax가 아닌 form 형식으로 컨트롤러에 json array를 전송해야 하는 상황이 있다.&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;&amp;nbsp;&amp;middot;&amp;nbsp;방법 :&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; [자바스크립트]&lt;/p&gt;
&lt;pre id=&quot;code_1634109203434&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;var form = document.createElement(&quot;form&quot;);
var input = new Array();

form.setAttribute(&quot;charset&quot;, &quot;UTF-8&quot;);
form.setAttribute(&quot;accept-charset&quot;, &quot;UTF-8&quot;);
form.setAttribute(&quot;method&quot;, &quot;POST&quot;);
form.setAttribute(&quot;action&quot;, &quot;보낼 주소&quot;);

your_json_array.forEach(function(element, idx, array) {
   input[idx] = document.createElement(&quot;input&quot;);
   input[idx].setAttribute(&quot;type&quot;, &quot;hidden&quot;);
   input[idx].setAttribute(&quot;name&quot;, idx);
   input[idx].setAttribute(&quot;value&quot;, JSON.stringify(your_json_array[idx]));
   form.appendChild(input[idx]);
});

document.body.appendChild(form);
form.submit();&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; your_json_array는 당신이 준비한 json array이다.&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;&amp;nbsp; [자바]&lt;/p&gt;
&lt;pre id=&quot;code_1634109622446&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import com.google.gson.JsonParser;
import com.google.gson.JsonObject;
import 내가 마든 vo;

@RequestMapping(value = &quot;보낼 주소&quot;, produces = &quot;application/json;charset=UTF-8&quot;, method = RequestMethod.POST)
public View devsimFunction(Model model, HttpServletRequest request, @RequestParam Map&amp;lt;String, String&amp;gt; paramMap) {
   
   List&amp;lt;내가 만든 VO&amp;gt; list = new ArrayList&amp;lt;내가 만든 vo&amp;gt;();
   JsonParser jsp = new JsonParser();
   JsonObject jobj;
   내가 만든 vo;
   
   for (알아서) {
      jobj = (JsonObject)jsp.parse(paramMap.get(index));
      vo = new 내가 만든 vo();
      jobj 를 get으로 값을 받아온다....
   }
   
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; JsonParser와 JsonObject를 이용하여 값을 받아 처리한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; vo를 만들어서 사용하든 본인 상황에 맞게 코드를 작성한다.&lt;/p&gt;</description>
      <category>Spring</category>
      <category>controller</category>
      <category>form</category>
      <category>JSON ARRAY</category>
      <category>parameters</category>
      <author>데브심</author>
      <guid isPermaLink="true">https://devesim.tistory.com/112</guid>
      <comments>https://devesim.tistory.com/112#entry112comment</comments>
      <pubDate>Wed, 13 Oct 2021 16:23:08 +0900</pubDate>
    </item>
    <item>
      <title>팝업 창에서 부모 페이지에 선언한 함수 호출방법</title>
      <link>https://devesim.tistory.com/111</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&amp;middot; 개요 : 자바스크립트에서 window.open 으로 팝업창을 사용하는 경우&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;상황에 따라 자식 팝업창에서 부모 페이지의 함수를 사용해야 하는 경우가 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (파라미터 전달 가능)&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;&amp;nbsp;&amp;middot; 호출방법 :&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;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;window.parentsFun = function(param) {&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;console.log(&quot;I'm parents&quot;);&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&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;⊙&amp;nbsp;자식 페이지&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;opener.parentsFunc(param);&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;&amp;nbsp;&amp;middot;&amp;nbsp;출처 : &lt;a href=&quot;https://www.c-sharpcorner.com/blogs/calling-a-javascript-function-of-parent-window-from-child-window1&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://www.c-sharpcorner.com/blogs/calling-a-javascript-function-of-parent-window-from-child-window1&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1634107911530&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;Blogs&quot; data-og-title=&quot;Calling a JavaScript function of Parent Window from Child Window&quot; data-og-description=&quot;This blog gives you a way to call a Javascript function of Parent window from the new popup Child Window.&quot; data-og-host=&quot;www.c-sharpcorner.com&quot; data-og-source-url=&quot;https://www.c-sharpcorner.com/blogs/calling-a-javascript-function-of-parent-window-from-child-window1&quot; data-og-url=&quot;https://www.c-sharpcorner.com/blogs/calling-a-javascript-function-of-parent-window-from-child-window1&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cMuxt8/hyLVXpFZxb/izPElbZv5yG6KKSmbDQezK/img.png?width=200&amp;amp;height=200&amp;amp;face=0_0_200_200&quot;&gt;&lt;a href=&quot;https://www.c-sharpcorner.com/blogs/calling-a-javascript-function-of-parent-window-from-child-window1&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.c-sharpcorner.com/blogs/calling-a-javascript-function-of-parent-window-from-child-window1&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cMuxt8/hyLVXpFZxb/izPElbZv5yG6KKSmbDQezK/img.png?width=200&amp;amp;height=200&amp;amp;face=0_0_200_200');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Calling a JavaScript function of Parent Window from Child Window&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;This blog gives you a way to call a Javascript function of Parent window from the new popup Child Window.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.c-sharpcorner.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>JavaScript</category>
      <category>부모 함수 호출</category>
      <category>자바스크립트</category>
      <category>팝업</category>
      <author>데브심</author>
      <guid isPermaLink="true">https://devesim.tistory.com/111</guid>
      <comments>https://devesim.tistory.com/111#entry111comment</comments>
      <pubDate>Wed, 13 Oct 2021 15:52:01 +0900</pubDate>
    </item>
    <item>
      <title>Can not find the tag library descriptor for &amp;quot;http://java.sun.com/jsp/jstl/core&amp;quot; 오류 해결</title>
      <link>https://devesim.tistory.com/110</link>
      <description>&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&amp;middot; 개요 : 개인적인 생각이지만 다른 프로젝트에서 오류가 발생하는 경우 쌩뚱맞게 다른 프로젝트에서 이 오류가 나타나는 경우가 어쩌다 발생한다. 이클립스 내부적으로 Maven Path를 잡는 과정에서 뭔가 꼬여서 발생하는 것으로 추측된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&amp;middot;&amp;nbsp;오류 메시지 : Can not find the tag library descriptor for 뒤에 jstl, tiles ... 등등 여러가지가 올 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&amp;middot;&amp;nbsp;해결방법 : 당황하지 말고 pom.xml 파일에서 오류 구문이 나타나는 항목을 잘라내고 저장 -&amp;gt; 우측 하단에서 이클립스가 Maven 설정을 다시하는 것을 확인할 수 있다. -&amp;gt; 모두 끝나면 잘라내었던 항목을 다시 붙여넣기 한다. -&amp;gt; 다시 이클립스가 Maven 설정을 다시하는 것을 확인할 수 있다. -&amp;gt; 이제 문제가 해결된 것을 확인할 수 있을 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp; 이방법을 사용하고도 문제가 발생하면 경로 문제 등 진짜 문제가 있거나 하는 경우이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Eclipse &amp;amp; STS</category>
      <category>Can not find the tag</category>
      <category>Sts</category>
      <category>이클립스</category>
      <author>데브심</author>
      <guid isPermaLink="true">https://devesim.tistory.com/110</guid>
      <comments>https://devesim.tistory.com/110#entry110comment</comments>
      <pubDate>Mon, 28 Jun 2021 08:59:49 +0900</pubDate>
    </item>
    <item>
      <title>[jqxGrid] 헤더를 2줄로 나타내는 경우</title>
      <link>https://devesim.tistory.com/109</link>
      <description>&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&amp;middot;&amp;nbsp;사용 환경 : jQWidgets을 사용한 Web 환경&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&amp;middot;&amp;nbsp;개요 : jqxGrid 사용 시 기본으로 헤더는 1줄로 표시되는데 2줄로 나타내고 싶은 경우 조치&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&amp;middot;&amp;nbsp;소스 :&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;renderer: function() { &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return '&amp;lt;div style=&quot;margin-top:20px; text-align:center&quot;&amp;gt;코로나&amp;lt;br /&amp;gt;바이러스&amp;lt;/div&amp;gt;'; &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;},&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&amp;middot;&amp;nbsp;설명 : jqxGrid 내부의 columns 속성에서 2줄로 나타내고 싶은 속성에 위의 소스를 추가한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&amp;middot;&amp;nbsp;출처 : jQWidgets 공식 사이트 Q&amp;amp;A&lt;/p&gt;</description>
      <category>JavaScript UI Framework</category>
      <category>jQWidgets</category>
      <category>헤더를 2줄로</category>
      <author>데브심</author>
      <guid isPermaLink="true">https://devesim.tistory.com/109</guid>
      <comments>https://devesim.tistory.com/109#entry109comment</comments>
      <pubDate>Fri, 18 Jun 2021 16:33:26 +0900</pubDate>
    </item>
    <item>
      <title>배열, JSon 중복제거</title>
      <link>https://devesim.tistory.com/108</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;* 배열 혹은 JSon 데이터를 중복제거 하는 방법&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;- 방법 1. 배열 데이터를 중복제거 하는 경우&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;const oneArr = ['aaa', 'bbb', 'bbb'];&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;const set = Array.from(new Set(oneArr)); &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;- 방법 2. JSon 데이터 중복제거 하는 경우(요소가 모두 일치하는 경우만 중복제거된다)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;var&amp;nbsp;jsonArrOrg&amp;nbsp;=&amp;nbsp;[]; &lt;br /&gt;var&amp;nbsp;jsonArrNew&amp;nbsp;=&amp;nbsp;[]; &lt;br /&gt;&lt;br /&gt;jsonArrOrg.push({'aaa',&amp;nbsp;'bbb',&amp;nbsp;'ccc'}); &lt;br /&gt;jsonArrOrg.push({'aaa',&amp;nbsp;'bbb',&amp;nbsp;'ccc'}); &lt;br /&gt;jsonArrOrg.push({'aaa',&amp;nbsp;'bbb',&amp;nbsp;'ddd'}); &lt;br /&gt;&lt;br /&gt;jsonArrNew&amp;nbsp;=&amp;nbsp;[...new&amp;nbsp;Set(jsonArrOrg.map(JSON.stringify))].map(JSON.parse); &lt;br /&gt;&lt;br /&gt;&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;a href=&quot;https://kyounghwan01.github.io/blog/JS/JSbasic/dupulication-property-remove/#filter&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://kyounghwan01.github.io/blog/JS/JSbasic/dupulication-property-remove/#filter&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1621920359269&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;JavaScript - new Date 날짜 다루기&quot; data-og-description=&quot;JavaScript - new Date 날짜 다루기&quot; data-og-host=&quot;kyounghwan01.github.io&quot; data-og-source-url=&quot;https://kyounghwan01.github.io/blog/JS/JSbasic/dupulication-property-remove/#filter&quot; data-og-url=&quot;https://kyounghwan01.github.io/blog/JS/JSbasic/dealingDate/&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://kyounghwan01.github.io/blog/JS/JSbasic/dupulication-property-remove/#filter&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://kyounghwan01.github.io/blog/JS/JSbasic/dupulication-property-remove/#filter&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;JavaScript - new Date 날짜 다루기&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;JavaScript - new Date 날짜 다루기&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;kyounghwan01.github.io&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>JavaScript</category>
      <category>json</category>
      <category>배일</category>
      <category>중복제거</category>
      <author>데브심</author>
      <guid isPermaLink="true">https://devesim.tistory.com/108</guid>
      <comments>https://devesim.tistory.com/108#entry108comment</comments>
      <pubDate>Tue, 25 May 2021 14:28:28 +0900</pubDate>
    </item>
    <item>
      <title>프린트 가로, 세로 출력 CSS 설정</title>
      <link>https://devesim.tistory.com/105</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&amp;middot; 환경 : 크롬&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;&amp;nbsp;&amp;middot; 방법 : style 태그 내부에 아래 코드를 작성한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp; &amp;nbsp;@page { size: A4 portrait; margin:0; }&amp;nbsp; &amp;nbsp;//A4 세로 출력&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp; &amp;nbsp;@page { size: A4 &lt;span style=&quot;color: #333333;&quot;&gt;landscape; margin:0; }&amp;nbsp; &amp;nbsp;//A4 가로 출력&lt;/span&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;&amp;nbsp; &amp;nbsp;자바스크립트에서 인쇄 시 크롬 미리보기 창이 뜨는 경우&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;위에서 설정한 대로 인쇄 미리보기 설정이 바뀐 것을 확인 할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>CSS</category>
      <category>CSS</category>
      <category>landscape</category>
      <category>프린트 가로 출력</category>
      <author>데브심</author>
      <guid isPermaLink="true">https://devesim.tistory.com/105</guid>
      <comments>https://devesim.tistory.com/105#entry105comment</comments>
      <pubDate>Thu, 18 Feb 2021 10:44:19 +0900</pubDate>
    </item>
    <item>
      <title>[jqxGrid] 두개 컬럼의 헤더 합치는 방법</title>
      <link>https://devesim.tistory.com/104</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;jqxlogo.png&quot; data-origin-width=&quot;298&quot; data-origin-height=&quot;105&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/A7DLF/btqUJXPxJaz/TIyGEYXVu3qL6g96CuOz0K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/A7DLF/btqUJXPxJaz/TIyGEYXVu3qL6g96CuOz0K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/A7DLF/btqUJXPxJaz/TIyGEYXVu3qL6g96CuOz0K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FA7DLF%2FbtqUJXPxJaz%2FTIyGEYXVu3qL6g96CuOz0K%2Fimg.png&quot; data-filename=&quot;jqxlogo.png&quot; data-origin-width=&quot;298&quot; data-origin-height=&quot;105&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;개요&lt;/span&gt; : jqWidgets의 jqxGrid 사용 중 두개의 컬럼의 헤더를 한개로 합치는 방법&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;해결책&lt;/span&gt; : columns 옵션 중 rendered 옵션을 사용&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;JavaScript&lt;/span&gt; :&lt;/p&gt;
&lt;p&gt;$(&quot;#grid_id&quot;).jqxGrid({&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp;width: 450,&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp;source: dataAdapter,&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp;columns: [&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;text: &quot;Product&quot;,&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;datafield: &quot;productname&quot;,&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;b&gt;renered: function (columnHeaerElement) {&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; columnHeaderElement.html(&quot;div id='devsim' style='margin-right: 2px;'&amp;gt;Product&amp;lt;/div&amp;gt;&quot;)&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp; &amp;nbsp;},&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp; &amp;nbsp;{&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;text: &quot;Quantity&quot;,&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;datafield: &quot;quantity&quot;,&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;b&gt;renered: function (columnHeaerElement) {&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; columnHeaderElement.html(&quot;div style='margin-right: 2px;'&amp;gt;Detail&amp;lt;/div&amp;gt;&quot;)&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp; &amp;nbsp;]&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;});&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;CSS&lt;/span&gt; :&amp;nbsp;&lt;/p&gt;
&lt;p&gt;.jqx-grid-column-header {&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp;border: none;&lt;/p&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;결과&lt;/span&gt; :&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;jqw.png&quot; data-origin-width=&quot;454&quot; data-origin-height=&quot;362&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/5d50W/btqUGTs6fqi/eTptLjef1cB4WDUAyLliW1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/5d50W/btqUGTs6fqi/eTptLjef1cB4WDUAyLliW1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/5d50W/btqUGTs6fqi/eTptLjef1cB4WDUAyLliW1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F5d50W%2FbtqUGTs6fqi%2FeTptLjef1cB4WDUAyLliW1%2Fimg.png&quot; data-filename=&quot;jqw.png&quot; data-origin-width=&quot;454&quot; data-origin-height=&quot;362&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;개인 해결책&lt;/span&gt; : 위의 예시는 공식사이트의 답변 사항이고 개인적으로는 그리드 바인딩이 완료되면&amp;nbsp;&lt;/p&gt;
&lt;p&gt;첫번째 div에 id를 지정 후 border를 지정해주는 방법으로 해결하였다.&lt;/p&gt;
&lt;p&gt;$(&quot;#&lt;span style=&quot;color: #333333;&quot;&gt;grid_id&quot;).on(&quot;bindingcomplete&quot;, function () {&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp; &amp;nbsp;$(&quot;#devsim&quot;).parent().parent().parent().css(&quot;border&quot;, &quot;none&quot;);&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;});&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;각자 자신의 환경에 맞게 수정해서 문제를 해결하면 된다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;[출처] : jqWidgets 공식 사이트 Hristo님&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.jqwidgets.com/community/topic/same-header-for-2-columns/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;www.jqwidgets.com/community/topic/same-header-for-2-columns/&lt;/a&gt;&lt;/p&gt;</description>
      <category>JavaScript UI Framework</category>
      <category>header mergy</category>
      <category>jqxgrid</category>
      <category>헤더 합치기</category>
      <author>데브심</author>
      <guid isPermaLink="true">https://devesim.tistory.com/104</guid>
      <comments>https://devesim.tistory.com/104#entry104comment</comments>
      <pubDate>Tue, 26 Jan 2021 13:02:47 +0900</pubDate>
    </item>
    <item>
      <title>스프링 특정 시간에 컨트롤러 함수 호출하기</title>
      <link>https://devesim.tistory.com/102</link>
      <description>&lt;p&gt;스프링 특정 시간에 컨트롤러 함수 호출하는 방법&lt;/p&gt;
&lt;p&gt;스케쥴 기능은 여러가지가 있는데 이방법은 @Scheduled 어노테이션을 사용하는 방법으로 비교적 간단하다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;1. Dispatcher-Servlet.xml 파일에 항목 추가(환경에 따라 servlet-contexxt.xml 등 맞게 수정한다)&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp;&amp;lt;beans:beans&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; ...&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;b&gt;&lt;span style=&quot;color: #009a87;&quot;&gt;xmlns:task=&quot;http://www.www.springframework.org/schema/task&quot;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; ...&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; xsi:schemaLocation= ...&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;...&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;b&gt;&lt;span style=&quot;color: #009a87;&quot;&gt;http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-4.0.xsd&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;...&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;lt;annotation-driven /&amp;gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #009a87;&quot;&gt;&lt;b&gt;&amp;lt;task:annotation-driven /&amp;gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;2. 특정 시간에 호출하려는 메서드 상단에 어노테이션을 추가한다. (아래는 매일 오후 2시 15분에 호출하도록 되어 있다.)&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp;&lt;span style=&quot;color: #009a87;&quot;&gt;&lt;b&gt;@Scheduled(cron=&quot;0 15 14 * * ?&quot;)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp;public void test() {&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; ...&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp;}&lt;/p&gt;
&lt;p&gt;서버가 동작중일 때 해당 시간에 메서드가 호출되는 것을 확인할 수 있다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;[출처 및 cron 시간에 대한 자세한 사항은 아래 사이트 참고할 것]&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://huskdoll.tistory.com/819&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;huskdoll.tistory.com/819&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1607660173064&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[Spring] @Scheduled 정해진 시간에 맞춰서 모듈 실행하기&quot; data-og-description=&quot;Linux에서 cron 을 사용하는것&amp;nbsp;처럼 웹서비스에서도 정해진 시간에 무언가를 실행해야 하는 경우가 종종 있습니다. 자바에도 그런 기능을 제공해주고 있고, Spring에서는 손쉽게 사용할 수가 있습&quot; data-og-host=&quot;huskdoll.tistory.com&quot; data-og-source-url=&quot;https://huskdoll.tistory.com/819&quot; data-og-url=&quot;https://huskdoll.tistory.com/819&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/eDz4FP/hyIxioKiwu/6Gcz8zw5mvqEtFIShE0KWk/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/bbu6JB/hyIwxujEp3/2mgYFmZMqRodLWCbIwXNEK/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800&quot;&gt;&lt;a href=&quot;https://huskdoll.tistory.com/819&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://huskdoll.tistory.com/819&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/eDz4FP/hyIxioKiwu/6Gcz8zw5mvqEtFIShE0KWk/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/bbu6JB/hyIwxujEp3/2mgYFmZMqRodLWCbIwXNEK/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot;&gt;[Spring] @Scheduled 정해진 시간에 맞춰서 모듈 실행하기&lt;/p&gt;
&lt;p class=&quot;og-desc&quot;&gt;Linux에서 cron 을 사용하는것&amp;nbsp;처럼 웹서비스에서도 정해진 시간에 무언가를 실행해야 하는 경우가 종종 있습니다. 자바에도 그런 기능을 제공해주고 있고, Spring에서는 손쉽게 사용할 수가 있습&lt;/p&gt;
&lt;p class=&quot;og-host&quot;&gt;huskdoll.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Spring</category>
      <category>cron</category>
      <category>스케쥴</category>
      <category>스프링</category>
      <author>데브심</author>
      <guid isPermaLink="true">https://devesim.tistory.com/102</guid>
      <comments>https://devesim.tistory.com/102#entry102comment</comments>
      <pubDate>Fri, 11 Dec 2020 13:16:41 +0900</pubDate>
    </item>
  </channel>
</rss>