<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>코딩하는 지니</title>
    <link>https://yungenie.tistory.com/</link>
    <description>안녕하세요. 균지니입니다. 저의 블로그에 방문해주시는 분들이 작게나마 실마리가 풀리시길 바랍니다. &amp;zwj; </description>
    <language>ko</language>
    <pubDate>Wed, 8 Apr 2026 15:32:41 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>균지니</managingEditor>
    <image>
      <title>코딩하는 지니</title>
      <url>https://tistory1.daumcdn.net/tistory/5459951/attach/1d3d7e0282824bb3b4c9f4514c98e56c</url>
      <link>https://yungenie.tistory.com</link>
    </image>
    <item>
      <title>2025년 6년차 개발자 회고</title>
      <link>https://yungenie.tistory.com/19</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;251&quot; data-origin-height=&quot;189&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/BJwQt/dJMcaiPzm10/EKI8m2z1KUTNKPJn7OEBy0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/BJwQt/dJMcaiPzm10/EKI8m2z1KUTNKPJn7OEBy0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/BJwQt/dJMcaiPzm10/EKI8m2z1KUTNKPJn7OEBy0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FBJwQt%2FdJMcaiPzm10%2FEKI8m2z1KUTNKPJn7OEBy0%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;251&quot; height=&quot;189&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;251&quot; data-origin-height=&quot;189&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;고용보험 합산 기준으로 6년 차였던 2025년.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;지금 돌아보면, 내 2025년은 상반기와 하반기가 꽤 분명하게 갈린 해였다. 아니 극명하게 나뉜다.&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;ldquo;이제 개발자를 계속해야 하나?&amp;rdquo;라는 생각까지 들 정도로 마음이 많이 흔들렸다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;직업을 바꿔야 하나, 지금까지 해온 선택들이 맞았나&amp;mdash;그런 고민을 정말 많이 했던 시기였다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2400&quot; data-origin-height=&quot;2400&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dsSlQw/dJMcai9RL25/RGZgeMa9kS5lqx0KPINGuK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dsSlQw/dJMcai9RL25/RGZgeMa9kS5lqx0KPINGuK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dsSlQw/dJMcai9RL25/RGZgeMa9kS5lqx0KPINGuK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdsSlQw%2FdJMcai9RL25%2FRGZgeMa9kS5lqx0KPINGuK%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;254&quot; height=&quot;254&quot; data-origin-width=&quot;2400&quot; data-origin-height=&quot;2400&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;그러던 중 우연히 여의도에 있는 백엔드 개발자 공고를 보게 되었고 지원을 하게 되었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;10년 차 핀테크 스타트업이고 좋은 기회로 이력서 합격이 되어 기술면접, 임원면접까지 이어졌다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이번이 정말 마지막 기회일지도 모른다는 생각으로, 잘 보이려고 포장하기보다는 내가 해온 경험과 부족했던 부분까지 최대한 솔직하게 이야기했다. 그게 오히려 좋게 보였던 것 같다. CTO 면접이 끝나고 집에 가는 길에 바로 최종 합격 연락을 받았다.&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;blob&quot; data-origin-width=&quot;2008&quot; data-origin-height=&quot;201&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bXwyUq/dJMcahXuPhy/fwxKPaSROu6KvenNc0KgW0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bXwyUq/dJMcahXuPhy/fwxKPaSROu6KvenNc0KgW0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bXwyUq/dJMcahXuPhy/fwxKPaSROu6KvenNc0KgW0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbXwyUq%2FdJMcahXuPhy%2FfwxKPaSROu6KvenNc0KgW0%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;550&quot; height=&quot;369&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;2008&quot; data-origin-height=&quot;201&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;입사 전, 또 하나의 기회가 있었다. 토스 이력서 합격으로 기술 면접을 보게 되었고,&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2004&quot; data-origin-height=&quot;1304&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/81lDD/dJMcabXgdbB/inQO9XaUfwJ7EIKqI0PnC1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/81lDD/dJMcabXgdbB/inQO9XaUfwJ7EIKqI0PnC1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/81lDD/dJMcabXgdbB/inQO9XaUfwJ7EIKqI0PnC1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F81lDD%2FdJMcabXgdbB%2FinQO9XaUfwJ7EIKqI0PnC1%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;474&quot; height=&quot;308&quot; data-origin-width=&quot;2004&quot; data-origin-height=&quot;1304&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아쉽긴 했지만, 개인적으로는 정말 많이 배운 면접이었다. 토스 면접을 한마디로 정리하면, &amp;ldquo;역시 토스였다.&amp;rdquo;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;단순한 CS 지식 Q&amp;amp;A보다는 내가 실제로 일했던 회사의 구조를 바탕으로 대규모 트래픽 상황을 던져주고 &amp;ldquo;이 상황이라면 어떻게 설계하고 대응할 것인가?&amp;rdquo;를 계속 물어보는 방식이었다. 이론 지식, 실무 경험, 개인 학습이 자연스럽게 섞여야 답할 수 있는 질문들이었고, 그 답변 과정 자체로 지원자를 검증하는 느낌을 받았다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lsquo;아, 이런 방식의 면접도 있구나.&amp;rsquo; 그리고 동시에, &amp;lsquo;아직 공부해야 할 게 정말 많다.&amp;rsquo;는 걸 다시 한번 느꼈다.&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;ldquo;하반기에는 새로운 회사에 잘 적응해 보자&amp;rdquo;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;ldquo;너무 조급해하지 말고, 다시 차근차근 가보자&amp;rdquo; 이런 생각들을 정리하고 서울로 돌아왔다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mspIQ/dJMcabwbCXx/kfFKVsJs39BCrQ87PKiwL1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mspIQ/dJMcabwbCXx/kfFKVsJs39BCrQ87PKiwL1/img.jpg&quot; data-origin-width=&quot;3769&quot; data-origin-height=&quot;6698&quot; data-is-animation=&quot;false&quot; data-filename=&quot;KakaoTalk_Photo_2026-01-18-20-59-25 001.jpeg&quot; style=&quot;width: 32.5661%; margin-right: 10px;&quot; data-widthpercent=&quot;33.34&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mspIQ/dJMcabwbCXx/kfFKVsJs39BCrQ87PKiwL1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmspIQ%2FdJMcabwbCXx%2FkfFKVsJs39BCrQ87PKiwL1%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;3769&quot; height=&quot;6698&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/blQN6k/dJMcabwbCXu/BTjP5qKKYvT8RGXhh9pFU1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/blQN6k/dJMcabwbCXu/BTjP5qKKYvT8RGXhh9pFU1/img.jpg&quot; data-origin-width=&quot;2268&quot; data-origin-height=&quot;4032&quot; data-is-animation=&quot;false&quot; data-filename=&quot;KakaoTalk_Photo_2026-01-18-20-59-26 002.jpeg&quot; style=&quot;width: 32.5542%; margin-right: 10px;&quot; data-widthpercent=&quot;33.33&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/blQN6k/dJMcabwbCXu/BTjP5qKKYvT8RGXhh9pFU1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FblQN6k%2FdJMcabwbCXu%2FBTjP5qKKYvT8RGXhh9pFU1%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;2268&quot; height=&quot;4032&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bqSap4/dJMcafSUpYj/SeM2cm9Qaq6WimUue4nAu1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bqSap4/dJMcafSUpYj/SeM2cm9Qaq6WimUue4nAu1/img.jpg&quot; data-origin-width=&quot;4536&quot; data-origin-height=&quot;8064&quot; data-is-animation=&quot;false&quot; data-filename=&quot;KakaoTalk_Photo_2026-01-18-20-59-28 003.jpeg&quot; style=&quot;width: 32.5542%;&quot; data-widthpercent=&quot;33.33&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bqSap4/dJMcafSUpYj/SeM2cm9Qaq6WimUue4nAu1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbqSap4%2FdJMcafSUpYj%2FSeM2cm9Qaq6WimUue4nAu1%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;4536&quot; height=&quot;8064&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_Photo_2026-01-18-20-59-29 005.jpeg&quot; data-origin-width=&quot;4438&quot; data-origin-height=&quot;2496&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/wFDGw/dJMcabwbCXw/yy4h4uocEQrkJBFl2riRxK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/wFDGw/dJMcabwbCXw/yy4h4uocEQrkJBFl2riRxK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/wFDGw/dJMcabwbCXw/yy4h4uocEQrkJBFl2riRxK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FwFDGw%2FdJMcabwbCXw%2Fyy4h4uocEQrkJBFl2riRxK%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;4438&quot; height=&quot;2496&quot; data-filename=&quot;KakaoTalk_Photo_2026-01-18-20-59-29 005.jpeg&quot; data-origin-width=&quot;4438&quot; data-origin-height=&quot;2496&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;그리고 6월 1일, 설레는 마음으로 출근을 시작했다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ccdcnc/dJMcai26nvW/cgS9Lzg2koHvXrxUqmoSA0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ccdcnc/dJMcai26nvW/cgS9Lzg2koHvXrxUqmoSA0/img.jpg&quot; data-is-animation=&quot;false&quot; data-origin-width=&quot;4032&quot; data-origin-height=&quot;2268&quot; data-filename=&quot;KakaoTalk_Photo_2026-01-18-20-59-32 009.jpeg&quot; width=&quot;478&quot; height=&quot;269&quot; style=&quot;width: 61.985%; margin-right: 10px;&quot; data-widthpercent=&quot;63.46&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ccdcnc/dJMcai26nvW/cgS9Lzg2koHvXrxUqmoSA0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fccdcnc%2FdJMcai26nvW%2FcgS9Lzg2koHvXrxUqmoSA0%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;4032&quot; height=&quot;2268&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dueRnj/dJMcah4e1aJ/6H2xHyksGrqWB6kkZyol61/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dueRnj/dJMcah4e1aJ/6H2xHyksGrqWB6kkZyol61/img.png&quot; data-is-animation=&quot;false&quot; data-origin-width=&quot;1179&quot; data-origin-height=&quot;2556&quot; data-filename=&quot;blob&quot; data-widthpercent=&quot;16.47&quot; style=&quot;width: 16.0828%; margin-right: 10px;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dueRnj/dJMcah4e1aJ/6H2xHyksGrqWB6kkZyol61/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdueRnj%2FdJMcah4e1aJ%2F6H2xHyksGrqWB6kkZyol61%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;1179&quot; height=&quot;2556&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bcaVM3/dJMcahpEh8v/uyNcjytpOZzwoAKldTtIqk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bcaVM3/dJMcahpEh8v/uyNcjytpOZzwoAKldTtIqk/img.png&quot; data-is-animation=&quot;false&quot; data-origin-width=&quot;1687&quot; data-origin-height=&quot;3000&quot; data-filename=&quot;blob&quot; data-widthpercent=&quot;20.07&quot; style=&quot;width: 19.6066%;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bcaVM3/dJMcahpEh8v/uyNcjytpOZzwoAKldTtIqk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbcaVM3%2FdJMcahpEh8v%2FuyNcjytpOZzwoAKldTtIqk%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;1687&quot; height=&quot;3000&quot;/&gt;&lt;/span&gt;&lt;/div&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;MSA 환경에서 도메인 서버 간 연동, QA 프로세스 등 이전보다 훨씬 체계적인 방식으로 개발을 하게 되었다.&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러던 중, 회사 내부에서 좋지 않은 이야기들이 조금씩 들려오기 시작했다. 전반적인 시장 분위기도 그렇고, 회사 상황에 대한 소문까지 겹치니 마음이 다시 조금씩 불안해졌다. &amp;lsquo;가만히 있기보다는 준비는 해두자.&amp;rsquo; 그런 마음으로 이직을 다시 고민하게 되었고, 동료 개발자의 추천으로 다른 회사 면접을 보게 되었다.&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;ldquo;내가 알고 있다고 생각했던 개념들을 정말 제대로 이해하고, 내 언어로 설명할 수 있어야겠구나.&amp;rdquo; 개발자 친구와 이야기하며 조언도 받았다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;지금 회사가 애자일 + 2주 단위 스프린트 체제라 병행이 쉽진 않겠지만, 완벽하려고 하지 말고 공부할 수 있는 시간을 조금씩이라도 확보해서 점진적으로 공부량을 늘려보라는 말이었다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;3000&quot; data-origin-height=&quot;1687&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Nf3IV/dJMcaf6qjSq/zZmaRRACN2vGDuand0Edwk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Nf3IV/dJMcaf6qjSq/zZmaRRACN2vGDuand0Edwk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Nf3IV/dJMcaf6qjSq/zZmaRRACN2vGDuand0Edwk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FNf3IV%2FdJMcaf6qjSq%2FzZmaRRACN2vGDuand0Edwk%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;494&quot; height=&quot;278&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;3000&quot; data-origin-height=&quot;1687&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;업무도 놓치고 싶지 않았고, 면접 기회도 내겐 소중했기 때문에 스스로에게 꽤 큰 압박을 줬던 것 같다.&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;&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;mdash; 방문했던 곳 하나하나 다 좋았다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 역시, 바다는 좋다. 복잡한 생각들을 자연스럽게 정리해 준다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bs5GRJ/dJMcaiPznkZ/cj4fCfydJTpMACgc3uSYEk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bs5GRJ/dJMcaiPznkZ/cj4fCfydJTpMACgc3uSYEk/img.jpg&quot; data-is-animation=&quot;false&quot; data-origin-width=&quot;3024&quot; data-origin-height=&quot;3024&quot; data-filename=&quot;KakaoTalk_Photo_2026-01-18-20-59-35 018.jpeg&quot; style=&quot;width: 34.002%; margin-right: 10px;&quot; data-widthpercent=&quot;34.81&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bs5GRJ/dJMcaiPznkZ/cj4fCfydJTpMACgc3uSYEk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbs5GRJ%2FdJMcaiPznkZ%2Fcj4fCfydJTpMACgc3uSYEk%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;3024&quot; height=&quot;3024&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/BY71o/dJMcaiPznlK/RO7FaBMQTuytzrRAMJj3LK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/BY71o/dJMcaiPznlK/RO7FaBMQTuytzrRAMJj3LK/img.png&quot; data-origin-width=&quot;1959&quot; data-origin-height=&quot;2245&quot; data-is-animation=&quot;false&quot; data-filename=&quot;blob&quot; data-widthpercent=&quot;30.38&quot; style=&quot;width: 29.6704%; margin-right: 10px;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/BY71o/dJMcaiPznlK/RO7FaBMQTuytzrRAMJj3LK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FBY71o%2FdJMcaiPznlK%2FRO7FaBMQTuytzrRAMJj3LK%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;1959&quot; height=&quot;2245&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ziW2O/dJMcaiPznk0/BHEHaLlMMxtsUiwNXlSlD1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ziW2O/dJMcaiPznk0/BHEHaLlMMxtsUiwNXlSlD1/img.jpg&quot; data-is-animation=&quot;false&quot; data-origin-width=&quot;3024&quot; data-origin-height=&quot;3024&quot; data-filename=&quot;KakaoTalk_Photo_2026-01-18-20-59-33 014.jpeg&quot; width=&quot;234&quot; data-widthpercent=&quot;34.81&quot; style=&quot;width: 34.002%;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ziW2O/dJMcaiPznk0/BHEHaLlMMxtsUiwNXlSlD1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FziW2O%2FdJMcaiPznk0%2FBHEHaLlMMxtsUiwNXlSlD1%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;3024&quot; height=&quot;3024&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dmhPj1/dJMcafFmvrh/4MHZzPt9tPNuv7dTCZ9NjK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dmhPj1/dJMcafFmvrh/4MHZzPt9tPNuv7dTCZ9NjK/img.jpg&quot; data-is-animation=&quot;false&quot; data-origin-width=&quot;3108&quot; data-origin-height=&quot;3108&quot; data-filename=&quot;KakaoTalk_Photo_2026-01-18-20-59-34 016.jpeg&quot; style=&quot;width: 25.855%; margin-right: 10px;&quot; data-widthpercent=&quot;26.47&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dmhPj1/dJMcafFmvrh/4MHZzPt9tPNuv7dTCZ9NjK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdmhPj1%2FdJMcafFmvrh%2F4MHZzPt9tPNuv7dTCZ9NjK%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;3108&quot; height=&quot;3108&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bdSpzf/dJMcagxuxCx/T9Rehrn6PgeTrpjnYqPKY1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bdSpzf/dJMcagxuxCx/T9Rehrn6PgeTrpjnYqPKY1/img.jpg&quot; data-origin-width=&quot;6048&quot; data-origin-height=&quot;6048&quot; data-is-animation=&quot;false&quot; data-filename=&quot;KakaoTalk_Photo_2026-01-18-20-59-35 017.jpeg&quot; style=&quot;width: 25.855%; margin-right: 10px;&quot; data-widthpercent=&quot;26.47&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bdSpzf/dJMcagxuxCx/T9Rehrn6PgeTrpjnYqPKY1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbdSpzf%2FdJMcagxuxCx%2FT9Rehrn6PgeTrpjnYqPKY1%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;6048&quot; height=&quot;6048&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cG146G/dJMcafFmvrq/08jdN2FvkERYK3WwelLwz0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cG146G/dJMcafFmvrq/08jdN2FvkERYK3WwelLwz0/img.jpg&quot; data-origin-width=&quot;8064&quot; data-origin-height=&quot;4536&quot; data-is-animation=&quot;false&quot; data-filename=&quot;KakaoTalk_Photo_2026-01-18-20-59-36 019.jpeg&quot; style=&quot;width: 45.9644%;&quot; data-widthpercent=&quot;47.06&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cG146G/dJMcafFmvrq/08jdN2FvkERYK3WwelLwz0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcG146G%2FdJMcafFmvrq%2F08jdN2FvkERYK3WwelLwz0%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;8064&quot; height=&quot;4536&quot;/&gt;&lt;/span&gt;&lt;/div&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;2026년에는&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;잘해보자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;힘!!&lt;/p&gt;</description>
      <category>일상</category>
      <category>IT #Backend #개발자 #연말회고</category>
      <author>균지니</author>
      <guid isPermaLink="true">https://yungenie.tistory.com/19</guid>
      <comments>https://yungenie.tistory.com/19#entry19comment</comments>
      <pubDate>Sun, 18 Jan 2026 20:29:19 +0900</pubDate>
    </item>
    <item>
      <title>[QueryDSL] Q클래스 생성 오류 해결 (Error, Unsupported Java)</title>
      <link>https://yungenie.tistory.com/18</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;1. 개요&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;최근 QueryDSL 개발 중 Q 클래스 생성 오류 문제에 직면했는데, 해결해서 지금은 잘 작동을 하게 되었습니다.&lt;br /&gt;그런데 골칫덩어리 빌드 생성 문제가 계속 나타날 것 같아 히스토리를 남기고 해결 방법을 공유하고자 합니다.&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;2. 오류&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1547&quot; data-origin-height=&quot;146&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qMikT/btsFQuNxLU7/5Rxirs2P6Q2bgikh9UizH1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qMikT/btsFQuNxLU7/5Rxirs2P6Q2bgikh9UizH1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qMikT/btsFQuNxLU7/5Rxirs2P6Q2bgikh9UizH1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqMikT%2FbtsFQuNxLU7%2F5Rxirs2P6Q2bgikh9UizH1%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;1547&quot; height=&quot;146&quot; data-origin-width=&quot;1547&quot; data-origin-height=&quot;146&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre class=&quot;bash&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;unsupported java. your build is currently configured to use java 21.0.1 and gradle 8.4.&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;위 오류 발생으로 Q 클래스 빌드 안됨&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;3. 해결과정&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;오류 스펙 : Java 21 (zulu 21) + Gradle 8.5 + lombok 1.8.30 스펙에서 빌드가 안돼서 구글링을 해보니 아래 스펙들의 버전이나 호환문제로 QueryDSL Q파일 생성 방법이 다르다고 하여 몇 차례 해결 시도 내용을 적어봅니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #666666;&quot;&gt;Spring boot&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #666666;&quot;&gt;Java&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #666666;&quot;&gt;Gradle&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #666666;&quot;&gt;Lombok&lt;/span&gt;&lt;/p&gt;
