<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>코딩하는 오렌지</title>
    <link>https://coding-orange.tistory.com/</link>
    <description>배움을 기록합니다.</description>
    <language>ko</language>
    <pubDate>Sat, 16 May 2026 04:57:16 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>coding-orange</managingEditor>
    <image>
      <title>코딩하는 오렌지</title>
      <url>https://tistory1.daumcdn.net/tistory/5513303/attach/8d54d9af537341f08a46bd853a645a4b</url>
      <link>https://coding-orange.tistory.com</link>
    </image>
    <item>
      <title>[토익 900] LC 점수 올리기 (420에서 485)</title>
      <link>https://coding-orange.tistory.com/198</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;TOEIC.png&quot; data-origin-width=&quot;1131&quot; data-origin-height=&quot;290&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/chcO87/btsQ9mFnhcJ/iU7ZDAHTG6APH7lYHvozJ1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/chcO87/btsQ9mFnhcJ/iU7ZDAHTG6APH7lYHvozJ1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/chcO87/btsQ9mFnhcJ/iU7ZDAHTG6APH7lYHvozJ1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FchcO87%2FbtsQ9mFnhcJ%2FiU7ZDAHTG6APH7lYHvozJ1%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;1131&quot; height=&quot;290&quot; data-filename=&quot;TOEIC.png&quot; data-origin-width=&quot;1131&quot; data-origin-height=&quot;290&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;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;첫 토익은 작년 8월에 캐나다 어학연수를 다녀와서 거의 바로 봤다. 한 달 짜리 어학연수였지만 매일 영어에 노출되다 보니 영어에 대한 두려움이 조금 사라졌던 것 같다. 그래서 그나마 영어가 익숙할 때 토익과 오픽을 봐야겠다고 생각했고 일주일 정도 준비하고 시험을 봤다. (참고로 수능 영어는 2등급) 첫 토익 치고는 나쁘지 않았다고 생각해서 이 점수에 만족하며 지내고 있었다.&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;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하반기 때 계획이 조금 망해서(?) 방황을 하던 시기가 있었는데 정말 뭘 해야할 지 감이 하나도 잡히지 않았다. 정처기, 정보기, ADSP 같은 자격증들은 1년에 응시할 수 있는 횟수가 많지 않고 시험 기간이 정해져 있었기에 응시 횟수와 기간에 구애받지 않는 토익을 조금 더 공부해 볼까 생각했다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;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;두 번째 토익 시험을 보기 전에는 정말 공부가 하기 싫었다. 그래서 안했다. 시험 하루 전에 모의고사 한 번 풀고, 시험 당일 아침에 유튜브로 LC 귀뚫기 들은 정도..? 공부를 안 했으니 점수가 잘 나올리가 ㅎㅎ 작년에 비해 딱 10점 올랐다. LC가 올랐고 RC가 진짜 많이 떨어졌다. 825점이라는 점수를 보고 내가 10점 올릴려고 토익 시험을 다시 본건가 갑자기 현타가 와서 900을 목표로 900을 받을 때 까지 시험을 봐야겠다고 생각했다.&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;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;10점의 충격으로 각성하고 900을 목표로 공부를 시작했다. 책은 아래 교재를 사용했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://product.kyobobook.co.kr/detail/S000216759019&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://product.kyobobook.co.kr/detail/S000216759019&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1760512708245&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;한 권으로 끝내는 해커스 토익 900+(LC+RC+VOCA) | 해커스 어학연구소 - 교보문고&quot; data-og-description=&quot;한 권으로 끝내는 해커스 토익 900+(LC+RC+VOCA) | 최신 기출 유형 100% 반영 10일 만에 토익 LC+RC+VOCA 한 권으로 끝!1. 토익 LC+RC+VOCA를 한 권으로 완성! 2. 취약 문제 유형 공략부터 고난도 문제 정복까지 &quot; data-og-host=&quot;product.kyobobook.co.kr&quot; data-og-source-url=&quot;https://product.kyobobook.co.kr/detail/S000216759019&quot; data-og-url=&quot;https://product.kyobobook.co.kr/detail/S000216759019&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/NzS9D/hyZLtuawgW/21y5WRPRaFqtsaeFra0H0k/img.jpg?width=458&amp;amp;height=626&amp;amp;face=0_0_458_626,https://scrap.kakaocdn.net/dn/ciUrES/hyZLg8YkV0/OPHJn0WXX9Aa1dKvSE7fH0/img.jpg?width=458&amp;amp;height=626&amp;amp;face=0_0_458_626&quot;&gt;&lt;a href=&quot;https://product.kyobobook.co.kr/detail/S000216759019&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://product.kyobobook.co.kr/detail/S000216759019&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/NzS9D/hyZLtuawgW/21y5WRPRaFqtsaeFra0H0k/img.jpg?width=458&amp;amp;height=626&amp;amp;face=0_0_458_626,https://scrap.kakaocdn.net/dn/ciUrES/hyZLg8YkV0/OPHJn0WXX9Aa1dKvSE7fH0/img.jpg?width=458&amp;amp;height=626&amp;amp;face=0_0_458_626');&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;한 권으로 끝내는 해커스 토익 900+(LC+RC+VOCA) | 해커스 어학연구소 - 교보문고&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;한 권으로 끝내는 해커스 토익 900+(LC+RC+VOCA) | 최신 기출 유형 100% 반영 10일 만에 토익 LC+RC+VOCA 한 권으로 끝!1. 토익 LC+RC+VOCA를 한 권으로 완성! 2. 취약 문제 유형 공략부터 고난도 문제 정복까지&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;product.kyobobook.co.kr&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;공부 기간은 약 2주로 잡았다. 책 앞부분에 있는 &lt;b&gt;900+ 정복 학습 플랜&lt;/b&gt; 중 &lt;b&gt;10일 완성 모드&lt;/b&gt;로 진행하되, 실전 모의고사를 푸는 날은 실전 모의고사만 풀었다.&lt;/p&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: 16.7442%;&quot;&gt;1일차&lt;/td&gt;
&lt;td style=&quot;width: 83.2558%;&quot;&gt;LC DAY 01 + RC DAY 01 + VOCA DAY 01&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 16.7442%;&quot;&gt;2일차&lt;/td&gt;
&lt;td style=&quot;width: 83.2558%;&quot;&gt;LC DAY 02 + RC DAY 02 + VOCA DAY 02&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 16.7442%;&quot;&gt;3일차&lt;/td&gt;
&lt;td style=&quot;width: 83.2558%;&quot;&gt;LC DAY 03 + RC DAY 03 + VOCA DAY 03&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 16.7442%;&quot;&gt;4일차&lt;/td&gt;
&lt;td style=&quot;width: 83.2558%;&quot;&gt;실전 모의고사 1 + 오답&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;이런 식으로 2주 동안 공부를 했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이번에는 점수가 크게 오른 LC 점수 올린 방법에 대해서만 작성하려고 한다. 다음 목표는 RC도 올리기!!&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;LC 공부법&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;공부를 시작할 때 LC에서 영국, 호주 발음이 정말 어려웠고 속으로 '뭐래는거야' 라고 생각했는데 많이 듣다 보니 익숙해져서 그런지 조금씩 들리기 시작했다. 영국, 호주 발음은 약간 흘리듯이? 말하는 경향이 있는 것 같은데 실제 시험에서는 이 책으로 공부한 것 보다 발음이 더 선명하게 들렸다. 역시 시험 난이도보다 어렵게 공부하는 게 확실히 도움이 된 것 같다. 실전 모의고사 LC 부분을 풀 때는 긴장을 놓치지 않으려고 계속 연습했다. 연습이라고 루즈하게 풀면 시험 때도 그럴 것 같아서,, 오답 하려면 다시 들어야 하는데 다시 듣기도 싫어서 원샷원킬 느낌으로 바짝 긴장하고 들었다. 실전 모의고사 1회차에서는 17개, 2회차에서는 18개, 3회차에서는 28개(&amp;lt;-?????)를 틀렸다.. 3회차에서 멘탈 나가서 때려칠까 생각했지만 토익 응시료도 있으니 시험은 보러 가자.. 이것보다 어렵게 나오겠어? 생각했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;오답은 그냥 답지 펴놓고 틀린 문제를 다시 들으면서 내가 어디에서 답을 놓쳤는지 답지 지문의 정답 근거 부분에 형관펜을 쳤다. 보통 답지를 보면서 들으면 들리긴 하는데 몇 개는 안 들려서 4~5번 반복하며 들은 문제도 있었다. (지겹,,,)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이번 토익 공부를 하면서 제일 도움이 많이 되었던 것은 유튜브에 있는 &lt;b&gt;서아쌤 LC 공부법과 팁 영상&lt;/b&gt;이였다. 유튜브에 좋은 자료들이 정말 많다는 것을 또 한 번 깨닳았다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&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;유튜브로 토익 관련 영상을 찾아봤다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;LC는 시험 전 날까지 계속 공부를 했는데, RC는 너무 하기 싫어서 오답도 안 보고 기출도 안 풀고 그냥 유튜브에 있는 영상만 봤다 ㅎㅎ..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=ORTer0uSXJw&amp;amp;t=1968s&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.youtube.com/watch?v=ORTer0uSXJw&amp;amp;t=1968s&lt;/a&gt;&lt;/p&gt;
&lt;figure data-ke-type=&quot;video&quot; data-ke-style=&quot;alignCenter&quot; data-video-host=&quot;youtube&quot; data-video-url=&quot;https://www.youtube.com/watch?v=ORTer0uSXJw&quot; data-video-thumbnail=&quot;https://scrap.kakaocdn.net/dn/bZfLnA/hyZLzHVHuG/gkpzTVcLU3PHkfocsOSbKk/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=290_298_1158_612,https://scrap.kakaocdn.net/dn/bbWule/hyZLvesA7Z/LKfLgP2LROEIFcY91S5IG0/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=290_298_1158_612&quot; data-video-width=&quot;860&quot; data-video-height=&quot;484&quot; data-video-origin-width=&quot;860&quot; data-video-origin-height=&quot;484&quot; data-ke-mobilestyle=&quot;widthContent&quot; data-video-title=&quot;토익 lc 토익 리스닝 빈출문장 만점비법&quot; data-original-url=&quot;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/ORTer0uSXJw&quot; width=&quot;860&quot; height=&quot;484&quot; frameborder=&quot;&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;figcaption style=&quot;display: none;&quot;&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=GyKel3bxLyE&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.youtube.com/watch?v=GyKel3bxLyE&lt;/a&gt;&lt;/p&gt;
&lt;figure data-ke-type=&quot;video&quot; data-ke-style=&quot;alignCenter&quot; data-video-host=&quot;youtube&quot; data-video-url=&quot;https://www.youtube.com/watch?v=GyKel3bxLyE&quot; data-video-thumbnail=&quot;https://scrap.kakaocdn.net/dn/cQ652c/hyZLAfMAkG/FDQjEMKvm7mBb2Qxi5JBok/img.jpg?width=480&amp;amp;height=360&amp;amp;face=181_92_273_193,https://scrap.kakaocdn.net/dn/H033O/hyZLxJ8BCw/EN4i6s1qIvLEPimKr9GC5K/img.jpg?width=480&amp;amp;height=360&amp;amp;face=181_92_273_193&quot; data-video-width=&quot;480&quot; data-video-height=&quot;360&quot; data-video-origin-width=&quot;480&quot; data-video-origin-height=&quot;360&quot; data-ke-mobilestyle=&quot;widthContent&quot; data-video-title=&quot;9월 28일 토익 전날 문제 양치기?  차라리 이 영상 1개 보세요!ㅣ시원스쿨 토익 소피아&quot; data-original-url=&quot;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/GyKel3bxLyE&quot; width=&quot;480&quot; height=&quot;360&quot; frameborder=&quot;&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;figcaption style=&quot;display: none;&quot;&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&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;토익을 볼 때 마다 느끼는 건데 LC가 끝나면 기가 너무 빨린다. LC가 끝나면 허기도 지고 집중력도 떨어져서 RC는 진짜 대충 풀고 싶다는 생각을 많이 한다. 모의고사 풀 때 LC + RC 한번에 쭈욱 푸는게 아니라 LC 끝나고 조금 쉬고 RC 풀고 이런 패턴으로 공부를 했기에 집중력이 떨어지는 건 어찌보면 당연한 것 같다. 다음 시험을 보기 전에는 꼭 실전처럼 연습을 해야겠다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;토익은 자리 배치도 중요하다고 생각한다. 첫 번째, 두 번째 시험에서는 둘 다 맨 뒷자리를 배정받았고, 아니나 다를까 대각선 앞에 있는 분들이 다리를 열심히 떠셨다.. ㅋㅎ 최대한 신경 안쓰려고 머리가 거의 책상에 빨려들어갈것 처럼 &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;고개를 푹 숙이고&lt;span&gt; 시험을 봤었다. 세 번째 시험에서는 제일 앞쪽 문 옆(E1) 자리였다. 옆 사람만 다리를 안 떨면 별 문제 없을 거라고 생각했는데!! 감독관이 다리를 떨었음 ㅎㅎ .. 앞선 두 시험과 마찬가지로 레전드 거북목 자세로 시험을 봤다..&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;다음에는 RC를 제대로 공부해야겠다.&lt;/p&gt;</description>
      <category>회고</category>
      <category>900</category>
      <category>LC</category>
      <category>RC</category>
      <category>toeic</category>
      <category>토익</category>
      <author>coding-orange</author>
      <guid isPermaLink="true">https://coding-orange.tistory.com/198</guid>
      <comments>https://coding-orange.tistory.com/198#entry198comment</comments>
      <pubDate>Wed, 15 Oct 2025 16:54:13 +0900</pubDate>
    </item>
    <item>
      <title>3진법 뒤집기</title>
      <link>https://coding-orange.tistory.com/197</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;Programmers.png&quot; data-origin-width=&quot;776&quot; data-origin-height=&quot;319&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/zgfGi/btsPzkhhzK5/7R4fBvCxXugv7kjlmns081/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/zgfGi/btsPzkhhzK5/7R4fBvCxXugv7kjlmns081/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/zgfGi/btsPzkhhzK5/7R4fBvCxXugv7kjlmns081/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FzgfGi%2FbtsPzkhhzK5%2F7R4fBvCxXugv7kjlmns081%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;776&quot; height=&quot;319&quot; data-filename=&quot;Programmers.png&quot; data-origin-width=&quot;776&quot; data-origin-height=&quot;319&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;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;3진법 뒤집기&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/68935&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://school.programmers.co.kr/learn/courses/30/lessons/68935&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&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;자연수&amp;nbsp;n이&amp;nbsp;매개변수로&amp;nbsp;주어집니다.&amp;nbsp;n을&amp;nbsp;3진법&amp;nbsp;상에서&amp;nbsp;앞뒤로&amp;nbsp;뒤집은&amp;nbsp;후,&amp;nbsp;이를&amp;nbsp;다시&amp;nbsp;10진법으로&amp;nbsp;표현한&amp;nbsp;수를&amp;nbsp;return&amp;nbsp;하도록&amp;nbsp;solution&amp;nbsp;함수를&amp;nbsp;완성해주세요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&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;/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;n은&amp;nbsp;1&amp;nbsp;이상&amp;nbsp;100,000,000&amp;nbsp;이하인&amp;nbsp;자연수입니다.&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;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;입출력 예&lt;/b&gt;&lt;/h4&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 54px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 18px;&quot;&gt;