&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;span style=&quot;color: #666666;&quot;&gt;IntelliJ&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;  정말 위 스펙들의 버전이나 호환성 문제인가? 일단 구글링을 통해서 해결을 하고 찾을 수 있는 원인은 알아가보자!&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;3.1. 1차&lt;/b&gt;&lt;/h4&gt;
&lt;figure data-ke-type=&quot;opengraph&quot; data-og-title=&quot;Unsupported Java.  Your build is currently configured to use Java 21.0.1 and Gradle 8.5. &amp;middot; Issue #27272 &amp;middot; gradle/gradle&quot; data-ke-align=&quot;alignCenter&quot; data-og-description=&quot;Current Behavior When executing the build, it prompts: Unsupported Java. Your build is currently configured to use Java 21.0.1 and Gradle 8.5. Possible solution: - Use Java 20 as Gradle JVM: Open G...&quot; data-og-host=&quot;github.com&quot; data-og-source-url=&quot;https://github.com/gradle/gradle/issues/27272&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/eG6JM/hyVBNwbmhR/e1NEGXLnBDeM3FovRkDTR0/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600&quot; data-og-url=&quot;https://github.com/gradle/gradle/issues/27272&quot;&gt;&lt;a href=&quot;https://github.com/gradle/gradle/issues/27272&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://github.com/gradle/gradle/issues/27272&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/eG6JM/hyVBNwbmhR/e1NEGXLnBDeM3FovRkDTR0/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600');&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;Unsupported Java.&amp;nbsp;&amp;nbsp;Your build is currently configured to use Java 21.0.1 and Gradle 8.5. &amp;middot; Issue #27272 &amp;middot; gradle/gradle&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Current Behavior When executing the build, it prompts: Unsupported Java. Your build is currently configured to use Java 21.0.1 and Gradle 8.5. Possible solution: - Use Java 20 as Gradle JVM: Open G...&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;github.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;926&quot; data-origin-height=&quot;264&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Oft8I/btsFOZ8CeoJ/Co6Ig7OMe8rngNpNfkBEzk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Oft8I/btsFOZ8CeoJ/Co6Ig7OMe8rngNpNfkBEzk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Oft8I/btsFOZ8CeoJ/Co6Ig7OMe8rngNpNfkBEzk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FOft8I%2FbtsFOZ8CeoJ%2FCo6Ig7OMe8rngNpNfkBEzk%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;926&quot; height=&quot;264&quot; data-origin-width=&quot;926&quot; data-origin-height=&quot;264&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Gradler과 lombok 버전의 문제가 있을 수도 있다 해서, 아래 버전으로 맞춰서 빌드를 해봤다.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Java 21 (zulu 21) + Gradle 8.4 + lombok 1.8.30&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;나이스 성공적~!&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;3.2. 2차&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;개발 수정으로 Q 클래스 다시 빌드해야 되는데, 빌드 과정에서 상위에 기입한 unsupported java. your build is currently configured to use java 21.0.1 and gradle 8.4. 빌드 오류가 났다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;갑자기 또 왜 안돼? ㅋㅋㅋㅋ&lt;br /&gt;clean 누르고, 캐시도 비우고, 프로젝트 껐다 반복도 하고, 난리를 치다가 안돼서 결국 퇴근했다.&lt;br /&gt;퇴근 후 헬스하고 단백질 섭취 한 다음에 TDD 수행을 했다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2000&quot; data-origin-height=&quot;2000&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cmAV56/btsFOC0aPpy/CixDiGN4cRWQ5YjhdE5wd0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cmAV56/btsFOC0aPpy/CixDiGN4cRWQ5YjhdE5wd0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cmAV56/btsFOC0aPpy/CixDiGN4cRWQ5YjhdE5wd0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcmAV56%2FbtsFOC0aPpy%2FCixDiGN4cRWQ5YjhdE5wd0%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;429&quot; height=&quot;429&quot; data-origin-width=&quot;2000&quot; data-origin-height=&quot;2000&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;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;TDD 팝콘 섭취 수행 이후, 다시 검색을 해봤다.&lt;/li&gt;
&lt;li&gt;인프런에서 영한님 답변 + 여러 수강생분들이 해결한 사례를 토대로 설정 변경도 해봤지만 빌드 실패했다.&lt;/li&gt;
&lt;/ul&gt;
&lt;figure id=&quot;og_1710720839727&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;compileQuerydsl없음 - 인프런&quot; data-og-description=&quot;안녕하세요현재 프로젝트 세팅부터 막혀서 질문 드립니다.질문은 크게 3가지입니다. build 잘됨Gradle Tasks other compileQuerydsl -&amp;gt; 없음 ( spring boot3이상으로 되면서 안보이는게 맞나요)?build.gradleplugins {.&quot; data-og-host=&quot;www.inflearn.com&quot; data-og-source-url=&quot;https://www.inflearn.com/questions/1122210/compilequerydsl%EC%97%86%EC%9D%8C&quot; data-og-url=&quot;https://www.inflearn.com/questions/1122210/compilequerydsl%EC%97%86%EC%9D%8C&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/lAVsR/hyVAHwQ6Yb/mhtBtK16KzaInQxknEjrik/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/bjJK7d/hyVABjaxOI/90RMHMyfqhPjSKDjBKv8B0/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/bE0oqc/hyVAMLLkOt/NZbg3hLkm4DD5hZwakIbdk/img.png?width=1713&amp;amp;height=529&amp;amp;face=0_0_1713_529&quot;&gt;&lt;a href=&quot;https://www.inflearn.com/questions/1122210/compilequerydsl%EC%97%86%EC%9D%8C&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.inflearn.com/questions/1122210/compilequerydsl%EC%97%86%EC%9D%8C&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/lAVsR/hyVAHwQ6Yb/mhtBtK16KzaInQxknEjrik/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/bjJK7d/hyVABjaxOI/90RMHMyfqhPjSKDjBKv8B0/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/bE0oqc/hyVAMLLkOt/NZbg3hLkm4DD5hZwakIbdk/img.png?width=1713&amp;amp;height=529&amp;amp;face=0_0_1713_529');&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;compileQuerydsl없음 - 인프런&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;안녕하세요현재 프로젝트 세팅부터 막혀서 질문 드립니다.질문은 크게 3가지입니다. build 잘됨Gradle Tasks other compileQuerydsl -&amp;gt; 없음 ( spring boot3이상으로 되면서 안보이는게 맞나요)?build.gradleplugins {.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.inflearn.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;3.3. 3차&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;아침에 출근 후 차분히 구글링을 하다가 stack overflow에서 QueryDSL 릴리스 노트의 힌트를 얻었다는 답변을 보게 되었다.&lt;/li&gt;
&lt;li&gt;내용 보니깐 &lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;querydsl-apt가 querydsl-jpa에 종속성으로 포함되어 있어 두 버전을 맞춰&lt;/b&gt;&lt;/span&gt;줘야 한다는 내용이었다.&lt;/li&gt;
&lt;li&gt;dependencyManagement에서 querydsl 버전을 가져오지 못하는 것 같다.&lt;/li&gt;
&lt;li&gt;jpa 버전에 맞춰서 apt 버전을 명시해 주니 다시 빌드가 잘됐다.ㅎㅎㅎㅎ&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;&lt;b&gt;릴리스 노트 :&amp;nbsp;&lt;/b&gt;&lt;br /&gt;&lt;a href=&quot;http://querydsl.com/releases.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;&lt;span&gt;http://querydsl.com/releases.html&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;figure data-ke-type=&quot;opengraph&quot; data-og-title=&quot;Querydsl - Unified Queries for Java&quot; data-ke-align=&quot;alignCenter&quot; data-og-description=&quot;5.0 5.0.0 (22.7.2021) This release of QueryDSL targets Java 8 minimally and comes with various improvements to make QueryDSL ready for the modern Java ecosystem. This version also removes joda-time:joda-time, com.google.guava:guava and com.google.code.find&quot; data-og-host=&quot;querydsl.com&quot; data-og-source-url=&quot;http://querydsl.com/releases.html&quot; data-og-url=&quot;http://querydsl.com/releases.html&quot;&gt;&lt;a href=&quot;http://querydsl.com/releases.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;http://querydsl.com/releases.html&quot;&gt;
&lt;div class=&quot;og-image&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;Querydsl - Unified Queries for Java&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;5.0 5.0.0 (22.7.2021) This release of QueryDSL targets Java 8 minimally and comes with various improvements to make QueryDSL ready for the modern Java ecosystem. This version also removes joda-time:joda-time, com.google.guava:guava and com.google.code.find&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;querydsl.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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;762&quot; data-origin-height=&quot;511&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/drvs9T/btsFOYIDT2l/t9fN5cnkpBPo40vckJ3bNk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/drvs9T/btsFOYIDT2l/t9fN5cnkpBPo40vckJ3bNk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/drvs9T/btsFOYIDT2l/t9fN5cnkpBPo40vckJ3bNk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdrvs9T%2FbtsFOYIDT2l%2Ft9fN5cnkpBPo40vckJ3bNk%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;762&quot; height=&quot;511&quot; data-origin-width=&quot;762&quot; data-origin-height=&quot;511&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;&lt;a href=&quot;https://github.com/querydsl/querydsl/issues/373&quot; target=&quot;_self&quot;&gt;&lt;span&gt;https://github.com/querydsl/querydsl/issues/373&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;figure data-ke-type=&quot;opengraph&quot; data-og-title=&quot;Make querydsl-apt dependency use &amp;quot;provided&amp;quot; scope in QueryDSL 3.0.0+ &amp;middot; Issue #373 &amp;middot; querydsl/querydsl&quot; data-ke-align=&quot;alignCenter&quot; data-og-description=&quot;In QueryDSL 3.0.0, querydsl-jpa currently includes querydsl-apt as a dependency with scope provided, which is expected, since that would only be used at compile time and not needed otherwise. Howev...&quot; data-og-host=&quot;github.com&quot; data-og-source-url=&quot;https://github.com/querydsl/querydsl/issues/373&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/clFv2L/hyVAChwMUJ/tKlIwoF6J18VR9OrDK5RM0/img.png?width=1200&amp;amp;height=600&amp;amp;face=80_125_1049_529&quot; data-og-url=&quot;https://github.com/querydsl/querydsl/issues/373&quot;&gt;&lt;a href=&quot;https://github.com/querydsl/querydsl/issues/373&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://github.com/querydsl/querydsl/issues/373&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/clFv2L/hyVAChwMUJ/tKlIwoF6J18VR9OrDK5RM0/img.png?width=1200&amp;amp;height=600&amp;amp;face=80_125_1049_529');&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;Make querydsl-apt dependency use &quot;provided&quot; scope in QueryDSL 3.0.0+ &amp;middot; Issue #373 &amp;middot; querydsl/querydsl&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;In QueryDSL 3.0.0, querydsl-jpa currently includes querydsl-apt as a dependency with scope provided, which is expected, since that would only be used at compile time and not needed otherwise. Howev...&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;github.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1139&quot; data-origin-height=&quot;524&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bJTYST/btsFQWC4NtZ/wbs5V2oBVapPmAlszYKnE1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bJTYST/btsFQWC4NtZ/wbs5V2oBVapPmAlszYKnE1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bJTYST/btsFQWC4NtZ/wbs5V2oBVapPmAlszYKnE1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbJTYST%2FbtsFQWC4NtZ%2Fwbs5V2oBVapPmAlszYKnE1%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;1139&quot; height=&quot;524&quot; data-origin-width=&quot;1139&quot; data-origin-height=&quot;524&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;matthewadams님, mr.cat님 덕분에 해결해서 정말 다행이다.&amp;nbsp;&lt;br /&gt;querydsl 좀 예민해서 빌드 생성 오류 문제가 종종 발생할 것 같은데, 해결하게 되면 해당 포스팅 글에 계속 업데이트할 예정이다.&amp;nbsp;&lt;br /&gt;실질적인 상세 해결 방법은 4번 항목을 참고해 주세요.&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;4. 해결방법&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;현재 나의 프로젝트 기술 스펙에는 아래와 같은 버전과 설정으로 사용하는 게 맞다는 걸 알게 되어 공유합니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Java 21 (zulu-21)&lt;/li&gt;
&lt;li&gt;Spring boot 3.2.1&lt;/li&gt;
&lt;li&gt;Gradle 8.5&lt;/li&gt;
&lt;li&gt;Querydsl 5.0&lt;/li&gt;
&lt;li&gt;Lombok 1.18.30&lt;/li&gt;
&lt;li&gt;IntelliJ Idea
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Build and Run : IntelliJ&lt;/li&gt;
&lt;li&gt;Run tests using : IntelliJ&lt;/li&gt;
&lt;li&gt;설정을 Gradle로 변경하고 빌드해 보라는 블로그 글을 봤었는데, 안돼서 IntelliJ로 설정해 줬다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1021&quot; data-origin-height=&quot;328&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nwXGb/btsFR3nUPmg/wGY70qMrCaztmXh1W5k041/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nwXGb/btsFR3nUPmg/wGY70qMrCaztmXh1W5k041/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nwXGb/btsFR3nUPmg/wGY70qMrCaztmXh1W5k041/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnwXGb%2FbtsFR3nUPmg%2FwGY70qMrCaztmXh1W5k041%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;1021&quot; height=&quot;328&quot; data-origin-width=&quot;1021&quot; data-origin-height=&quot;328&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2000&quot; data-origin-height=&quot;1450&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/1tgEC/btsFQhHI47E/wZOy4AMvH6UyJf8R0ykTK1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/1tgEC/btsFQhHI47E/wZOy4AMvH6UyJf8R0ykTK1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/1tgEC/btsFQhHI47E/wZOy4AMvH6UyJf8R0ykTK1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F1tgEC%2FbtsFQhHI47E%2FwZOy4AMvH6UyJf8R0ykTK1%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;2000&quot; height=&quot;1450&quot; data-origin-width=&quot;2000&quot; data-origin-height=&quot;1450&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;&lt;b&gt;build.gradle 의존성 교체  &lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;java&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;java&quot;&gt;&lt;code&gt;# 기존
dependencies {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.. 생략
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;implementation 'com.querydsl:querydsl-jpa:5.0.0:jakarta'
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;annotationProcessor &quot;com.querydsl:querydsl-apt:${dependencyManagement.importedProperties['querydsl.version']}:jakarta&quot;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.. 생략
}

# 수정
dependencies {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.. 생략
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;implementation 'com.querydsl:querydsl-jpa:5.0.0:jakarta'
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;annotationProcessor &quot;com.querydsl:querydsl-apt:5.0.0:jakarta&quot;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.. 생략
}&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;의존성을 간략하게 보겠습니다.
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Querydsl 사용하려면 Q 클래스를 생성해야 하는데, &lt;b&gt;소스 코드 레벨에서 Querydsl 관련 어노테이션들을 처리하고 쿼리 타입 클래스들을 생성해 주는 역할&lt;/b&gt;을 &lt;span style=&quot;background-color: #202124; color: #e8eaed; text-align: left;&quot;&gt;querydsl-apt가 해줍니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;gradle 프로젝트에서는 Querydsl 처리를 위해 annotationProcessor가 필요하고 com.querydsl:querydsl-apt 그룹 및 아티팩트를 dsl 버전 기입,&amp;nbsp;&lt;span data-token-index=&quot;0&quot;&gt;:jakarta는 QueryDSL이 사용하는 모듈 시스템을 지정합니다. (java ee -&amp;gt; jakarta ee로 명칭을 변경했죠)&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;figure data-ke-type=&quot;opengraph&quot; data-og-title=&quot;Spring boot 3 with queryDSL&quot; data-ke-align=&quot;alignCenter&quot; data-og-description=&quot;How i can to generate Q-classes using queryDSL with Spring Boot 3.0. part of build.gradle: plugins { id 'com.ewerk.gradle.plugins.querydsl' version '1.0.10' } configurations { querydsl.exten...&quot; data-og-host=&quot;stackoverflow.com&quot; data-og-source-url=&quot;https://stackoverflow.com/questions/74756871/spring-boot-3-with-querydsl&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bAIT8r/hyVAGxrbsJ/6J1acuZr7Ke6PNzGu41UpK/img.png?width=316&amp;amp;height=316&amp;amp;face=0_0_316_316&quot; data-og-url=&quot;https://stackoverflow.com/questions/74756871/spring-boot-3-with-querydsl&quot;&gt;&lt;a href=&quot;https://stackoverflow.com/questions/74756871/spring-boot-3-with-querydsl&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://stackoverflow.com/questions/74756871/spring-boot-3-with-querydsl&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bAIT8r/hyVAGxrbsJ/6J1acuZr7Ke6PNzGu41UpK/img.png?width=316&amp;amp;height=316&amp;amp;face=0_0_316_316');&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;Spring boot 3 with queryDSL&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;How i can to generate Q-classes using queryDSL with Spring Boot 3.0. part of build.gradle: plugins { id 'com.ewerk.gradle.plugins.querydsl' version '1.0.10' } configurations { querydsl.exten...&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;673&quot; data-origin-height=&quot;192&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bEAfHZ/btsFRb7NDPB/oaxEF24LMfN6DX6OqxwzGK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bEAfHZ/btsFRb7NDPB/oaxEF24LMfN6DX6OqxwzGK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bEAfHZ/btsFRb7NDPB/oaxEF24LMfN6DX6OqxwzGK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbEAfHZ%2FbtsFRb7NDPB%2FoaxEF24LMfN6DX6OqxwzGK%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;673&quot; height=&quot;192&quot; data-origin-width=&quot;673&quot; data-origin-height=&quot;192&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;b&gt;build.gradle (상세 - Querydsl 빌드 옵션 포함)&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;java&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;java&quot;&gt;&lt;code&gt;plugins {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;id 'java'
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;id 'org.springframework.boot' version '3.2.1'
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;id 'io.spring.dependency-management' version '1.1.4'
}

group = 'com.exflyer'
version = '0.0.1-SNAPSHOT'

java {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sourceCompatibility = '21'
}

configurations {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;compileOnly {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;extendsFrom annotationProcessor
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
}

repositories {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;mavenCentral()
}

dependencies {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Web
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;implementation 'org.springframework.boot:spring-boot-starter-web'
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;implementation 'org.springframework.boot:spring-boot-starter-validation'
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;implementation 'org.springframework.boot:spring-boot-starter-webflux'
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;implementation 'com.google.code.gson:gson:2.10.1'
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;implementation 'com.googlecode.json-simple:json-simple:1.1.1'

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// DB
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//implementation 'com.mysql:mysql-connector-j:8.2.0'
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;runtimeOnly 'com.mysql:mysql-connector-j:8.2.0' // 8.x 버전 이상
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;runtimeOnly 'com.h2database:h2'

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// JPA
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;implementation 'org.springframework.boot:spring-boot-starter-data-jpa'

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// QueryDSL
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;implementation 'com.querydsl:querydsl-jpa:5.0.0:jakarta'
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;annotationProcessor &quot;com.querydsl:querydsl-apt:5.0.0:jakarta&quot; // 수정
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;annotationProcessor &quot;jakarta.annotation:jakarta.annotation-api&quot;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;annotationProcessor &quot;jakarta.persistence:jakarta.persistence-api&quot;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Lombok
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;compileOnly 'org.projectlombok:lombok'
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;annotationProcessor 'org.projectlombok:lombok'
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;testAnnotationProcessor 'org.projectlombok:lombok'

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Test
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;testImplementation 'org.springframework.boot:spring-boot-starter-test'

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Api Docs
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.3.0'

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Slack
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;implementation 'com.slack.api:slack-api-client:1.36.1'

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Amazon SES
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;implementation 'com.amazonaws:aws-java-sdk-ses:1.12.472'
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;implementation 'com.amazonaws:aws-java-sdk-sesv2:1.12.512'
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;implementation 'javax.mail:mailapi:1.4.3'

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Amazon SQS
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;implementation platform(&quot;io.awspring.cloud:spring-cloud-aws-dependencies:3.0.1&quot;)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;implementation 'io.awspring.cloud:spring-cloud-aws-starter-sqs'
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;implementation group: 'org.springframework.cloud', name: 'spring-cloud-aws-messaging', version: '2.2.6.RELEASE'
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;implementation group: 'org.springframework.cloud', name: 'spring-cloud-aws-autoconfigure', version: '2.2.6.RELEASE'


&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//kafka
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;implementation 'org.springframework.kafka:spring-kafka'
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;testImplementation 'org.springframework.kafka:spring-kafka-test'
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;implementation 'org.springframework.cloud:spring-cloud-stream'
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;implementation 'org.springframework.cloud:spring-cloud-stream-binder-kafka'
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;implementation 'org.springframework.kafka:spring-kafka'
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;testImplementation 'org.springframework.cloud:spring-cloud-stream-test-binder'
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;testImplementation 'org.springframework.kafka:spring-kafka-test'
}

ext {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;set('springCloudVersion', &quot;2023.0.0&quot;)
}
dependencyManagement {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;imports {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;mavenBom &quot;org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}&quot;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
}
tasks.named('test') {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;useJUnitPlatform()
}

// QueryDSL 빌드 옵션 (선택) ~
def querydslSrcDir = 'src/main/generated'
clean {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;delete file(querydslSrcDir)
}
tasks.withType(JavaCompile) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;options.generatedSourceOutputDirectory = file(querydslSrcDir)
}
// ~ Querydsl&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;&lt;b&gt;gradle-wrapper.properties&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;java&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;java&quot;&gt;&lt;code&gt;distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;마무리&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Q파일 빌드 실패 시, QueryDSL 연관된 의존성 lib 종속성도 확인해야 한다는 것을 알았다.&lt;br /&gt;관련 오류가 나는 분들이라면 jpa랑 apt 버전을 동일하게 맞추거나 호환 버전을 확인 후에 수정해 보시는 것도 해결하는데 도움이 되지 않을까 싶습니다.&amp;nbsp; 도움이 되길 바라며 이상 글 마무리 하겠습니다.  &lt;br /&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Web/Spring&amp;amp;Spring Boot</category>
      <category>querydsl</category>
      <category>QueryDSL Q파일 빌드 생성</category>
      <category>개발자</category>
      <category>파이팅</category>
      <author>균지니</author>
      <guid isPermaLink="true">https://yungenie.tistory.com/18</guid>
      <comments>https://yungenie.tistory.com/18#entry18comment</comments>
      <pubDate>Sat, 16 Mar 2024 17:07:20 +0900</pubDate>
    </item>
    <item>
      <title>[SpringBoot] 실행 시 오류 : Failed to configure a DataSource 해결방법</title>
      <link>https://yungenie.tistory.com/17</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;SpringBoot 프로젝트에 JPA&amp;nbsp; 의존성을 추가하고 나서 프로젝트를 기동을 하는데 다음과 같은 에러가 발생했다.&amp;nbsp; 새로운 프로젝트를 설정하고 실행할 때 여러 에러들을 만나게 되는데,&amp;nbsp; 그 중 '&lt;b&gt;데이터 소스 구성 실패' 오류의 &lt;/b&gt;&lt;b&gt;원인과 해결 방법&lt;/b&gt;에 대해 정리합니다.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;&lt;span style=&quot;text-align: start; font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;문제상황&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333;&quot;&gt;스프링 부트 3.1.2 + Java 17 + ORM로 개인 프로젝트를 시작했다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333;&quot;&gt;프로젝트에 필요한 의존성을 설정하고 &amp;nbsp;IntelliJ에서 Gradle import 시킨 후 &lt;span style=&quot;background-color: #ffffff; text-align: start;&quot;&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; font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1924&quot; data-origin-height=&quot;906&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cdA9rO/btsq7b3juVy/K0o5ycR7XmcciFkuLjm3aK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cdA9rO/btsq7b3juVy/K0o5ycR7XmcciFkuLjm3aK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cdA9rO/btsq7b3juVy/K0o5ycR7XmcciFkuLjm3aK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcdA9rO%2Fbtsq7b3juVy%2FK0o5ycR7XmcciFkuLjm3aK%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;1924&quot; height=&quot;906&quot; data-origin-width=&quot;1924&quot; data-origin-height=&quot;906&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;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;&lt;span style=&quot;text-align: start; font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;build.gradle&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1692107380006&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;plugins {
	id 'java'
	id 'org.springframework.boot' version '3.1.2'
	id 'io.spring.dependency-management' version '1.1.2'
}

group = 'com.yunjin'
version = '0.0.1-SNAPSHOT'

java {
	sourceCompatibility = '17'
}

configurations {
	compileOnly {
		extendsFrom annotationProcessor
	}
}

repositories {
	mavenCentral()
}

dependencies {
	implementation 'org.springframework.boot:spring-boot-starter-web'
	implementation 'org.springframework.boot:spring-boot-starter-data-jpa' 
	implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
	compileOnly 'org.projectlombok:lombok'
	annotationProcessor 'org.projectlombok:lombok'
	testImplementation 'org.springframework.boot:spring-boot-starter-test' 
}