&lt;td style=&quot;width: 50%; height: 18px;&quot;&gt;n&lt;/td&gt;
&lt;td style=&quot;width: 50%; height: 18px;&quot;&gt;result&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 18px;&quot;&gt;
&lt;td style=&quot;width: 50%; height: 18px;&quot;&gt;45&lt;/td&gt;
&lt;td style=&quot;width: 50%; height: 18px;&quot;&gt;7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 18px;&quot;&gt;
&lt;td style=&quot;width: 50%; height: 18px;&quot;&gt;125&lt;/td&gt;
&lt;td style=&quot;width: 50%; height: 18px;&quot;&gt;229&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;&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;1. 3진법으로 변환한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 앞뒤로 뒤집는다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. 10진법으로 변환한다.&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;고민 Point&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;&lt;b&gt;10진법을 n진법으로 변경&lt;/b&gt;할 때는 &lt;b&gt;Integer의 toString&lt;/b&gt; 메소드를 사용한다. 첫 번째 매개변수에는 변환할 int 타입의 수를, 두 번째 매개변수에는 변환할 진법 n을 넣는다. &lt;b&gt;반환 타입은 String&lt;/b&gt;임에 유의한다.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1753427242957&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// 10진법으로 45를 3진법으로 변환
String num = Integer.toString(45, 3);&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;b&gt;n진법을 10진법으로 변경&lt;/b&gt;할 때는 &lt;b&gt;Integer의 parseInt&lt;/b&gt; 메소드를 사용한다. 첫 번째 매개변수에는 변환할 String 타입의 값을, 두 번째 매개변수에는 원래 진법 n을 넣는다. 반환 타입은 int 이다.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1753427352633&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// 3진법으로 0021을 10진법으로 변환
int x = Integer.parseInt(&quot;0021&quot;, 3);&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;코드&lt;/b&gt;&lt;/h4&gt;
&lt;pre id=&quot;code_1753427084408&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;class Solution {
    public int solution(int n) {
        int answer = 0;
        
        // 3진법 변환
        String changedNum = Integer.toString(n, 3);
        
        // 뒤집기
        String reverse = &quot;&quot;;
        for(int i = changedNum.length() - 1; i &amp;gt;= 0; i--) {
            reverse += changedNum.charAt(i);
        }
        
        // 10진법 변환
        answer = Integer.parseInt(reverse, 3);
        
        return answer;
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;h4 style=&quot;color: #000000;&quot; data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Programmers</category>
      <category>3진법 뒤집기</category>
      <category>Java</category>
      <category>programmers</category>
      <category>자바</category>
      <category>코딩테스트</category>
      <category>프로그래머스</category>
      <author>coding-orange</author>
      <guid isPermaLink="true">https://coding-orange.tistory.com/197</guid>
      <comments>https://coding-orange.tistory.com/197#entry197comment</comments>
      <pubDate>Fri, 25 Jul 2025 16:11:14 +0900</pubDate>
    </item>
    <item>
      <title>크기가 작은 부분 문자열</title>
      <link>https://coding-orange.tistory.com/196</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;Programmers.png&quot; data-origin-width=&quot;776&quot; data-origin-height=&quot;319&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/zgfGi/btsPzkhhzK5/7R4fBvCxXugv7kjlmns081/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/zgfGi/btsPzkhhzK5/7R4fBvCxXugv7kjlmns081/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/zgfGi/btsPzkhhzK5/7R4fBvCxXugv7kjlmns081/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FzgfGi%2FbtsPzkhhzK5%2F7R4fBvCxXugv7kjlmns081%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;776&quot; height=&quot;319&quot; data-filename=&quot;Programmers.png&quot; data-origin-width=&quot;776&quot; data-origin-height=&quot;319&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&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;&lt;b&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/147355&quot;&gt;https://school.programmers.co.kr/learn/courses/30/lessons/147355&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&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;숫자로&amp;nbsp;이루어진&amp;nbsp;문자열&amp;nbsp;t와&amp;nbsp;p가&amp;nbsp;주어질&amp;nbsp;때,&amp;nbsp;t에서&amp;nbsp;p와&amp;nbsp;길이가&amp;nbsp;같은&amp;nbsp;부분문자열&amp;nbsp;중에서,&amp;nbsp;이&amp;nbsp;부분문자열이&amp;nbsp;나타내는&amp;nbsp;수가&amp;nbsp;p가&amp;nbsp;나타내는&amp;nbsp;수보다&amp;nbsp;작거나&amp;nbsp;같은&amp;nbsp;것이&amp;nbsp;나오는&amp;nbsp;횟수를&amp;nbsp;return하는&amp;nbsp;함수&amp;nbsp;solution을&amp;nbsp;완성하세요.&lt;br /&gt;&lt;br /&gt;예를&amp;nbsp;들어,&amp;nbsp;t=&quot;3141592&quot;이고&amp;nbsp;p=&quot;271&quot;&amp;nbsp;인&amp;nbsp;경우,&amp;nbsp;t의&amp;nbsp;길이가&amp;nbsp;3인&amp;nbsp;부분&amp;nbsp;문자열은&amp;nbsp;314,&amp;nbsp;141,&amp;nbsp;415,&amp;nbsp;159,&amp;nbsp;592입니다.&amp;nbsp;이&amp;nbsp;문자열이&amp;nbsp;나타내는&amp;nbsp;수&amp;nbsp;중&amp;nbsp;271보다&amp;nbsp;작거나&amp;nbsp;같은&amp;nbsp;수는&amp;nbsp;141,&amp;nbsp;159&amp;nbsp;2개&amp;nbsp;입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;제한 사항&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;1 &amp;le; p의 길이 &amp;le; 18&lt;/li&gt;
&lt;li&gt;p의 길이 &amp;le; t의 길이 &amp;le; 10,000&lt;/li&gt;
&lt;li&gt;t와&amp;nbsp;p는&amp;nbsp;숫자로만&amp;nbsp;이루어진&amp;nbsp;문자열이며,&amp;nbsp;0으로&amp;nbsp;시작하지&amp;nbsp;않습니다.&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;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;입출력 예&lt;/b&gt;&lt;/h4&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 72px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 18px;&quot;&gt;
&lt;td style=&quot;width: 33.3333%;height: 18px;&quot;&gt;&lt;b&gt;t&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;height: 18px;&quot;&gt;&lt;b&gt;p&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;height: 18px;&quot;&gt;&lt;b&gt;result&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 18px;&quot;&gt;
&lt;td style=&quot;width: 33.3333%;height: 18px;&quot;&gt;3141592&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;height: 18px;&quot;&gt;271&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;height: 18px;&quot;&gt;2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 18px;&quot;&gt;
&lt;td style=&quot;width: 33.3333%;height: 18px;&quot;&gt;500220839878&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;height: 18px;&quot;&gt;7&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;height: 18px;&quot;&gt;8&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 18px;&quot;&gt;
&lt;td style=&quot;width: 33.3333%;height: 18px;&quot;&gt;10203&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;height: 18px;&quot;&gt;3&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;height: 18px;&quot;&gt;3&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;&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;1. String 타입인 s를 BigInteger 타입으로 바꿔 숫자 값으로 추출한다.&lt;br /&gt;2. 반복문을 순회한다.&lt;br /&gt;2-1. 부분 문자열을 추출한다.&lt;br /&gt;2-2. 추출한 부분 문자열을 BigInteger 타입으로 바꿔 숫자 값으로 바꾼다.&lt;br /&gt;2-3.&amp;nbsp;값을&amp;nbsp;비교하여&amp;nbsp;조건에&amp;nbsp;해당하면&amp;nbsp;answer&amp;nbsp;변수의&amp;nbsp;값을&amp;nbsp;1&amp;nbsp;증가시킨다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;고민 Point&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;처음에 코드를 작성하고 [코드 실행]을 했을 때는 통과했지만, [제출 후 채점하기] 시 런타임 에러가 발생했다. 이유를 알아보니 제한사항에 p와 t의 길이에 제한사항이 있었다. 처음에 p를 Integer 타입으로 추출해 발생한 오류였다. 그럼 Long 으로 해야하나? Long 도 최대 19자리까지 밖에 처리하지 못한다는 것을 알았다. 결국 BigInteger를 사용했다.&lt;/li&gt;
&lt;li&gt;BigInteger를 사용하기 위해서는 아래 구문이 필요하다.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1753422811147&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import java.math.BigInteger&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; 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;문자열을 BigInteger로 변경하는 것은 아래와 같이 생성자를 이용하면 된다.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1753422972639&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;BigInteger num = new BigInteger(&quot;99999999999999999999&quot;);

// 생성자
// public BigInteger(String val)&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;BigInteger 값의 비교는 아래와 같이 compareTo 메소드를 이용하면 된다. a가 b보다 크면 1을, 작으면 -1을, 같으면 0을 반환한다.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1753423183814&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;BigInteger a = new BigInteger(&quot;99999999999999999999&quot;);
BigInteger b = new BigInteger(&quot;88888888888888888888&quot;);

System.out.println(a.compareTo(b));

// compareTo
// int compareTo(BigInteger val)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;코드&lt;/b&gt;&lt;/h4&gt;
&lt;pre id=&quot;code_1707144523822&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import java.math.BigInteger;

class Solution {
    public int solution(String t, String p) {
        int answer = 0;
        
        int pLength = p.length();
        BigInteger pNum = new BigInteger(p);
        
        for(int i = 0; i &amp;lt; t.length() - pLength + 1; i++) {
            String sub = t.substring(i, i + pLength);
            BigInteger subNum = new BigInteger(sub);
            
            if (subNum.compareTo(pNum) &amp;lt;= 0) {
                answer++;
            }    
        }

        return answer;
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Programmers</category>
      <category>Java</category>
      <category>programmers</category>
      <category>자바</category>
      <category>코딩테스트</category>
      <category>크기가 작은 부분 문자열</category>
      <category>프로그래머스</category>
      <author>coding-orange</author>
      <guid isPermaLink="true">https://coding-orange.tistory.com/196</guid>
      <comments>https://coding-orange.tistory.com/196#entry196comment</comments>
      <pubDate>Fri, 25 Jul 2025 15:05:10 +0900</pubDate>
    </item>
    <item>
      <title>[Java] Stack&amp;lt;Integer&amp;gt;를 int[]로 변환하기</title>
      <link>https://coding-orange.tistory.com/195</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;Programmers.png&quot; data-origin-width=&quot;776&quot; data-origin-height=&quot;319&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/QspUk/btsPvUQVnuo/d1b6D0k1vSnmtBg2sJ7QbK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/QspUk/btsPvUQVnuo/d1b6D0k1vSnmtBg2sJ7QbK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/QspUk/btsPvUQVnuo/d1b6D0k1vSnmtBg2sJ7QbK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FQspUk%2FbtsPvUQVnuo%2Fd1b6D0k1vSnmtBg2sJ7QbK%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;776&quot; height=&quot;319&quot; data-filename=&quot;Programmers.png&quot; data-origin-width=&quot;776&quot; data-origin-height=&quot;319&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;a title=&quot;문제&quot; href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/12906&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;문제&lt;/a&gt;를 풀다가 Stack&amp;lt;Integer&amp;gt;를 int[]로 변환해야 하는 상황에 마주했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Java 에서는 Stack&amp;lt;Integer&amp;gt;를 직접 int[]로 변환할 수 없어 중간 과정을 거쳐야 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&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;&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;b&gt;0. int[] arr이 있다고 가정하고 그 값을 stack에 push&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1753287637014&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;int[] arr = { 0, 1, 2, 3, 4 };

Stack stack = new Stack&amp;lt;&amp;gt;();

for(int i = 0; i &amp;lt; arr.length; i++) {
	stack.push(arr[i]);
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1. Stack&amp;lt;Integer&amp;gt; ➡️ Integer[]&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1753287655286&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;Integer[] temp = stack.toArray(new Integer[0]);
int[] answer = new int[temp.length];&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style8&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;⭐️ 잠깐, new Integer[0]는 무엇일까?&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;stack.toArray(new Integer[0])에서 new Integer[0]는 리턴될 배열의 타입과 구조를 지정한다. toArray의 동작 방식은 다음과 같다.&lt;br /&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1753288223575&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;T[] toArray(T[] a)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;a의 크기가 충분히 크다면 그 배열에 값을 채우지만, a의 크기가 작은 경우 같은 타입의 새 배열을 만들어서 리턴한다.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;text-align: start;&quot;&gt;따라서 new Integer[stack.size()]와 같이 작성해도 되지만,&amp;nbsp;&lt;b&gt;관용적으로 new Integer[0]을 넘겨도 내부적으로 크기에 맞춰 새 배열을 만들 수 있다.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style8&quot; /&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;b&gt;2. Integer[] ➡️ int[]&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1753287734273&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;for(int i = 0; i &amp;lt; temp.length; i++) {
	answer[i] = temp[i];
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;활용 코드는 다음과 같다.&lt;/p&gt;
&lt;pre id=&quot;code_1753287774270&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import java.util.*;

public class Solution {
    public int[] solution(int []arr) {
        
        Stack&amp;lt;Integer&amp;gt; stack = new Stack&amp;lt;&amp;gt;();
        
        for(int i = 0; i &amp;lt; arr.length; i++) {
            if (stack.empty() || stack.peek() != arr[i]) {
                stack.push(arr[i]);
            }
        }
        
        Integer[] temp = stack.toArray(new Integer[0]);
        int[] answer = new int[temp.length];
        
        for(int i = 0; i &amp;lt; temp.length; i++) {
            answer[i] = temp[i];
        }

        return answer;
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>TIL</category>
      <category>Java</category>
      <category>programmers</category>
      <category>stack</category>
      <category>개발</category>
      <category>스택</category>
      <category>자바</category>
      <category>코딩</category>
      <category>코딩테스트</category>
      <category>프로그래머스</category>
      <author>coding-orange</author>
      <guid isPermaLink="true">https://coding-orange.tistory.com/195</guid>
      <comments>https://coding-orange.tistory.com/195#entry195comment</comments>
      <pubDate>Thu, 24 Jul 2025 01:26:25 +0900</pubDate>
    </item>
    <item>
      <title>[AWS(EC2) + Jenkins + Docker + Ansible] AWS EC2에 Docker 서버 설치하기</title>
      <link>https://coding-orange.tistory.com/191</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;구조도.png&quot; data-origin-width=&quot;6462&quot; data-origin-height=&quot;3103&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bjUk7w/btsHOXmjAv9/P7oTFkJPZTQ2H3W6GQHVj1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bjUk7w/btsHOXmjAv9/P7oTFkJPZTQ2H3W6GQHVj1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bjUk7w/btsHOXmjAv9/P7oTFkJPZTQ2H3W6GQHVj1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbjUk7w%2FbtsHOXmjAv9%2FP7oTFkJPZTQ2H3W6GQHVj1%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;6462&quot; height=&quot;3103&quot; data-filename=&quot;구조도.png&quot; data-origin-width=&quot;6462&quot; data-origin-height=&quot;3103&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;a title=&quot;이전 글&quot; href=&quot;https://coding-orange.tistory.com/190&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;이전 글&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1717492036995&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[AWS(EC2) + Jenkins + Docker + Ansible] AWS EC2에 Jenkins 서버 설치하기&quot; data-og-description=&quot;이전 글2024.05.30 - [Deploy] - [AWS(EC2) + Jenkins + Docker + Ansible] EC2 인스턴스 생성, EC2에 Java 설치, AMI 생성과 AMI로 EC2 인스턴스 생성, ping 테스트, 보안그룹 설정&amp;nbsp;&amp;nbsp;이번에는 jenkins-server 에 jenkins를 설치하&quot; data-og-host=&quot;coding-orange.tistory.com&quot; data-og-source-url=&quot;https://coding-orange.tistory.com/190&quot; data-og-url=&quot;https://coding-orange.tistory.com/190&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/SvvzI/hyWdfHm2fc/GZFCZJ5mTXHVLSjyRwuBaK/img.png?width=800&amp;amp;height=384&amp;amp;face=0_0_800_384,https://scrap.kakaocdn.net/dn/bTiiOO/hyWg6IMZlu/YVCESFCuXdT4CkIMNhC2p0/img.png?width=800&amp;amp;height=384&amp;amp;face=0_0_800_384,https://scrap.kakaocdn.net/dn/gWEi9/hyWg80U9mk/VN00FOVvbumXqheouYkQm1/img.png?width=2784&amp;amp;height=1774&amp;amp;face=0_0_2784_1774&quot;&gt;&lt;a href=&quot;https://coding-orange.tistory.com/190&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://coding-orange.tistory.com/190&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/SvvzI/hyWdfHm2fc/GZFCZJ5mTXHVLSjyRwuBaK/img.png?width=800&amp;amp;height=384&amp;amp;face=0_0_800_384,https://scrap.kakaocdn.net/dn/bTiiOO/hyWg6IMZlu/YVCESFCuXdT4CkIMNhC2p0/img.png?width=800&amp;amp;height=384&amp;amp;face=0_0_800_384,https://scrap.kakaocdn.net/dn/gWEi9/hyWg80U9mk/VN00FOVvbumXqheouYkQm1/img.png?width=2784&amp;amp;height=1774&amp;amp;face=0_0_2784_1774');&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;[AWS(EC2) + Jenkins + Docker + Ansible] AWS EC2에 Jenkins 서버 설치하기&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;이전 글2024.05.30 - [Deploy] - [AWS(EC2) + Jenkins + Docker + Ansible] EC2 인스턴스 생성, EC2에 Java 설치, AMI 생성과 AMI로 EC2 인스턴스 생성, ping 테스트, 보안그룹 설정&amp;nbsp;&amp;nbsp;이번에는 jenkins-server 에 jenkins를 설치하&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;coding-orange.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&lt;b&gt;이전 글에 이어서 이번에는 cicd-project-docker EC2에 docker 를 설치해보자.&lt;/b&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;&amp;nbsp;&lt;/p&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;&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;0. EC2 접속&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;cicd-project-docker EC2에 접속하자. 접속하는 사용자 이름은 ec2-user 로 한다.&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;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;&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;1. EC2에&amp;nbsp;amazon&amp;nbsp;linux&amp;nbsp;확장&amp;nbsp;패키지&amp;nbsp;설치하기&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래&amp;nbsp;명령어로&amp;nbsp;확장&amp;nbsp;패키지를&amp;nbsp;설치한다.&lt;/p&gt;
&lt;pre id=&quot;code_1717492200554&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo amazon-linux-extras install epel -y&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&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;&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;2. docker 설치하기&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래 명령어로 도커를 설치한다.&lt;/p&gt;
&lt;pre id=&quot;code_1717512743125&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo yum install -y docker&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;도커 버전을 확인해보자.&lt;/p&gt;
&lt;pre id=&quot;code_1717512870224&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;docker --version&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;도커 클라이언트와 서버 버전 둘 다 확인해보자.&lt;/p&gt;
&lt;pre id=&quot;code_1717512899623&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;docker version&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;Client에 대한 정보는 나오지만 Server에 대한 정보는 나오지 않으며 docker daemon이 실행중이냐고 묻는다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;docker daemon 아직 시작 안함.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b5RV8V/btsHOJBRAEV/aMozLv4EmYx2C64MRvO6t1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b5RV8V/btsHOJBRAEV/aMozLv4EmYx2C64MRvO6t1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b5RV8V/btsHOJBRAEV/aMozLv4EmYx2C64MRvO6t1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb5RV8V%2FbtsHOJBRAEV%2FaMozLv4EmYx2C64MRvO6t1%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;2784&quot; height=&quot;1774&quot; data-filename=&quot;docker daemon 아직 시작 안함.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&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;pre id=&quot;code_1717512966424&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo systemctl start docker&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1717512994974&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo systemctl status docker&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;docker status docker start.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/sGD2o/btsHPxOeFSA/kpdWhj9XzO8h0UOLr0Skk0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/sGD2o/btsHPxOeFSA/kpdWhj9XzO8h0UOLr0Skk0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/sGD2o/btsHPxOeFSA/kpdWhj9XzO8h0UOLr0Skk0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FsGD2o%2FbtsHPxOeFSA%2FkpdWhj9XzO8h0UOLr0Skk0%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;2784&quot; height=&quot;1774&quot; data-filename=&quot;docker status docker start.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 도커가 잘 실행되고 있음을 확인했다. 다시 명령어를 입력해서 Server 에 관한 정보도 나오는지 보자.&lt;/p&gt;
&lt;pre id=&quot;code_1717513041591&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;docker version&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;color: #ee2323;&quot;&gt;&lt;b&gt;Got permission denied ~ 를 보니 권한 문제&lt;/b&gt;&lt;/span&gt;이다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;docker version 하는데 server는 permission denied.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b84qEg/btsHOfnJ0As/wJ2QmKMiO5KMQRSIkFPzPK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b84qEg/btsHOfnJ0As/wJ2QmKMiO5KMQRSIkFPzPK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b84qEg/btsHOfnJ0As/wJ2QmKMiO5KMQRSIkFPzPK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb84qEg%2FbtsHOfnJ0As%2FwJ2QmKMiO5KMQRSIkFPzPK%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;2784&quot; height=&quot;1774&quot; data-filename=&quot;docker version 하는데 server는 permission denied.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&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;b&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;앞에 sudo를 붙여 다시 해보자.&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1717513084375&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo docker version&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;이제 Server 정보도 잘 보인다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;sudo 붙이니까 이제 server도 보임.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/biJBs5/btsHO3GPK4H/QBOuWxah2MJwvTsk0XZGe0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/biJBs5/btsHO3GPK4H/QBOuWxah2MJwvTsk0XZGe0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/biJBs5/btsHO3GPK4H/QBOuWxah2MJwvTsk0XZGe0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbiJBs5%2FbtsHO3GPK4H%2FQBOuWxah2MJwvTsk0XZGe0%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;2784&quot; height=&quot;1774&quot; data-filename=&quot;sudo 붙이니까 이제 server도 보임.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&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;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;&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;3. ec2-user 사용자에게 docker 권한 주기&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;도커 관련 명령어를 수행할 때 매번 sudo를 붙이는 것은 꽤나 번거로운 일이다. 따라서 &lt;b&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;현재 접속된 사용자를 docker-group에 포함시켜 sudo 명령어를 붙이지 않고도 docker 관련 명령어를 사용할 수 있게 해보자&lt;/span&gt;&lt;/b&gt;.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래 명령어로 현재 사용자 이름을 알아낸다. 콘솔에 접속 시 0. 에서 사용자 이름을 ec2-user로 했기에 명령어를 입력하면 ec2-user가 나올 것이다.&lt;/p&gt;
&lt;pre id=&quot;code_1717513447778&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;whoami&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;ec2-user 라는 사용자를 docker-group에 포함시키는 명령어는 아래와 같다. 명령어를 입력한 이후 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;콘솔에 재접속해야 변경사항이 적용된다. 현재 탭을 닫고 다시 접속해보자.&lt;/span&gt; (**인스턴스 중지하고 재시작 하는 것 아님!!**)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1717513517064&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo usermod -aG docker ec2-user&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;이제 sudo 명령어를 빼고 docker 관련 명령어를 입력해보자.&lt;/p&gt;
&lt;pre id=&quot;code_1717513611051&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;docker version&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;잘 되는 것을 확인할 수 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;재실행 하니까 잘 됨.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bTvIvL/btsHNvx2Qtr/GiCjgve5rgI0WEWoqy3er0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bTvIvL/btsHNvx2Qtr/GiCjgve5rgI0WEWoqy3er0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bTvIvL/btsHNvx2Qtr/GiCjgve5rgI0WEWoqy3er0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbTvIvL%2FbtsHNvx2Qtr%2FGiCjgve5rgI0WEWoqy3er0%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;2784&quot; height=&quot;1774&quot; data-filename=&quot;재실행 하니까 잘 됨.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&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;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;&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;4. 간단한 docker 프로젝트 실행&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;간단한 샘플 예제를 다운로드 받아 실행시켜보자. 아래 명령어를 입력한다.&lt;/p&gt;
&lt;pre id=&quot;code_1717513678736&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;docker run hello-world&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;아래와 같이 보인다면 docker가 정상적으로 설치되었고 실행중인 것을 알 수 있다!&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;hello-world 시작.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/z6iei/btsHNpq32pM/L9MOjLc3cpsZbvUan0K7g1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/z6iei/btsHNpq32pM/L9MOjLc3cpsZbvUan0K7g1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/z6iei/btsHNpq32pM/L9MOjLc3cpsZbvUan0K7g1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fz6iei%2FbtsHNpq32pM%2FL9MOjLc3cpsZbvUan0K7g1%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;2784&quot; height=&quot;1774&quot; data-filename=&quot;hello-world 시작.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>Deploy</category>
      <category>AWS</category>
      <category>docker</category>
      <category>EC2</category>
      <category>도커</category>
      <category>서버</category>
      <author>coding-orange</author>
      <guid isPermaLink="true">https://coding-orange.tistory.com/191</guid>
      <comments>https://coding-orange.tistory.com/191#entry191comment</comments>
      <pubDate>Tue, 4 Jun 2024 21:56:17 +0900</pubDate>
    </item>
    <item>
      <title>[AWS(EC2) + Jenkins + Docker + Ansible] AWS EC2에 Jenkins 서버 설치하기</title>
      <link>https://coding-orange.tistory.com/190</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;구조도.png&quot; data-origin-width=&quot;6462&quot; data-origin-height=&quot;3103&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cq0KgN/btsHNZdW7vX/MpU4PQaLR1YonDijyd3Cak/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cq0KgN/btsHNZdW7vX/MpU4PQaLR1YonDijyd3Cak/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cq0KgN/btsHNZdW7vX/MpU4PQaLR1YonDijyd3Cak/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcq0KgN%2FbtsHNZdW7vX%2FMpU4PQaLR1YonDijyd3Cak%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;6462&quot; height=&quot;3103&quot; data-filename=&quot;구조도.png&quot; data-origin-width=&quot;6462&quot; data-origin-height=&quot;3103&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 style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&lt;b&gt;이번에는 jenkins-server 에 jenkins를 설치하기 전에 필요한 것들을 설치한 후 jenkins 설치와 기본 설정까지 해보자.&lt;/b&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&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;&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;0. EC2 접속&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이전 글에서 만든 jenkins-server로 접속하자. EC2 서버에서 cicd-project-jenkins를 클릭해 연결을 한다. 이 때 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;접속하는 사용자 이름은 항상 ec2-user로&lt;/b&gt;&lt;/span&gt; 한다. &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;다른 인스턴스들도 마찬가지로 해야함을 명심&lt;/b&gt;&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;9 이제 인스턴스 연결 가능.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Xhjay/btsHNz0Vico/fA5JQTkRqKqV8IX7wKtev0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Xhjay/btsHNz0Vico/fA5JQTkRqKqV8IX7wKtev0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Xhjay/btsHNz0Vico/fA5JQTkRqKqV8IX7wKtev0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FXhjay%2FbtsHNz0Vico%2FfA5JQTkRqKqV8IX7wKtev0%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;2784&quot; height=&quot;1774&quot; data-filename=&quot;9 이제 인스턴스 연결 가능.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&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;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;1. EC2에 amazon linux 확장 패키지 설치하기&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래 명령어로 확장 패키지를 설치한다.&lt;/p&gt;
&lt;pre id=&quot;code_1717487910603&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo amazon-linux-extras install epel -y&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&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;&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;2. maven 설치하기&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;maven 설치는 opt 폴더에서 진행하자.&lt;/p&gt;
&lt;pre id=&quot;code_1717488152956&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;cd /opt&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;maven 3.8.6 버전을 다운받으려고 하니 not found라고 한다.&amp;nbsp;&lt;/b&gt;&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;1.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mgoZz/btsHNTrqld1/KwDXm4artkROGFdQACDZKK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mgoZz/btsHNTrqld1/KwDXm4artkROGFdQACDZKK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mgoZz/btsHNTrqld1/KwDXm4artkROGFdQACDZKK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmgoZz%2FbtsHNTrqld1%2FKwDXm4artkROGFdQACDZKK%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;2784&quot; height=&quot;1774&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&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: #ee2323;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;그래서 나는 아래와 같이 3.9.6 버전을 설치했다. &lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;(&lt;b&gt;&lt;a href=&quot;https://maven.apache.org/download.cgi&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;공식 홈페이지&lt;/a&gt;&lt;/b&gt;에서 확인하여 최신 버전을 다운받는 것을 추천한다.)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1717488180455&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo wget https://mirror.navercorp.com/apache/maven/maven-3/3.9.6/binaries/apache-maven-3.9.6-bin.tar.gz&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;압축 파일을 풀어준다.&lt;/p&gt;
&lt;pre id=&quot;code_1717488892773&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo tar -xvzf apache-maven-3.9.6-bin.tar.gz&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;제대로 압축이 풀렸는지 확인하기 위해 아래 명령어를 입력한다.&lt;/p&gt;
&lt;pre id=&quot;code_1717488925972&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;ls -al&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;아래와 같이 apache-maven-3.9.6 이 보이면 성공한 것이다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;3.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/IkYQv/btsHOKAtWi9/cyKSmWGSe5P6tzlE22CpKk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/IkYQv/btsHOKAtWi9/cyKSmWGSe5P6tzlE22CpKk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/IkYQv/btsHOKAtWi9/cyKSmWGSe5P6tzlE22CpKk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FIkYQv%2FbtsHOKAtWi9%2FcyKSmWGSe5P6tzlE22CpKk%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;2784&quot; height=&quot;1774&quot; data-filename=&quot;3.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&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;폴더명이 기니까 maven으로 바꿔주자. mv 명령어를 이용한다.&lt;/p&gt;
&lt;pre id=&quot;code_1717489014377&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo mv apache-maven-3.9.6 maven&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;maven 폴더로 들어간다.&lt;/p&gt;
&lt;pre id=&quot;code_1717489077512&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;cd maven&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;bash_profile 파일을 수정하기 위해 vi 편집기를 이용한다.&lt;/p&gt;
&lt;pre id=&quot;code_1717489106235&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;vi ~/.bash_profile&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;키보드의 i 키를 눌러서 입력모드로 바꾼 후 다음과 같이 내용을 입력하고 ESC 키를 누른 후 :wq! 를 입력해 빠져나온다.&lt;/p&gt;
&lt;pre id=&quot;code_1717489142683&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# .bash_profile

#Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/.local/bin:$HOME/bin
M2_HOME=/opt/maven
PATH=$PATH:$M2_HOME:$M2_HOME/bin
export PATH&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;(나는 AWS에서 접속한 터미널에서 i 키를 누르고 내용을 입력하면 터미널이 이상해져서 해당 부분은 로컬 터미널로 진행했다.)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;4.png&quot; data-origin-width=&quot;1394&quot; data-origin-height=&quot;966&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/zJgZN/btsHNeXkOS5/91qchmy9pa9mu3DMRuu2a1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/zJgZN/btsHNeXkOS5/91qchmy9pa9mu3DMRuu2a1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/zJgZN/btsHNeXkOS5/91qchmy9pa9mu3DMRuu2a1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FzJgZN%2FbtsHNeXkOS5%2F91qchmy9pa9mu3DMRuu2a1%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;1394&quot; height=&quot;966&quot; data-filename=&quot;4.png&quot; data-origin-width=&quot;1394&quot; data-origin-height=&quot;966&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래 명령어로 바꾼 bash_profile을 적용시킨다.&lt;/p&gt;
&lt;pre id=&quot;code_1717489267910&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;source ~/.bash_profile&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;maven이 제대로 설치되었는지 확인한다.&lt;/p&gt;
&lt;pre id=&quot;code_1717489288085&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;mvn --version&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;5.png&quot; data-origin-width=&quot;1394&quot; data-origin-height=&quot;966&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ppqL9/btsHOCJvoiX/Y0a1vme7zdsDRczcCykDj0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ppqL9/btsHOCJvoiX/Y0a1vme7zdsDRczcCykDj0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ppqL9/btsHOCJvoiX/Y0a1vme7zdsDRczcCykDj0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FppqL9%2FbtsHOCJvoiX%2FY0a1vme7zdsDRczcCykDj0%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;1394&quot; height=&quot;966&quot; data-filename=&quot;5.png&quot; data-origin-width=&quot;1394&quot; data-origin-height=&quot;966&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(나는 나중에 gradle 프로젝트를 배포했다. &lt;a href=&quot;https://ymkmoon.github.io/Linux-12-CentOS-Gradle/#google_vignette&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://ymkmoon.github.io/Linux-12-CentOS-Gradle/#google_vignette&lt;/a&gt; 를 참고하여 maven 대신 gradle을 설치했고, gradle 버전은 배포할 프로젝트와 동일하게 했다.)&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;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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;3. git 설치&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;git은 간단히 아래 명령어로 설치한다.&lt;/p&gt;
&lt;pre id=&quot;code_1717489389972&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo yum install -y 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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&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;&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;4. jenkins 설치&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://pkg.origin.jenkins.io/redhat-stable/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://pkg.origin.jenkins.io/redhat-stable/&lt;/a&gt; 해당 링크를 참고하여 jenkins를 설치했으며 아래에 한번 더 정리한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래 명령어를 순차적으로 입력한다. 아래 명령어와 위 링크 명령어가 다르다면 위 링크 기준의 명령어를 입력해야 한다!&lt;/p&gt;
&lt;pre id=&quot;code_1717489460729&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1717489471625&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io-2023.key&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1717489478704&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo yum install fontconfig java-17-openjdk&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1717489485087&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo yum install jenkins&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;jenkins의 상태를 확인하고 jenkins 서버를 시작해보자.&lt;/p&gt;
&lt;pre id=&quot;code_1717489551821&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo systemctl status jenkins&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1717489557887&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo systemctl start jenkins&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;6 jenkins 시작.png&quot; data-origin-width=&quot;2416&quot; data-origin-height=&quot;1774&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c19Dlh/btsHNZZpjoF/vIVpJCkK7uiTptBLUvIPI0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c19Dlh/btsHNZZpjoF/vIVpJCkK7uiTptBLUvIPI0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c19Dlh/btsHNZZpjoF/vIVpJCkK7uiTptBLUvIPI0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc19Dlh%2FbtsHNZZpjoF%2FvIVpJCkK7uiTptBLUvIPI0%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;2416&quot; height=&quot;1774&quot; data-filename=&quot;6 jenkins 시작.png&quot; data-origin-width=&quot;2416&quot; data-origin-height=&quot;1774&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;&amp;nbsp;&lt;/p&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;&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;5. cicd-project-jenkins 의 인바운드 규칙 추가&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;인바운드 규칙으로 8080을 추가&lt;/b&gt;해주자. EC2 탭에서 cicd-project-jenkins를 선택하고 보안 - 보안 그룹을 클릭하고 인바운드 규칙을 아래와 같이 추가한 후 규칙을 저장해준다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;7 인바운드 규칙 추가.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cxYPyf/btsHOmUmATp/2Vrx1PrEkiBD0K5hNNZu9K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cxYPyf/btsHOmUmATp/2Vrx1PrEkiBD0K5hNNZu9K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cxYPyf/btsHOmUmATp/2Vrx1PrEkiBD0K5hNNZu9K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcxYPyf%2FbtsHOmUmATp%2F2Vrx1PrEkiBD0K5hNNZu9K%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;2784&quot; height=&quot;1774&quot; data-filename=&quot;7 인바운드 규칙 추가.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&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;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;&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;6. jenkins 초기 설정&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;cicd-project-jenkins의 public ip:8080&lt;/b&gt;을 주소창에 입력한다. (http://xxx.xxx.xxx.xxx:8080)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;jenkins 초기 비밀번호를 입력하라고 한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;8 jenkins 비번 입력하라고 뜸.png&quot; data-origin-width=&quot;2744&quot; data-origin-height=&quot;1734&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/slQfX/btsHNEnIF1q/4Y2MzVc7ut11eQE51YM81k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/slQfX/btsHNEnIF1q/4Y2MzVc7ut11eQE51YM81k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/slQfX/btsHNEnIF1q/4Y2MzVc7ut11eQE51YM81k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FslQfX%2FbtsHNEnIF1q%2F4Y2MzVc7ut11eQE51YM81k%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;2744&quot; height=&quot;1734&quot; data-filename=&quot;8 jenkins 비번 입력하라고 뜸.png&quot; data-origin-width=&quot;2744&quot; data-origin-height=&quot;1734&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;현재 기동된 jenkins의 로그를 확인해야 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;cicd-project-jenkins 터미널에서 아래 명령어를 입력한다.&lt;/p&gt;
&lt;pre id=&quot;code_1717490798322&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo cat /var/lib/jenkins/secrets/initialAdminPassword&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;비밀번호를 복사해 입력한다. 그리고 install suggested plugins 를 클릭하여 플러그인들을 설치한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;9 install suggested plugins.png&quot; data-origin-width=&quot;2744&quot; data-origin-height=&quot;1734&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dnEZxD/btsHNwKesvf/7HDwwGOwQPSV49CNuX0rm1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dnEZxD/btsHNwKesvf/7HDwwGOwQPSV49CNuX0rm1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dnEZxD/btsHNwKesvf/7HDwwGOwQPSV49CNuX0rm1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdnEZxD%2FbtsHNwKesvf%2F7HDwwGOwQPSV49CNuX0rm1%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;2744&quot; height=&quot;1734&quot; data-filename=&quot;9 install suggested plugins.png&quot; data-origin-width=&quot;2744&quot; data-origin-height=&quot;1734&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;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;계정명: admin&lt;/li&gt;
&lt;li&gt;암호: admin&lt;/li&gt;
&lt;li&gt;이름: Administrator&lt;/li&gt;
&lt;li&gt;이메일: kms02171@naver.com&lt;/li&gt;
&lt;li&gt;Jenkins URL: http://jenkins-public-ip:8080&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;10 계정.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/xmrwQ/btsHOW1XTKs/qT0nLjNJTLcxKS8r9HMVK1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/xmrwQ/btsHOW1XTKs/qT0nLjNJTLcxKS8r9HMVK1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/xmrwQ/btsHOW1XTKs/qT0nLjNJTLcxKS8r9HMVK1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FxmrwQ%2FbtsHOW1XTKs%2FqT0nLjNJTLcxKS8r9HMVK1%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;2784&quot; height=&quot;1774&quot; data-filename=&quot;10 계정.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;잘 접속이 된다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;11 잘 됨.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Chyz1/btsHNpdlIj9/vfrXranQoaVaVrdKYKxbN1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Chyz1/btsHNpdlIj9/vfrXranQoaVaVrdKYKxbN1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Chyz1/btsHNpdlIj9/vfrXranQoaVaVrdKYKxbN1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FChyz1%2FbtsHNpdlIj9%2FvfrXranQoaVaVrdKYKxbN1%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;2784&quot; height=&quot;1774&quot; data-filename=&quot;11 잘 됨.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;12 홈 들어옴.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dCr91n/btsHM4HebTf/MtTKRKJ3nKMLoFvUvNenGk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dCr91n/btsHM4HebTf/MtTKRKJ3nKMLoFvUvNenGk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dCr91n/btsHM4HebTf/MtTKRKJ3nKMLoFvUvNenGk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdCr91n%2FbtsHM4HebTf%2FMtTKRKJ3nKMLoFvUvNenGk%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;2784&quot; height=&quot;1774&quot; data-filename=&quot;12 홈 들어옴.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>Deploy</category>
      <category>AWS</category>
      <category>ci/cd</category>
      <category>EC2</category>
      <category>Jenkins</category>
      <category>Linux</category>
      <category>리눅스</category>
      <category>배포</category>
      <category>서버</category>
      <category>젠킨스</category>
      <author>coding-orange</author>
      <guid isPermaLink="true">https://coding-orange.tistory.com/190</guid>
      <comments>https://coding-orange.tistory.com/190#entry190comment</comments>
      <pubDate>Tue, 4 Jun 2024 17:50:26 +0900</pubDate>
    </item>
    <item>
      <title>[AWS(EC2) + Jenkins + Docker + Ansible] EC2 인스턴스 생성, EC2에 Java 설치, AMI 생성과 AMI로 EC2 인스턴스 생성, ping 테스트, 보안그룹 설정</title>
      <link>https://coding-orange.tistory.com/189</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;구조도.png&quot; data-origin-width=&quot;6462&quot; data-origin-height=&quot;3103&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bsHPbn/btsHH8hvYGs/vMgH9RhxDjGWiP9xNTKgbK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bsHPbn/btsHH8hvYGs/vMgH9RhxDjGWiP9xNTKgbK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bsHPbn/btsHH8hvYGs/vMgH9RhxDjGWiP9xNTKgbK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbsHPbn%2FbtsHH8hvYGs%2FvMgH9RhxDjGWiP9xNTKgbK%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;6462&quot; height=&quot;3103&quot; data-filename=&quot;구조도.png&quot; data-origin-width=&quot;6462&quot; data-origin-height=&quot;3103&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;Jenkins, Docker, Ansible를 이용하여 AWS로 배포를 해보자. 최종적으로는 AWS EC2 인스턴스 3개로 배포하게 될 것이다. 각 인스턴스를 &lt;b&gt;jenkins-server&lt;/b&gt;, &lt;b&gt;docker-server&lt;/b&gt;, &lt;b&gt;ansible-server&lt;/b&gt; 라고 하자. jenkins-server로 사용될 EC2 를 하나 생성하고 해당 EC2에 Java를 설치한 후 해당 서버를 AMI로 만들 것이다. Java가 설치된 AMI로 EC2 서버를 추가로 생성할 것이다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;티스토리 배포 구조도.png&quot; data-origin-width=&quot;3804&quot; data-origin-height=&quot;2485&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/CkyMq/btsHHSzdTXa/VcCaVJ6UKsq5JIKskQ2AJK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/CkyMq/btsHHSzdTXa/VcCaVJ6UKsq5JIKskQ2AJK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/CkyMq/btsHHSzdTXa/VcCaVJ6UKsq5JIKskQ2AJK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FCkyMq%2FbtsHHSzdTXa%2FVcCaVJ6UKsq5JIKskQ2AJK%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;3804&quot; height=&quot;2485&quot; data-filename=&quot;티스토리 배포 구조도.png&quot; data-origin-width=&quot;3804&quot; data-origin-height=&quot;2485&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;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;1. AWS EC2 인스턴스 생성&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;먼저 AWS로 접속하여 리전이 서울인지 확인한 후에 EC2 탭으로 들어간다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;1 리전 확인.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cZxN7Y/btsHIHXWNsp/BErfqVV2DU48K0y1GK4kFK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cZxN7Y/btsHIHXWNsp/BErfqVV2DU48K0y1GK4kFK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cZxN7Y/btsHIHXWNsp/BErfqVV2DU48K0y1GK4kFK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcZxN7Y%2FbtsHIHXWNsp%2FBErfqVV2DU48K0y1GK4kFK%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;2784&quot; height=&quot;1774&quot; data-filename=&quot;1 리전 확인.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;2 EC2로.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/NZrg7/btsHG8JtXSo/MkecHdS1psZIKMUpCJ2G4k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/NZrg7/btsHG8JtXSo/MkecHdS1psZIKMUpCJ2G4k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/NZrg7/btsHG8JtXSo/MkecHdS1psZIKMUpCJ2G4k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FNZrg7%2FbtsHG8JtXSo%2FMkecHdS1psZIKMUpCJ2G4k%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;2784&quot; height=&quot;1774&quot; data-filename=&quot;2 EC2로.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&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&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;3 EC2 선택.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/AdmPt/btsHGz8zSLJ/g5C2kdaHreuEMkHBRK8m1K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/AdmPt/btsHGz8zSLJ/g5C2kdaHreuEMkHBRK8m1K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/AdmPt/btsHGz8zSLJ/g5C2kdaHreuEMkHBRK8m1K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FAdmPt%2FbtsHGz8zSLJ%2Fg5C2kdaHreuEMkHBRK8m1K%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;2784&quot; height=&quot;1774&quot; data-filename=&quot;3 EC2 선택.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;인스턴스 생성을 위해 인스턴스 시작을 클릭한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;4 인스턴스 생성.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cPWOEW/btsHG9uVlwz/DZQL2ihfktB5Wu7ztcHPQk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cPWOEW/btsHG9uVlwz/DZQL2ihfktB5Wu7ztcHPQk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cPWOEW/btsHG9uVlwz/DZQL2ihfktB5Wu7ztcHPQk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcPWOEW%2FbtsHG9uVlwz%2FDZQL2ihfktB5Wu7ztcHPQk%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;2784&quot; height=&quot;1774&quot; data-filename=&quot;4 인스턴스 생성.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&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;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;인스턴스 이름 : cicd-project-ec2 (추후에 변경 가능)&lt;/li&gt;
&lt;li&gt;OS 이미지 : Quick Start - Amazon Linux 2 AMI (HVM) - Kernel 5.10, SSD Volumne Type (프리티어 사용 가능)&lt;/li&gt;
&lt;li&gt;인스턴스 유형 : t2.micro&lt;/li&gt;
&lt;li&gt;키 페어 : cicd-project-key 라는 이름으로 키 페어를 새로 생성&lt;/li&gt;
&lt;li&gt;네트워크 설정 (기본으로 아래와 같이 설정되어 있을 수도 있지만 다시 한 번 확인하기)
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;방화벽(보안 그룹) : 보안 그룹 생성&lt;/li&gt;
&lt;li&gt;다음에서 SSH 트래픽 허용 : 0.0.0.0/0&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&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;5 설정1.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/s5LAS/btsHIWN515g/MQNWyVABX1PViQyz8qJOtK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/s5LAS/btsHIWN515g/MQNWyVABX1PViQyz8qJOtK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/s5LAS/btsHIWN515g/MQNWyVABX1PViQyz8qJOtK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fs5LAS%2FbtsHIWN515g%2FMQNWyVABX1PViQyz8qJOtK%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;2784&quot; height=&quot;1774&quot; data-filename=&quot;5 설정1.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;6 설정2.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/yTKva/btsHHkXeEgP/jR37aXWd824xxL10egK901/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/yTKva/btsHHkXeEgP/jR37aXWd824xxL10egK901/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/yTKva/btsHHkXeEgP/jR37aXWd824xxL10egK901/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FyTKva%2FbtsHHkXeEgP%2FjR37aXWd824xxL10egK901%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;2784&quot; height=&quot;1774&quot; data-filename=&quot;6 설정2.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;7 설정3.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/chhrkA/btsHGzU1pAj/KnpR0i7l126pNkdT5oo2y1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/chhrkA/btsHGzU1pAj/KnpR0i7l126pNkdT5oo2y1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/chhrkA/btsHGzU1pAj/KnpR0i7l126pNkdT5oo2y1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FchhrkA%2FbtsHGzU1pAj%2FKnpR0i7l126pNkdT5oo2y1%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;2784&quot; height=&quot;1774&quot; data-filename=&quot;7 설정3.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;8 설정4.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bdXkud/btsHIWm1Mrv/ZfqzoPkVEqJwMDDqgfFch1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bdXkud/btsHIWm1Mrv/ZfqzoPkVEqJwMDDqgfFch1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bdXkud/btsHIWm1Mrv/ZfqzoPkVEqJwMDDqgfFch1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbdXkud%2FbtsHIWm1Mrv%2FZfqzoPkVEqJwMDDqgfFch1%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;2784&quot; height=&quot;1774&quot; data-filename=&quot;8 설정4.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;인스턴스가 만들어지기 까지 조금 시간이 걸린다. 정상적으로 생성되었다면 아래와 같이 보인다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;10 잘 생성됨.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dAFOPH/btsHG83PS55/3NeUGABOdLr4awqNR3IPm1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dAFOPH/btsHG83PS55/3NeUGABOdLr4awqNR3IPm1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dAFOPH/btsHG83PS55/3NeUGABOdLr4awqNR3IPm1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdAFOPH%2FbtsHG83PS55%2F3NeUGABOdLr4awqNR3IPm1%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;2784&quot; height=&quot;1774&quot; data-filename=&quot;10 잘 생성됨.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;2. EC2 서버에 탄력적 IP 할당&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;방금 생성한 EC2 인스턴스에 접속해보고자 해당 인스턴스를 클릭 후 연결 시도를 누르면 할당된 퍼블릭 IP 주소가 없다고 하며 &lt;b&gt;연결 버튼이 비활성화&lt;/b&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 widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;1 연결 누름.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bd4tYR/btsHIJBtVO3/tGA2bdzkifw43cXt72GQL1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bd4tYR/btsHIJBtVO3/tGA2bdzkifw43cXt72GQL1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bd4tYR/btsHIJBtVO3/tGA2bdzkifw43cXt72GQL1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbd4tYR%2FbtsHIJBtVO3%2FtGA2bdzkifw43cXt72GQL1%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;2784&quot; height=&quot;1774&quot; data-filename=&quot;1 연결 누름.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;2 할당된 퍼블릭 IP 주소가 없음.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Mygcl/btsHH7plCux/a52qXYm2Row0KgZY3msyk1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Mygcl/btsHH7plCux/a52qXYm2Row0KgZY3msyk1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Mygcl/btsHH7plCux/a52qXYm2Row0KgZY3msyk1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FMygcl%2FbtsHH7plCux%2Fa52qXYm2Row0KgZY3msyk1%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;2784&quot; height=&quot;1774&quot; data-filename=&quot;2 할당된 퍼블릭 IP 주소가 없음.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;2 할당된 퍼블릭 IP 주소가 없음2 연결 불가.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mSDef/btsHHL06DaF/uJFQapPGL3jOFHSKZey7jk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mSDef/btsHHL06DaF/uJFQapPGL3jOFHSKZey7jk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mSDef/btsHHL06DaF/uJFQapPGL3jOFHSKZey7jk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmSDef%2FbtsHHL06DaF%2FuJFQapPGL3jOFHSKZey7jk%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;2784&quot; height=&quot;1774&quot; data-filename=&quot;2 할당된 퍼블릭 IP 주소가 없음2 연결 불가.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&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;b&gt;탄력적 IP를 할당하지 않으면 인스턴스를 재실행 할 때 마다 IP주소가 바뀌어 번거롭다. 또한 이것을 설정하지 않으면 AWS 사이트를 통해 우리가 생성한 EC2로 접속이 어렵다.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;왼쪽 파란색 동그라미 표시된 목록을 클릭하고 섹션을 스크롤하여 네트워크 및 보안 부분의 &lt;b&gt;탄력적 IP를 클릭&lt;/b&gt;한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;2 할당된 퍼블릭 IP 주소가 없음2 연결 불가.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/rMtPk/btsHHqXb3Nl/GyKWQ47LpBImnFlLRpu1K0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/rMtPk/btsHHqXb3Nl/GyKWQ47LpBImnFlLRpu1K0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/rMtPk/btsHHqXb3Nl/GyKWQ47LpBImnFlLRpu1K0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FrMtPk%2FbtsHHqXb3Nl%2FGyKWQ47LpBImnFlLRpu1K0%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;2784&quot; height=&quot;1774&quot; data-filename=&quot;2 할당된 퍼블릭 IP 주소가 없음2 연결 불가.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;3 탄력적 IP 탭에 들어와서.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/czQjEc/btsHG8pb4BC/aozY6Gby4rWfdAyPzVEWik/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/czQjEc/btsHG8pb4BC/aozY6Gby4rWfdAyPzVEWik/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/czQjEc/btsHG8pb4BC/aozY6Gby4rWfdAyPzVEWik/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FczQjEc%2FbtsHG8pb4BC%2FaozY6Gby4rWfdAyPzVEWik%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;2784&quot; height=&quot;1774&quot; data-filename=&quot;3 탄력적 IP 탭에 들어와서.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&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;오른쪽 상단 탄력적 IP 주소 할당 버튼을 클릭한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;4 탄력적 IP 주소 할당 버튼 클릭.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/clSNEj/btsHIJaqBjx/9qeZrQgYfqGVck0GeZlpd0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/clSNEj/btsHIJaqBjx/9qeZrQgYfqGVck0GeZlpd0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/clSNEj/btsHIJaqBjx/9qeZrQgYfqGVck0GeZlpd0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FclSNEj%2FbtsHIJaqBjx%2F9qeZrQgYfqGVck0GeZlpd0%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;2784&quot; height=&quot;1774&quot; data-filename=&quot;4 탄력적 IP 주소 할당 버튼 클릭.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&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;네트워크 경계 그룹이 ap-northeast-2 로 설정되어 있는지 확인 후 스크롤 해서 할당 버튼을 누르면 된다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;5 그대로 놔두고.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/8imbO/btsHHLthkm2/auPIm2Is0cj4EoAwnLQZ00/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/8imbO/btsHHLthkm2/auPIm2Is0cj4EoAwnLQZ00/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/8imbO/btsHHLthkm2/auPIm2Is0cj4EoAwnLQZ00/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F8imbO%2FbtsHHLthkm2%2FauPIm2Is0cj4EoAwnLQZ00%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;2784&quot; height=&quot;1774&quot; data-filename=&quot;5 그대로 놔두고.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;5 그대로 놔두고 생성.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cqXhDU/btsHHnTUpUc/10xbjWMrEgdZobOV7xdtJK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cqXhDU/btsHHnTUpUc/10xbjWMrEgdZobOV7xdtJK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cqXhDU/btsHHnTUpUc/10xbjWMrEgdZobOV7xdtJK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcqXhDU%2FbtsHHnTUpUc%2F10xbjWMrEgdZobOV7xdtJK%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;2784&quot; height=&quot;1774&quot; data-filename=&quot;5 그대로 놔두고 생성.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&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;탄력적 IP 주소가 잘 할당이 된 것을 볼 수 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;6 잘 생성됨 확인.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bHDx7w/btsHGTlxRWe/kuLQx7biIcE3CxfkkGZui0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bHDx7w/btsHGTlxRWe/kuLQx7biIcE3CxfkkGZui0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bHDx7w/btsHGTlxRWe/kuLQx7biIcE3CxfkkGZui0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbHDx7w%2FbtsHGTlxRWe%2FkuLQx7biIcE3CxfkkGZui0%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;2784&quot; height=&quot;1774&quot; data-filename=&quot;6 잘 생성됨 확인.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&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;이제 이 IP 주소를 EC2 인스턴스에 연결해보자. 방금 생성한 IP 주소를 선택한 후 작업에서 탄력적 IP 주소 연결을 클릭한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;7 탄력적 IP 연결.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/CrPNn/btsHHkpqern/m0AZkXiEmyaLFn9yuLBeV0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/CrPNn/btsHHkpqern/m0AZkXiEmyaLFn9yuLBeV0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/CrPNn/btsHHkpqern/m0AZkXiEmyaLFn9yuLBeV0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FCrPNn%2FbtsHHkpqern%2Fm0AZkXiEmyaLFn9yuLBeV0%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;2784&quot; height=&quot;1774&quot; data-filename=&quot;7 탄력적 IP 연결.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&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;1번에서 만들었던 인스턴스는 EC2 인스턴스를 선택하고, 프라이빗 IP 주소는 AWS에서 자동으로 만들어주는 것 같다. 프라이빗 IP 주소도 설정을 하고 연결을 누른다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;8 연결 성공.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/d9NdYq/btsHGYG6aQb/L0Gv3evH07QDtv64NyXTJK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/d9NdYq/btsHGYG6aQb/L0Gv3evH07QDtv64NyXTJK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/d9NdYq/btsHGYG6aQb/L0Gv3evH07QDtv64NyXTJK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fd9NdYq%2FbtsHGYG6aQb%2FL0Gv3evH07QDtv64NyXTJK%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;2784&quot; height=&quot;1774&quot; data-filename=&quot;8 연결 성공.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&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;다시 EC2 탭으로 와서 다시 인스턴스 연결을 해보면 이제 연결 버튼이 활성화 된 것을 볼 수 있다. &lt;b&gt;사용자 이름은 ec2-user로&lt;/b&gt; 하고 연결을 해보자.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;9 이제 인스턴스 연결 가능.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/11j74/btsHHrPoujA/jy1nIBHSKJCkEZj97SKYJ1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/11j74/btsHHrPoujA/jy1nIBHSKJCkEZj97SKYJ1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/11j74/btsHHrPoujA/jy1nIBHSKJCkEZj97SKYJ1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F11j74%2FbtsHHrPoujA%2Fjy1nIBHSKJCkEZj97SKYJ1%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;2784&quot; height=&quot;1774&quot; data-filename=&quot;9 이제 인스턴스 연결 가능.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&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;아래와 같이 보인다면 EC2 인스턴스에 잘 접속한 것이다!&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;10 성공.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/buIK3R/btsHHr2VCNK/v9xYKTHPwKiH3TN67eeKJ0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/buIK3R/btsHHr2VCNK/v9xYKTHPwKiH3TN67eeKJ0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/buIK3R/btsHHr2VCNK/v9xYKTHPwKiH3TN67eeKJ0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbuIK3R%2FbtsHHr2VCNK%2Fv9xYKTHPwKiH3TN67eeKJ0%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;2784&quot; height=&quot;1774&quot; data-filename=&quot;10 성공.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&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;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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;3. EC2에 Java 설치&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 EC2에 Java를 설치해보자.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래 명령어로 인스턴스에 자바가 설치되어 있는지 확인할 수 있다. 아마 설치되어 있지 않을 것이다.&lt;/p&gt;
&lt;pre id=&quot;code_1717049590884&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&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;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래 명령어로 설치 가능한 자바 버전을 확인할 수 있다.&lt;/p&gt;
&lt;pre id=&quot;code_1717049654320&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;yum list java*jdk-devel&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;자바 11버전을 설치하기 위해 다음 명령어를 사용한다.&lt;/p&gt;
&lt;pre id=&quot;code_1717049707709&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo curl -L https://corretto.aws/downloads/latest/amazon-corretto-11-x64-linux-jdk.rpm -o aws_corretto_jdk11.rpm&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1717049716810&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo yum localinstall aws_corretto_jdk11.rpm&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;설치 완료 후 아래 명령어를 입력하고 우리가 설치한 버전인 자바 11 버전을 선택해준다.&lt;/p&gt;
&lt;pre id=&quot;code_1717049745524&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo /usr/sbin/alternatives --config java&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;이제 다시 자바 버전을 확인하는 명령어를 입력하면 11 버전이 뜰 것이다.&lt;/p&gt;
&lt;pre id=&quot;code_1717049769360&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&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;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다운받은 jdk11.rmp 파일은 삭제해준다.&lt;/p&gt;
&lt;pre id=&quot;code_1717049800209&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;rm -rf jdk11.rmp&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bjZY8h/btsHH8PjYOF/fOJmKD4rWi4n71UcVYJ6R0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bjZY8h/btsHH8PjYOF/fOJmKD4rWi4n71UcVYJ6R0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bjZY8h/btsHH8PjYOF/fOJmKD4rWi4n71UcVYJ6R0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbjZY8h%2FbtsHH8PjYOF%2FfOJmKD4rWi4n71UcVYJ6R0%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;2784&quot; height=&quot;1774&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cWmFOc/btsHHNq5HoQ/wjM9MeAJaurN1KytOARpDk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cWmFOc/btsHHNq5HoQ/wjM9MeAJaurN1KytOARpDk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cWmFOc/btsHHNq5HoQ/wjM9MeAJaurN1KytOARpDk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcWmFOc%2FbtsHHNq5HoQ%2FwjM9MeAJaurN1KytOARpDk%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;2784&quot; height=&quot;1774&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;3.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/HeJLi/btsHIVV0nMk/aJuIDJn61wbzjBtA8UZu51/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/HeJLi/btsHIVV0nMk/aJuIDJn61wbzjBtA8UZu51/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/HeJLi/btsHIVV0nMk/aJuIDJn61wbzjBtA8UZu51/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FHeJLi%2FbtsHIVV0nMk%2FaJuIDJn61wbzjBtA8UZu51%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;2784&quot; height=&quot;1774&quot; data-filename=&quot;3.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&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;(17버전을 설치하고 싶다면 아래 명령어를 입력한다.)&lt;/p&gt;
&lt;pre id=&quot;code_1717049831627&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo curl -L https://corretto.aws/downloads/latest/amazon-corretto-17-x64-linux-jdk.rpm -o aws_corretto_jdk17.rpm&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1717049835393&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo yum localinstall aws_corretto_jdk17.rpm&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;4. EC2 인스턴스를 AMI로 만들기&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Java까지 설치한 EC2 인스턴스를 AMI로 만들자. 추후에 AMI로 인스턴스를 추가로 생성할 것이다.&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 widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;1 인스턴스 중지.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cvpwIY/btsHHI4zyyU/yZjL0NCVITDtT6yESiRkS1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cvpwIY/btsHHI4zyyU/yZjL0NCVITDtT6yESiRkS1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cvpwIY/btsHHI4zyyU/yZjL0NCVITDtT6yESiRkS1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcvpwIY%2FbtsHHI4zyyU%2FyZjL0NCVITDtT6yESiRkS1%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;2784&quot; height=&quot;1774&quot; data-filename=&quot;1 인스턴스 중지.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;해당 인스턴스의 작업 - 이미지 및 템플릿 - 이미지 생성을 클릭한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;2 이미지 생성.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bcWwNQ/btsHH9tYtNf/bDlKaujhsOy6ppkfKsNORK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bcWwNQ/btsHH9tYtNf/bDlKaujhsOy6ppkfKsNORK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bcWwNQ/btsHH9tYtNf/bDlKaujhsOy6ppkfKsNORK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbcWwNQ%2FbtsHH9tYtNf%2FbDlKaujhsOy6ppkfKsNORK%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;2784&quot; height=&quot;1774&quot; data-filename=&quot;2 이미지 생성.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&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;이미지 이름만 지정하고 생성한다. 이름은 cicd-project-image로 한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;3 이름만 지정.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bOWXs9/btsHHaAEHoI/l4Nx1h0BaSCHQnHAwnfkI1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bOWXs9/btsHHaAEHoI/l4Nx1h0BaSCHQnHAwnfkI1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bOWXs9/btsHHaAEHoI/l4Nx1h0BaSCHQnHAwnfkI1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbOWXs9%2FbtsHHaAEHoI%2Fl4Nx1h0BaSCHQnHAwnfkI1%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;2784&quot; height=&quot;1774&quot; data-filename=&quot;3 이름만 지정.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&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;이후 AMI 탭에 들어와서 AMI가 잘 생성된 것을 확인한다. 그리고 Name이 비어있는 것을 볼 수 있는데, cicd-project-image로 지정해준다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;6 Name이 비어있는데.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/EoDUD/btsHHkJKiwb/m4wooQkz7NK4h7w8IniEIk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/EoDUD/btsHHkJKiwb/m4wooQkz7NK4h7w8IniEIk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/EoDUD/btsHHkJKiwb/m4wooQkz7NK4h7w8IniEIk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FEoDUD%2FbtsHHkJKiwb%2Fm4wooQkz7NK4h7w8IniEIk%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;2784&quot; height=&quot;1774&quot; data-filename=&quot;6 Name이 비어있는데.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;7 Name 지정해주자.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dpL3Y5/btsHIL66IpT/miUV615T0qfMW8QVj6KhOk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dpL3Y5/btsHIL66IpT/miUV615T0qfMW8QVj6KhOk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dpL3Y5/btsHIL66IpT/miUV615T0qfMW8QVj6KhOk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdpL3Y5%2FbtsHIL66IpT%2FmiUV615T0qfMW8QVj6KhOk%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;2784&quot; height=&quot;1774&quot; data-filename=&quot;7 Name 지정해주자.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&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;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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;5. AMI로 인스턴스 생성하기 전 준비&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;보안그룹에 태그를 지정해주고 EC2 인스턴스명을 바꿔보자.&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 widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2024-05-19 오전 12.54.28.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c3NfxL/btsHGQWFb0p/YA1iv3QaXq2VIYIW12rLhk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c3NfxL/btsHGQWFb0p/YA1iv3QaXq2VIYIW12rLhk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c3NfxL/btsHGQWFb0p/YA1iv3QaXq2VIYIW12rLhk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc3NfxL%2FbtsHGQWFb0p%2FYA1iv3QaXq2VIYIW12rLhk%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;2784&quot; height=&quot;1774&quot; data-filename=&quot;스크린샷 2024-05-19 오전 12.54.28.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;해당 보안그룹에서 태그 - 태그 관리를 클릭한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2024-05-19 오전 12.55.19.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bRZZmx/btsHIbZzkY2/TotNWWuSLaMD6DEJoVyGdk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bRZZmx/btsHIbZzkY2/TotNWWuSLaMD6DEJoVyGdk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bRZZmx/btsHIbZzkY2/TotNWWuSLaMD6DEJoVyGdk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbRZZmx%2FbtsHIbZzkY2%2FTotNWWuSLaMD6DEJoVyGdk%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;2784&quot; height=&quot;1774&quot; data-filename=&quot;스크린샷 2024-05-19 오전 12.55.19.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&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;키는 Name, 값은 cicd-project-sg 로 작성하고 변경 사항 저장을 클릭한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2024-05-19 오전 12.55.35.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/M07nv/btsHINDRMBf/xlgFsjbFSUwMHGrkTh2gv0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/M07nv/btsHINDRMBf/xlgFsjbFSUwMHGrkTh2gv0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/M07nv/btsHINDRMBf/xlgFsjbFSUwMHGrkTh2gv0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FM07nv%2FbtsHINDRMBf%2FxlgFsjbFSUwMHGrkTh2gv0%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;2784&quot; height=&quot;1774&quot; data-filename=&quot;스크린샷 2024-05-19 오전 12.55.35.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&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;아래와 같이 태그로 Name이 잘 적용된 것을 볼 수 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2024-05-19 오전 12.56.24.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/DzZS8/btsHIUivtYm/LvX0iBpThCK3Y5rlJ243NK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/DzZS8/btsHIUivtYm/LvX0iBpThCK3Y5rlJ243NK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/DzZS8/btsHIUivtYm/LvX0iBpThCK3Y5rlJ243NK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FDzZS8%2FbtsHIUivtYm%2FLvX0iBpThCK3Y5rlJ243NK%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;2784&quot; height=&quot;1774&quot; data-filename=&quot;스크린샷 2024-05-19 오전 12.56.24.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&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;이제 EC2 인스턴스명을 바꾸자. 인스턴스 Name 칸에 아이콘을 클릭하여 cicd-project-ec2 를 cicd-project-jenkins로 바꾸자.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;1 이름 편집.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cciNti/btsHIUJzGJ5/kAbUSYppdjy0mgFEtE62c0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cciNti/btsHIUJzGJ5/kAbUSYppdjy0mgFEtE62c0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cciNti/btsHIUJzGJ5/kAbUSYppdjy0mgFEtE62c0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcciNti%2FbtsHIUJzGJ5%2FkAbUSYppdjy0mgFEtE62c0%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;2784&quot; height=&quot;1774&quot; data-filename=&quot;1 이름 편집.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;2 이름 수정 cicd-project-jenkins.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nBDce/btsHHmndJcK/qW78ZSrevvIrqsrmvXYIF1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nBDce/btsHHmndJcK/qW78ZSrevvIrqsrmvXYIF1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nBDce/btsHHmndJcK/qW78ZSrevvIrqsrmvXYIF1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnBDce%2FbtsHHmndJcK%2FqW78ZSrevvIrqsrmvXYIF1%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;2784&quot; height=&quot;1774&quot; data-filename=&quot;2 이름 수정 cicd-project-jenkins.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&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;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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;6. AMI로 인스턴스 생성&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 Java까지 설치된 AMI를 이용해 인스턴스를 생성하자.&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;EC2 탭에 들어와서 인스턴스 시작을 클릭한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cBucqP/btsHI9fsnlm/tVs0Ne4YCvQYwW282qMmr0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cBucqP/btsHI9fsnlm/tVs0Ne4YCvQYwW282qMmr0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cBucqP/btsHI9fsnlm/tVs0Ne4YCvQYwW282qMmr0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcBucqP%2FbtsHI9fsnlm%2FtVs0Ne4YCvQYwW282qMmr0%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;2784&quot; height=&quot;1774&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;맨 처음 EC2를 생성할 때는 Quick Start로 linux를 지정했지만, 우리는 linux에 Java가 설치된 &lt;b&gt;우리가 만든 AMI를 사용&lt;/b&gt;할 것이기에 내 AMI 에서 우리가 만든 이미지를 선택해준다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lvxn2/btsHHbfePR4/lPZFINYsyTsObY0z6v36w0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lvxn2/btsHHbfePR4/lPZFINYsyTsObY0z6v36w0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lvxn2/btsHHbfePR4/lPZFINYsyTsObY0z6v36w0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Flvxn2%2FbtsHHbfePR4%2FlPZFINYsyTsObY0z6v36w0%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;2784&quot; height=&quot;1774&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&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;인스턴스 유형은 t2.micro를 선택한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;3.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bmZveP/btsHItlrBeW/w6lefel5skoZCHiWCDgDs1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bmZveP/btsHItlrBeW/w6lefel5skoZCHiWCDgDs1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bmZveP/btsHItlrBeW/w6lefel5skoZCHiWCDgDs1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbmZveP%2FbtsHItlrBeW%2Fw6lefel5skoZCHiWCDgDs1%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;2784&quot; height=&quot;1774&quot; data-filename=&quot;3.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;네트워크 설정 부분에서는, 기존 보안 그룹 선택을 클릭하고 &lt;b&gt;cicd-project-jenkins EC2 인스턴스와 연결된 것과 동일한 보안 그룹을 선택&lt;/b&gt;한다. 그리고 파란색으로 표시한 편집 버튼을 클릭한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;4.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/llGtY/btsHHhTM2HK/Ixc0ITrwpgD0Uidc0r7U1K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/llGtY/btsHHhTM2HK/Ixc0ITrwpgD0Uidc0r7U1K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/llGtY/btsHHhTM2HK/Ixc0ITrwpgD0Uidc0r7U1K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FllGtY%2FbtsHHhTM2HK%2FIxc0ITrwpgD0Uidc0r7U1K%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;2784&quot; height=&quot;1774&quot; data-filename=&quot;4.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;퍼블릭 IP 자동 할당을 활성화&lt;/b&gt;해준다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;5.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/blwLlW/btsHGRnNH0a/v9jnFOrxSTcfODepRe7Ir1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/blwLlW/btsHGRnNH0a/v9jnFOrxSTcfODepRe7Ir1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/blwLlW/btsHGRnNH0a/v9jnFOrxSTcfODepRe7Ir1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FblwLlW%2FbtsHGRnNH0a%2Fv9jnFOrxSTcfODepRe7Ir1%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;2784&quot; height=&quot;1774&quot; data-filename=&quot;5.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&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;인스턴스는 4개(tomcat, docker, sonarqube, jenkins)를 생성할 것이다. 인스턴스 시작을 눌러준다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;6.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bzsfdk/btsHIUph4oj/cxJQMwsUFLEMQHogey1Ui1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bzsfdk/btsHIUph4oj/cxJQMwsUFLEMQHogey1Ui1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bzsfdk/btsHIUph4oj/cxJQMwsUFLEMQHogey1Ui1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbzsfdk%2FbtsHIUph4oj%2FcxJQMwsUFLEMQHogey1Ui1%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;2784&quot; height=&quot;1774&quot; data-filename=&quot;6.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;인스턴스가 잘 생성되었다면 아래와 같이 인스턴스명을 바꿔준다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;7.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c4g0pr/btsHI6QzFKp/KuVB6N3huRQfkO8kJJRra1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c4g0pr/btsHI6QzFKp/KuVB6N3huRQfkO8kJJRra1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c4g0pr/btsHI6QzFKp/KuVB6N3huRQfkO8kJJRra1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc4g0pr%2FbtsHI6QzFKp%2FKuVB6N3huRQfkO8kJJRra1%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;2784&quot; height=&quot;1774&quot; data-filename=&quot;7.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&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;b&gt;모든 인스턴스의 VPC가 동일함을 확인&lt;/b&gt;한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;모든 인스턴스의 VPC 모두 동일함을 확인.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cbLRhf/btsHHPvJ7E9/kuyaPxQeMnWRITXLnpVfkk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cbLRhf/btsHHPvJ7E9/kuyaPxQeMnWRITXLnpVfkk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cbLRhf/btsHHPvJ7E9/kuyaPxQeMnWRITXLnpVfkk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcbLRhf%2FbtsHHPvJ7E9%2FkuyaPxQeMnWRITXLnpVfkk%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;2784&quot; height=&quot;1774&quot; data-filename=&quot;모든 인스턴스의 VPC 모두 동일함을 확인.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&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;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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;7. ping 테스트&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;jenkins 서버로 사용할 EC2인스턴스에서 docker 서버로 사용할 EC2 인스턴스로 ping이 잘 되는지 확인해보자.&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1717052018453&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;ping docker-ec2-private-ip-주소&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(각 EC2의 private ip 주소는 EC2 탭에서 각 인스턴스를 클릭하면 볼 수 있다. 아래는 예시 사진이다.)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2024-05-30 오후 4.02.59.png&quot; data-origin-width=&quot;1832&quot; data-origin-height=&quot;342&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/NGZ7l/btsHI6XmccT/yC4ANU4qj84ZwVKJHMjVd1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/NGZ7l/btsHI6XmccT/yC4ANU4qj84ZwVKJHMjVd1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/NGZ7l/btsHI6XmccT/yC4ANU4qj84ZwVKJHMjVd1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FNGZ7l%2FbtsHI6XmccT%2FyC4ANU4qj84ZwVKJHMjVd1%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;1832&quot; height=&quot;342&quot; data-filename=&quot;스크린샷 2024-05-30 오후 4.02.59.png&quot; data-origin-width=&quot;1832&quot; data-origin-height=&quot;342&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;응답이 오지 않는다. control + c 로 종료해준다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;1 jenkins-server 에서 docker-server로 Ping 잘 가는지 확인, 잘 안됨.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/oSpx6/btsHIT40t0f/BO23MMBJkhEk1fvW3hTijk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/oSpx6/btsHIT40t0f/BO23MMBJkhEk1fvW3hTijk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/oSpx6/btsHIT40t0f/BO23MMBJkhEk1fvW3hTijk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FoSpx6%2FbtsHIT40t0f%2FBO23MMBJkhEk1fvW3hTijk%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;2784&quot; height=&quot;1774&quot; data-filename=&quot;1 jenkins-server 에서 docker-server로 Ping 잘 가는지 확인, 잘 안됨.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&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;b&gt;보안그룹에서 인바운드 규칙으로 cicd-project-sg를 추가&lt;/b&gt;해줘야 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;보안 - 보안그룹 - 해당 보안 그룹으로 들어가서&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;2 보안그룹 선택.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/IWium/btsHHKg4vc3/BmyazBri43sZCXWXI0yUVK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/IWium/btsHHKg4vc3/BmyazBri43sZCXWXI0yUVK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/IWium/btsHHKg4vc3/BmyazBri43sZCXWXI0yUVK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FIWium%2FbtsHHKg4vc3%2FBmyazBri43sZCXWXI0yUVK%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;2784&quot; height=&quot;1774&quot; data-filename=&quot;2 보안그룹 선택.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;3 인바운드 규칙 편집.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/yxZVo/btsHI7aS4tA/YgKrMoWqbUB9pvJl13ZJbk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/yxZVo/btsHI7aS4tA/YgKrMoWqbUB9pvJl13ZJbk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/yxZVo/btsHI7aS4tA/YgKrMoWqbUB9pvJl13ZJbk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FyxZVo%2FbtsHI7aS4tA%2FYgKrMoWqbUB9pvJl13ZJbk%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;2784&quot; height=&quot;1774&quot; data-filename=&quot;3 인바운드 규칙 편집.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&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;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;4 보안 그룹 선택 1.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dc4RPW/btsHGWbxpfZ/HFyhXR2qi2FKAYA3NpU1kk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dc4RPW/btsHGWbxpfZ/HFyhXR2qi2FKAYA3NpU1kk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dc4RPW/btsHGWbxpfZ/HFyhXR2qi2FKAYA3NpU1kk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdc4RPW%2FbtsHGWbxpfZ%2FHFyhXR2qi2FKAYA3NpU1kk%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;2784&quot; height=&quot;1774&quot; data-filename=&quot;4 보안 그룹 선택 1.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;4 보안 그룹 선택 2.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cAuzjy/btsHIbSO25S/ti08jX4NH1NGzeQGDRC7I1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cAuzjy/btsHIbSO25S/ti08jX4NH1NGzeQGDRC7I1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cAuzjy/btsHIbSO25S/ti08jX4NH1NGzeQGDRC7I1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcAuzjy%2FbtsHIbSO25S%2Fti08jX4NH1NGzeQGDRC7I1%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;2784&quot; height=&quot;1774&quot; data-filename=&quot;4 보안 그룹 선택 2.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&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;다시 ping을 보내면 잘 되는 것을 확인할 수 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;5 다시 해보면 잘 됨.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/rDEl2/btsHILMRrtp/3GL4Lb6WO4NROeZrlGQgIk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/rDEl2/btsHILMRrtp/3GL4Lb6WO4NROeZrlGQgIk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/rDEl2/btsHILMRrtp/3GL4Lb6WO4NROeZrlGQgIk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FrDEl2%2FbtsHILMRrtp%2F3GL4Lb6WO4NROeZrlGQgIk%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;2784&quot; height=&quot;1774&quot; data-filename=&quot;5 다시 해보면 잘 됨.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&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;docker 서버로 사용할 EC2에서 jenkins 서버로 사용할 EC2로도 ping이 잘 가는 것을 확인할 수 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;6 docker-server 에서 Jenkins 서버로도 잘 됨.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bbvZx6/btsHHb0DO7J/MN9dvLXQh2JYGZPxcbC6o0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bbvZx6/btsHHb0DO7J/MN9dvLXQh2JYGZPxcbC6o0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bbvZx6/btsHHb0DO7J/MN9dvLXQh2JYGZPxcbC6o0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbbvZx6%2FbtsHHb0DO7J%2FMN9dvLXQh2JYGZPxcbC6o0%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;2784&quot; height=&quot;1774&quot; data-filename=&quot;6 docker-server 에서 Jenkins 서버로도 잘 됨.png&quot; data-origin-width=&quot;2784&quot; data-origin-height=&quot;1774&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>Deploy</category>
      <category>AWS</category>
      <category>CICD</category>
      <category>EC2</category>
      <category>Java</category>
      <category>배포</category>
      <category>자바</category>
      <author>coding-orange</author>
      <guid isPermaLink="true">https://coding-orange.tistory.com/189</guid>
      <comments>https://coding-orange.tistory.com/189#entry189comment</comments>
      <pubDate>Thu, 30 May 2024 14:46:21 +0900</pubDate>
    </item>
    <item>
      <title>[hELLO 스킨 css 편집] 이미지가 본문 영역을 벗어날 때</title>
      <link>https://coding-orange.tistory.com/187</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2024-05-28 오후 10.15.58.png&quot; data-origin-width=&quot;2322&quot; data-origin-height=&quot;1354&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bTQ8s4/btsHGdpclpm/Y5wyznk3w0oxSOBncpsYa1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bTQ8s4/btsHGdpclpm/Y5wyznk3w0oxSOBncpsYa1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bTQ8s4/btsHGdpclpm/Y5wyznk3w0oxSOBncpsYa1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbTQ8s4%2FbtsHGdpclpm%2FY5wyznk3w0oxSOBncpsYa1%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;2322&quot; height=&quot;1354&quot; data-filename=&quot;스크린샷 2024-05-28 오후 10.15.58.png&quot; data-origin-width=&quot;2322&quot; data-origin-height=&quot;1354&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;hELLO 스킨을 적용한 후 PC에서 보면 &lt;b&gt;이미지가 본문 영역을 벗어나는 것을 확인&lt;/b&gt;했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이를 해결하고자 스킨 편집에서 아래와 같이 (기존에 있던 코드는 삭제하고) max-width, margin-left, margin-right 부분을 추가했다.&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 widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2024-05-28 오후 10.18.13.png&quot; data-origin-width=&quot;1140&quot; data-origin-height=&quot;578&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/UKDDD/btsHGkIvpNh/j6NNGETumCmPHBCpHas2J1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/UKDDD/btsHGkIvpNh/j6NNGETumCmPHBCpHas2J1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/UKDDD/btsHGkIvpNh/j6NNGETumCmPHBCpHas2J1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FUKDDD%2FbtsHGkIvpNh%2Fj6NNGETumCmPHBCpHas2J1%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;1140&quot; height=&quot;578&quot; data-filename=&quot;스크린샷 2024-05-28 오후 10.18.13.png&quot; data-origin-width=&quot;1140&quot; data-origin-height=&quot;578&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;b&gt;첫 번째(본문 폭 맞춤&lt;/b&gt;) 으로 해줘야 하는 것이였다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2024-05-28 오후 10.16.58.png&quot; data-origin-width=&quot;714&quot; data-origin-height=&quot;152&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dk3zm6/btsHGiDWPC6/594PnvOMJSp1hQpKEHbdMk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dk3zm6/btsHGiDWPC6/594PnvOMJSp1hQpKEHbdMk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dk3zm6/btsHGiDWPC6/594PnvOMJSp1hQpKEHbdMk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdk3zm6%2FbtsHGiDWPC6%2F594PnvOMJSp1hQpKEHbdMk%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;714&quot; height=&quot;152&quot; data-filename=&quot;스크린샷 2024-05-28 오후 10.16.58.png&quot; data-origin-width=&quot;714&quot; data-origin-height=&quot;152&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;&lt;b&gt;첫 첫째(본문 폭 맞춤)으로 설정&lt;/b&gt;해주니 아래와 같이 &lt;b&gt;이미지가 콘텐츠 영역 밖으로 나가지 않았다.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2024-05-28 오후 10.21.01.png&quot; data-origin-width=&quot;2318&quot; data-origin-height=&quot;1108&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/d7HQ8P/btsHFwQsPFo/spONprKmUZPSOk2c6F1vTk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/d7HQ8P/btsHFwQsPFo/spONprKmUZPSOk2c6F1vTk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/d7HQ8P/btsHFwQsPFo/spONprKmUZPSOk2c6F1vTk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fd7HQ8P%2FbtsHFwQsPFo%2FspONprKmUZPSOk2c6F1vTk%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;2318&quot; height=&quot;1108&quot; data-filename=&quot;스크린샷 2024-05-28 오후 10.21.01.png&quot; data-origin-width=&quot;2318&quot; data-origin-height=&quot;1108&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;b&gt;+ 다른 이미지들은 모두 다 세 번째로 되어있는데 다 바꾸기에는 힘들 것 같다.. 이제부터라도 잘 적용하기..&lt;/b&gt;&lt;/p&gt;</description>
      <category>TIL</category>
      <category>css</category>
      <category>Hello</category>
      <category>스킨</category>
      <author>coding-orange</author>
      <guid isPermaLink="true">https://coding-orange.tistory.com/187</guid>
      <comments>https://coding-orange.tistory.com/187#entry187comment</comments>
      <pubDate>Tue, 28 May 2024 22:22:01 +0900</pubDate>
    </item>
    <item>
      <title>[BadSqlGrammarException] StatementCallback; bad SQL grammar [TRUNCATE TABLE members]</title>
      <link>https://coding-orange.tistory.com/186</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;kotlin.png&quot; data-origin-width=&quot;1244&quot; data-origin-height=&quot;1244&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/NlTix/btsHv5zky4l/dfe8ytevjs9in4cMHD1P3k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/NlTix/btsHv5zky4l/dfe8ytevjs9in4cMHD1P3k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/NlTix/btsHv5zky4l/dfe8ytevjs9in4cMHD1P3k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FNlTix%2FbtsHv5zky4l%2Fdfe8ytevjs9in4cMHD1P3k%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;1244&quot; height=&quot;1244&quot; data-filename=&quot;kotlin.png&quot; data-origin-width=&quot;1244&quot; data-origin-height=&quot;1244&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하고자 하는 동작은 테이블이 있다면 해당 테이블의 모든 데이터를 삭제하는 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래와 같이 &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;코틀린으로 테스트 코드를 작성했다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1716278214139&quot; class=&quot;kotlin&quot; data-ke-language=&quot;kotlin&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;private fun resetDatabase() {
    val tables = jdbcTemplate.queryForList(&quot;SHOW TABLES&quot;, String::class.java)
    tables.forEach { table -&amp;gt;
        jdbcTemplate.execute(&quot;TRUNCATE TABLE $table&quot;)
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래와 같은 오류가 발생했다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2024-05-21 오후 4.58.24.png&quot; data-origin-width=&quot;2082&quot; data-origin-height=&quot;308&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/UvM3l/btsHxJakV6z/KYIqZOQccHXZIoLJ3kt2GK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/UvM3l/btsHxJakV6z/KYIqZOQccHXZIoLJ3kt2GK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/UvM3l/btsHxJakV6z/KYIqZOQccHXZIoLJ3kt2GK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FUvM3l%2FbtsHxJakV6z%2FKYIqZOQccHXZIoLJ3kt2GK%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;2082&quot; height=&quot;308&quot; data-filename=&quot;스크린샷 2024-05-21 오후 4.58.24.png&quot; data-origin-width=&quot;2082&quot; data-origin-height=&quot;308&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;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Member 와 Note : 일대다&lt;/li&gt;
&lt;li&gt;Member 와 Quiz : 일대다&lt;/li&gt;
&lt;li&gt;Note 와 NotePage : 일대다&lt;/li&gt;
&lt;li&gt;Quiz 와 QuizPage : 일대다&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;각 테이블의 Foreign Key 제약조건을 비활성화 테이블 내의 데이터 삭제 후 다시 테이블의 Foreign Key 제약조건을 활성화 해주면 된다.&lt;/p&gt;
&lt;pre id=&quot;code_1716279218404&quot; class=&quot;kotlin&quot; data-ke-language=&quot;kotlin&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;jdbcTemplate.execute(&quot;SET FOREIGN_KEY_CHECKS = 0&quot;) // FK Constraint 비활성화
jdbcTemplate.execute(&quot;SET FOREIGN_KEY_CHECKS = 0&quot;) // FK Constraint 활성화&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;최종 코드는 다음과 같다.&lt;/p&gt;
&lt;pre id=&quot;code_1716279254169&quot; class=&quot;kotlin&quot; data-ke-language=&quot;kotlin&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;private fun resetDatabase() {
    jdbcTemplate.execute(&quot;SET FOREIGN_KEY_CHECKS = 0&quot;)
    val tables = jdbcTemplate.queryForList(&quot;SHOW TABLES&quot;, String::class.java)
    tables.forEach { table -&amp;gt;
        jdbcTemplate.execute(&quot;TRUNCATE TABLE $table&quot;)
    }
    jdbcTemplate.execute(&quot;SET FOREIGN_KEY_CHECKS = 1&quot;)
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>TIL</category>
      <category>Kotlin</category>
      <category>SQL</category>
      <category>til</category>
      <author>coding-orange</author>
      <guid isPermaLink="true">https://coding-orange.tistory.com/186</guid>
      <comments>https://coding-orange.tistory.com/186#entry186comment</comments>
      <pubDate>Tue, 21 May 2024 17:20:42 +0900</pubDate>
    </item>
    <item>
      <title>[Kotlin + SpringBoot] JaCoCo 추가하기</title>
      <link>https://coding-orange.tistory.com/185</link>
      <description>&lt;blockquote data-ke-style=&quot;style3&quot;&gt;코틀린으로 만들어진 스프링부트 프로젝트에서 jacoco를 추가하는 방법을 알아보자.&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;&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;1. JaCoCo란?&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;JaCoCo(Java Code Coverage)는 자바 프로그램의 코드 커버리지를 측정하기 위한 오픈 소스 도구이다. 코드 커버리지는 테스트가 코드의 몇 퍼센트를 실행하는지를 측정하는 지표이다. JaCoco로 다음과 같은 작업을 수행할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;b&gt;코드 커버리지 분석&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;JaCoCo는 어떤 코드가 테스트되었는지, 어떤 코드가 테스트되지 않았는지를 보여준다. 이를 통해 테스트가 부족한 부분을 찾아낼 수 있다.&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;b&gt;리포트 생성&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;JaCoCo는 HTML, XML, CSV 등 다양한 형식의 리포트를 생성하여 커버리지 결과를 시각적으로 제공한다.&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;b&gt;CI/CD 통합&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;JaCoCo는 Jenkins, GitLab CI/CD 등 다양한 지속적 통합 및 배포 도구와 쉽게 통합될 수 있다. 이를 통해 빌드 파이프라인에서 자동으로 커버리지 리포트를 생성할 수 있다.&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;b&gt;테스트 품질 향상&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;JaCoCo를 사용하면 테스트의 품질을 높이고, 중요한 코드가 테스트되지 않는 상황을 방지할 수 있다.&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;&amp;nbsp;&lt;/p&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;2. Kotlin + SpringBoot 프로젝트에 JaCoCo 추가하기&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;build.gradle.kts&lt;/b&gt;에 다음과 같이 작성 혹은 추가한다.&lt;/p&gt;
&lt;pre id=&quot;code_1716265006843&quot; class=&quot;kotlin&quot; data-ke-language=&quot;kotlin&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;plugin {
	id(&quot;jacoco&quot;) // jacoco 추가
}

tasks.withType&amp;lt;Test&amp;gt; {
	useJUnitPlatform()
	finalizedBy(&quot;jacocoTestReport&quot;) // 테스트 후에 JaCoCo 리포트 생성
}

tasks.jacocoTestReport {
	dependsOn(tasks.test) // 테스트 후에 JaCoCo 리포트 생성

	reports {
		xml.required.set(true)
		html.required.set(true)
	}
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;JUnit5&lt;/b&gt; 관련 내용도 추가한다.&lt;/p&gt;
&lt;pre id=&quot;code_1716273990713&quot; class=&quot;kotlin&quot; data-ke-language=&quot;kotlin&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;dependencies {

	// JUnit5
	testImplementation(&quot;org.junit.jupiter:junit-jupiter-api:5.10.0&quot;)
	testRuntimeOnly(&quot;org.junit.jupiter:junit-jupiter-engine:5.10.0&quot;)

	testImplementation(&quot;org.springframework.boot:spring-boot-starter-test&quot;) {
		exclude(group = &quot;junit&quot;, module = &quot;junit&quot;)  // JUnit4 의존성 제외
		exclude(group = &quot;org.mockito&quot;, module = &quot;mockito-core&quot;)  // Mockito 1.x 제외
	}
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;전체 build.gradle.kts&lt;/b&gt;는 다음과 같다.&lt;/p&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;pre class=&quot;kotlin&quot; data-ke-language=&quot;kotlin&quot;&gt;&lt;code&gt;import org.jetbrains.kotlin.gradle.tasks.KotlinCompile

plugins {
	id(&quot;org.springframework.boot&quot;) version &quot;3.2.3&quot;
	id(&quot;io.spring.dependency-management&quot;) version &quot;1.1.4&quot;
	kotlin(&quot;jvm&quot;) version &quot;1.9.22&quot;
	kotlin(&quot;plugin.spring&quot;) version &quot;1.9.22&quot;
	kotlin(&quot;plugin.jpa&quot;) version &quot;1.9.22&quot;
	id(&quot;jacoco&quot;)
}

group = &quot;com.capston&quot;
version = &quot;0.0.1-SNAPSHOT&quot;

java {
	sourceCompatibility = JavaVersion.VERSION_17
}

configurations {
	compileOnly {
		extendsFrom(configurations.annotationProcessor.get())
	}
}

repositories {
	mavenCentral()
}

dependencies {
	implementation(&quot;org.springframework.boot:spring-boot-starter-data-jpa&quot;)
	implementation(&quot;org.springframework.boot:spring-boot-starter-validation&quot;)
	implementation(&quot;org.springframework.boot:spring-boot-starter-web&quot;)
	implementation(&quot;com.fasterxml.jackson.module:jackson-module-kotlin&quot;)
	implementation(&quot;org.jetbrains.kotlin:kotlin-reflect&quot;)

	// JWT
	implementation(&quot;io.jsonwebtoken:jjwt-api:0.11.2&quot;)
	runtimeOnly(&quot;io.jsonwebtoken:jjwt-impl:0.11.2&quot;)
	runtimeOnly(&quot;io.jsonwebtoken:jjwt-jackson:0.11.2&quot;)

	// Security
	implementation(&quot;org.springframework.boot:spring-boot-starter-security&quot;)

	// JUnit5
	testImplementation(&quot;org.junit.jupiter:junit-jupiter-api:5.10.0&quot;)
	testRuntimeOnly(&quot;org.junit.jupiter:junit-jupiter-engine:5.10.0&quot;)

	compileOnly(&quot;org.projectlombok:lombok&quot;)
	runtimeOnly(&quot;com.mysql:mysql-connector-j&quot;)
	annotationProcessor(&quot;org.projectlombok:lombok&quot;)
	testImplementation(&quot;org.springframework.boot:spring-boot-starter-test&quot;) {
		exclude(group = &quot;junit&quot;, module = &quot;junit&quot;)  // JUnit4 의존성 제외
		exclude(group = &quot;org.mockito&quot;, module = &quot;mockito-core&quot;)  // Mockito 1.x 제외
	}
}

tasks.withType&amp;lt;KotlinCompile&amp;gt; {
	kotlinOptions {
		freeCompilerArgs += &quot;-Xjsr305=strict&quot;
		jvmTarget = &quot;17&quot;
	}
}

tasks.withType&amp;lt;Test&amp;gt; {
	useJUnitPlatform()
	finalizedBy(&quot;jacocoTestReport&quot;) // 테스트 후에 JaCoCo 리포트 생성
}

tasks.jacocoTestReport {
	dependsOn(tasks.test) // 테스트 후에 JaCoCo 리포트 생성

	reports {
		xml.required.set(true)
		html.required.set(true)
	}
}

tasks {
	val bootJar by getting(org.springframework.boot.gradle.tasks.bundling.BootJar::class) {
		archiveFileName.set(&quot;app.jar&quot;)
	}
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;3. Report 생성과 확인&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Report 생성&lt;/b&gt;&amp;nbsp; : IntelliJ 오른쪽 Gradle 탭 - Tasks - verification - jacocoTestReport&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2024-05-21 오후 3.48.57.png&quot; data-origin-width=&quot;664&quot; data-origin-height=&quot;820&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c9pmJk/btsHvriqlwQ/gTp8xIpTAT0t2LsKetqYB0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c9pmJk/btsHvriqlwQ/gTp8xIpTAT0t2LsKetqYB0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c9pmJk/btsHvriqlwQ/gTp8xIpTAT0t2LsKetqYB0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc9pmJk%2FbtsHvriqlwQ%2FgTp8xIpTAT0t2LsKetqYB0%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;300&quot; height=&quot;370&quot; data-filename=&quot;스크린샷 2024-05-21 오후 3.48.57.png&quot; data-origin-width=&quot;664&quot; data-origin-height=&quot;820&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;b&gt;Report 확인&lt;/b&gt; : build/reports/test/index.html&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2024-05-21 오후 3.58.27.png&quot; data-origin-width=&quot;2232&quot; data-origin-height=&quot;1774&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cmZmti/btsHvzghVBg/btBVZVrGzIhsQ7HCyZTQJ1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cmZmti/btsHvzghVBg/btBVZVrGzIhsQ7HCyZTQJ1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cmZmti/btsHvzghVBg/btBVZVrGzIhsQ7HCyZTQJ1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcmZmti%2FbtsHvzghVBg%2FbtBVZVrGzIhsQ7HCyZTQJ1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;500&quot; height=&quot;397&quot; data-filename=&quot;스크린샷 2024-05-21 오후 3.58.27.png&quot; data-origin-width=&quot;2232&quot; data-origin-height=&quot;1774&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>TIL</category>
      <category>jacoco</category>
      <category>Kotlin</category>
      <category>SpringBoot</category>
      <category>til</category>
      <category>스프링부트</category>
      <category>코틀린</category>
      <author>coding-orange</author>
      <guid isPermaLink="true">https://coding-orange.tistory.com/185</guid>
      <comments>https://coding-orange.tistory.com/185#entry185comment</comments>
      <pubDate>Tue, 21 May 2024 13:21:28 +0900</pubDate>
    </item>
  </channel>
</rss>