tasks.named('test') {
	useJUnitPlatform()
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;&lt;span style=&quot;text-align: start; font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;Console&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1692107268127&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;2023-08-15T21:43:39.364+09:00  WARN 5160 --- [           main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'dataSourceScriptDatabaseInitializer' defined in class path resource [org/springframework/boot/autoconfigure/sql/init/DataSourceInitializationConfiguration.class]: Unsatisfied dependency expressed through method 'dataSourceScriptDatabaseInitializer' parameter 0: Error creating bean with name 'dataSource' defined in class path resource [org/springframework/boot/autoconfigure/jdbc/DataSourceConfiguration$Hikari.class]: Failed to instantiate [com.zaxxer.hikari.HikariDataSource]: Factory method 'dataSource' threw exception with message: Failed to determine a suitable driver class
2023-08-15T21:43:39.367+09:00  INFO 5160 --- [           main] o.apache.catalina.core.StandardService   : Stopping service [Tomcat]
2023-08-15T21:43:39.387+09:00  INFO 5160 --- [           main] .s.b.a.l.ConditionEvaluationReportLogger : 

Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled.
2023-08-15T21:43:39.418+09:00 ERROR 5160 --- [           main] o.s.b.d.LoggingFailureAnalysisReporter   : 

***************************
APPLICATION FAILED TO START
***************************

Description:

Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.

Reason: Failed to determine a suitable driver class


Action:

Consider the following:
	If you want an embedded database (H2, HSQL or Derby), please put it on the classpath.
	If you have database settings to be loaded from a particular profile you may need to activate it (no profiles are currently active).


Process finished with exit code 1&lt;/code&gt;&lt;/pre&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;원인&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333; text-align: start;&quot;&gt;오류 내용을 파파고로 번역하면 아래와 같다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;설명:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;데이터 소스를 구성하지 못했습니다. 'url' 특성이 지정되지 않았으며 내장된 데이터 소스를 구성할 수 없습니다.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이유: 적합한 드라이버 클래스를 결정하지 못했습니다.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;작업:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;다음 사항을 고려합니다:&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;내장된 데이터베이스(H2, HSQL 또는 Derby)를 원하는 경우 클래스 경로에 배치하십시오.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;특정 프로파일에서 로드할 데이터베이스 설정이 있는 경우 활성화해야 할 수 있습니다(현재 활성화된 프로파일이 없음).&lt;/span&gt;&lt;/blockquote&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;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; text-align: start;&quot;&gt;내용을 확인하고 다음과 같은 궁금증이 생겼습니다.&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; text-align: start;&quot;&gt;왜 때문에 JPA는 추가적인 데이터 소스를 구성해야 하는 것일까?&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;span style=&quot;background-color: #ffffff; text-align: start;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;span style=&quot;background-color: #ffffff; text-align: start;&quot;&gt;이 문제의 해결책으로 정리해논 여러 글을 읽어본 후 이해할 수 있었다. 답은 JPA에 있었다.&amp;nbsp;&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;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333;&quot;&gt;기본적으로 Spring Boot는 애플리케이션을 기동 할 때 설정된 정보를 바탕으로 빈을 자동으로 구성하려고 시도합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;프로젝트에 설정된 JPA 종속성(dependency)을 확인하며, &lt;/span&gt;&lt;b&gt;&lt;span style=&quot;text-align: start;&quot;&gt;JPA는 내부적으로 JDBC API를 사용하기 때문에 &lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;text-align: start;&quot;&gt;&lt;b&gt;JPA DataSource의 자동 구성을 수행하는데 필요한 JDBC 연결 속성 정보를 Spring에 제공하지 않았다&lt;/b&gt;는 것입니다.&lt;/span&gt;&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;MySQL 및 MSSQL/Oracle 등 외부 데이터베이스로 작업을 할 때는 무조건 데이터베이스 설정을 해줘야 하며, 반면에 H2와 같은 인메모리 데이터베이스는 외부 연결 정보 없이 데이터 소스를 생성할 수 있으므로 의존성만 추가해 줘도 애플리케이션 실행은 됩니다.&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 style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; text-align: start;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; text-align: start;&quot;&gt;요약하면 DataSource 구성에 필요한 데이터베이스가 설정되지 않아 발생하는 문제로 &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; text-align: start;&quot;&gt;사용자가 원하는 데이터베이스 라이브러리 및 드라이버 설치 등 JDBC 설정을 해야 합니다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; background-color: #ffffff; text-align: start;&quot;&gt;해결책&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;1.&amp;nbsp; 데이터 소스 정의&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333;&quot;&gt;데이터베이스 연결이 누락되어 문제가 발생했으므로, 의존성 및 설정 정보를 추가하여 문제를 해결할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;저의 경우 인메모리 데이터베이스 H2 DB를 사용합니다. 먼저 &lt;/span&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;프로젝트의 &lt;span style=&quot;text-align: start;&quot;&gt;build.gradle에 h2 &lt;/span&gt;의존성을 추가해 줍니다.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333;&quot;&gt;(Gradle Refresh 꼭 진행해 주세요. 의존성을 추가 또는 수정하면 &lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; text-align: start;&quot;&gt;build.gradle에서 &lt;/span&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; text-align: start;&quot;&gt;  버튼이 자동으로 나타납니다. 클릭~&lt;/span&gt;)&lt;/span&gt;&lt;/p&gt;
&lt;div style=&quot;background-color: #1e1f22; color: #bcbec4;&quot;&gt;
&lt;pre class=&quot;java&quot; data-ke-language=&quot;java&quot;&gt;&lt;code&gt;dependencies {
	... 생략
	runtimeOnly 'com.h2database:h2'
}&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;프로젝트가 생성될 때 &lt;span style=&quot;text-align: start;&quot;&gt;src/main/resources 폴더 경로에 &lt;/span&gt;appliction.properties 빈파일이 자동 생성됩니다. 해당 파일에 데이터베이스 설정 정보를 기입하셔도 되고 &lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; text-align: start;&quot;&gt;application.yml 파일을 추가하여 설정 하셔도 됩니다.&amp;nbsp; (저는 &lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; text-align: start;&quot;&gt;application.yml 사용)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1692191907860&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;spring:
  jpa:
    show-sql: true
    properties:
      hibernate:
        format_sql: true
    defer-datasource-initialization: true
  datasource:
    url: jdbc:h2:mem:testdb
  h2:
    console:
      enabled: true&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333;&quot;&gt;위와 같이 데이터 소스 속성을 정의하여 문제를 해결할 수 있습니다.&lt;/span&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;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt;&lt;b&gt;2. DataSourceAutoConfiguration&amp;nbsp;제외&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333;&quot;&gt;아직 데이터 소스를 정의할 준비가 되지 않은 상황이 있을 수도 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333;&quot;&gt;즉,&amp;nbsp; 어떤 데이터베이스를 사용할지 결정하지 않았으면 당장 JDBC 설정이 필요 없는 경우로 Spring Boot가 데이터 소스를 자동으로 구성하는 것을 방지하면 됩니다.&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;size18&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;2.1 &lt;span style=&quot;background-color: #ffffff; text-align: start;&quot;&gt;@SpringBootApplication&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333;&quot;&gt;스프링부트 메인 클래스에 &lt;code&gt;@SpringBootApplication&lt;/code&gt; 애노테이션의 exclude 속성을 사용하여 자동 구성을 비활성화합니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1692108933662&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;@SpringBootApplication(exclude={DataSourceAutoConfiguration.class})
public class SpringbootBlogApplication {

	public static void main(String[] args) {
		SpringApplication.run(SpringbootBlogApplication.class, args);
	}
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; text-align: start;&quot;&gt;&lt;code&gt;DataSourceAutoConfiguration&lt;/code&gt;&lt;/span&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; text-align: start;&quot;&gt;&amp;nbsp;&lt;span style=&quot;color: #333333;&quot;&gt;클래스는&amp;nbsp;&lt;/span&gt;데이터 소스를 구성하기 위한 기본 클래스로 다른 빈을 자동 구성하는 데&amp;nbsp; 영향을 미치지 않는다고 합니다.&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;size18&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;2.2&amp;nbsp; application.yml&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333;&quot;&gt;application.yml&amp;nbsp;파일을 사용하여 동일한 작업을 수행할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1692193764069&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;spring:
  autoconfigure:
    exclude:
    - org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration&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;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333;&quot;&gt;2.1/2.2 두 가지 방법 중 하나를 사용하여 스프링 부트의 DataSource의 자동 구성을 비활성화할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; background-color: #ffffff; text-align: start;&quot;&gt;마무리&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333;&quot;&gt;스프링 부트 실행 시 &lt;b&gt;'데이터 소스 구성 실패'&lt;/b&gt; 오류의 원인을 살펴보았습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333;&quot;&gt;데이터 소스를 정의하여 문제를 해결할 수도 있고, 정의를 하지 않고 코드로 자동 구성을 비활성화하여 문제를 해결하는 방법에 대해 알아봤습니다.&amp;nbsp; 저는 데이터 소스를 정의해서 문제를 해결했습니다.&amp;nbsp; 각자 프로젝트 상황에 맞게 해결해주세요!&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333;&quot;&gt;오류 해결에 도움이 되길 바라며 이상 코딩하는 지니였습니다.&amp;nbsp;&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;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;참고&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;a href=&quot;https://lemontia.tistory.com/586&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://lemontia.tistory.com/586&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;</description>
      <category>Web/Spring&amp;amp;Spring Boot</category>
      <category>Failed to determine a suitable driver class</category>
      <category>JPA</category>
      <category>springboot</category>
      <category>SpringBoot에러</category>
      <author>균지니</author>
      <guid isPermaLink="true">https://yungenie.tistory.com/17</guid>
      <comments>https://yungenie.tistory.com/17#entry17comment</comments>
      <pubDate>Tue, 15 Aug 2023 23:28:15 +0900</pubDate>
    </item>
    <item>
      <title>[Lombok][Jackson] Naming convention for getters/setters in Java</title>
      <link>https://yungenie.tistory.com/16</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;개요&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;대외서비스 연계 API 테스트를 하다가 특정 필드의 데이터가 null로 들어오는 이슈에 직면했습니다.&amp;nbsp; &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333; font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;처음에 오타가 있는 줄 알고 연계 인터페이스 In/Out 정의서 토대로 변수명을 재차 확인했는데 틀리지 않았음.&amp;nbsp; &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;잘못 구현했나 싶었으나 다른 필드는 다 잘 매핑됨. 띠용. &lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;따로 샘플 코드 만들어서 테스트해 보고 구글링 통해서 알게 된 Jackson, Lombok, Java Beans 네이밍 규약에 대해서 정리합니다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;이슈내용&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;외부 API 응답 데이터를 Response 객체에 매핑하여 내부 서비스로 응답해줄 때, &lt;b&gt;특정 필드값이 null로 매핑되는 현상&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;pre id=&quot;code_1689161238845&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;{
  &quot;prcssResult&quot;: &quot;200&quot;,
  &quot;requestId&quot; : &quot;124837&quot;,
  &quot;aBCDNo&quot;: null
}&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;내용 : 위와 같은 데이터(샘플)를 응답받는데 특정 필드값이 &lt;span style=&quot;background-color: #ffffff; color: #ef5369;&quot;&gt;null&lt;/span&gt; 값이 들어오는 것을 확인.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;이슈 상세&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h3&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;edited_002.png&quot; data-origin-width=&quot;827&quot; data-origin-height=&quot;213&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bFyK3c/btsnFE1IwKb/7GnCAtwurs04mG2ilyZMK1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bFyK3c/btsnFE1IwKb/7GnCAtwurs04mG2ilyZMK1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bFyK3c/btsnFE1IwKb/7GnCAtwurs04mG2ilyZMK1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbFyK3c%2FbtsnFE1IwKb%2F7GnCAtwurs04mG2ilyZMK1%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;540&quot; height=&quot;139&quot; data-filename=&quot;edited_002.png&quot; data-origin-width=&quot;827&quot; data-origin-height=&quot;213&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;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;대외서비스 연계 API 개발을 담당하고 있어서 외부 API 응답값을 그대로 내부 서비스로 보내주는 프로세스이고 내부 서비스에서 연계 서비스의 거래 내역을 확인할 수 있다. (내부 서비스에서 해당 값을 사용함)&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;외부 API 거래를 Spring Framework기반 HttpURLConnection 방식으로 구현하고 있어 응답 문자열을 로그로 출력해 봤다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;로그상 응답 문자열의 key와 value값도 제대로 나오고,&amp;nbsp; 응답 문자열을 JSON 객체로 변환한 뒤 응답객체로 역직렬화하는 과정도 매핑이 잘된다.&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;그러나 내부 서비스에서 연계 서비스의 거래 내역을 확인해보면 &lt;/span&gt;&lt;/span&gt;응답값의 특정 필드가 null로 &lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;매핑된다.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;정리하면, 외부 API 응답값을 응답객체에 잘 매핑하여 내부 서비스로 HTTP 응답을 주면 특정 필드가 null이 되는 것이다.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;샘플코드 작성&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;원인분석을 위해 Spring Boot로 도메인과 컨트롤러를 테스트용으로 구현했습니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;블로그에 모든 구현내용을 담을 수 없어서 간단하게 다음과 같이 테스트 코드를 작성했습니다.&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;요청값을 매핑해서, 입력한 대로 잘 매핑되어 출력하는지 확인&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;Domain&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1689161311238&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;@Setter(AccessLevel.PRIVATE)
@Getter
@ToString
@NoArgsConstructor
public class NamingDto {

    private String aBCDNo;
    private String AAaa;
    private String BBBb;
    private String CCcC;
    private String DDDD;
    private String AAAAAAa;
    private String Aa;
    private String aaA;
    private String Fab;
}&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;Controller&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1689161325675&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;@Slf4j
@RestController
public class NamingController {

  @PostMapping(&quot;/v1/issue/naming/lombok&quot;)
    public ResponseEntity&amp;lt;NamingDto&amp;gt; getValue(@RequestBody NamingDto dto) {
      log.info(&quot;Request v1/issue/naming/lombok POST/ getValue&quot;);
      log.info(String.valueOf(dto));
      return ResponseEntity.ok(dto);
  }
}&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;Postman 결과&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1611&quot; data-origin-height=&quot;1067&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b6UpgU/btsnjcyw7Te/wBkaTXvJ7eY5bmeZvkUsIk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b6UpgU/btsnjcyw7Te/wBkaTXvJ7eY5bmeZvkUsIk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b6UpgU/btsnjcyw7Te/wBkaTXvJ7eY5bmeZvkUsIk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb6UpgU%2Fbtsnjcyw7Te%2FwBkaTXvJ7eY5bmeZvkUsIk%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;1611&quot; height=&quot;1067&quot; data-origin-width=&quot;1611&quot; data-origin-height=&quot;1067&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;결과를 보면 JSON Key값과 필드명도 다르고 null로 찍힘. 골 때림.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;원인분석을 하다 보니깐 HTTP 메시지 컨버터의 쪽의 문제가 아닐까 해서 찾아봤다.&lt;/span&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;HTTP 메시지 컨버터가 무엇인가요?&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;요청 본문에서 메시지를 읽어 들이거나(@RequestBody), 응답 본문에 메시지를 작성할 때(@ResponseBody) HTTP 메시지 컨버터가 동작한다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;HTTP 헤더와 컨트롤러 요청 및 반환타입 정보를 조합해서 컨버터의 여러 종류 중 하나가 선택된다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;API는 JSON 형태로 받기 때문에 MappingJackson2HttpMessageConverter가 선택되어 Jackson 컨버터가 실행된다. &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;그래서 Jackson 컨버터가 네이밍 규칙에 따라 데이터를 찰떡같이 매핑해준다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;Jackson과 Jackson의 네이밍 규칙을 알아보자. ✨&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;원인분석&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;1. Jackson&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333;&quot;&gt;스프링에서 JSON 데이터를 객체로 변환하거나 객체를 JSON 데이터로 변환해 주는 라이브러리로 스프링부트에서는 기본적으로 제공해 준다. Jackson 라이브러리는 ObjectMapper라는 클래스를 사용하여 데이터 변환하여 매핑을 해줍니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333;&quot;&gt;객체를 JSON으로 직렬화를 할 때 ObjectMapper 클래스의 writeValueAsString() 메서드를 사용하여 객체를 JSON 문자열로 변환한다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333;&quot;&gt;객체의 필드 또는 속성 값을 가져와서 해당 값을 JSON 키와 매핑하여 JSON 객체를 생성하고 이를 문자열로 반환시켜 줍니다.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333;&quot;&gt;위 과정에서 Key 값을 매핑하는 규칙이 존재.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&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;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;1.1&amp;nbsp;Jackson은&amp;nbsp;Getter의&amp;nbsp;이름을&amp;nbsp;기반으로&amp;nbsp;Json&amp;nbsp;Key&amp;nbsp;값을&amp;nbsp;만든다.&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;필드명 대신에 Getter 이름으로 JSON key값이 설정됨.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;Domain&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;pre id=&quot;code_1689161547375&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;public class JacksonDto {
    private String aBCDNo;

    public void setaBCDNo(String aBCDNo) {
        this.aBCDNo = aBCDNo;
    }

    public String getCheckaBCDNo(){
        return aBCDNo;
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;Domain 테스트 코드&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;pre id=&quot;code_1689161575552&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;@Slf4j
class JacksonDtoTest {

    private ObjectMapper objectMapper;

    @BeforeEach
    public void setUp(){
        this.objectMapper = new ObjectMapper();
    }

    @Test
    public void Jackson_Getter() throws IOException {
        JacksonDto dto = new JacksonDto();
        dto.setaBCDNo(&quot;hello&quot;);

        String s = this.objectMapper.writeValueAsString(dto); 
        
        log.info(s);
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;테스트 &lt;/span&gt;결과&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #009a87;&quot;&gt;{&quot;checkaBCDNo&quot;:&quot;hello&quot;}&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;클래스에 선언된 필드는 aBCDNo이고, Getter메서드명은 getCheckaBCDNo()이다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;get다음으로 이어지는 이름을 CheckaBCDNo 가져와서 Jackson의 네이밍 규칙에 의해 변형하여 매핑시킨다.   &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이제 Jackson 네이밍 규칙을 알아보겠습니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&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;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;1.2 Jackson 네이밍 규칙&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;모든 케이스에서는 첫 번째 문자 하나만 소문자로 변경합니다. &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&amp;nbsp; ex) CheckaBCDNo -&amp;gt; checkaBCDNo&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;예외 케이스로는 맨 앞 두 글자 모두 대문자인 경우 이어진 대문자를 모두 소문자로 변경합니다. &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&amp;nbsp; ex) AAaa -&amp;gt; aaaa , AAAAAAa -&amp;gt; aaaaaaa&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #009a87;&quot;&gt;기본적으로 JavaBeans 규약을 따르지만 다른 부분이 있음.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;2.&amp;nbsp;Java&amp;nbsp;Bean&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;2.1 Java Beans 네이밍 규칙&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;Java Beans는 메서드 이름에서 필드명을 추출할 때 일정한 규칙이 존재함.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;오라클에서 제공하는 Java Beans API specification 공식 문서에 설명되어 있습니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;자바빈규약.png&quot; data-origin-width=&quot;1534&quot; data-origin-height=&quot;1233&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/LjAmu/btsnjbl7n7A/GEe7GfSlS20yARu8YlWw20/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/LjAmu/btsnjbl7n7A/GEe7GfSlS20yARu8YlWw20/img.png&quot; data-alt=&quot;by Sun Microsystems&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/LjAmu/btsnjbl7n7A/GEe7GfSlS20yARu8YlWw20/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FLjAmu%2Fbtsnjbl7n7A%2FGEe7GfSlS20yARu8YlWw20%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;1534&quot; height=&quot;1233&quot; data-filename=&quot;자바빈규약.png&quot; data-origin-width=&quot;1534&quot; data-origin-height=&quot;1233&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;by Sun Microsystems&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;span style=&quot;color: #333333; font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;간단히 요약하면 아래의 설명과 같습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333; font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;1. 일반적으로는 첫 번째 문자 하나만 소문자로 변환하여 리턴합니다. &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333; font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;2. 예외 케이스로는 두 개 이상의 문자가 있고 첫번째 문자와 두 번째 문자 모두 대문자인 경우 그대로 다시 리턴합니다. &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; font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&amp;nbsp;java.beans 패키지에 있는 Introspector 클래스의 decapitalize() 메서드를 확인해 보면 실제로 어떤 로직이 들어가 있는지 알 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1689161664546&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;public class Introspector {
	public static String decapitalize(String name) {
	  if (name == null || name.length() == 0) {
	    return name;
	  }
	  if (name.length() &amp;gt; 1 &amp;amp;&amp;amp; Character.isUpperCase(name.charAt(1)) &amp;amp;&amp;amp;
	          Character.isUpperCase(name.charAt(0))) {
	    return name;
	  }
	  char[] chars = name.toCharArray();
	  chars[0] = Character.toLowerCase(chars[0]);
	  return new String(chars);
	}         
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333; text-align: left;&quot;&gt;IDE에서 제공하는 Getter and Setter 메서드 자동생성 기능이 Java Beans 네이밍 규약으로 만들어집니다.&amp;nbsp;&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;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;3. Jackson와 Java Beans 차이점&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;둘 다 공통적으로 &lt;span style=&quot;color: #009a87;&quot;&gt;첫 번째 문자 하나만 소문자로 변환&lt;/span&gt;하여 리턴한다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;다른 점은 &lt;span style=&quot;color: #009a87;&quot;&gt;맨 앞 두 글자(첫 번째, 두 번째) 모두 대문자&lt;/span&gt;인 경우&lt;/span&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;Jackson은 &lt;span style=&quot;color: #009a87;&quot;&gt;이어지는 모든 대문자 -&amp;gt; 소문자로 변경&lt;/span&gt;하여 반환&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;Java Beans은 &lt;span style=&quot;color: #009a87;&quot;&gt;원래 문자 그대로&lt;/span&gt; 반환&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;4. Lombok의 Getter 생성 규칙&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;롬복은 맨 앞 글자를 대문자로 바꿔서 만들어줍니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;롬복의 Getter 이름으로 Jackson 네이밍 규칙에 의해 JSON key값이 설정됨. &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;필드명&amp;nbsp;&amp;nbsp;-&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;Lombok&amp;nbsp;&amp;nbsp;-&amp;gt; Jackson 점진적으로 변경되는 과정을 보자.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;table style=&quot;border-collapse: collapse; width: 51.7442%; height: 390px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 33.3333%; height: 20px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;필드명&amp;nbsp; &amp;gt;&amp;gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; height: 20px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;Lombok&amp;nbsp; &amp;gt;&amp;gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; height: 20px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;Jackson&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 33.3333%; height: 17px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;aBCDNo&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; height: 17px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;getABCDNo&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; height: 17px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;abcdno&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 33.3333%; height: 17px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;AAaa&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; height: 17px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;getAAaa&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; height: 17px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;aaaa&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 33.3333%; height: 17px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;BBBb&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; height: 17px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;getBBBb&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; height: 17px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;bbbb&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 33.3333%; height: 17px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;CCcC&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; height: 17px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;getCCcC&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; height: 17px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;cccC&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 33.3333%; height: 17px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;DDDD&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; height: 17px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;getDDDD&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; height: 17px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;dddd&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 33.3333%; height: 17px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;AAAAAAa&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; height: 17px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;getAAAAAAa&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; height: 17px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;aaaaaaa&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 33.3333%; height: 17px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;Aa&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; height: 17px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;getAa&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; height: 17px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;aa&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 33.3333%; height: 17px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;aaA&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; height: 17px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;getAaA&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; height: 17px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;aaA&amp;nbsp; (해당 필드명만 매핑됨)&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 33.3333%; height: 17px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;Fab&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; height: 17px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;getFab&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; height: 17px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;fab&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&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; font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;맨 처음 작성했던 샘플코드의 테스트 결과와 동일합니다. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;730&quot; data-origin-height=&quot;1174&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cjFIOb/btsnoJBOMlJ/ICEyByGA2hK8sUyytdY3w1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cjFIOb/btsnoJBOMlJ/ICEyByGA2hK8sUyytdY3w1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cjFIOb/btsnoJBOMlJ/ICEyByGA2hK8sUyytdY3w1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcjFIOb%2FbtsnoJBOMlJ%2FICEyByGA2hK8sUyytdY3w1%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;717&quot; data-origin-width=&quot;730&quot; data-origin-height=&quot;1174&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;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;결국, 원인은 Jackson HttpMessageConverter 네이밍 규칙에 의해서 &lt;br /&gt;객체의 필드와 JSON Key값 불일치로 매핑 안됨&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;aBCDNo(필드명) &amp;gt;&amp;gt; getABCDNo(롬) &amp;gt;&amp;gt; abcdno(Jackson)&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;해결방법&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;필드명을 변경할 수 없는 경우&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&amp;nbsp;&amp;nbsp;1. @JsonProperty 애노테이션 사용&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1689162005327&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;@JsonProperty(&quot;aBCDNo&quot;)
private String aBCDNo;&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;@JsonProperty 사용하기 위해 Jackson 라이브러리를 사용해야 합니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;라이브러리가 없는 경우 com.fasterxml.jackson.core 패키지가&amp;nbsp;필요합니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;@JsonProperty(name)은 JSON 속성 이름을 Java 필드명에 매핑하도록 Jackson ObjectMapper에 지시하여 지정한(name)으로 getter 및 setter 메서드를 지정하는 데 사용합니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&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;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&amp;nbsp;&amp;nbsp;2.&amp;nbsp;Getter/Setter&amp;nbsp;직접&amp;nbsp;생성&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1689162093207&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;public void setaBCDNo(String aBCDNo) {
    this.aBCDNo = aBCDNo;
}
public String getaBCDNo() {
    return aBCDNo;
}&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;롬복 @Getter 또는 @Data 애노테이션 사용 대신 Getter와 Setter 메서드를 직접 생성합니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;Getter/Setter 직접 생성을 하면 자바빈 규약에 의해서 기존 필드명 그대로 유지가 됩니다.&amp;nbsp; ex) &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;aBCDNo -&amp;gt; get&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;aBCDNo()&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;저의 경우 인텔리제이가 제공하는 Getter and Setter 메서드 자동생성 기능을 사용해서 해결했습니다.&lt;/span&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;첫번째가 문자가 대문자인&amp;nbsp; AAaa, Bbb 같은 필드명은 @JsonProperty 애노테이션을 사용해야 해결 가능합니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;Getter/Setter 직접 생성으로 해결하지 못하는 필드명이 존재할 수도 있다는 생각에 모든 API 요청 및 응답 필드를 확인해 보니, 필드명의 첫번째 문자가 대문자로 오는 경우는 없었다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;필드명을 변경할 수 있는 경우&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&amp;nbsp;&amp;nbsp;1.&amp;nbsp;네이밍&amp;nbsp;잘&amp;nbsp;짓기&lt;/span&gt;&amp;nbsp;✨&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;지양해야 하는 필드명(컬럼명) &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;case 1) 첫번째 소문자, 두번째 대문자 : aBCDNo(Field) -&amp;gt; getABCDNo(롬복) -&amp;gt; abcdno(Jackson)&amp;nbsp; &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;case 2) 첫번째 대문자, 두번째 대문자 : BBbb(Field) -&amp;gt; getBBbb(롬복) -&amp;gt; bbbb(Jackson)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;지향해야 하는 필드명(컬럼명) &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;필드명의 첫번째, 두번째는 소문자인 케이스로 지향합시다. &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;  &lt;/span&gt;카멜 표기법 중 LCC(Lower Camel Case)를 사용하자.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;첫 단어는 소문자로 표기하며 이후 연결되는 단어부터는 첫 글자를 대문자로 표기한다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1200&quot; data-origin-height=&quot;1200&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qez7l/btsnpE1e6gj/cPKO3C4cm9e9KR2afx1zU0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qez7l/btsnpE1e6gj/cPKO3C4cm9e9KR2afx1zU0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qez7l/btsnpE1e6gj/cPKO3C4cm9e9KR2afx1zU0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fqez7l%2FbtsnpE1e6gj%2FcPKO3C4cm9e9KR2afx1zU0%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;193&quot; height=&quot;193&quot; data-origin-width=&quot;1200&quot; data-origin-height=&quot;1200&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;해결방법으로 테스트&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1689162237935&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;class NamingDtoTest {

    private static String jsonStr = &quot;{\&quot;aBCDNo\&quot;:\&quot;hello world\&quot;}&quot;;
    private ObjectMapper objectMapper;

    @BeforeEach
    public void setUp(){
        this.objectMapper = new ObjectMapper();
    }

    @Test
    public void 롬복사용() throws IOException {
        NamingDto result = this.objectMapper.readValue(jsonStr, NamingDto.class);
        assertThat(result.getABCDNo(), is(&quot;hello world&quot;));
    }

    @Test
    public void Getter_Setter_직접생성() throws IOException {
        NamingDtoV2 result = this.objectMapper.readValue(jsonStr, NamingDtoV2.class);
        assertThat(result.getaBCDNo(), is(&quot;hello world&quot;));
    }

    @Test
    public void 롬복_잭슨애노테이션적용() throws IOException {
        NamingDtoV3 result = this.objectMapper.readValue(jsonStr, NamingDtoV3.class);
        assertThat(result.getABCDNo(), is(&quot;hello world&quot;));
    }

}&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;테스트 결과&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h3&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-origin-width=&quot;498&quot; data-origin-height=&quot;138&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dfdDMm/btsnomG0nTY/FKRUKetxcyUmxWtlJqKuX0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dfdDMm/btsnomG0nTY/FKRUKetxcyUmxWtlJqKuX0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dfdDMm/btsnomG0nTY/FKRUKetxcyUmxWtlJqKuX0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdfdDMm%2FbtsnomG0nTY%2FFKRUKetxcyUmxWtlJqKuX0%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;498&quot; height=&quot;138&quot; data-origin-width=&quot;498&quot; data-origin-height=&quot;138&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;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;위 (1), (2) 해결방법으로 테스트 코드를 작성해서 검증해 봤습니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;롬복의 @Getter 사용한 객체는 테스트 실패가 옳은 테스트입니다.&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;(Jackson 네이밍 규약에 의해서 필드와의 매핑 안 되는 게 정상)&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;1.@JsonProperty 애노테이션 사용,&amp;nbsp; 2. Getter/Setter 직접으로 통한 해결은 테스트 통과가 됩니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;API 요청 결과&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;원인분석을 위해 작성했던 상단의 샘플코드에도 @JsonProperty 추가하여 확인했습니다.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1689258041600&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;@Setter(AccessLevel.PRIVATE)
@Getter
@ToString
@NoArgsConstructor
public class NamingDto {

    @JsonProperty(value = &quot;aBCDNo&quot;)
    private String aBCDNo;

    @JsonProperty(value = &quot;AAaa&quot;)
    private String AAaa;

    @JsonProperty(&quot;BBBb&quot;)
    private String BBBb;

    @JsonProperty(&quot;CCcC&quot;)
    private String CCcC;

    @JsonProperty(&quot;DDDD&quot;)
    private String DDDD;

    @JsonProperty(&quot;AAAAAAa&quot;)
    private String AAAAAAa;

    @JsonProperty(&quot;Aa&quot;)
    private String Aa;

    private String aaA;

    @JsonProperty(&quot;Fab&quot;)
    private String Fab;

    @JsonProperty(&quot;aA&quot;)
    private String aA;
}&lt;/code&gt;&lt;/pre&gt;
&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-origin-width=&quot;1070&quot; data-origin-height=&quot;1044&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bzXGbQ/btsnwQ1PW9W/mdgDrcg799SrYyEvpK2sJK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bzXGbQ/btsnwQ1PW9W/mdgDrcg799SrYyEvpK2sJK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bzXGbQ/btsnwQ1PW9W/mdgDrcg799SrYyEvpK2sJK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbzXGbQ%2FbtsnwQ1PW9W%2FmdgDrcg799SrYyEvpK2sJK%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;1070&quot; height=&quot;1044&quot; data-origin-width=&quot;1070&quot; data-origin-height=&quot;1044&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-origin-width=&quot;1079&quot; data-origin-height=&quot;1069&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/wlVYv/btsnwQgsesT/Asgcij0E7KoDqUL7wK3tL0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/wlVYv/btsnwQgsesT/Asgcij0E7KoDqUL7wK3tL0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/wlVYv/btsnwQgsesT/Asgcij0E7KoDqUL7wK3tL0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FwlVYv%2FbtsnwQgsesT%2FAsgcij0E7KoDqUL7wK3tL0%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;1079&quot; height=&quot;1069&quot; data-origin-width=&quot;1079&quot; data-origin-height=&quot;1069&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이슈&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&amp;nbsp;해결 (@JsonProperty 적용)&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;회고&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;애초부터 필드명(컬럼명)의 네이밍 컨벤션을 잘 정의하면 이런 일을 겪지 않는다는 걸 배웠음. &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;외부 API 응답을 받아서 처리하는 프로세스인데 파악해 보니 해당 API가 여러 외부 수행사에서도 쓰임&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;거래하고 있는 몇 개 API에서도 포스팅 주제와 같은 이슈인 필드명이 여러 개 존재한다는 것도 확인 ㅠ&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;팀 내부적으로 해당 이슈를 공유드리면서 자체 코드 수정으로 해결을 봤다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;역시 네이밍의 중요성을 느끼는 이슈였다.&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;정리&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;지금까지 정리한 내용을 요약하면 아래와 같습니다.&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;1. Spring의 JSON Message Converter는 Jackson 라이브러리를 사용&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;2.&amp;nbsp;Jackson&amp;nbsp;라이브러리는&amp;nbsp;Getter의&amp;nbsp;맨&amp;nbsp;앞&amp;nbsp;두 글자가&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;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;3.&amp;nbsp;Lombok의&amp;nbsp;Getter는&amp;nbsp;필드명&amp;nbsp;맨&amp;nbsp;앞&amp;nbsp;첫 번째 글자를 항상 대문자로 만든다.&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;4.&amp;nbsp;Controller&amp;nbsp;단에서&amp;nbsp;Json&amp;nbsp;데이터와&amp;nbsp;Target&amp;nbsp;Entity를&amp;nbsp;매핑할&amp;nbsp;때&amp;nbsp;Lombok와&amp;nbsp;Jackson의&amp;nbsp;네이밍&amp;nbsp;규칙에&amp;nbsp;따른&amp;nbsp;필드명&amp;nbsp;불일치&amp;nbsp;사태가&amp;nbsp;일어나&amp;nbsp;key&amp;nbsp;매핑이&amp;nbsp;안됨.&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;5.&amp;nbsp;필드명(컬럼명)을&amp;nbsp;수정하거나,&amp;nbsp;Getter/Setter&amp;nbsp;직접&amp;nbsp;생성하거나,&amp;nbsp;@JsonProperty&amp;nbsp;애노테이션을&amp;nbsp;사용해서&amp;nbsp;해결하면&amp;nbsp;된다.&lt;/b&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Web/Spring&amp;amp;Spring Boot</category>
      <category>getter</category>
      <category>Jackson</category>
      <category>javaBeans</category>
      <category>JSONMessageConverter</category>
      <category>JsonProperty</category>
      <category>lombok</category>
      <category>naming</category>
      <category>setter</category>
      <category>객체null</category>
      <category>네이밍규칙</category>
      <author>균지니</author>
      <guid isPermaLink="true">https://yungenie.tistory.com/16</guid>
      <comments>https://yungenie.tistory.com/16#entry16comment</comments>
      <pubDate>Sun, 16 Jul 2023 15:23:33 +0900</pubDate>
    </item>
    <item>
      <title>  윈도우키 먹통 현상 해결</title>
      <link>https://yungenie.tistory.com/15</link>
      <description>&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;윈도우키 잠금 되어 있어서 윈도우키 먹통되었다가 해결했다.&lt;/span&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;[Fn] + [Win/윈도우 로고키]&lt;/b&gt; 눌러 잠금을 해제 했다.&amp;nbsp;&lt;/span&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;다행이다. 키보드 망가진 줄.&amp;nbsp;&lt;/span&gt;&lt;/h4&gt;</description>
      <category>Etc/Windows</category>
      <category>윈도우키먹통</category>
      <category>윈도우키잠금</category>
      <author>균지니</author>
      <guid isPermaLink="true">https://yungenie.tistory.com/15</guid>
      <comments>https://yungenie.tistory.com/15#entry15comment</comments>
      <pubDate>Sun, 18 Jun 2023 20:35:21 +0900</pubDate>
    </item>
    <item>
      <title>[Maven] profile이용한 배포 환경별(local, dev, prod) 빌드 설정</title>
      <link>https://yungenie.tistory.com/14</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;550&quot; data-origin-height=&quot;552&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/csM4as/btr1QxQNtRu/3JdfVkmygs2TBREU8KfotK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/csM4as/btr1QxQNtRu/3JdfVkmygs2TBREU8KfotK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/csM4as/btr1QxQNtRu/3JdfVkmygs2TBREU8KfotK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcsM4as%2Fbtr1QxQNtRu%2F3JdfVkmygs2TBREU8KfotK%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;192&quot; height=&quot;193&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;550&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;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;pom.xml profile, build 속성을 이용해 배포 환경별(local, dev, prod) 설정&amp;nbsp;및 Maven Build 방법에 대해 알아보겠습니다.&lt;/span&gt;&lt;/b&gt;&lt;/blockquote&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;프로젝트 환경&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt;Project : Maven Project&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt;java : 1.8&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt;Spring : 4.3.x&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt;Packaging : war&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt;IDE : IntelliJ&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;1.환경별 리소스 폴더 구분&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;span&gt;메인 폴더 하위에 환경별 리소스 폴더를 만들고 각 환경에 맞는 설정 파일을 생성합니다.&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;span&gt;&lt;b&gt;개발자&lt;/b&gt; 서버 환경(local), &lt;b&gt;개발&lt;/b&gt; 서버 환경(dev),&amp;nbsp; &lt;b&gt;운영&lt;/b&gt; 서버 환경(prod) 총 3가지로 환경에 따라 구분합니다.&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt;src/main/resources-local&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt;src/main/resources-dev&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt;src/main/resources-prod&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;346&quot; data-origin-height=&quot;268&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bXu3K8/btr1Mo7R6sR/1Io73nyNkCRQk7Ksea1ZKk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bXu3K8/btr1Mo7R6sR/1Io73nyNkCRQk7Ksea1ZKk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bXu3K8/btr1Mo7R6sR/1Io73nyNkCRQk7Ksea1ZKk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbXu3K8%2Fbtr1Mo7R6sR%2F1Io73nyNkCRQk7Ksea1ZKk%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;346&quot; height=&quot;268&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;346&quot; data-origin-height=&quot;268&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light'; color: #000000;&quot;&gt; &lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;src/main/resources 폴더는 무엇인가요?&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;span&gt;src/main/resources 폴더는 xml 및 속성 파일과 같은 리소스 파일을 포함하도록 되어 있습니다.&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;span&gt;&lt;s&gt;spring framework&lt;/s&gt; maven 또는 gradle의 표준 레이아웃이며,&amp;nbsp; 일반적으로&amp;nbsp; 스프링 프로젝트 생성 시 &lt;u&gt;&lt;b&gt;기본&lt;/b&gt;&lt;/u&gt;적으로 구성되어 있습니다.&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;span&gt;해당 src/main/resources 폴더를 개발자 서버 환경(local)으로 정의하는 경우도 많습니다.&amp;nbsp; 저의 경우는 환경별로 폴더명을 구분하면 가시성 확보에 이점을 느껴 실제론 총 4가지로 나눴습니다.&amp;nbsp; src/main/resources과 src/main/resources-local 폴더를 동일하게 로컬 환경으로 설정해두고 상황에 따라 resources는 개인 테스트용으로 활용하기도 합니다.&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;span&gt;굳이 나눌 필요성이 없다 생각하시면 &lt;b&gt;resources(로컬) , resources-dev(개발), resources-prod(운영)으로 구분&lt;/b&gt;해도 무방합니다! (스테이징 서버도 존재한다면 src/main/resources-stage로 추가해 주시면 됩니다.&amp;nbsp; 인프라 환경별 및 프로젝트 아키텍처가 케바케이기 때문에 프로젝트에 맞게 구성해 주시면 됩니다.)&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&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;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Maven 표준 레이아웃 (기본 구조)&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1703946560045&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;maven-project-root
|-- src
|   |-- main
|   |   |-- java          // Java 소스 코드
|   |   |-- resources     // 리소스 파일 (프로퍼티 파일, XML 파일 등)
|   |   |-- webapp        // 웹 애플리케이션 관련 리소스 (JSP, HTML, CSS, JavaScript 등)
|   |-- test
|       |-- java          // 테스트용 Java 소스 코드
|       |-- resources     // 테스트 리소스 파일
|-- target                // 빌드 결과물이 생성되는 디렉토리
|-- pom.xml               // Maven 프로젝트 설정 파일&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Gradle 표준 레이아웃&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;(기본 구조)&lt;/span&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;Gradle을 사용하는 프로젝트에서도 Maven과 유사하게 'src/main/resources' 디렉터리가 주로 사용됩니다.&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1703946629908&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;gradle-project-root
|-- src
|   |-- main
|   |   |-- java          // Java 소스 코드
|   |   |-- resources     // 웹 애플리케이션 관련 리소스 파일 (프로퍼티 파일, XML 파일 등, HTML, CSS, JavaScript 등)
|   |-- test
|       |-- java          // 테스트용 Java 소스 코드
|       |-- resources     // 테스트 리소스 파일
|-- build                 // 빌드 결과물이 생성되는 디렉토리
|-- build.gradle          // Gradle 프로젝트 설정 파일&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;2. pom.xml 설정&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt;메이븐 프로젝트에서는 pom.xml 설정 파일의&amp;nbsp; profile속성을 이용하여&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;빌드 시&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;외부에서 넣어주는&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;파라미터&lt;/b&gt;를 기준으로 설정 파일을 참조하게 하여&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;환경별&lt;/b&gt;로 다른 설정 파일을 선택하도록 해줄 수 있습니다. 설정 방법은 아래와 같습니다.&lt;/span&gt;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;2.1 pom.xml에 profiles 추가&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&amp;nbsp;profile id와 properties.environment&amp;nbsp; 설정 (환경별 구분)&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;위에서 환경별로 리소스 폴더를 다르게 생성했습니다. 빌드 시 외부에서 넣어주는 파라미터 토대로 환경별 리소스가 참조되기 위해서는 pom.xml의 profiles 속성을 환경별로 설정해야 합니다.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;profiles.profile.id와 profiles.profile.properties.environment 속성 추가&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;id와 environment가 환경별과 동일해야 합니다. (src/main/resources-{환경별})&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;xml&quot;&gt;&lt;code&gt;&amp;lt;profiles&amp;gt;
   &amp;lt;!-- local: 로컬개발 (기본 값) --&amp;gt;
   &amp;lt;profile&amp;gt;
      &amp;lt;id&amp;gt;local&amp;lt;/id&amp;gt;
      &amp;lt;activation&amp;gt;
         &amp;lt;!--&amp;lt;activeByDefault&amp;gt;true&amp;lt;/activeByDefault&amp;gt;--&amp;gt;
      &amp;lt;/activation&amp;gt;
      &amp;lt;properties&amp;gt;
         &amp;lt;environment&amp;gt;local&amp;lt;/environment&amp;gt;
      &amp;lt;/properties&amp;gt;
   &amp;lt;/profile&amp;gt;
   &amp;lt;!-- dev: 개발 --&amp;gt;
   &amp;lt;profile&amp;gt;
      &amp;lt;id&amp;gt;dev&amp;lt;/id&amp;gt;
      &amp;lt;properties&amp;gt;
         &amp;lt;environment&amp;gt;dev&amp;lt;/environment&amp;gt;
      &amp;lt;/properties&amp;gt;
   &amp;lt;/profile&amp;gt;
   &amp;lt;!-- prd: 운영 --&amp;gt;
   &amp;lt;profile&amp;gt;
      &amp;lt;id&amp;gt;prod&amp;lt;/id&amp;gt;
      &amp;lt;properties&amp;gt;
         &amp;lt;environment&amp;gt;prod&amp;lt;/environment&amp;gt;
      &amp;lt;/properties&amp;gt;
   &amp;lt;/profile&amp;gt;
&amp;lt;/profiles&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt;profile을 설정해 주면 인텔리제이에서 Profiles 폴더와 설정한 &lt;b&gt;profile.id&lt;/b&gt;가 나타납니다. &lt;b&gt;id명과 동일&lt;/b&gt;하게 설정값을 생성해 줍니다.&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;517&quot; data-origin-height=&quot;204&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/xAzCS/btr1XORnHwS/tzJsDcPwioI7wQ8O37Zt40/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/xAzCS/btr1XORnHwS/tzJsDcPwioI7wQ8O37Zt40/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/xAzCS/btr1XORnHwS/tzJsDcPwioI7wQ8O37Zt40/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FxAzCS%2Fbtr1XORnHwS%2FtzJsDcPwioI7wQ8O37Zt40%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;517&quot; height=&quot;204&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;517&quot; data-origin-height=&quot;204&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;2.2&amp;nbsp; pom.xml에 build 추가&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;resource&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;.directory&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;와 &lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;resource&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;.filtering 설정 (환경별 참조)&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;환경별 리소스 폴더에 참조되어 &lt;b&gt;빌드&lt;/b&gt;될 수 있도록 설정을 해줍니다.&amp;nbsp; &lt;/span&gt;리소스 경로를 지정해 주고 리소스 폴더 하위의 설정파일들 내에서 환경값을 참조할 수 있게 설정해 줍니다.&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;build.resources.resource.directory와 build.resources.resource.filterting 속성 추가&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;2.1에서 설정한 profile.environment 환경별 설정값과 동일해야 합니다. (src/main/resources-${environment})&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;${environment} 속성은 pom.xml에 정의된 &lt;span style=&quot;color: #000000;&quot;&gt;profile.properties.environment 속성 값으로&amp;nbsp;&lt;/span&gt; &lt;span style=&quot;color: #000000;&quot;&gt;environment 변수입니다.&lt;/span&gt;&amp;nbsp; &lt;span style=&quot;color: #000000;&quot;&gt;Maven &amp;nbsp;&lt;/span&gt;빌드 시 외부에서 넣어주는 파라미터 값과 환경별 리소스를 매핑하기 위해&amp;nbsp; &lt;span style=&quot;color: #000000;&quot;&gt;${environment} 구문을 사용하여 &lt;span style=&quot;color: #000000;&quot;&gt;포함할 속성값에 대한 참조를 리소스 파일에 넣습니다. 환경별 리소스 파일에 빌드 시에만 제공할 수 있는 값을 포함할 수 있도록 filterting 속성을 다음의 리소스 디렉터리에 대해 true로 설정하면 됩니다.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre class=&quot;dust&quot;&gt;&lt;code&gt;&amp;lt;build&amp;gt;
   &amp;lt;resources&amp;gt;
      &amp;lt;resource&amp;gt;
         &amp;lt;directory&amp;gt;src/main/resources&amp;lt;/directory&amp;gt;
      &amp;lt;/resource&amp;gt;
      &amp;lt;!-- 환경별 리소스 포함 --&amp;gt;
      &amp;lt;resource&amp;gt;
         &amp;lt;directory&amp;gt;src/main/resources-${environment}&amp;lt;/directory&amp;gt;
         &amp;lt;filtering&amp;gt;true&amp;lt;/filtering&amp;gt;
         &amp;lt;includes&amp;gt;
            &amp;lt;include&amp;gt;**/*.properties&amp;lt;/include&amp;gt;
            &amp;lt;include&amp;gt;**/*.xml&amp;lt;/include&amp;gt;
         &amp;lt;/includes&amp;gt;
      &amp;lt;/resource&amp;gt;
   &amp;lt;/resources&amp;gt;
&amp;lt;/build&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;3. 배포 환경별 빌드&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;3.1 IntelliJ IDE&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;원하는 배포 환경 체크 후 Lifecycle 항목에서 ⚙️install 클릭하여 빌드해 줍니다. 인텔리제이 경우 pom.xml profiles 설정값과 Maven 설정창의 Profiles 값이 자도으로 매핑됩니다. 아주 편리합니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;517&quot; data-origin-height=&quot;598&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/TN5Vd/btr1Mi7n74D/CnRzm1Dbl7CjqKCMbR2fdk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/TN5Vd/btr1Mi7n74D/CnRzm1Dbl7CjqKCMbR2fdk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/TN5Vd/btr1Mi7n74D/CnRzm1Dbl7CjqKCMbR2fdk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FTN5Vd%2Fbtr1Mi7n74D%2FCnRzm1Dbl7CjqKCMbR2fdk%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;517&quot; height=&quot;598&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;517&quot; data-origin-height=&quot;598&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;span style=&quot;color: #000000;&quot;&gt; &lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;src/main/resources를&amp;nbsp; 개발환경으로 설정한 경우&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;기본 리소스로 빌드하고자 한다면 pom.xml 에서 profile의 activateByDefault 속성에 true를 설정해 줍니다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre class=&quot;xml&quot;&gt;&lt;code&gt;&amp;lt;!-- local: 로컬개발 (기본 값) --&amp;gt;
&amp;lt;profile&amp;gt;
   &amp;lt;id&amp;gt;local&amp;lt;/id&amp;gt;
   &amp;lt;activation&amp;gt;
      &amp;lt;activeByDefault&amp;gt;true&amp;lt;/activeByDefault&amp;gt;
   &amp;lt;/activation&amp;gt;
   &amp;lt;properties&amp;gt;
      &amp;lt;environment&amp;gt;local&amp;lt;/environment&amp;gt;
   &amp;lt;/properties&amp;gt;
&amp;lt;/profile&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000;&quot;&gt;3.2 Eclipse IDE&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;Run Configuration 설정창에서 Maven Build를 환경별로 Goals 항목에 설정해 줍니다.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;local build
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;goals : clean install -P local&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;dev build
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;goals : clean install -P dev&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;prod build
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;goals : clean install -P &lt;span&gt;prod&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&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: #000000;&quot;&gt; &lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;src/main/resources를&amp;nbsp; 개발환경으로 설정한 경우&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;goals : clean install로 세팅해 줍니다.&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;base path가 src/main/resources 이기 때문에 해당 resources 폴더 안 설정파일을 빌드하게 됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;마무리&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000; font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;메이븐 빌드를 하면 resources 아래의 파일과 폴더들이 myapp/target/classes 아래로 복사되는 것을 볼 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000; font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이상 코딩하는 지니였습니다. 감사합니다.&lt;/span&gt;&lt;/p&gt;</description>
      <category>Web/Spring&amp;amp;Spring Boot</category>
      <category>maven build</category>
      <category>pom.xml build</category>
      <category>pom.xml environment</category>
      <category>pom.xml filtering</category>
      <category>pom.xml profile</category>
      <category>pom.xml resource</category>
      <category>메이븐 개발 운영 분리</category>
      <category>메이븐 빌드</category>
      <category>메이븐 빌드 pom.xml 설정</category>
      <category>메이븐 환경별 빌드</category>
      <author>균지니</author>
      <guid isPermaLink="true">https://yungenie.tistory.com/14</guid>
      <comments>https://yungenie.tistory.com/14#entry14comment</comments>
      <pubDate>Sun, 5 Mar 2023 02:15:34 +0900</pubDate>
    </item>
    <item>
      <title>[Java] 차근차근 Java 설치하기 (JDK17, Window 11)</title>
      <link>https://yungenie.tistory.com/11</link>
      <description>&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;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;자바 개발 도구 설치 방법에 대해서 알아보겠습니다. J&lt;/span&gt;&lt;b&gt;ava17&lt;/b&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;은&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;b&gt;LTS(Long Term Support : 장기 지원)&lt;/b&gt; 릴리즈로&amp;nbsp; 1년 후까지 기술 지원 및 버그를 개선한 서비스를 제공받을 수 있습니다.&amp;nbsp; 업데이트 버전을 꾸준히 제공받을 수 있어 &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;최소 2024년 9월까지 업데이트를 받게 됩니다. 저는&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&amp;nbsp;개발 및 학습용으로 사용하기 위해 Oracle JDK 설치를 했습니다. Open JDK와 기능의 차이점은 크게 없습니다.&amp;nbsp; 다만, 상업용으로 사용할 때 무료인 Open JDK 쓸지, 유료인 Oracle JDK를 사용할 지의 차이입니다.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #99cefa;&quot;&gt;&lt;b&gt;1. JDK 17 설치&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #333333; font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;오라클 홈페이지에서 원하는 버전을 선택 후 다운로드 합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #99cefa; font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;1.1. 오라클 웹사이트 접속&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #333333; font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;Oracle JDK 17 설치 파일을 다운로드를 위해&amp;nbsp;아래(&amp;darr;) 오라클 웹사이트에 접속합니다.&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1675764851434&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;Download the Latest Java LTS Free&quot; data-og-description=&quot;Subscribe to Java SE and get the most comprehensive Java support available, with 24/7 global access to the experts.&quot; data-og-host=&quot;www.oracle.com&quot; data-og-source-url=&quot;https://www.oracle.com/java/technologies/downloads/#java17&quot; data-og-url=&quot;https://www.oracle.com/java/technologies/downloads/#java17&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/3wktA/hyRwBBta73/pACXDGWVX5OlXJAWag08K0/img.jpg?width=1200&amp;amp;height=628&amp;amp;face=0_0_1200_628,https://scrap.kakaocdn.net/dn/cBVHTZ/hyRwJGhF11/CbHLKslGIY1tc2kBQexv11/img.jpg?width=1200&amp;amp;height=1200&amp;amp;face=0_0_1200_1200&quot;&gt;&lt;a href=&quot;https://www.oracle.com/java/technologies/downloads/#java17&quot; data-source-url=&quot;https://www.oracle.com/java/technologies/downloads/#java17&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/3wktA/hyRwBBta73/pACXDGWVX5OlXJAWag08K0/img.jpg?width=1200&amp;amp;height=628&amp;amp;face=0_0_1200_628,https://scrap.kakaocdn.net/dn/cBVHTZ/hyRwJGhF11/CbHLKslGIY1tc2kBQexv11/img.jpg?width=1200&amp;amp;height=1200&amp;amp;face=0_0_1200_1200');&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;Download the Latest Java LTS Free&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Subscribe to Java SE and get the most comprehensive Java support available, with 24/7 global access to the experts.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.oracle.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;
&lt;p data-ke-size=&quot;size18&quot;&gt;+ update&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;Oracle JDK 17은 &lt;b&gt;Java 17.0.13 이후&lt;/b&gt;부터 &amp;ldquo;Oracle Technology Network License Agreement for Java SE&amp;rdquo;에 따라 제공되며, 라이선스 동의를 위한 &lt;b&gt;계정 로그인을 필수화&lt;/b&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;u&gt;&lt;b&gt;로그인 없이도 다운로드 받으려면 아래 링크의 17.0.12를 다운로드 받아주시면 됩니다.&lt;/b&gt;&lt;/u&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1752311207792&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;Java Archive Downloads - Java SE 17.0.12 and earlier&quot; data-og-description=&quot;WARNING: Older versions of the JDK are provided to help developers debug issues in older systems. They are not updated with the latest security patches and are not recommended for use in production. For production use Oracle recommends downloading the late&quot; data-og-host=&quot;www.oracle.com&quot; data-og-source-url=&quot;https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html&quot; data-og-url=&quot;https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.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;Java Archive Downloads - Java SE 17.0.12 and earlier&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;WARNING: Older versions of the JDK are provided to help developers debug issues in older systems. They are not updated with the latest security patches and are not recommended for use in production. For production use Oracle recommends downloading the late&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.oracle.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;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #99cefa;&quot;&gt;&lt;b&gt;1.2. 운영체제 선택&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333;&quot;&gt;PC 운영체제 사양에 맞는 파일을 다운로드합니다.&amp;nbsp; 저의 경우는 64비트 윈도우 운영체제를 사용하므로 Windows(x64)설치파일을 선택합니다.&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;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333;&quot;&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt; &amp;zwj;♀️&lt;/b&gt;&lt;/b&gt;&lt;span style=&quot;color: #99cefa;&quot;&gt; 윈도우 운영체제 사양 확인?&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;파일 탐색기를 열고 [내 PC]에서 마우스 오른쪽 버튼을 클릭한 수 [속성]을 선택합니다.&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;edited_blob&quot; data-origin-width=&quot;1388&quot; data-origin-height=&quot;859&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/maPBr/btrZJc9eHm7/VrkINKNygSY0xhGpoqs6R1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/maPBr/btrZJc9eHm7/VrkINKNygSY0xhGpoqs6R1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/maPBr/btrZJc9eHm7/VrkINKNygSY0xhGpoqs6R1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmaPBr%2FbtrZJc9eHm7%2FVrkINKNygSY0xhGpoqs6R1%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;1388&quot; height=&quot;859&quot; data-filename=&quot;edited_blob&quot; data-origin-width=&quot;1388&quot; data-origin-height=&quot;859&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #99cefa;&quot;&gt;&lt;b&gt;1.3.&amp;nbsp; JDK 다운로드&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #333333; font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;x64 MSI Installer&lt;/b&gt; 설치 프로그램인 &lt;b&gt;[msi]&lt;/b&gt; 확장자가 있는 파일&lt;b&gt;(&lt;/b&gt;&lt;b&gt;jdk-17_windows-x64_bin.msi&lt;/b&gt;)을 다운로드 합니다.&amp;nbsp;&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;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333;&quot;&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt; &amp;zwj;♀️&lt;/b&gt;&lt;/b&gt;&lt;span style=&quot;color: #99cefa;&quot;&gt; [msi] 파일을 다운 받는 이유?&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333;&quot;&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;자동설치 프로그램을 사용하기 위해&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;Microsoft Windows&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;의 표준 설치 패키지로 안전하게 설치합니다. 실무에서는 Linux 운영체제를 많이 사용하기 때문에 리눅스 RPM &lt;span style=&quot;background-color: #ffffff;&quot;&gt;Package(설치형) &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;또는 &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;Compressed Archive(압축형) 버전을 다운로드하여&amp;nbsp; 경로를 지정해서 설치합니다.&amp;nbsp; 보통 압축형을 많이 사용합니다.&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;blob&quot; data-origin-width=&quot;2000&quot; data-origin-height=&quot;995&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/blbgE9/btrZR2qpkgp/SXmk6ltyHiKkJR6zF4Z620/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/blbgE9/btrZR2qpkgp/SXmk6ltyHiKkJR6zF4Z620/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/blbgE9/btrZR2qpkgp/SXmk6ltyHiKkJR6zF4Z620/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FblbgE9%2FbtrZR2qpkgp%2FSXmk6ltyHiKkJR6zF4Z620%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;2000&quot; height=&quot;995&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;2000&quot; data-origin-height=&quot;995&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #99cefa;&quot;&gt;&lt;b&gt;1.5. JDK 설치&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #99cefa;&quot;&gt;&lt;b&gt;1.5.1 JDK 설치파일 실행&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;파일 탐색기에서 다운로드 받은&amp;nbsp;&lt;b&gt;jdk-17_windows-x64_bin.msi&amp;nbsp;&lt;/b&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;blob&quot; data-origin-width=&quot;1343&quot; data-origin-height=&quot;487&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bqaA8l/btrZNvmjpt5/OxFnfRrnw9rIAskqcTE9m0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bqaA8l/btrZNvmjpt5/OxFnfRrnw9rIAskqcTE9m0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bqaA8l/btrZNvmjpt5/OxFnfRrnw9rIAskqcTE9m0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbqaA8l%2FbtrZNvmjpt5%2FOxFnfRrnw9rIAskqcTE9m0%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;1343&quot; height=&quot;487&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1343&quot; data-origin-height=&quot;487&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;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #99cefa;&quot;&gt;&lt;b&gt;1.5.1 JDK 설치&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333;&quot;&gt;각 Setup창에서&amp;nbsp; &lt;b&gt;[Next]&lt;/b&gt; 버튼 클릭해서 설치를 진행합니다. Java SE 17일 경우 다음과 같습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;Successfully Installed&lt;/b&gt; 메시지가 나오면 Java SE 17 설치에 성공했습니다 :)&amp;nbsp;&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;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;b&gt; &amp;zwj;♀️&lt;/b&gt;&lt;span style=&quot;color: #99cefa;&quot;&gt; 기본 설치 경로?&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;기본 설치 경로는 C:/Program Files/Java/jdk-17입니다. 경로 변경 시 [Change...] 버튼을 눌러 원하는 경로로 설치해 주세요.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cXKMsr/btrZLTU95YS/VWiNZWwg9VSyBPt4iUotvk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cXKMsr/btrZLTU95YS/VWiNZWwg9VSyBPt4iUotvk/img.png&quot; data-is-animation=&quot;false&quot; data-origin-width=&quot;2762&quot; data-origin-height=&quot;2094&quot; data-filename=&quot;edited_edited_그림3.png&quot; width=&quot;384&quot; height=&quot;291&quot; data-widthpercent=&quot;49.91&quot; style=&quot;width: 49.3327%; margin-right: 10px;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cXKMsr/btrZLTU95YS/VWiNZWwg9VSyBPt4iUotvk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcXKMsr%2FbtrZLTU95YS%2FVWiNZWwg9VSyBPt4iUotvk%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;2762&quot; height=&quot;2094&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/GQKIw/btrZJDMGBjG/ZrelecInMAS0MnpXeKJBA1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/GQKIw/btrZJDMGBjG/ZrelecInMAS0MnpXeKJBA1/img.png&quot; data-is-animation=&quot;false&quot; data-origin-width=&quot;2765&quot; data-origin-height=&quot;2089&quot; data-filename=&quot;edited_edited_그림4.png&quot; width=&quot;398&quot; height=&quot;301&quot; data-widthpercent=&quot;50.09&quot; style=&quot;width: 49.5045%;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/GQKIw/btrZJDMGBjG/ZrelecInMAS0MnpXeKJBA1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FGQKIw%2FbtrZJDMGBjG%2FZrelecInMAS0MnpXeKJBA1%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;2765&quot; height=&quot;2089&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b5mQJh/btrZR3QmDGF/itPSc0iXL9k5gMN1Yko9kk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b5mQJh/btrZR3QmDGF/itPSc0iXL9k5gMN1Yko9kk/img.png&quot; data-is-animation=&quot;false&quot; data-origin-width=&quot;2767&quot; data-origin-height=&quot;2099&quot; data-filename=&quot;edited_edited_그림5.png&quot; width=&quot;429&quot; height=&quot;325&quot; data-widthpercent=&quot;49.95&quot; style=&quot;width: 49.3711%; margin-right: 10px;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b5mQJh/btrZR3QmDGF/itPSc0iXL9k5gMN1Yko9kk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb5mQJh%2FbtrZR3QmDGF%2FitPSc0iXL9k5gMN1Yko9kk%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;2767&quot; height=&quot;2099&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cJXaqA/btrZJ3dkn2y/3S1g5bzKndLqm0yhYZC9l0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cJXaqA/btrZJ3dkn2y/3S1g5bzKndLqm0yhYZC9l0/img.png&quot; data-is-animation=&quot;false&quot; data-origin-width=&quot;2771&quot; data-origin-height=&quot;2098&quot; data-filename=&quot;edited_edited_그림6.png&quot; width=&quot;419&quot; height=&quot;317&quot; data-widthpercent=&quot;50.05&quot; style=&quot;width: 49.4661%;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cJXaqA/btrZJ3dkn2y/3S1g5bzKndLqm0yhYZC9l0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcJXaqA%2FbtrZJ3dkn2y%2F3S1g5bzKndLqm0yhYZC9l0%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;2771&quot; height=&quot;2098&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #99cefa;&quot;&gt;&lt;b&gt;2. 환경 변수 설정&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #99cefa;&quot;&gt;&lt;b&gt;2.1 JAVA_HOME 등록&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1676789818998&quot; class=&quot;gcode&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;변수 이름(N) : JAVA_HOME
변수 값(V)   : C:/Program Files/Java/jdk-17 (설치경로)&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;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;JAVA_HOME은 JDK가 설치된 경로입니다.&amp;nbsp; 설치 경로를 시스템 변수에 설정을 하면 현재 사용자뿐 아니라 다른 사용자 계정으로도 해당 변수를 사용할 수 있습니다. 또한, 다른 프로그램에서 JAVA_HOME&amp;nbsp;환경&amp;nbsp;변수를&amp;nbsp;이용해&amp;nbsp;JDK의&amp;nbsp;위치를&amp;nbsp;찾기도&amp;nbsp;합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #99cefa;&quot;&gt;&lt;b&gt;2.1.1.&lt;/b&gt; 내 PC 마우스 우클릭하여 &lt;b&gt;[속성]&lt;/b&gt;을 클릭합니다.&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1440&quot; data-origin-height=&quot;1120&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/n3Z2K/btrZYSncm00/bDKTO1LtJCL4SgqIYHKE10/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/n3Z2K/btrZYSncm00/bDKTO1LtJCL4SgqIYHKE10/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/n3Z2K/btrZYSncm00/bDKTO1LtJCL4SgqIYHKE10/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fn3Z2K%2FbtrZYSncm00%2FbDKTO1LtJCL4SgqIYHKE10%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;1440&quot; height=&quot;1120&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1440&quot; data-origin-height=&quot;1120&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;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #99cefa;&quot;&gt;&lt;b&gt;2.1.2.&lt;/b&gt;&amp;nbsp;시스템 정보 &lt;b&gt;[고급 시스템 설정]&lt;/b&gt;을 클릭합니다.&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1630&quot; data-origin-height=&quot;1106&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Dto6z/btrZNvT9EYT/nkD5Gk0qr41GGsokQBoRE0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Dto6z/btrZNvT9EYT/nkD5Gk0qr41GGsokQBoRE0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Dto6z/btrZNvT9EYT/nkD5Gk0qr41GGsokQBoRE0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FDto6z%2FbtrZNvT9EYT%2FnkD5Gk0qr41GGsokQBoRE0%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;1630&quot; height=&quot;1106&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1630&quot; data-origin-height=&quot;1106&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;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #99cefa;&quot;&gt;&lt;b&gt;2.1.3. 시스템 변수 새로 만들기&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333;&quot;&gt;시스템 속성 [환경 변수]을 클릭 후 [환경 변수] 대화 상자가 나타나면 [시스템 변수]에서 [새로 만들기] 버튼을 클릭합니다.&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bSj2H3/btrZQdldQ74/cv0bt3PQKLPK9BqKY2C5pk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bSj2H3/btrZQdldQ74/cv0bt3PQKLPK9BqKY2C5pk/img.png&quot; data-origin-width=&quot;850&quot; data-origin-height=&quot;1089&quot; data-is-animation=&quot;false&quot; data-filename=&quot;blob&quot; width=&quot;441&quot; height=&quot;565&quot; style=&quot;width: 45.8263%; margin-right: 10px;&quot; data-widthpercent=&quot;46.37&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bSj2H3/btrZQdldQ74/cv0bt3PQKLPK9BqKY2C5pk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbSj2H3%2FbtrZQdldQ74%2Fcv0bt3PQKLPK9BqKY2C5pk%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;1089&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bFChCE/btrZLUsZH8r/gQnLo3s41Fq7GqX0GNObWK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bFChCE/btrZLUsZH8r/gQnLo3s41Fq7GqX0GNObWK/img.png&quot; data-origin-width=&quot;902&quot; data-origin-height=&quot;999&quot; data-is-animation=&quot;false&quot; data-filename=&quot;blob&quot; width=&quot;428&quot; height=&quot;474&quot; style=&quot;width: 53.0109%;&quot; data-widthpercent=&quot;53.63&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bFChCE/btrZLUsZH8r/gQnLo3s41Fq7GqX0GNObWK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbFChCE%2FbtrZLUsZH8r%2FgQnLo3s41Fq7GqX0GNObWK%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;902&quot; height=&quot;999&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #99cefa;&quot;&gt;&lt;b&gt;2.1.4. 새 시스템 변수&amp;nbsp; 추가&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;pre id=&quot;code_1676789890176&quot; class=&quot;gcode&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;변수 이름(N) : JAVA_HOME
변수 값(V)   : C:/Program Files/Java/jdk-17 (설치경로)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;[새 시스템 변수] 대화상자가 나타나면 [변수 이름]에 JAVA_HOME을 입력하고, [변수 값]에 JDK 17 설치 경로를 입력합니다. 두 항목을 입력 후 [확인] 버튼을 클릭하여 적용합니다.&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;blob&quot; data-origin-width=&quot;960&quot; data-origin-height=&quot;263&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bv8w3u/btrZNJrcfko/bL7WuOZA1Nf5Ppwo1w6LTK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bv8w3u/btrZNJrcfko/bL7WuOZA1Nf5Ppwo1w6LTK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bv8w3u/btrZNJrcfko/bL7WuOZA1Nf5Ppwo1w6LTK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbv8w3u%2FbtrZNJrcfko%2FbL7WuOZA1Nf5Ppwo1w6LTK%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;960&quot; height=&quot;263&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;960&quot; data-origin-height=&quot;263&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;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #99cefa;&quot;&gt;&lt;b&gt;2.2. &lt;b&gt;Path 편집&lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1676789882687&quot; class=&quot;gcode&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;%JAVA_HOME%/bin&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333;&quot;&gt;[시스템 변수] Path를 편집하여 첫 번째 항목으로 JAVA_HOME 시스템 변수를 추가해 줍니다.&amp;nbsp;&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;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333;&quot;&gt;&lt;b&gt;&lt;b&gt; &amp;zwj;♀️&lt;/b&gt; &lt;span style=&quot;color: #99cefa;&quot;&gt;&lt;b&gt;Path 환경 변수에 JAVA_HOME 등록을 왜 해야 하는지?&lt;/b&gt;&lt;/span&gt;&lt;/b&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;blob&quot; data-origin-width=&quot;1688&quot; data-origin-height=&quot;660&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/r3HLJ/btrZYR2QPfv/ipx2dvqYfgnUvnJP2LDxkk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/r3HLJ/btrZYR2QPfv/ipx2dvqYfgnUvnJP2LDxkk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/r3HLJ/btrZYR2QPfv/ipx2dvqYfgnUvnJP2LDxkk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fr3HLJ%2FbtrZYR2QPfv%2Fipx2dvqYfgnUvnJP2LDxkk%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;1688&quot; height=&quot;660&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1688&quot; data-origin-height=&quot;660&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #666666;&quot;&gt;[파일 탐색기]에서 JDK 17 설치 경로(C:\Program Files\Java\jdk-17)를 열어봅니다. 해당 경로의 [bin] 폴더로 이동합니다. bin 폴더에는 다양한 명령어들이 있습니다. 대표적인 명령어 2가지가 있습니다. 자바 소스를 컴파일해 주는 javac 명령어와 컴파일된 자바를 실행해 주는 java 명령어가 있습니다. 개발자가 명령 프롬프트(cmd.exe)에서 명령 라인에 사용되는 명령어로 컴파일하고 실행할 때 사용됩니다. 그러나 bin 폴더 안에 있기 때문에 환경변수 bin 폴더 경로를 등록하여 다른 폴더에서도 실행 가능하게 환경변수에 %JAVA_HOME%/bin(C:\Program Files\Java\jdk-17\bin)를 추가해 줍니다.&amp;nbsp; 다음은 윈도우 11에서 Path 환경 변수에 bin 폴더를 등록하는 순서입니다.&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;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #99cefa;&quot;&gt;&lt;b&gt;2.2.1. Path 시스템 변수 편집&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;[환경 변수] 대화상자의 [시스템 변수(S)]에서 Path 변수 항목을 선택하고 [편집]을 클릭합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;803&quot; data-origin-height=&quot;841&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/G1z2C/btrZNu8KqfU/WthSocidEenKZUJRaT7kA0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/G1z2C/btrZNu8KqfU/WthSocidEenKZUJRaT7kA0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/G1z2C/btrZNu8KqfU/WthSocidEenKZUJRaT7kA0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FG1z2C%2FbtrZNu8KqfU%2FWthSocidEenKZUJRaT7kA0%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;770&quot; height=&quot;841&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;803&quot; data-origin-height=&quot;841&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;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #99cefa;&quot;&gt;&lt;b&gt;&lt;b&gt;2.2.2.&lt;/b&gt;&amp;nbsp;시스템 변수 새로 만들기&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;pre id=&quot;code_1676789877445&quot; class=&quot;gcode&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;%JAVA_HOME%/bin&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;[환경 변수 편집] 대화상자가 나타나면 [새로 만들기] 버튼을 클릭하고 항목이 추가되면 %JAVA_HOME%\bin 입력합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;771&quot; data-origin-height=&quot;841&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/4cxkz/btrZV7SiMVW/LqhEdfIt9kuqTmfkdfOu0k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/4cxkz/btrZV7SiMVW/LqhEdfIt9kuqTmfkdfOu0k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/4cxkz/btrZV7SiMVW/LqhEdfIt9kuqTmfkdfOu0k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F4cxkz%2FbtrZV7SiMVW%2FLqhEdfIt9kuqTmfkdfOu0k%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;771&quot; height=&quot;841&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;771&quot; data-origin-height=&quot;841&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;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #99cefa;&quot;&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;2.2.3.&lt;/b&gt;&lt;/b&gt;&amp;nbsp;시스템 변수 위로 이동&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;등록한 % JAVA_HOME%\n을 선택하고 [위로 이동] 버튼을 클릭해서 첫 번째 항목으로 올려줍니다.&amp;nbsp; 그 후 모든 대화 상자의&amp;nbsp;[확인] 버튼을 클릭하여 환경 변수 설정을 마칩니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;773&quot; data-origin-height=&quot;852&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cZpxM7/btrZV7ELw0x/UNTmsKyLFr3A8Kkghg5rik/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cZpxM7/btrZV7ELw0x/UNTmsKyLFr3A8Kkghg5rik/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cZpxM7/btrZV7ELw0x/UNTmsKyLFr3A8Kkghg5rik/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcZpxM7%2FbtrZV7ELw0x%2FUNTmsKyLFr3A8Kkghg5rik%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;773&quot; height=&quot;852&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;773&quot; data-origin-height=&quot;852&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;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333;&quot;&gt;&lt;b&gt;&lt;b&gt; &amp;zwj;♀️&lt;/b&gt;&lt;span style=&quot;color: #8cb3be;&quot;&gt;&amp;nbsp;&lt;span style=&quot;color: #99cefa;&quot;&gt;첫 번째 항목으로 위치시키는 이유?&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #666666;&quot;&gt;등록된 환경 변수 순서가 중요합니다. 명령 라인에서 명령어를 찾을 때,&amp;nbsp; Path 환경 변수에 등록된 순서대로 찾기 때문입니다.&amp;nbsp; 만약 다른 버전의 Java 명령어가 먼저 등록되어 있다면 다른 버전의 Java 명령어가 사용될 수도 있습니다.&amp;nbsp;&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;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #99cefa;&quot;&gt;&lt;b&gt;3. 설정 확인&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;pre id=&quot;code_1676789863634&quot; class=&quot;applescript&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;java -version&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333;&quot;&gt;명령 프롬프트(CMD)에서 java -version&amp;nbsp;명령어를 입력하면 설치한 자바 버전을 확인 할 수 있습니다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333;&quot;&gt;[시작] 버튼을 클릭하고 [프로그램 및 파일 검색] 검색창에 cmd 또는 명령 프롬프트를 입력 후 [명령 프롬프트]를 실행합니다. 다음 아래와 같이 java 버전 정보가 출력된다면 정상적으로 환경 변수가 설정 되었습니다.&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;blob&quot; data-origin-width=&quot;1188&quot; data-origin-height=&quot;1117&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/H8y2w/btrZV7redxG/hjOj16KoPqq8GZqEkKal0K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/H8y2w/btrZV7redxG/hjOj16KoPqq8GZqEkKal0K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/H8y2w/btrZV7redxG/hjOj16KoPqq8GZqEkKal0K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FH8y2w%2FbtrZV7redxG%2FhjOj16KoPqq8GZqEkKal0K%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;1188&quot; height=&quot;1117&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1188&quot; data-origin-height=&quot;1117&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1801&quot; data-origin-height=&quot;991&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cE6yzx/btrYmylnHMv/kOtpz66DTdIZBGuK7kqyHK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cE6yzx/btrYmylnHMv/kOtpz66DTdIZBGuK7kqyHK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cE6yzx/btrYmylnHMv/kOtpz66DTdIZBGuK7kqyHK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcE6yzx%2FbtrYmylnHMv%2FkOtpz66DTdIZBGuK7kqyHK%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;1801&quot; height=&quot;991&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1801&quot; data-origin-height=&quot;991&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;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333;&quot;&gt;&lt;b&gt; &amp;zwj;♀️&lt;span style=&quot;color: #99cefa;&quot;&gt;버전 정보가 출력되지 않는 경우?&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #666666;&quot;&gt;환경 변수가 제대로 설정되지 않아 출력되지 않는 현상입니다.&amp;nbsp; 침착하게 환경변수 JAVA_HOME과 Path를 확인 후 수정해야 합니다. 수정을 하고 나면 명령 프롬프트(CMD)를 닫고 재시작 후 java -version 명령어로 테스트 해주세요.&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;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #99cefa;&quot;&gt;&lt;b&gt;참고문헌&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #666666;&quot;&gt;1. 강경미&lt;span style=&quot;background-color: #ffffff;&quot;&gt;『모두의 자바』길벗 2020&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #666666;&quot;&gt;2. 신용권&lt;span style=&quot;background-color: #ffffff;&quot;&gt;『혼자 공부하는 자바』한빛미디어 2019&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #666666;&quot;&gt;3. 신용권&lt;span style=&quot;background-color: #ffffff;&quot;&gt;『이것이 자바다』한빛미디어 2015&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;&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>Java</category>
      <category>jdk 17 설치</category>
      <category>jdk 설치</category>
      <category>자바 17 설치</category>
      <category>자바 개발 도구</category>
      <category>자바 개발 도구 설치</category>
      <category>자바 설치</category>
      <author>균지니</author>
      <guid isPermaLink="true">https://yungenie.tistory.com/11</guid>
      <comments>https://yungenie.tistory.com/11#entry11comment</comments>
      <pubDate>Sat, 25 Feb 2023 19:16:02 +0900</pubDate>
    </item>
    <item>
      <title>[IntelliJ] 인텔리제이 라이센스 등록 및 변경</title>
      <link>https://yungenie.tistory.com/13</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2048&quot; data-origin-height=&quot;2048&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dlcHdh/btrZrcHGd8H/En08zR81ZqrBFD1ZKj0ikK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dlcHdh/btrZrcHGd8H/En08zR81ZqrBFD1ZKj0ikK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dlcHdh/btrZrcHGd8H/En08zR81ZqrBFD1ZKj0ikK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdlcHdh%2FbtrZrcHGd8H%2FEn08zR81ZqrBFD1ZKj0ikK%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;181&quot; height=&quot;181&quot; data-origin-width=&quot;2048&quot; data-origin-height=&quot;2048&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p id=&quot;jet-brains-ide-정책&quot; data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;JetBrains 새로운 계정을 가입하게 되어서 &lt;/span&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;인텔리제이에서 사용 중인 라이센스를 삭제하고 &lt;/span&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;새로운 계정 로그인 후 라이센스 갱신하는 방법을 공유하고자 합니다. &lt;/span&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;라이센스 만료되어 갱신할 때도 하기 내용을 참고해주시면 됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #9d9d9d;&quot;&gt;(&lt;span style=&quot;color: #9d9d9d;&quot;&gt;JetBrains&lt;span&gt; 학생용 계정을 사용하다 라이센스 만료되어, &lt;/span&gt;&lt;/span&gt;학생용 계정은 삭제 후 새로운 계정 파서 Ultimate Personal annual 구매했습니당)&lt;/span&gt;&lt;/p&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;인텔리제이 계정 변경 및 라이센스 등록&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;span style=&quot;color: #555555;&quot;&gt;1. 상단의 [Help] 메뉴에 진입하여 [Register...]을 클릭합니다.&lt;/span&gt;&lt;span style=&quot;color: #555555;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;357&quot; data-origin-height=&quot;807&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bmc6Cp/btrZrcAWBEK/2yD1cG93QXKDnwzWL9icqK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bmc6Cp/btrZrcAWBEK/2yD1cG93QXKDnwzWL9icqK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bmc6Cp/btrZrcAWBEK/2yD1cG93QXKDnwzWL9icqK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbmc6Cp%2FbtrZrcAWBEK%2F2yD1cG93QXKDnwzWL9icqK%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;357&quot; height=&quot;807&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;357&quot; data-origin-height=&quot;807&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;span style=&quot;color: #555555;&quot;&gt;2. Licenses 팝업창에서 [Remove License] 버튼을 클릭해 &lt;/span&gt;&lt;span style=&quot;color: #555555;&quot;&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;edited_blob&quot; data-origin-width=&quot;1232&quot; data-origin-height=&quot;738&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dewayN/btrZr0mtf25/tWlK7Ij06KJTCnXZ29mIl1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dewayN/btrZr0mtf25/tWlK7Ij06KJTCnXZ29mIl1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dewayN/btrZr0mtf25/tWlK7Ij06KJTCnXZ29mIl1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdewayN%2FbtrZr0mtf25%2FtWlK7Ij06KJTCnXZ29mIl1%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;1232&quot; height=&quot;738&quot; data-filename=&quot;edited_blob&quot; data-origin-width=&quot;1232&quot; data-origin-height=&quot;738&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;span style=&quot;color: #555555;&quot;&gt;3.&amp;nbsp;  계정 이모티콘을 누르면 [Log Out..] 메뉴가 나타납니다. &lt;span style=&quot;color: #555555;&quot;&gt;[Log Out..] 메뉴를&lt;/span&gt; 클릭해&amp;nbsp;계정을 로그아웃 합니다&lt;/span&gt;&lt;span style=&quot;color: #555555;&quot;&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;edited_blob&quot; data-origin-width=&quot;1234&quot; data-origin-height=&quot;742&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/JB8N4/btrZo8lKVic/TK438v2Xo5G3oi4a4rfC41/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/JB8N4/btrZo8lKVic/TK438v2Xo5G3oi4a4rfC41/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/JB8N4/btrZo8lKVic/TK438v2Xo5G3oi4a4rfC41/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FJB8N4%2FbtrZo8lKVic%2FTK438v2Xo5G3oi4a4rfC41%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;1234&quot; height=&quot;742&quot; data-filename=&quot;edited_blob&quot; data-origin-width=&quot;1234&quot; data-origin-height=&quot;742&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;span style=&quot;color: #555555;&quot;&gt;4. [Log in...] 링크를 눌러 &lt;span&gt;JetBrains Account 사이트에서&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;edited_blob&quot; data-origin-width=&quot;1229&quot; data-origin-height=&quot;735&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dRgWmu/btrZmC1JcCE/CWlJcVGzIdlTaT2acm5Guk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dRgWmu/btrZmC1JcCE/CWlJcVGzIdlTaT2acm5Guk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dRgWmu/btrZmC1JcCE/CWlJcVGzIdlTaT2acm5Guk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdRgWmu%2FbtrZmC1JcCE%2FCWlJcVGzIdlTaT2acm5Guk%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;735&quot; data-filename=&quot;edited_blob&quot; data-origin-width=&quot;1229&quot; data-origin-height=&quot;735&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1630&quot; data-origin-height=&quot;1146&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/TWA8E/btrZuIeiuOE/A6ekZurkMDN1UmBVBt1Afk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/TWA8E/btrZuIeiuOE/A6ekZurkMDN1UmBVBt1Afk/img.png&quot; data-alt=&quot;인증 성공!!&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/TWA8E/btrZuIeiuOE/A6ekZurkMDN1UmBVBt1Afk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FTWA8E%2FbtrZuIeiuOE%2FA6ekZurkMDN1UmBVBt1Afk%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;1630&quot; height=&quot;1146&quot; data-origin-width=&quot;1630&quot; data-origin-height=&quot;1146&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;span style=&quot;color: #555555; font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;5. 인증이 성공되면 Reference No* 및 [Activate] [Cancel] 버튼이 나옵니다. 해당 &lt;b&gt;[Activate]&lt;/b&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;blob&quot; data-origin-width=&quot;1186&quot; data-origin-height=&quot;713&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/uMK1F/btrZuH0LnON/sMh7NWWEMe4lWjZ3kOAXY1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/uMK1F/btrZuH0LnON/sMh7NWWEMe4lWjZ3kOAXY1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/uMK1F/btrZuH0LnON/sMh7NWWEMe4lWjZ3kOAXY1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FuMK1F%2FbtrZuH0LnON%2FsMh7NWWEMe4lWjZ3kOAXY1%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;1186&quot; height=&quot;713&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1186&quot; data-origin-height=&quot;713&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;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;인텔리제이 라이센스 변경(갱신)&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;span style=&quot;color: #555555;&quot;&gt;1. &lt;b&gt;&quot;Activate new license with:&quot;&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;color: #555555;&quot;&gt;의 3가지 방법 중&lt;/span&gt;&lt;span style=&quot;color: #555555;&quot;&gt;&amp;nbsp;원하는 방법으로 라이센스를 등록합니다.&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;edited_blob&quot; data-origin-width=&quot;1233&quot; data-origin-height=&quot;743&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b4xUkY/btrZuCZsjSS/H2VfQzgP2eCxJSuPu6pfx0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b4xUkY/btrZuCZsjSS/H2VfQzgP2eCxJSuPu6pfx0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b4xUkY/btrZuCZsjSS/H2VfQzgP2eCxJSuPu6pfx0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb4xUkY%2FbtrZuCZsjSS%2FH2VfQzgP2eCxJSuPu6pfx0%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;1233&quot; height=&quot;743&quot; data-filename=&quot;edited_blob&quot; data-origin-width=&quot;1233&quot; data-origin-height=&quot;743&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1232&quot; data-origin-height=&quot;746&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/9uW7c/btrZlYcDChQ/i6PY80kkLkmDJVAxU6C1Uk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/9uW7c/btrZlYcDChQ/i6PY80kkLkmDJVAxU6C1Uk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/9uW7c/btrZlYcDChQ/i6PY80kkLkmDJVAxU6C1Uk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F9uW7c%2FbtrZlYcDChQ%2Fi6PY80kkLkmDJVAxU6C1Uk%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;1232&quot; height=&quot;746&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1232&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;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;온라인 환경&lt;/b&gt;일 경우에는 JB Account 방식으로 &lt;span style=&quot;color: #99cefa;&quot;&gt;&lt;b&gt;웹사이트에서 인증&lt;/b&gt;&lt;/span&gt;하시면 되고, &lt;b&gt;오프라인&lt;/b&gt; 환경일 경우 &lt;span style=&quot;color: #99cefa;&quot;&gt;&lt;b&gt;Activation code&lt;/b&gt;&lt;/span&gt;, License server 둘 중에 선택하셔서 라이센스 갱신 하시면 됩니다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;(실무에선 오프라인 환경의 경우가 대다수 이므로 Activation code를 많이 이용합니다.)&lt;/span&gt;&lt;/p&gt;</description>
      <category>Tool/IntelliJ IDE</category>
      <category>IntelliJ License</category>
      <category>인텔리제이 라이센스 갱신</category>
      <category>인텔리제이 라이센스 구독</category>
      <category>인텔리제이 라이센스 등록</category>
      <author>균지니</author>
      <guid isPermaLink="true">https://yungenie.tistory.com/13</guid>
      <comments>https://yungenie.tistory.com/13#entry13comment</comments>
      <pubDate>Wed, 15 Feb 2023 22:16:40 +0900</pubDate>
    </item>
    <item>
      <title>[IntelliJ] 마우스 휠로 폰트 사이즈 조절하는 방법 (Zoom In/Out)</title>
      <link>https://yungenie.tistory.com/10</link>
      <description>&lt;p data-toc=&quot;use-ctrl-cmd-mouse-wheel-to-change-font-size-for-all-documents&quot; data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #000000; font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt; ️인텔리제이 IDE 기본 설정으로 폰트 사이즈 키우는 것이 설정되어 있지 않습니다. 설정을 통해 Ctrl + 마우스 휠을 사용하여 모든 문서의 글꼴(Editor) 크기를 변경할 수 있습니다.&amp;nbsp; 시력저하, 코드리뷰, 강의 시 매우 유용하며 마우스 휠로 Zoom In/Out 할 수 있습니다.&amp;nbsp; 마우스 휠로 글자 크기 키우기/줄이기 조절하는 방법에 대해서 알아보겠습니다.&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;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000;&quot;&gt;먼저 단축키 &lt;span style=&quot;color: #9d9d9d;&quot;&gt;Ctrl + Alt + s&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&amp;nbsp;&lt;/span&gt;를 눌러 설정(Settings) 화면에 들어갑니다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;설정&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;1.&lt;/span&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;Settings&amp;nbsp; &amp;gt;&amp;nbsp; &lt;span style=&quot;background-color: #ffffff;&quot;&gt;Preference &amp;gt;&amp;nbsp; &lt;/span&gt;Editor&amp;nbsp; &amp;gt; &lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;General 에 들어갑니다.&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;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;3. Mouse Control&amp;nbsp; &amp;gt;&amp;nbsp; &lt;span style=&quot;background-color: #f6e199;&quot;&gt;&quot;Chage font size with Ctrl+Mouse Wheel in: &quot;&lt;/span&gt;&amp;nbsp; 옵션을 체크하여 활성화합니다.&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;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;4. [Apply] 버튼 눌러 적용 후 [OK] 확인을 눌러줍니다.&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_edited_blob&quot; data-origin-width=&quot;1519&quot; data-origin-height=&quot;1103&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bOu834/btrYpn4SeES/E6F07F6qVzlIwZ2vkqE600/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bOu834/btrYpn4SeES/E6F07F6qVzlIwZ2vkqE600/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bOu834/btrYpn4SeES/E6F07F6qVzlIwZ2vkqE600/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbOu834%2FbtrYpn4SeES%2FE6F07F6qVzlIwZ2vkqE600%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;1519&quot; height=&quot;1103&quot; data-filename=&quot;edited_edited_blob&quot; data-origin-width=&quot;1519&quot; data-origin-height=&quot;1103&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;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;마무리&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt;위와 같이 Mouse Control 기능을 ON 시켜주면 Ctrl + 마우스 휠 사용해서 편하게 글꼴 크기 조절할 수 있습니다!&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;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;Ref&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;figure id=&quot;og_1675762346433&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;Change editor font size | JetBrains&amp;nbsp;Rider&quot; data-og-description=&quot; &quot; data-og-host=&quot;www.jetbrains.com&quot; data-og-source-url=&quot;https://www.jetbrains.com/help/rider/Zooming_in_the_Editor.html#use-ctrl-cmd-mouse-wheel-to-change-font-size-in-the-current-document&quot; data-og-url=&quot;https://www.jetbrains.com/help/rider/Zooming_in_the_Editor.html&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/onC1P/hyRxY2Spy2/Fvhj76nPHONZboQztSP1G1/img.png?width=1280&amp;amp;height=800&amp;amp;face=0_0_1280_800&quot;&gt;&lt;a href=&quot;https://www.jetbrains.com/help/rider/Zooming_in_the_Editor.html#use-ctrl-cmd-mouse-wheel-to-change-font-size-in-the-current-document&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.jetbrains.com/help/rider/Zooming_in_the_Editor.html#use-ctrl-cmd-mouse-wheel-to-change-font-size-in-the-current-document&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/onC1P/hyRxY2Spy2/Fvhj76nPHONZboQztSP1G1/img.png?width=1280&amp;amp;height=800&amp;amp;face=0_0_1280_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;Change editor font size | JetBrains&amp;nbsp;Rider&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.jetbrains.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>Tool/IntelliJ IDE</category>
      <category>IntelliJ font size</category>
      <category>IntelliJ mouse control</category>
      <category>인텔리제이 글꼴 크기</category>
      <category>인텔리제이 에디터 폰트 사이즈</category>
      <author>균지니</author>
      <guid isPermaLink="true">https://yungenie.tistory.com/10</guid>
      <comments>https://yungenie.tistory.com/10#entry10comment</comments>
      <pubDate>Tue, 7 Feb 2023 18:36:17 +0900</pubDate>
    </item>
    <item>
      <title>[git] git init 되돌리기</title>
      <link>https://yungenie.tistory.com/9</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;ezgif.com-gif-maker.gif&quot; data-origin-width=&quot;780&quot; data-origin-height=&quot;514&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/n0hOn/btrXuaddwpV/pmA3WMR2ZKemTjKT0ezdck/img.gif&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/n0hOn/btrXuaddwpV/pmA3WMR2ZKemTjKT0ezdck/img.gif&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/n0hOn/btrXuaddwpV/pmA3WMR2ZKemTjKT0ezdck/img.gif&quot; srcset=&quot;https://blog.kakaocdn.net/dn/n0hOn/btrXuaddwpV/pmA3WMR2ZKemTjKT0ezdck/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;780&quot; height=&quot;514&quot; data-filename=&quot;ezgif.com-gif-maker.gif&quot; data-origin-width=&quot;780&quot; data-origin-height=&quot;514&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;1. git init 되돌리기&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;pre id=&quot;code_1674996759776&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;rm -r .git&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;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt;엉뚱한 디렉토리안에서 git init을 해버렸는데, 되돌리는 명령어를 다시 상기시키고자 합니다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;2. git init 명령어에 대해서 간단히 살펴보자. &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;pre id=&quot;code_1674996802293&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;git init&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt;해당 명령어 실행 시 해당 폴더에 git 저장소를 초기화 하며 로컬 저장소로 지정된다. (빈 저장소로 초기화)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt;기본&amp;nbsp;설정&amp;nbsp;폴더인&amp;nbsp;.git&amp;nbsp;디렉토리를&amp;nbsp;생성한다.&lt;/span&gt;&lt;/p&gt;</description>
      <category>Git&amp;amp;GitHub</category>
      <category>git init 되돌리기</category>
      <category>git init 취소</category>
      <author>균지니</author>
      <guid isPermaLink="true">https://yungenie.tistory.com/9</guid>
      <comments>https://yungenie.tistory.com/9#entry9comment</comments>
      <pubDate>Sun, 29 Jan 2023 22:02:10 +0900</pubDate>
    </item>
  </channel>
</rss>