<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>채소의 코딩세상</title>
    <link>https://vegetableworld.tistory.com/</link>
    <description>채소의 주식세상: https://vegetablestock.tistory.com/</description>
    <language>ko</language>
    <pubDate>Mon, 28 Sep 2026 14:30:13 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>채소기</managingEditor>
    <image>
      <title>채소의 코딩세상</title>
      <url>https://tistory1.daumcdn.net/tistory/5063611/attach/ee0125d2030e4cddac133560fac85e41</url>
      <link>https://vegetableworld.tistory.com</link>
    </image>
    <item>
      <title>우리가 인덱스 투자를 해야만 하는 명확한 이유</title>
      <link>https://vegetableworld.tistory.com/253</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;1970년 당시 존재했던 355개 뮤추얼 펀드의 46년간 성과를 아래 도표를 통해 확인해보자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;※ 뮤추얼 펀드란? - 여러 사람의 돈을 하나로 모아 펀드라는 큰 자산을 만들고, 그 돈으로 주식/채권 등을 투자하는 금융상품&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1536&quot; data-origin-height=&quot;1024&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/O5zmI/dJMcadC6pW2/qwjxUwXDq34dHgAs7nqVu0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/O5zmI/dJMcadC6pW2/qwjxUwXDq34dHgAs7nqVu0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/O5zmI/dJMcadC6pW2/qwjxUwXDq34dHgAs7nqVu0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FO5zmI%2FdJMcadC6pW2%2FqwjxUwXDq34dHgAs7nqVu0%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;1536&quot; height=&quot;1024&quot; data-origin-width=&quot;1536&quot; data-origin-height=&quot;1024&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;총 355개 펀드 중 거의 80%에 해당하는 281개 펀드가 사라졌다. 당연하게도 시장 수익률보다 성과가 저조하니 사라진 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;잔존 펀드 가운데 29개는 S&amp;amp;P500보다 수익률이 낮았다. 35개는 S&amp;amp;P500 수익률과 거의 비슷하다.&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;background-color: #ffffff;&quot;&gt;결국 S&amp;amp;P 500의 수익률보다 1% 초과하는 펀드는 10개뿐이며, 2% 초과하는 탁월한 수익을 기록한 펀드는 단 2개다.&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(이 2개의 펀드를 운용한 주인공은 월가의 전설적인 투자자인 피터 린치와 윌 다노프다.)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;보이는가? 시장의 수익률을 단 1%라도 넘는 것이 이렇게나 어렵다. &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 data-ke-size=&quot;size16&quot;&gt;이것이 바로 우리가 인덱스 투자를 해야만 하는 이유다. 월가의 전업 투자자들 조차 시장 수익률을 넘길 수가 없는데, 일반 투자자인 우리가 개별주에 전재산을 올인해야만 하는 이유가 있을까? 잘 생각해보라.(심지어 개별주 레버리지 투자를 해 큰 돈을 잃고는 한다.)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;물론 개별주에 투자해 큰 수익을 얻은 일반 투자자도 분명 있다. 필자 본인도 개별주로 700%에 달하는 수익을 경험해보았다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다만, &quot;투자를 잘한다&quot;라고 하는 것은 장기간 꾸준히 수익을 내어 복리의 효과를 온전히 얻는 것을 이야기 한다. (여기서 말하는 장기간은 최소 10년 이상의 수십년을 이야기한다.) 단기간에 수백%의 수익을 내는 것은 중요치 않다. 어차피 오랫동안 그 수익률을 유지하지 못할테니깐. 적은 수익률이라도 &quot;꾸준히&quot; 가 중요하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;앞선 도표에서 보았듯이, 개별주로 포트폴리오를 만들어 &quot;꾸준히&quot; 수익을 내는 것은 어렵다. &lt;span style=&quot;letter-spacing: 0px;&quot;&gt;전문적인 분석을 할 시간과 정보가 부족한 일반 투자자가 개별 종목을 골라 시장을 이기려 하는 것은 무모한 짓이다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;또한, 개별 기업은 언제나 망할 수 있다. 지금 잘 나가는 기업이 앞으로도 잘 나갈 것이라고 확신할 수 있는가?&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;아래의 표를 보자.&lt;/span&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1536&quot; data-origin-height=&quot;1024&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bseyIP/dJMcah6PSsN/NIl3ibtKFJIFMzkrrNkbBk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bseyIP/dJMcah6PSsN/NIl3ibtKFJIFMzkrrNkbBk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bseyIP/dJMcah6PSsN/NIl3ibtKFJIFMzkrrNkbBk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbseyIP%2FdJMcah6PSsN%2FNIl3ibtKFJIFMzkrrNkbBk%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;1536&quot; height=&quot;1024&quot; data-origin-width=&quot;1536&quot; data-origin-height=&quot;1024&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;글로벌 시가총액 순위의 흐름을 10년 단위로 나타낸 표다. 특히 20년 전의 순위와, 현재의 순위가 많이 다르지 않은가?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;미래의 승자를 예측하는 것은 어렵다. 더군다나 우리 같은 일반 개미 투자자는 더더욱 그러하다. 당신은 당장 10년 뒤의 시가총액 순위를 맞출 수 없을 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2000년대 중반, 모토로라는 세계 휴대폰 시장의 대표적인 기업이었다. RAZR 같은 히트 상품을 내놓으며 시장을 선도했지만, 스마트폰이라는 새로운 변화 앞에서 경쟁력을 잃었다. 결국 2011년 회사가 둘로 분리됐고, 휴대폰 사업인 Motorola Mobility는 구글에 인수된 뒤 다시 레노버에 매각됐다.문제는 당시 모토로라를 보유하고 있던 투자자가 스마트폰 시대의 승자가 애플과 구글 생태계가 될 것이라고 미리 알 수 있었느냐는 것이다.미래의 승자를 미리 맞히는 것은 생각보다 훨씬 어렵다. 그래서 &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 data-ke-size=&quot;size16&quot;&gt;앞서 말했듯이 미래의 승자를 미리 예측하는 것은 생각보다 어렵다. &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 data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-size=&quot;size16&quot; data-ke-style=&quot;style1&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt; &lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;건초더미에서 바늘을 찾느니, 그 건초더미를 통째로 사는 게 쉽다.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;- John Bogle, 뱅가드 그룹 창립자&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;마지막으로, S&amp;amp;P 500 지수의 지난 100년간 성과를 공개하며 글을 마친다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1536&quot; data-origin-height=&quot;1024&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dyp9Jq/dJMcaixROm0/09NQd4LftaaMzUom8fCq8K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dyp9Jq/dJMcaixROm0/09NQd4LftaaMzUom8fCq8K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dyp9Jq/dJMcaixROm0/09NQd4LftaaMzUom8fCq8K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdyp9Jq%2FdJMcaixROm0%2F09NQd4LftaaMzUom8fCq8K%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;1536&quot; height=&quot;1024&quot; data-origin-width=&quot;1536&quot; data-origin-height=&quot;1024&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>주식/주식 투자 기초</category>
      <category>S&amp;amp;P 500</category>
      <category>나스닥</category>
      <category>미국주식</category>
      <category>인덱스 투자</category>
      <category>장기투자</category>
      <category>존 보글</category>
      <author>채소기</author>
      <guid isPermaLink="true">https://vegetableworld.tistory.com/253</guid>
      <comments>https://vegetableworld.tistory.com/253#entry253comment</comments>
      <pubDate>Sat, 29 Aug 2026 12:05:56 +0900</pubDate>
    </item>
    <item>
      <title>왜 장기적으로 주가는 기업의 가치를 따라갈까? - 존 보글의 투자 철학</title>
      <link>https://vegetableworld.tistory.com/252</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;우리가 주식투자를 할 때 간과하는 한가지 진실이 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;바로&lt;b&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;&lt;span&gt;이를 뒷받침하는 대표적인 예가 1900년부터 2016년까지의 미국 주식시장 데이터이다.&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-spread=&quot;false&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;&lt;span&gt;연평균 주식시장 수익률:&lt;/span&gt;&lt;/b&gt;&lt;span&gt; 9.5%&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;span&gt;투자수익률:&lt;/span&gt;&lt;/b&gt;&lt;span&gt; 9.0%&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-spread=&quot;false&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;배당수익률 4.4%&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;수익성장률 4.6%&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;시장수익률(9.5%)과 투자수익률(9.0%)의 차이는 연평균 0.5%에 불과하며, 이 차이는 &lt;/span&gt;&lt;b&gt;&lt;span&gt;투기적 수익(Speculative Return)&lt;/span&gt;&lt;/b&gt;&lt;span&gt; 에서 발생한 것이다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;즉, &lt;/span&gt;&lt;b&gt;&lt;span&gt;116년이라는 긴 시간 동안 주주가 얻은 수익은 결국 기업이 실제로 창출한 이익과 배당에 거의 수렴했다&lt;/span&gt;&lt;/b&gt;&lt;span&gt;는 사실을 확인할 수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;물론 시장의 기대와 심리에 따라 주가는 실제 가치보다 높거나 낮게 형성될 수 있다. 그러나 116년이라는 긴 기간으로 보면 이러한 차이는 연평균 0.5% 수준에 불과했으며, 장기적으로는 기업의 본질적인 가치가 주가를 결정한다는 점을 보여준다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;좀 더 쉽게 이해하기 위해, 시장수익과 투자수익, 투기적 수익의 관계를 아래의 공식과 그래프로 이해해보자.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;투자수익 = 이익 성장률 + 배당 수익률&lt;/li&gt;
&lt;li&gt;시장수익 = 투자수익 + 투기수익(또는 손실)&lt;/li&gt;
&lt;li&gt;투기수익 = PER 상승 또는 하락&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;※ &lt;span&gt;이익성장률 = (당해 시장 전체 순이익 &amp;minus; 전년 시장 전체 순이익) &amp;divide; 전년 시장 전체 순이익 &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;※ 배당수익률 = 시장 전체 배당총액 &amp;divide; 시장 전체 시가총액&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;691&quot; data-origin-height=&quot;388&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ShpgS/dJMcagszTyG/12dUJilrqZZRgrm6dx3xXk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ShpgS/dJMcagszTyG/12dUJilrqZZRgrm6dx3xXk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ShpgS/dJMcagszTyG/12dUJilrqZZRgrm6dx3xXk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FShpgS%2FdJMcagszTyG%2F12dUJilrqZZRgrm6dx3xXk%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;691&quot; height=&quot;388&quot; data-origin-width=&quot;691&quot; data-origin-height=&quot;388&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 그래프는 투자수익과 시장수익의 개념도이다. 해당 그래프를 통해 아래와 같이 크게 두 가지 상황을 생각할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;① 투자수익 &amp;gt; 시장수익&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;대표적인 사례로는 다음과 같은 시기를 들 수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-spread=&quot;false&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;2008년 글로벌 금융위기&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;2022년 금리 인상기&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;이 시기에는 기업의 본질적인 가치보다 시장의 공포가 더 크게 반영되면서 주가가 실제 가치보다 낮게 형성되는 경우가 많았다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p 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;span&gt;② 투자수익 &amp;lt; 시장수익&lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;반대로 시장의 기대가 기업의 실제 가치보다 훨씬 앞서 나간 경우이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;기업의 실제 가치는 꾸준히 성장하고 있지만 시장의 평가가 이를 충분히 반영하지 못한 경우이다. &lt;/span&gt;&lt;span&gt;대표적인 사례는&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span&gt;닷컴 버블&lt;/span&gt;&lt;/b&gt;&lt;span&gt;이다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;당시에는 기업의 실적보다 미래에 대한 기대가 지나치게 커지면서 PER이 급격히 상승했고, 결국 거품이 꺼지면서 주가는 다시 본질적인 가치에 가까워졌다.&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;style1&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;장기적으로 시간이 지나면 주가는 결국 실제 가치에 가까워진다.&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;span&gt;단기적으로는 투자자의 기대와 공포 때문에 시장수익이 투자수익보다 크게 높아질 수도, 낮아질 수도 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;그러나 시간이 충분히 흐르면 이러한 심리적 요인은 점차 사라지고, &lt;/span&gt;&lt;b&gt;&lt;span&gt;주가는 결국 기업이 실제로 창출한 이익과 배당, 즉 기업의 본질적인 가치에 가까워진다.&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;&lt;span&gt;이것이 존 보글이 강조한 핵심 메시지이며, 장기 투자자가 단기적인 시장 변동보다 기업의 본질적인 가치에 집중해야 하는 이유이기도 하다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따라서, 장기투자자는 단기적인 등락에 전혀 마음고생할 필요가 없다. 결국 장기적으로는 기업의 실제 가치에 가까워질테니까.&lt;/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;</description>
      <category>주식/주식 투자 기초</category>
      <category>PER</category>
      <category>가치투자</category>
      <category>경제적 해자</category>
      <category>모든 주식을 소유하라</category>
      <category>복리투자</category>
      <category>시장수익</category>
      <category>장기투자</category>
      <category>존 보글</category>
      <category>투기수익</category>
      <category>투자수익</category>
      <author>채소기</author>
      <guid isPermaLink="true">https://vegetableworld.tistory.com/252</guid>
      <comments>https://vegetableworld.tistory.com/252#entry252comment</comments>
      <pubDate>Sun, 5 Jul 2026 20:01:44 +0900</pubDate>
    </item>
    <item>
      <title>주식시장 대세판단 방법(feat.GDP 갭/일드갭)</title>
      <link>https://vegetableworld.tistory.com/251</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;주식에 직접투자를 할 때에는 경제적 대세 판단이 매우 중요하다. 대세상승기에는 투자수익을 내기 쉽지만, 대세하락기에는 전문가도 수익을 내기 어렵기 때문이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따라서.. 주린이의 입장에서는 주식시장의 대세를 판단하고, 투자를 결정하는 것이 좋다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그렇다면 주가에 영향을 미치는 요인에는 무엇이 있을까? 아래와 같이 4가지 정도의 요인이 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;GDP 성장률&lt;/li&gt;
&lt;li&gt;금리&lt;/li&gt;
&lt;li&gt;경상수지&lt;/li&gt;
&lt;li&gt;환율&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 경제요인들은 독립변수가 아니고 상호간에 영향을 주고받는 유기적인 요인들이기 때문에, 시장의 대세를 종합적으로 고려해야 한다. 다만, 하루가 멀다 하고 수많은 정보가 쏟아져 나오는 것이 오늘날의 현실이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따라서, 아래와 같은 2가지 기준으로 주식시장의 큰 흐름을 판단하도록 하자.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;1. GDP 갭&lt;/h3&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&lt;b&gt;GDP 갭 = GDP성장률 - GDP잠재성장률&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;위 계산식으로 GDP 갭으로 경제상황을 진단해 보면 증권시장 흐름도 판단이 가능하다.&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;GDP 갭과 증시의 관계를 정리해보면 아래와 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-ke-style=&quot;style3&quot;&gt;GDP 갭의 값이 플러스(+)로 높을수록 경제가 호황이고 증시도 좋다.&lt;/li&gt;
&lt;li data-ke-style=&quot;style3&quot;&gt;GDP 갭의 값이 점차 높아지거나 마이너스(-)에서 플러스(+)로 전환되는 경우 경제가 회복기이고 증시도 상승으로 반전된다.&lt;/li&gt;
&lt;li data-ke-style=&quot;style3&quot;&gt;GDP 갭의 값이 점차 낮아지거나 플러스(+)에서 마이너스(-)로 전환되는 경우 경제가 후퇴기이고 증시도 하락으로 반전된다.&lt;/li&gt;
&lt;li data-ke-style=&quot;style3&quot;&gt;GDP 갭의 값이 마이너스(-)로 클수록 경제가 불황이고 증시도 하락에서 벗어나기 어렵다.&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;GDP 성장률은 IMF 사이트에서 확인이 가능하다. 직접 GDP 갭을 계산해보고 증시의 대세를 판단해보자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.imf.org/en/publications/sprolls/world-economic-outlook-databases&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.imf.org/en/publications/sprolls/world-economic-outlook-databases&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1778410499320&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;World Economic Outlook Databases&quot; data-og-description=&quot;The World Economic Outlook (WEO) database is created during the biannual WEO exercise, which begins in January and June of each year and results in the April and September/October WEO publication. Selected series from the publication are available in a dat&quot; data-og-host=&quot;www.imf.org&quot; data-og-source-url=&quot;https://www.imf.org/en/publications/sprolls/world-economic-outlook-databases&quot; data-og-url=&quot;https://www.imf.org/en/publications/sprolls/world-economic-outlook-databases&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/b7rD1Q/dJMb85vTsAo/7qviCFdktS4l8M4SVTG3w1/img.png?width=400&amp;amp;height=405&amp;amp;face=0_0_400_405,https://scrap.kakaocdn.net/dn/dAb9nG/dJMb83kxp3E/F9DbIKv2zhGR05W9U7eq60/img.png?width=400&amp;amp;height=405&amp;amp;face=0_0_400_405,https://scrap.kakaocdn.net/dn/cPScFV/dJMb8Rj6rTt/Dm2ZirpoQXlmSkQqwwZk1k/img.jpg?width=1099&amp;amp;height=280&amp;amp;face=0_0_1099_280&quot;&gt;&lt;a href=&quot;https://www.imf.org/en/publications/sprolls/world-economic-outlook-databases&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.imf.org/en/publications/sprolls/world-economic-outlook-databases&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/b7rD1Q/dJMb85vTsAo/7qviCFdktS4l8M4SVTG3w1/img.png?width=400&amp;amp;height=405&amp;amp;face=0_0_400_405,https://scrap.kakaocdn.net/dn/dAb9nG/dJMb83kxp3E/F9DbIKv2zhGR05W9U7eq60/img.png?width=400&amp;amp;height=405&amp;amp;face=0_0_400_405,https://scrap.kakaocdn.net/dn/cPScFV/dJMb8Rj6rTt/Dm2ZirpoQXlmSkQqwwZk1k/img.jpg?width=1099&amp;amp;height=280&amp;amp;face=0_0_1099_280');&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;World Economic Outlook Databases&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;The World Economic Outlook (WEO) database is created during the biannual WEO exercise, which begins in January and June of each year and results in the April and September/October WEO publication. Selected series from the publication are available in a dat&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.imf.org&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;h3 data-ke-size=&quot;size23&quot;&gt;2. 일드갭(Yield 갭)&lt;/h3&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&lt;b&gt;일드갭 = 주식투자 예상수익률 - 확정부 이자율&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;일드갭은 주식투자 예상수익률과 확정부 이자율의 차이를 말하는데, 주로 주식투자를 하는 것이 유리한지 여부를 판단할 때 이용한다. GDP 갭을 통해 경제가 좋다고 판단하더라도 주가 수준에 버블이 있거나 고평가된 상태일 수 있으므로 이 지표도 함께 확인하는 것이 좋다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&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;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&lt;b&gt;주식투자 예상수익률(%) = (1 &amp;divide; PER) x 100&lt;br /&gt;※ PER = 주가 &lt;b&gt;&amp;divide; 주당순이익&lt;br /&gt;&lt;/b&gt;주식투자 예상수익률(%) = (주당순이익 &amp;divide; 주가) x 100&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&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;예를 들어 1년에 주식 1주당 5,000원을 벌어들이는 A라는 회사 주식을 주당 60,000원에 매수한 경우 에상수익률을 계산해 보면 아래와 같다.&lt;/p&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;(주당순이익 5,000원 &amp;divide; 주가 60,000원) x 100 = 8.33%&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;확정부 이자율은 뭘까? 예금이나 국공채와 같이 위험을 부담하지 않고 받을 수 있는 이자율, 즉 무위험 이자율을 말한다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&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;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&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: 20%;&quot;&gt;시장 PER(배)&lt;/td&gt;
&lt;td style=&quot;width: 20%;&quot;&gt;주식투자 예상수익률(A)&lt;/td&gt;
&lt;td style=&quot;width: 20%;&quot;&gt;예금이자율(B)&lt;/td&gt;
&lt;td style=&quot;width: 20%;&quot;&gt;초과수익률(A - B)&lt;/td&gt;
&lt;td style=&quot;width: 20%;&quot;&gt;주식투자 (유리, 불리)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 20%;&quot;&gt;8&lt;/td&gt;
&lt;td style=&quot;width: 20%;&quot;&gt;12.5%&lt;/td&gt;
&lt;td style=&quot;width: 20%;&quot;&gt;4%&lt;/td&gt;
&lt;td style=&quot;width: 20%;&quot;&gt;8.5%&lt;/td&gt;
&lt;td style=&quot;width: 20%;&quot;&gt;매우 유리&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 20%;&quot;&gt;12&lt;/td&gt;
&lt;td style=&quot;width: 20%;&quot;&gt;8.3%&lt;/td&gt;
&lt;td style=&quot;width: 20%;&quot;&gt;7%&lt;/td&gt;
&lt;td style=&quot;width: 20%;&quot;&gt;1.3%&lt;/td&gt;
&lt;td style=&quot;width: 20%;&quot;&gt;메리트 없음&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&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;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>주식/주식 투자 기초</category>
      <category>GDP갭</category>
      <category>일드갭</category>
      <author>채소기</author>
      <guid isPermaLink="true">https://vegetableworld.tistory.com/251</guid>
      <comments>https://vegetableworld.tistory.com/251#entry251comment</comments>
      <pubDate>Sun, 10 May 2026 20:16:47 +0900</pubDate>
    </item>
    <item>
      <title>SQL 고득점 Kit 오답노트</title>
      <link>https://vegetableworld.tistory.com/250</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/151136&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://school.programmers.co.kr/learn/courses/30/lessons/151136&lt;/a&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/131536&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;&lt;br /&gt;&lt;/a&gt;SELECT&amp;nbsp;ROUND(AVG(DAILY_FEE),&amp;nbsp;0)&amp;nbsp;AS&amp;nbsp;AVERAGE_FEE&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/131536&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;&lt;br /&gt;&lt;br /&gt;https://school.programmers.co.kr/learn/courses/30/lessons/131536&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/59404&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://school.programmers.co.kr/learn/courses/30/lessons/59404&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/59405&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://school.programmers.co.kr/learn/courses/30/lessons/59405&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure id=&quot;og_1730105198601&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;프로그래머스&quot; data-og-description=&quot;SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프&quot; data-og-host=&quot;programmers.co.kr&quot; data-og-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/131536&quot; data-og-url=&quot;https://programmers.co.kr/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/mezdG/hyXpuhHft6/NYnPF28YLpNfkV7TyPFuUK/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/cjTQU0/hyXptQCHJa/k3pC4e5z60dIiRgetDB2m0/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/131536&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/131536&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/mezdG/hyXpuhHft6/NYnPF28YLpNfkV7TyPFuUK/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/cjTQU0/hyXptQCHJa/k3pC4e5z60dIiRgetDB2m0/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960');&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;프로그래머스&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;programmers.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;SELECT&amp;nbsp;USER_ID,&amp;nbsp;PRODUCT_ID &lt;br /&gt;FROM&amp;nbsp;ONLINE_SALE &lt;br /&gt;GROUP&amp;nbsp;BY&amp;nbsp;USER_ID,&amp;nbsp;PRODUCT_ID &lt;br /&gt;HAVING&amp;nbsp;COUNT(*)&amp;nbsp;&amp;gt;=&amp;nbsp;2 &lt;br /&gt;ORDER&amp;nbsp;BY&amp;nbsp;USER_ID&amp;nbsp;ASC,&amp;nbsp;PRODUCT_ID&amp;nbsp;DESC&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://school.programmers.co.kr/learn/courses/30/lessons/131535&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://school.programmers.co.kr/learn/courses/30/lessons/131535&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1729951328006&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;프로그래머스&quot; data-og-description=&quot;SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프&quot; data-og-host=&quot;programmers.co.kr&quot; data-og-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/131535&quot; data-og-url=&quot;https://programmers.co.kr/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/BrGTj/hyXlNXaA1I/HckOYmVSmqSqOvbuw8mRQ1/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/yFLZj/hyXprrnrfH/1lnbwYrW0G26QHk6JaBja0/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/131535&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/131535&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/BrGTj/hyXlNXaA1I/HckOYmVSmqSqOvbuw8mRQ1/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/yFLZj/hyXprrnrfH/1lnbwYrW0G26QHk6JaBja0/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960');&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;프로그래머스&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;programmers.co.kr&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;YEAR(JOINED)&amp;nbsp;=&amp;nbsp;2021&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://school.programmers.co.kr/learn/courses/30/lessons/132203&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://school.programmers.co.kr/learn/courses/30/lessons/132203&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1729951449338&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;프로그래머스&quot; data-og-description=&quot;SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프&quot; data-og-host=&quot;programmers.co.kr&quot; data-og-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/132203&quot; data-og-url=&quot;https://programmers.co.kr/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bgRzPd/hyXpsX8sMi/zGRfeT20XUbKJ8WT9NHIgK/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/hRKZo/hyXlKznGgU/Nk0dqkheDAMRDmj0HW4tO1/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/132203&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/132203&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bgRzPd/hyXpsX8sMi/zGRfeT20XUbKJ8WT9NHIgK/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/hRKZo/hyXlKznGgU/Nk0dqkheDAMRDmj0HW4tO1/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960');&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;프로그래머스&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;programmers.co.kr&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;DATE_FORMAT(HIRE_YMD,&amp;nbsp;'%Y-%m-%d')&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://school.programmers.co.kr/learn/courses/30/lessons/133025&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://school.programmers.co.kr/learn/courses/30/lessons/133025&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1729951627677&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;프로그래머스&quot; data-og-description=&quot;SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프&quot; data-og-host=&quot;programmers.co.kr&quot; data-og-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/133025&quot; data-og-url=&quot;https://programmers.co.kr/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cVT5Q1/hyXpuhkRG7/XEKG8J5wAn9dDGeefcgAgk/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/dKqbO6/hyXpAok1ro/hZHNp0CxroSPC2f2bXUTSK/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/133025&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/133025&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cVT5Q1/hyXpuhkRG7/XEKG8J5wAn9dDGeefcgAgk/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/dKqbO6/hyXpAok1ro/hZHNp0CxroSPC2f2bXUTSK/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960');&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;프로그래머스&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;programmers.co.kr&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;FLAVOR&amp;nbsp;IN&amp;nbsp;( &lt;br /&gt;SELECT&amp;nbsp;FLAVOR &lt;br /&gt;FROM&amp;nbsp;ICECREAM_INFO &lt;br /&gt;WHERE&amp;nbsp;INGREDIENT_TYPE&amp;nbsp;=&amp;nbsp;'fruit_based')&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://school.programmers.co.kr/learn/courses/30/lessons/131120&quot;&gt;https://school.programmers.co.kr/learn/courses/30/lessons/131120&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1729951642867&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;프로그래머스&quot; data-og-description=&quot;SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프&quot; data-og-host=&quot;programmers.co.kr&quot; data-og-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/131120&quot; data-og-url=&quot;https://programmers.co.kr/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bweeoC/hyXlNbPY3Q/sJrk5iM8xhQAmxZvW1m99k/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/boDmTm/hyXppf14hW/H1gKPa6BjmbBr560fx0xH0/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/131120&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/131120&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bweeoC/hyXlNbPY3Q/sJrk5iM8xhQAmxZvW1m99k/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/boDmTm/hyXppf14hW/H1gKPa6BjmbBr560fx0xH0/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960');&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;프로그래머스&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;programmers.co.kr&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;DATE_FORMAT(DATE_OF_BIRTH,&amp;nbsp;'%Y-%m-%d')&amp;nbsp;AS&amp;nbsp;DATE_OF_BIRTH&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;MONTH(DATE_OF_BIRTH)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;TLNO&amp;nbsp;IS&amp;nbsp;NOT&amp;nbsp;NULL&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://school.programmers.co.kr/learn/courses/30/lessons/164673&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://school.programmers.co.kr/learn/courses/30/lessons/164673&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1729954154297&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;프로그래머스&quot; data-og-description=&quot;SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프&quot; data-og-host=&quot;programmers.co.kr&quot; data-og-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/164673&quot; data-og-url=&quot;https://programmers.co.kr/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/c4a39s/hyXlRrMjd0/2ZnGdWq1QlQNMz04Gr0KhK/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/c29MOY/hyXlWGDQGq/tCzxtvRvmfyCMYmuV0jRzk/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/164673&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/164673&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/c4a39s/hyXlRrMjd0/2ZnGdWq1QlQNMz04Gr0KhK/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/c29MOY/hyXlWGDQGq/tCzxtvRvmfyCMYmuV0jRzk/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960');&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;프로그래머스&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;programmers.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;AS CREATED_DATE (AS문에서는 R. CREATED_DATE 이런식으로 쓸 수 없음)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;FROM&amp;nbsp;USED_GOODS_BOARD&amp;nbsp;B&amp;nbsp;JOIN&amp;nbsp;USED_GOODS_REPLY&amp;nbsp;R&amp;nbsp;ON&amp;nbsp;B.BOARD_ID&amp;nbsp;=&amp;nbsp;R.BOARD_ID&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;WHERE&amp;nbsp;DATE_FORMAT(B.CREATED_DATE,&amp;nbsp;'%Y-%m')&amp;nbsp;=&amp;nbsp;'2022-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;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/131112&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://school.programmers.co.kr/learn/courses/30/lessons/131112&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1730032092161&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;프로그래머스&quot; data-og-description=&quot;SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프&quot; data-og-host=&quot;programmers.co.kr&quot; data-og-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/131112&quot; data-og-url=&quot;https://programmers.co.kr/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/4iqFj/hyXlMD8UKn/gRUHGZ9KvOQiRVkis3YfpK/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/bnA5cx/hyXlWUh78v/W7mZfvV2Lv9uSGlQHPaSk1/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/131112&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/131112&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/4iqFj/hyXlMD8UKn/gRUHGZ9KvOQiRVkis3YfpK/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/bnA5cx/hyXlWUh78v/W7mZfvV2Lv9uSGlQHPaSk1/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960');&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;프로그래머스&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;programmers.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;WHERE&amp;nbsp;ADDRESS&amp;nbsp;LIKE&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://school.programmers.co.kr/learn/courses/30/lessons/132201&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://school.programmers.co.kr/learn/courses/30/lessons/132201&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1730036392329&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;프로그래머스&quot; data-og-description=&quot;SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프&quot; data-og-host=&quot;programmers.co.kr&quot; data-og-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/132201&quot; data-og-url=&quot;https://programmers.co.kr/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/Qs62R/hyXpyqFLIP/ta5llKdWEbvPw9n6jbt91K/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/b8vqbe/hyXpsKMNHL/QJyM9tjeqkL7j1xzJzZ6S0/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/132201&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/132201&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/Qs62R/hyXpyqFLIP/ta5llKdWEbvPw9n6jbt91K/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/b8vqbe/hyXpsKMNHL/QJyM9tjeqkL7j1xzJzZ6S0/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960');&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;프로그래머스&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;programmers.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;COALESCE(TLNO,&amp;nbsp;'NONE')&amp;nbsp;AS&amp;nbsp;TLNO&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://school.programmers.co.kr/learn/courses/30/lessons/273711&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://school.programmers.co.kr/learn/courses/30/lessons/273711&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1730036699965&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;프로그래머스&quot; data-og-description=&quot;SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프&quot; data-og-host=&quot;programmers.co.kr&quot; data-og-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/273711&quot; data-og-url=&quot;https://programmers.co.kr/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/1yg5D/hyXpsqsIb1/pOkrTvJQIHnzXfYrELK3XK/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/cmz4zU/hyXlWUiUlC/EFI5wuf44qrXiL7VPXTqoK/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/273711&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/273711&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/1yg5D/hyXpsqsIb1/pOkrTvJQIHnzXfYrELK3XK/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/cmz4zU/hyXlWUiUlC/EFI5wuf44qrXiL7VPXTqoK/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960');&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;프로그래머스&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;programmers.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;문제 제대로 이해하자!&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;# JOIN문 사용법&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;SELECT&amp;nbsp;컬럼명 &lt;br /&gt;FROM&amp;nbsp;테이블1&amp;nbsp;별칭1 &lt;br /&gt;JOIN&amp;nbsp;테이블2&amp;nbsp;별칭2&amp;nbsp;ON&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;ex)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;SELECT&amp;nbsp;it.ITEM_ID,&amp;nbsp;it.ITEM_NAME,&amp;nbsp;it.RARITY&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;FROM&amp;nbsp;ITEM_INFO&amp;nbsp;it&amp;nbsp;JOIN&amp;nbsp;ITEM_TREE&amp;nbsp;tr&amp;nbsp;on&amp;nbsp;it.ITEM_ID&amp;nbsp;=&amp;nbsp;tr.ITEM_ID&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://school.programmers.co.kr/learn/courses/30/lessons/276013&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://school.programmers.co.kr/learn/courses/30/lessons/276013&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1730037924611&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;프로그래머스&quot; data-og-description=&quot;SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프&quot; data-og-host=&quot;programmers.co.kr&quot; data-og-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/276013&quot; data-og-url=&quot;https://programmers.co.kr/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/einmKS/hyXpAhIJRe/NQWsEbGNqhLQrBMKCN0MA0/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/NhDzu/hyXlK0D9ZY/L3CLT7HkKtlUT0P9lMZKXK/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/276013&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/276013&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/einmKS/hyXpAhIJRe/NQWsEbGNqhLQrBMKCN0MA0/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/NhDzu/hyXlK0D9ZY/L3CLT7HkKtlUT0P9lMZKXK/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960');&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;프로그래머스&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;programmers.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;WHERE&amp;nbsp;'Python'&amp;nbsp;IN&amp;nbsp;(SKILL_1,&amp;nbsp;SKILL_2,&amp;nbsp;SKILL_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;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/131697&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://school.programmers.co.kr/learn/courses/30/lessons/131697&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1730092864045&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;프로그래머스&quot; data-og-description=&quot;SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프&quot; data-og-host=&quot;programmers.co.kr&quot; data-og-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/131697&quot; data-og-url=&quot;https://programmers.co.kr/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/gj3GZ/hyXpyK7dXN/iJAazERJRC8jey3NZu6LF0/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/tElBL/hyXpwmcuY5/RtJ3iETorqHU91sOkuKQDk/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/131697&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/131697&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/gj3GZ/hyXpyK7dXN/iJAazERJRC8jey3NZu6LF0/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/tElBL/hyXpwmcuY5/RtJ3iETorqHU91sOkuKQDk/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960');&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;프로그래머스&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;programmers.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;SELECT&amp;nbsp;MAX(PRICE)&amp;nbsp;AS&amp;nbsp;MAX_PRICE&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://school.programmers.co.kr/learn/courses/30/lessons/131115&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://school.programmers.co.kr/learn/courses/30/lessons/131115&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1730094189321&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;프로그래머스&quot; data-og-description=&quot;SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프&quot; data-og-host=&quot;programmers.co.kr&quot; data-og-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/131115&quot; data-og-url=&quot;https://programmers.co.kr/&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/131115&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/131115&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;프로그래머스&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;programmers.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;WHERE&amp;nbsp;PRICE&amp;nbsp;=&amp;nbsp;( &lt;br /&gt;SELECT&amp;nbsp;MAX(PRICE) &lt;br /&gt;FROM&amp;nbsp;FOOD_PRODUCT)&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://school.programmers.co.kr/learn/courses/30/lessons/59408&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://school.programmers.co.kr/learn/courses/30/lessons/59408&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1730094998494&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;프로그래머스&quot; data-og-description=&quot;SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프&quot; data-og-host=&quot;programmers.co.kr&quot; data-og-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/59408&quot; data-og-url=&quot;https://programmers.co.kr/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/XYV2a/hyXpptS80I/ocLPQMICrfZpOtxjihWSx1/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/QHjjm/hyXpA90tz0/5VqGlfaLUaDittroPMAtuk/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/59408&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/59408&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/XYV2a/hyXpptS80I/ocLPQMICrfZpOtxjihWSx1/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/QHjjm/hyXpA90tz0/5VqGlfaLUaDittroPMAtuk/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960');&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;프로그래머스&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;programmers.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;SELECT&amp;nbsp;COUNT(DISTINCT&amp;nbsp;NAME)&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://school.programmers.co.kr/learn/courses/30/lessons/151137&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://school.programmers.co.kr/learn/courses/30/lessons/151137&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1730099753110&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;프로그래머스&quot; data-og-description=&quot;SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프&quot; data-og-host=&quot;programmers.co.kr&quot; data-og-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/151137&quot; data-og-url=&quot;https://programmers.co.kr/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cWU9Eg/hyXpvOp4eC/0bqg2NDbvvwpH5GzYXqJ81/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/QYUvK/hyXpsKVYaU/4snP9CVQAmNOkJaWTMfKJK/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/151137&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/151137&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cWU9Eg/hyXpvOp4eC/0bqg2NDbvvwpH5GzYXqJ81/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/QYUvK/hyXpsKVYaU/4snP9CVQAmNOkJaWTMfKJK/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960');&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;프로그래머스&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;programmers.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;SELECT&amp;nbsp;CAR_TYPE,&amp;nbsp;COUNT(*)&amp;nbsp;AS&amp;nbsp;CARS &lt;br /&gt;FROM&amp;nbsp;CAR_RENTAL_COMPANY_CAR &lt;br /&gt;WHERE&amp;nbsp;OPTIONS&amp;nbsp;LIKE&amp;nbsp;'%가죽시트%'&amp;nbsp;OR&amp;nbsp;OPTIONS&amp;nbsp;LIKE&amp;nbsp;'%열선시트%'&amp;nbsp;OR&amp;nbsp;OPTIONS&amp;nbsp;LIKE&amp;nbsp;'%통풍시트%' &lt;br /&gt;GROUP&amp;nbsp;BY&amp;nbsp;CAR_TYPE &lt;br /&gt;ORDER&amp;nbsp;BY&amp;nbsp;CAR_TYPE&amp;nbsp;ASC&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://school.programmers.co.kr/learn/courses/30/lessons/133026&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://school.programmers.co.kr/learn/courses/30/lessons/133026&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1730100731197&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;프로그래머스&quot; data-og-description=&quot;SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프&quot; data-og-host=&quot;programmers.co.kr&quot; data-og-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/133026&quot; data-og-url=&quot;https://programmers.co.kr/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/mbtjn/hyXpAPIYLW/NfPvoNsyK7RSa4nD39VASk/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/1gUlY/hyXpooeEIY/Fv4YgqlTGEOn0DdLoQUUl1/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/133026&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/133026&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/mbtjn/hyXpAPIYLW/NfPvoNsyK7RSa4nD39VASk/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/1gUlY/hyXpooeEIY/Fv4YgqlTGEOn0DdLoQUUl1/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960');&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;프로그래머스&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;programmers.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;JOIN문, SUM문 둘다 사용해볼 수 있는 좋은 문제&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://school.programmers.co.kr/learn/courses/30/lessons/132202&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://school.programmers.co.kr/learn/courses/30/lessons/132202&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1730103954412&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;프로그래머스&quot; data-og-description=&quot;SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프&quot; data-og-host=&quot;programmers.co.kr&quot; data-og-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/132202&quot; data-og-url=&quot;https://programmers.co.kr/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/kTbDT/hyXpvt87Tw/h4jfYizhoDHl34BeuknBNK/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/bknr14/hyXpACelew/suTzcY0UYAJmHFDDBl008k/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/132202&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/132202&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/kTbDT/hyXpvt87Tw/h4jfYizhoDHl34BeuknBNK/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/bknr14/hyXpACelew/suTzcY0UYAJmHFDDBl008k/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960');&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;프로그래머스&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;programmers.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;WHERE은 ORDER BY보다 앞에 있어야 한다..!&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;SELECT&amp;nbsp;MCDP_CD&amp;nbsp;AS&amp;nbsp;진료과코드,&amp;nbsp;COUNT(MCDP_CD)&amp;nbsp;AS&amp;nbsp;5월예약건수 &lt;br /&gt;FROM&amp;nbsp;APPOINTMENT &lt;br /&gt;WHERE&amp;nbsp;DATE_FORMAT(APNT_YMD,&amp;nbsp;'%Y-%m')&amp;nbsp;=&amp;nbsp;'2022-05' &lt;br /&gt;GROUP&amp;nbsp;BY&amp;nbsp;MCDP_CD &lt;br /&gt;ORDER&amp;nbsp;BY&amp;nbsp;5월예약건수&amp;nbsp;ASC,&amp;nbsp;MCDP_CD&amp;nbsp;ASC&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://school.programmers.co.kr/learn/courses/30/lessons/131530&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://school.programmers.co.kr/learn/courses/30/lessons/131530&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1730516706464&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;프로그래머스&quot; data-og-description=&quot;SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프&quot; data-og-host=&quot;programmers.co.kr&quot; data-og-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/131530&quot; data-og-url=&quot;https://programmers.co.kr/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/m3j1B/hyXsXKwuBJ/kHiPNoApddbtfVJirgeT2K/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/c7Cg1h/hyXpDfT4b8/nCD6AwARUuYmJ0BxGO10k0/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/131530&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/131530&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/m3j1B/hyXsXKwuBJ/kHiPNoApddbtfVJirgeT2K/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/c7Cg1h/hyXpDfT4b8/nCD6AwARUuYmJ0BxGO10k0/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960');&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;프로그래머스&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;programmers.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;SELECT&amp;nbsp;FLOOR(PRICE&amp;nbsp;/&amp;nbsp;10000)&amp;nbsp;*&amp;nbsp;10000&amp;nbsp;AS&amp;nbsp;PRICE_GROUP,&amp;nbsp;COUNT(*)&amp;nbsp;AS&amp;nbsp;PRODUCTS &lt;br /&gt;FROM&amp;nbsp;PRODUCT &lt;br /&gt;GROUP&amp;nbsp;BY&amp;nbsp;PRICE_GROUP &lt;br /&gt;ORDER&amp;nbsp;BY&amp;nbsp;PRICE_GROUP&amp;nbsp;ASC&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://school.programmers.co.kr/learn/courses/30/lessons/293257&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://school.programmers.co.kr/learn/courses/30/lessons/293257&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1730520869844&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;프로그래머스&quot; data-og-description=&quot;SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프&quot; data-og-host=&quot;programmers.co.kr&quot; data-og-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/293257&quot; data-og-url=&quot;https://programmers.co.kr/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/ckIW1X/hyXpt5pavB/FwOa92DwB2sFJmZFTfSq71/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/fuK21/hyXpp21UMl/MVB4OvOkyr7gNIKpf7OS30/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/293257&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/293257&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/ckIW1X/hyXpt5pavB/FwOa92DwB2sFJmZFTfSq71/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960,https://scrap.kakaocdn.net/dn/fuK21/hyXpp21UMl/MVB4OvOkyr7gNIKpf7OS30/img.png?width=1920&amp;amp;height=960&amp;amp;face=0_0_1920_960');&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;프로그래머스&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;programmers.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;SELECT&amp;nbsp;COUNT(I.FISH_TYPE)&amp;nbsp;AS&amp;nbsp;FISH_COUNT,&amp;nbsp;N.FISH_NAME &lt;br /&gt;FROM&amp;nbsp;FISH_INFO&amp;nbsp;I&amp;nbsp;JOIN&amp;nbsp;FISH_NAME_INFO&amp;nbsp;N&amp;nbsp;ON&amp;nbsp;I.FISH_TYPE&amp;nbsp;=&amp;nbsp;N.FISH_TYPE &lt;br /&gt;GROUP&amp;nbsp;BY&amp;nbsp;N.FISH_NAME &lt;br /&gt;ORDER&amp;nbsp;BY&amp;nbsp;FISH_COUNT&amp;nbsp;DESC&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;GROUP BY에 왜 I.FISH_TYPE이 아니라 N.FISH_NAME인지 고민해보자!&lt;/p&gt;</description>
      <category>Algorithm/SQL</category>
      <author>채소기</author>
      <guid isPermaLink="true">https://vegetableworld.tistory.com/250</guid>
      <comments>https://vegetableworld.tistory.com/250#entry250comment</comments>
      <pubDate>Fri, 25 Oct 2024 23:28:45 +0900</pubDate>
    </item>
    <item>
      <title>[Toy Project] Github Actions를 활용한 CI/CD 자동화 배포 파이프라인 구축(EC2)</title>
      <link>https://vegetableworld.tistory.com/249</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;CI/CD 자동화 배포 파이프라인을 구축하여 EC2에 웹애플리케이션을 배포하는 방법에 대해 알아보자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;웹애플리케이션 코드는 최근에 진행했던 AWS_FinalProject의 코드를 그대로 사용하고자 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;코드 샘플은 아래의 링크에서 확인하자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://github.com/ojs201/AWS_FinalProject&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://github.com/ojs201/AWS_FinalProject&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1728481536957&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;object&quot; data-og-title=&quot;GitHub - ojs201/AWS_FinalProject&quot; data-og-description=&quot;Contribute to ojs201/AWS_FinalProject development by creating an account on GitHub.&quot; data-og-host=&quot;github.com&quot; data-og-source-url=&quot;https://github.com/ojs201/AWS_FinalProject&quot; data-og-url=&quot;https://github.com/ojs201/AWS_FinalProject&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bdGq3w/hyXehwTw2K/anKWDxv9zJeqlBKGQ6d240/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600&quot;&gt;&lt;a href=&quot;https://github.com/ojs201/AWS_FinalProject&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://github.com/ojs201/AWS_FinalProject&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bdGq3w/hyXehwTw2K/anKWDxv9zJeqlBKGQ6d240/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;GitHub - ojs201/AWS_FinalProject&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Contribute to ojs201/AWS_FinalProject development by creating an account on GitHub.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;github.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;빌드 도구에는 Github Actions말고도 Jenkins라는 유용한 오픈소스 툴이 있지만, &lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;Jenkins는 아무래도 따로 서버를 구축해야 하기도 하고 &lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #1a1918; text-align: left;&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;플러그인 설치와 구성 등 다양한 설정이 필요하기 때문에 &lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #1a1918; text-align: left;&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;초기 설정이 복잡&lt;/b&gt;&lt;/span&gt;하다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;반면, &lt;span style=&quot;color: #000000;&quot;&gt;비교적 가까운 애플리케이션을 EC2로 배포하는 경우는 &lt;span style=&quot;background-color: #ffffff; text-align: left;&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;GitHub 생태계에 최적화 되어 있는 Github Actions를 사용하는 것이 좀 더&amp;nbsp; &lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; text-align: left;&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;간편하게 CI/CD 파이프라인을 설정&lt;/b&gt;&lt;/span&gt;할 수 있다.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1a1918; text-align: left;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1a1918; text-align: left;&quot;&gt;따라서, 이번 토이프로젝트에서는 Github Actions을 활용하여 파이프라인을 구축하고자 한다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1a1918; text-align: left;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1a1918; text-align: left;&quot;&gt;파이프라인을 구축하는 과정은 다음과 같다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;GitHub 저장소에 '.github/workflows' 디렉토리를 생성하고, 이 안에 워크플로우 정의 파일을 작성&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;background-color: #ffffff; color: #505860; text-align: start;&quot;&gt;이 파일은 YAML 형식으로 작성되며, 워크플로우의 트리거 조건, 실행할 작업, 사용할 환경 등을 정의&lt;/span&gt;&lt;/li&gt;
&lt;/ol&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;style1&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;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1a1918; text-align: left;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1a1918; text-align: left;&quot;&gt;우선, 코드가 올라가 있는 깃허브 레파지토리로 가자.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1a1918; text-align: left;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1a1918; text-align: left;&quot;&gt;그리고 Settings 탭을 눌러보자.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;923&quot; data-origin-height=&quot;535&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/wnzwS/btsJYTiVSEK/h6NE3y9y2p9fK5BLThQwvK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/wnzwS/btsJYTiVSEK/h6NE3y9y2p9fK5BLThQwvK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/wnzwS/btsJYTiVSEK/h6NE3y9y2p9fK5BLThQwvK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FwnzwS%2FbtsJYTiVSEK%2Fh6NE3y9y2p9fK5BLThQwvK%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;923&quot; height=&quot;535&quot; data-origin-width=&quot;923&quot; data-origin-height=&quot;535&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Settings - Secrets and variables - Actions로 들어가자.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1251&quot; data-origin-height=&quot;811&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cQvu1G/btsJZrzmvKw/KK4TRCZ0diFJXfXx5k9Ikk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cQvu1G/btsJZrzmvKw/KK4TRCZ0diFJXfXx5k9Ikk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cQvu1G/btsJZrzmvKw/KK4TRCZ0diFJXfXx5k9Ikk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcQvu1G%2FbtsJZrzmvKw%2FKK4TRCZ0diFJXfXx5k9Ikk%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;1251&quot; height=&quot;811&quot; data-origin-width=&quot;1251&quot; data-origin-height=&quot;811&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;여기서 'New repository secret' 버튼을 눌러 변수를 생성하자.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;791&quot; data-origin-height=&quot;493&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bjDbHh/btsJ0Otqk02/80NjmNqOfo3BcG61mH8Vd1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bjDbHh/btsJ0Otqk02/80NjmNqOfo3BcG61mH8Vd1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bjDbHh/btsJ0Otqk02/80NjmNqOfo3BcG61mH8Vd1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbjDbHh%2FbtsJ0Otqk02%2F80NjmNqOfo3BcG61mH8Vd1%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;791&quot; height=&quot;493&quot; data-origin-width=&quot;791&quot; data-origin-height=&quot;493&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;변수명과 내용을 적어주자. 필자의 경우 EC2에 AWS에서 발급받은 pem키값으로 SSH접속을 할 것이기 때문에 Pem 키값을 넣어줬다.&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 접근권한이 부여된 IAM계정을 생성 후, 액세스키와 시크릿키를 발급하여 AWS 리소스에 접근하는 방법도 있다. 하지만, 키값이 있다면 굳이 이 방법을 쓸 이유가 없다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;792&quot; data-origin-height=&quot;408&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/byNjrr/btsJ0fEWpr2/72FS85aYdS0HPrnTlXsIS1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/byNjrr/btsJ0fEWpr2/72FS85aYdS0HPrnTlXsIS1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/byNjrr/btsJ0fEWpr2/72FS85aYdS0HPrnTlXsIS1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbyNjrr%2FbtsJ0fEWpr2%2F72FS85aYdS0HPrnTlXsIS1%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;792&quot; height=&quot;408&quot; data-origin-width=&quot;792&quot; data-origin-height=&quot;408&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;성공적으로 변수를 생성했다. 이제 workflow를 작성하러 가자.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;790&quot; data-origin-height=&quot;142&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c5He1Z/btsJZaYXFZu/mLr2AUvMGY7OLYzUZXKJS0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c5He1Z/btsJZaYXFZu/mLr2AUvMGY7OLYzUZXKJS0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c5He1Z/btsJZaYXFZu/mLr2AUvMGY7OLYzUZXKJS0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc5He1Z%2FbtsJZaYXFZu%2FmLr2AUvMGY7OLYzUZXKJS0%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;790&quot; height=&quot;142&quot; data-origin-width=&quot;790&quot; data-origin-height=&quot;142&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;프로젝트의 루트디렉토리에 .github/workflows/deploy.yml 파일을 생성하여 workflow를 다음과 같이 작성하자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1728482645178&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;name: CI/CD Pipeline for Frontend Deployment

on:
  push:
    branches:
      - main

jobs:
  deploy:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout repository
        uses: actions/checkout@v3

      - name: Set up PEM file
        run: |
          echo &quot;${{ secrets.EC2_PEM_KEY }}&quot; &amp;gt; mandi.pem
          chmod 600 mandi.pem

      - name: Transfer files to EC2
        run: |
          rsync -avz -e &quot;ssh -i mandi.pem -o StrictHostKeyChecking=no&quot; --delete-after ./ ubuntu@43.201.250.130:/var/www/html/AWS_FinalProject

      - name: Restart Nginx
        run: |
          ssh -i mandi.pem -o StrictHostKeyChecking=no ubuntu@43.201.250.130 &quot;sudo systemctl restart nginx&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;pre id=&quot;code_1728482848612&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;name: CI/CD Pipeline for Frontend Deployment

on:
  push:
    branches:
      - main

jobs:
  deploy:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout repository
        uses: actions/checkout@v3&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;on&lt;/b&gt;: 이 워크플로우가 실행될 조건을 설정합니다. 여기서는 main 브랜치에 푸시(pushing) 이벤트가 발생할 때마다 이 워크플로우가 실행되도록 설정되어 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;jobs&lt;/b&gt;: 하나 이상의 작업(jobs)을 정의하는 섹션입니다. 여기서는 deploy라는 이름의 작업을 정의했습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;runs-on&lt;/b&gt;: 이 작업이 실행될 환경을 설정합니다. 여기서는 ubuntu-latest 환경에서 실행됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;uses&lt;/b&gt;: GitHub의 체크아웃 액션을 사용하여 레포지토리의 코드를 가져옵니다. @v3는 버전을 나타냅니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1728482886876&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;      - name: Set up PEM file
        run: |
          echo &quot;${{ secrets.EC2_PEM_KEY }}&quot; &amp;gt; mandi.pem
          chmod 600 mandi.pem&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;run&lt;/b&gt;: 이 단계에서 실행할 커맨드를 정의합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;echo &quot;${{ secrets.EC2_PEM_KEY }}&quot; &amp;gt; mandi.pem: GitHub Secrets에서 EC2의 PEM 키를 가져와 mandi.pem 파일로 저장합니다. 이 키는 EC2 인스턴스에 SSH로 접속하는 데 필요합니다.&lt;/li&gt;
&lt;li&gt;chmod 600 mandi.pem: PEM 파일의 권한을 설정하여 소유자만 읽고 쓸 수 있도록 합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1728482902088&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;      - name: Transfer files to EC2
        run: |
          rsync -avz -e &quot;ssh -i mandi.pem -o StrictHostKeyChecking=no&quot; --delete-after ./ ubuntu@43.201.250.130:/var/www/html/AWS_FinalProject&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;run&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;rsync -avz -e &quot;ssh -i mandi.pem -o StrictHostKeyChecking=no&quot;: rsync를 사용하여 로컬 파일을 EC2로 전송합니다.
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;-a: 아카이브 모드로 파일과 디렉토리를 복사합니다.&lt;/li&gt;
&lt;li&gt;-v: 자세한 출력을 보여줍니다.&lt;/li&gt;
&lt;li&gt;-z: 전송 중 파일을 압축합니다.&lt;/li&gt;
&lt;li&gt;-e &quot;ssh -i mandi.pem -o StrictHostKeyChecking=no&quot;: SSH를 사용하여 PEM 키를 통해 연결합니다. StrictHostKeyChecking=no는 SSH가 호스트 키를 검증하지 않도록 합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;--delete-after: 대상에서 소스에 존재하지 않는 파일을 삭제합니다.&lt;/li&gt;
&lt;li&gt;./: 현재 디렉토리의 모든 파일을 소스로 사용합니다.&lt;/li&gt;
&lt;li&gt;ubuntu@43.201.250.130:/var/www/html/AWS_FinalProject: EC2 인스턴스의 목적지 경로입니다.&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;코드 작성이 완료되었으면, 이제부터는 main레포에 push를 할 때마다, 변경된 코드가 반영되어 EC2에 배포가 될 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Projects</category>
      <author>채소기</author>
      <guid isPermaLink="true">https://vegetableworld.tistory.com/249</guid>
      <comments>https://vegetableworld.tistory.com/249#entry249comment</comments>
      <pubDate>Wed, 9 Oct 2024 23:09:50 +0900</pubDate>
    </item>
    <item>
      <title>[07.08] K8s Helm</title>
      <link>https://vegetableworld.tistory.com/247</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;720&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/GPCse/btsJZKrWgAS/ZxYV54a096RUXT886wa8KK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/GPCse/btsJZKrWgAS/ZxYV54a096RUXT886wa8KK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/GPCse/btsJZKrWgAS/ZxYV54a096RUXT886wa8KK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FGPCse%2FbtsJZKrWgAS%2FZxYV54a096RUXT886wa8KK%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;1280&quot; height=&quot;720&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;720&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;304&quot; data-origin-height=&quot;351&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cqouit/btsJZSpKduK/Kx8coQWGieHmLkBRhSeLk0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cqouit/btsJZSpKduK/Kx8coQWGieHmLkBRhSeLk0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cqouit/btsJZSpKduK/Kx8coQWGieHmLkBRhSeLk0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcqouit%2FbtsJZSpKduK%2FKx8coQWGieHmLkBRhSeLk0%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;304&quot; height=&quot;351&quot; data-origin-width=&quot;304&quot; data-origin-height=&quot;351&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1163&quot; data-origin-height=&quot;1042&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qWEa7/btsJZRYL7YZ/YegOZiOarWSUovYw3VWzY0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qWEa7/btsJZRYL7YZ/YegOZiOarWSUovYw3VWzY0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qWEa7/btsJZRYL7YZ/YegOZiOarWSUovYw3VWzY0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqWEa7%2FbtsJZRYL7YZ%2FYegOZiOarWSUovYw3VWzY0%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;1163&quot; height=&quot;1042&quot; data-origin-width=&quot;1163&quot; data-origin-height=&quot;1042&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;786&quot; data-origin-height=&quot;1172&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/wPg4x/btsJ0vnfQVD/3arpD1ahKiTHuIG1XVdNmK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/wPg4x/btsJ0vnfQVD/3arpD1ahKiTHuIG1XVdNmK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/wPg4x/btsJ0vnfQVD/3arpD1ahKiTHuIG1XVdNmK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FwPg4x%2FbtsJ0vnfQVD%2F3arpD1ahKiTHuIG1XVdNmK%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;786&quot; height=&quot;1172&quot; data-origin-width=&quot;786&quot; data-origin-height=&quot;1172&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1568&quot; data-origin-height=&quot;1252&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b7rKTQ/btsJZrF4R4k/YDT4Bt11zrMu19kfD2RT31/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b7rKTQ/btsJZrF4R4k/YDT4Bt11zrMu19kfD2RT31/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b7rKTQ/btsJZrF4R4k/YDT4Bt11zrMu19kfD2RT31/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb7rKTQ%2FbtsJZrF4R4k%2FYDT4Bt11zrMu19kfD2RT31%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;1568&quot; height=&quot;1252&quot; data-origin-width=&quot;1568&quot; data-origin-height=&quot;1252&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1082&quot; data-origin-height=&quot;1252&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/S9SPZ/btsJ0zXoiS5/FAWdR2zlaMUK26l6NawsJ1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/S9SPZ/btsJ0zXoiS5/FAWdR2zlaMUK26l6NawsJ1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/S9SPZ/btsJ0zXoiS5/FAWdR2zlaMUK26l6NawsJ1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FS9SPZ%2FbtsJ0zXoiS5%2FFAWdR2zlaMUK26l6NawsJ1%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;1082&quot; height=&quot;1252&quot; data-origin-width=&quot;1082&quot; data-origin-height=&quot;1252&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;787&quot; data-origin-height=&quot;1046&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mYHTf/btsJZ8MHIYZ/zovuKKmlc7JlKUivAp9Zm1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mYHTf/btsJZ8MHIYZ/zovuKKmlc7JlKUivAp9Zm1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mYHTf/btsJZ8MHIYZ/zovuKKmlc7JlKUivAp9Zm1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmYHTf%2FbtsJZ8MHIYZ%2FzovuKKmlc7JlKUivAp9Zm1%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;787&quot; height=&quot;1046&quot; data-origin-width=&quot;787&quot; data-origin-height=&quot;1046&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1140&quot; data-origin-height=&quot;1013&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cIBekK/btsJZOgFHAO/jYzjoREeKV1e5CktyBWmT1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cIBekK/btsJZOgFHAO/jYzjoREeKV1e5CktyBWmT1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cIBekK/btsJZOgFHAO/jYzjoREeKV1e5CktyBWmT1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcIBekK%2FbtsJZOgFHAO%2FjYzjoREeKV1e5CktyBWmT1%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;1013&quot; data-origin-width=&quot;1140&quot; data-origin-height=&quot;1013&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;810&quot; data-origin-height=&quot;1204&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ba9TpZ/btsJ0N2hbYK/kGFUP2CyQZROoYmQKN10B1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ba9TpZ/btsJ0N2hbYK/kGFUP2CyQZROoYmQKN10B1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ba9TpZ/btsJ0N2hbYK/kGFUP2CyQZROoYmQKN10B1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fba9TpZ%2FbtsJ0N2hbYK%2FkGFUP2CyQZROoYmQKN10B1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;810&quot; height=&quot;1204&quot; data-origin-width=&quot;810&quot; data-origin-height=&quot;1204&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1133&quot; data-origin-height=&quot;1232&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/beShhw/btsJZa5EcD2/WpVxoz6zekUl3TkGRrI6QK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/beShhw/btsJZa5EcD2/WpVxoz6zekUl3TkGRrI6QK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/beShhw/btsJZa5EcD2/WpVxoz6zekUl3TkGRrI6QK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbeShhw%2FbtsJZa5EcD2%2FWpVxoz6zekUl3TkGRrI6QK%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;1133&quot; height=&quot;1232&quot; data-origin-width=&quot;1133&quot; data-origin-height=&quot;1232&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1575&quot; data-origin-height=&quot;964&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dYmkqm/btsJZncDDu8/HmTzGfR8JPuXztPzd9i2ek/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dYmkqm/btsJZncDDu8/HmTzGfR8JPuXztPzd9i2ek/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dYmkqm/btsJZncDDu8/HmTzGfR8JPuXztPzd9i2ek/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdYmkqm%2FbtsJZncDDu8%2FHmTzGfR8JPuXztPzd9i2ek%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;1575&quot; height=&quot;964&quot; data-origin-width=&quot;1575&quot; data-origin-height=&quot;964&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1368&quot; data-origin-height=&quot;991&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/OkynT/btsJ0cnUawq/RoCkWmu8anHadl8HHzkh41/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/OkynT/btsJ0cnUawq/RoCkWmu8anHadl8HHzkh41/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/OkynT/btsJ0cnUawq/RoCkWmu8anHadl8HHzkh41/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FOkynT%2FbtsJ0cnUawq%2FRoCkWmu8anHadl8HHzkh41%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;1368&quot; height=&quot;991&quot; data-origin-width=&quot;1368&quot; data-origin-height=&quot;991&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;798&quot; data-origin-height=&quot;1109&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bq6Mpn/btsJZ5WKEvH/ESvZRwlSzV3Te6wKAZr6dK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bq6Mpn/btsJZ5WKEvH/ESvZRwlSzV3Te6wKAZr6dK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bq6Mpn/btsJZ5WKEvH/ESvZRwlSzV3Te6wKAZr6dK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbq6Mpn%2FbtsJZ5WKEvH%2FESvZRwlSzV3Te6wKAZr6dK%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;798&quot; height=&quot;1109&quot; data-origin-width=&quot;798&quot; data-origin-height=&quot;1109&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1576&quot; data-origin-height=&quot;1227&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dl5IF7/btsJZcClyeV/VvgLZloSEaaFLe7sdZCQx1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dl5IF7/btsJZcClyeV/VvgLZloSEaaFLe7sdZCQx1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dl5IF7/btsJZcClyeV/VvgLZloSEaaFLe7sdZCQx1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdl5IF7%2FbtsJZcClyeV%2FVvgLZloSEaaFLe7sdZCQx1%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;1576&quot; height=&quot;1227&quot; data-origin-width=&quot;1576&quot; data-origin-height=&quot;1227&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1562&quot; data-origin-height=&quot;728&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bNBnKZ/btsJZbKgI2H/n1Yhw5ObSzkzIudpNmHxGK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bNBnKZ/btsJZbKgI2H/n1Yhw5ObSzkzIudpNmHxGK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bNBnKZ/btsJZbKgI2H/n1Yhw5ObSzkzIudpNmHxGK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbNBnKZ%2FbtsJZbKgI2H%2Fn1Yhw5ObSzkzIudpNmHxGK%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;1562&quot; height=&quot;728&quot; data-origin-width=&quot;1562&quot; data-origin-height=&quot;728&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1404&quot; data-origin-height=&quot;767&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bJU6H4/btsJ0zXolOK/Nc2XS8XXyUk1xw2Ek031X1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bJU6H4/btsJ0zXolOK/Nc2XS8XXyUk1xw2Ek031X1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bJU6H4/btsJ0zXolOK/Nc2XS8XXyUk1xw2Ek031X1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbJU6H4%2FbtsJ0zXolOK%2FNc2XS8XXyUk1xw2Ek031X1%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;1404&quot; height=&quot;767&quot; data-origin-width=&quot;1404&quot; data-origin-height=&quot;767&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1016&quot; data-origin-height=&quot;1184&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/8PCl5/btsJ0tbSztQ/oqBdIcbdDNwvH6knuU1Gg0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/8PCl5/btsJ0tbSztQ/oqBdIcbdDNwvH6knuU1Gg0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/8PCl5/btsJ0tbSztQ/oqBdIcbdDNwvH6knuU1Gg0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F8PCl5%2FbtsJ0tbSztQ%2FoqBdIcbdDNwvH6knuU1Gg0%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;1016&quot; height=&quot;1184&quot; data-origin-width=&quot;1016&quot; data-origin-height=&quot;1184&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1594&quot; data-origin-height=&quot;1009&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bdWUww/btsJZ9x6K5E/domr0PESCAfKzG0e5uzru0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bdWUww/btsJZ9x6K5E/domr0PESCAfKzG0e5uzru0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bdWUww/btsJZ9x6K5E/domr0PESCAfKzG0e5uzru0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbdWUww%2FbtsJZ9x6K5E%2Fdomr0PESCAfKzG0e5uzru0%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;1594&quot; height=&quot;1009&quot; data-origin-width=&quot;1594&quot; data-origin-height=&quot;1009&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1581&quot; data-origin-height=&quot;1073&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/p7KpU/btsJZ8srHK8/aY4n6DuG4I4Jk5Dn0kNqB1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/p7KpU/btsJZ8srHK8/aY4n6DuG4I4Jk5Dn0kNqB1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/p7KpU/btsJZ8srHK8/aY4n6DuG4I4Jk5Dn0kNqB1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fp7KpU%2FbtsJZ8srHK8%2FaY4n6DuG4I4Jk5Dn0kNqB1%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;1581&quot; height=&quot;1073&quot; data-origin-width=&quot;1581&quot; data-origin-height=&quot;1073&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1147&quot; data-origin-height=&quot;932&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cLFUl2/btsJZaR5cLc/v3DKWSMvHvHRSlFzWtzWLK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cLFUl2/btsJZaR5cLc/v3DKWSMvHvHRSlFzWtzWLK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cLFUl2/btsJZaR5cLc/v3DKWSMvHvHRSlFzWtzWLK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcLFUl2%2FbtsJZaR5cLc%2Fv3DKWSMvHvHRSlFzWtzWLK%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;1147&quot; height=&quot;932&quot; data-origin-width=&quot;1147&quot; data-origin-height=&quot;932&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1389&quot; data-origin-height=&quot;1244&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/pUOvc/btsJ0B8KncE/cTwuwtVzR56fgId5XBt970/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/pUOvc/btsJ0B8KncE/cTwuwtVzR56fgId5XBt970/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/pUOvc/btsJ0B8KncE/cTwuwtVzR56fgId5XBt970/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FpUOvc%2FbtsJ0B8KncE%2FcTwuwtVzR56fgId5XBt970%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;1389&quot; height=&quot;1244&quot; data-origin-width=&quot;1389&quot; data-origin-height=&quot;1244&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1573&quot; data-origin-height=&quot;1084&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mTJGt/btsJZPUcej1/7MJRdCfGyajiM0dv0Cweh0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mTJGt/btsJZPUcej1/7MJRdCfGyajiM0dv0Cweh0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mTJGt/btsJZPUcej1/7MJRdCfGyajiM0dv0Cweh0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmTJGt%2FbtsJZPUcej1%2F7MJRdCfGyajiM0dv0Cweh0%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;1573&quot; height=&quot;1084&quot; data-origin-width=&quot;1573&quot; data-origin-height=&quot;1084&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1138&quot; data-origin-height=&quot;1201&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/CUmqs/btsJYU25z3u/ckAGFNHL0XPUiOdSpBNxh0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/CUmqs/btsJYU25z3u/ckAGFNHL0XPUiOdSpBNxh0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/CUmqs/btsJYU25z3u/ckAGFNHL0XPUiOdSpBNxh0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FCUmqs%2FbtsJYU25z3u%2FckAGFNHL0XPUiOdSpBNxh0%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;1138&quot; height=&quot;1201&quot; data-origin-width=&quot;1138&quot; data-origin-height=&quot;1201&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1471&quot; data-origin-height=&quot;854&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/wbymU/btsJYWUbGLe/o5lBxs3om726n1ffSDA200/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/wbymU/btsJYWUbGLe/o5lBxs3om726n1ffSDA200/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/wbymU/btsJYWUbGLe/o5lBxs3om726n1ffSDA200/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FwbymU%2FbtsJYWUbGLe%2Fo5lBxs3om726n1ffSDA200%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;1471&quot; height=&quot;854&quot; data-origin-width=&quot;1471&quot; data-origin-height=&quot;854&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1614&quot; data-origin-height=&quot;1166&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Lclgf/btsJYD1Bb4f/IKxP4iPscFCikhkIBUibmK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Lclgf/btsJYD1Bb4f/IKxP4iPscFCikhkIBUibmK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Lclgf/btsJYD1Bb4f/IKxP4iPscFCikhkIBUibmK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FLclgf%2FbtsJYD1Bb4f%2FIKxP4iPscFCikhkIBUibmK%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;1614&quot; height=&quot;1166&quot; data-origin-width=&quot;1614&quot; data-origin-height=&quot;1166&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1141&quot; data-origin-height=&quot;783&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/xi66a/btsJY7VqqYI/QW6d7iX8vbBtCpiVFoOd4k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/xi66a/btsJY7VqqYI/QW6d7iX8vbBtCpiVFoOd4k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/xi66a/btsJY7VqqYI/QW6d7iX8vbBtCpiVFoOd4k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fxi66a%2FbtsJY7VqqYI%2FQW6d7iX8vbBtCpiVFoOd4k%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;1141&quot; height=&quot;783&quot; data-origin-width=&quot;1141&quot; data-origin-height=&quot;783&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1615&quot; data-origin-height=&quot;1174&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ciQLlA/btsJYEzplr2/J79l5o8ag1Di1xjezlKu21/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ciQLlA/btsJYEzplr2/J79l5o8ag1Di1xjezlKu21/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ciQLlA/btsJYEzplr2/J79l5o8ag1Di1xjezlKu21/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FciQLlA%2FbtsJYEzplr2%2FJ79l5o8ag1Di1xjezlKu21%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;1615&quot; height=&quot;1174&quot; data-origin-width=&quot;1615&quot; data-origin-height=&quot;1174&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1594&quot; data-origin-height=&quot;1080&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/puD37/btsJY9FJ7M0/Q6YbB7KOytxXRolytif6t1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/puD37/btsJY9FJ7M0/Q6YbB7KOytxXRolytif6t1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/puD37/btsJY9FJ7M0/Q6YbB7KOytxXRolytif6t1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FpuD37%2FbtsJY9FJ7M0%2FQ6YbB7KOytxXRolytif6t1%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;1594&quot; height=&quot;1080&quot; data-origin-width=&quot;1594&quot; data-origin-height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1138&quot; data-origin-height=&quot;1245&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/JbO39/btsJ0uhzKFx/9wnlQsMeouaMShlaF2Bhmk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/JbO39/btsJ0uhzKFx/9wnlQsMeouaMShlaF2Bhmk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/JbO39/btsJ0uhzKFx/9wnlQsMeouaMShlaF2Bhmk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FJbO39%2FbtsJ0uhzKFx%2F9wnlQsMeouaMShlaF2Bhmk%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;1138&quot; height=&quot;1245&quot; data-origin-width=&quot;1138&quot; data-origin-height=&quot;1245&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1556&quot; data-origin-height=&quot;918&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bpYJ3B/btsJYcpxg4v/coRedpWQrIzlWopZ1Cvbqk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bpYJ3B/btsJYcpxg4v/coRedpWQrIzlWopZ1Cvbqk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bpYJ3B/btsJYcpxg4v/coRedpWQrIzlWopZ1Cvbqk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbpYJ3B%2FbtsJYcpxg4v%2FcoRedpWQrIzlWopZ1Cvbqk%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;1556&quot; height=&quot;918&quot; data-origin-width=&quot;1556&quot; data-origin-height=&quot;918&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1567&quot; data-origin-height=&quot;347&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/G6trY/btsJZ80gekb/PSkPdTTkRikogAm2HyhZok/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/G6trY/btsJZ80gekb/PSkPdTTkRikogAm2HyhZok/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/G6trY/btsJZ80gekb/PSkPdTTkRikogAm2HyhZok/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FG6trY%2FbtsJZ80gekb%2FPSkPdTTkRikogAm2HyhZok%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;1567&quot; height=&quot;347&quot; data-origin-width=&quot;1567&quot; data-origin-height=&quot;347&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>AWS Cloud School</category>
      <category>helm</category>
      <category>k8s</category>
      <author>채소기</author>
      <guid isPermaLink="true">https://vegetableworld.tistory.com/247</guid>
      <comments>https://vegetableworld.tistory.com/247#entry247comment</comments>
      <pubDate>Wed, 9 Oct 2024 17:57:26 +0900</pubDate>
    </item>
    <item>
      <title>[07.05] k8s HPA, 마스터노드 삼중화</title>
      <link>https://vegetableworld.tistory.com/246</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;720&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cJrWWy/btsJYIojlT2/JxwadkZmd2Sa5s75jkuogK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cJrWWy/btsJYIojlT2/JxwadkZmd2Sa5s75jkuogK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cJrWWy/btsJYIojlT2/JxwadkZmd2Sa5s75jkuogK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcJrWWy%2FbtsJYIojlT2%2FJxwadkZmd2Sa5s75jkuogK%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;1280&quot; height=&quot;720&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;720&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;306&quot; data-origin-height=&quot;306&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/caCNrk/btsJ0fY9uhc/pjwa71nmuDwNAraoOYwRb1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/caCNrk/btsJ0fY9uhc/pjwa71nmuDwNAraoOYwRb1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/caCNrk/btsJ0fY9uhc/pjwa71nmuDwNAraoOYwRb1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcaCNrk%2FbtsJ0fY9uhc%2Fpjwa71nmuDwNAraoOYwRb1%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;306&quot; height=&quot;306&quot; data-origin-width=&quot;306&quot; data-origin-height=&quot;306&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1198&quot; data-origin-height=&quot;927&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/AAhfO/btsJY5Drc1N/5earwUnsKhkldkGZTu86g1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/AAhfO/btsJY5Drc1N/5earwUnsKhkldkGZTu86g1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/AAhfO/btsJY5Drc1N/5earwUnsKhkldkGZTu86g1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FAAhfO%2FbtsJY5Drc1N%2F5earwUnsKhkldkGZTu86g1%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;1198&quot; height=&quot;927&quot; data-origin-width=&quot;1198&quot; data-origin-height=&quot;927&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1536&quot; data-origin-height=&quot;1239&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/0NUdD/btsJYU25tmK/KdKydBoT4C1Dp12OAgztXK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/0NUdD/btsJYU25tmK/KdKydBoT4C1Dp12OAgztXK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/0NUdD/btsJYU25tmK/KdKydBoT4C1Dp12OAgztXK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F0NUdD%2FbtsJYU25tmK%2FKdKydBoT4C1Dp12OAgztXK%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;1536&quot; height=&quot;1239&quot; data-origin-width=&quot;1536&quot; data-origin-height=&quot;1239&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1283&quot; data-origin-height=&quot;808&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bEKcHq/btsJ0friZ2q/98DBfB5tCi5nckVbUVhDc1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bEKcHq/btsJ0friZ2q/98DBfB5tCi5nckVbUVhDc1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bEKcHq/btsJ0friZ2q/98DBfB5tCi5nckVbUVhDc1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbEKcHq%2FbtsJ0friZ2q%2F98DBfB5tCi5nckVbUVhDc1%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;1283&quot; height=&quot;808&quot; data-origin-width=&quot;1283&quot; data-origin-height=&quot;808&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;889&quot; data-origin-height=&quot;981&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/yyory/btsJZcoRIfK/MaKfttRSXyA6BeieW7uFo1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/yyory/btsJZcoRIfK/MaKfttRSXyA6BeieW7uFo1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/yyory/btsJZcoRIfK/MaKfttRSXyA6BeieW7uFo1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fyyory%2FbtsJZcoRIfK%2FMaKfttRSXyA6BeieW7uFo1%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;889&quot; height=&quot;981&quot; data-origin-width=&quot;889&quot; data-origin-height=&quot;981&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1522&quot; data-origin-height=&quot;1190&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cNfDNU/btsJZJzKwA4/z6Avsr4NSrwONT9xFiR2A1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cNfDNU/btsJZJzKwA4/z6Avsr4NSrwONT9xFiR2A1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cNfDNU/btsJZJzKwA4/z6Avsr4NSrwONT9xFiR2A1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcNfDNU%2FbtsJZJzKwA4%2Fz6Avsr4NSrwONT9xFiR2A1%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;1522&quot; height=&quot;1190&quot; data-origin-width=&quot;1522&quot; data-origin-height=&quot;1190&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1154&quot; data-origin-height=&quot;889&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ceYI5S/btsJY4LjpTL/q3Q7MtmkzJrs5CvIcNZdT0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ceYI5S/btsJY4LjpTL/q3Q7MtmkzJrs5CvIcNZdT0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ceYI5S/btsJY4LjpTL/q3Q7MtmkzJrs5CvIcNZdT0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FceYI5S%2FbtsJY4LjpTL%2Fq3Q7MtmkzJrs5CvIcNZdT0%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;1154&quot; height=&quot;889&quot; data-origin-width=&quot;1154&quot; data-origin-height=&quot;889&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1593&quot; data-origin-height=&quot;1003&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/eaMOdU/btsJ0OtlmbD/5K1FWrrS9bOQQinWFkUfFK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/eaMOdU/btsJ0OtlmbD/5K1FWrrS9bOQQinWFkUfFK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/eaMOdU/btsJ0OtlmbD/5K1FWrrS9bOQQinWFkUfFK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FeaMOdU%2FbtsJ0OtlmbD%2F5K1FWrrS9bOQQinWFkUfFK%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;1593&quot; height=&quot;1003&quot; data-origin-width=&quot;1593&quot; data-origin-height=&quot;1003&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;956&quot; data-origin-height=&quot;1164&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/co4dQa/btsJ0e0isim/BkPEsq8WaJB4uLqqrrZkP1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/co4dQa/btsJ0e0isim/BkPEsq8WaJB4uLqqrrZkP1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/co4dQa/btsJ0e0isim/BkPEsq8WaJB4uLqqrrZkP1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fco4dQa%2FbtsJ0e0isim%2FBkPEsq8WaJB4uLqqrrZkP1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;956&quot; height=&quot;1164&quot; data-origin-width=&quot;956&quot; data-origin-height=&quot;1164&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1663&quot; data-origin-height=&quot;1159&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/xfEGp/btsJYbqJaQN/X4J3junRdB9ymPNXTv5Ng1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/xfEGp/btsJYbqJaQN/X4J3junRdB9ymPNXTv5Ng1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/xfEGp/btsJYbqJaQN/X4J3junRdB9ymPNXTv5Ng1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FxfEGp%2FbtsJYbqJaQN%2FX4J3junRdB9ymPNXTv5Ng1%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;1663&quot; height=&quot;1159&quot; data-origin-width=&quot;1663&quot; data-origin-height=&quot;1159&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1692&quot; data-origin-height=&quot;1166&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bCFgO3/btsJZNB7zUY/qF0yJeWXYPHeMRCd3Vp0lK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bCFgO3/btsJZNB7zUY/qF0yJeWXYPHeMRCd3Vp0lK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bCFgO3/btsJZNB7zUY/qF0yJeWXYPHeMRCd3Vp0lK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbCFgO3%2FbtsJZNB7zUY%2FqF0yJeWXYPHeMRCd3Vp0lK%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;1692&quot; height=&quot;1166&quot; data-origin-width=&quot;1692&quot; data-origin-height=&quot;1166&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1125&quot; data-origin-height=&quot;1210&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/4Xraq/btsJZcPXLem/V4oKHXybXbNgnZFngiPUHk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/4Xraq/btsJZcPXLem/V4oKHXybXbNgnZFngiPUHk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/4Xraq/btsJZcPXLem/V4oKHXybXbNgnZFngiPUHk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F4Xraq%2FbtsJZcPXLem%2FV4oKHXybXbNgnZFngiPUHk%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;1125&quot; height=&quot;1210&quot; data-origin-width=&quot;1125&quot; data-origin-height=&quot;1210&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1371&quot; data-origin-height=&quot;937&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/86F3I/btsJ0NgTRfb/cerM2rP414aEbRnukFwP8K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/86F3I/btsJ0NgTRfb/cerM2rP414aEbRnukFwP8K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/86F3I/btsJ0NgTRfb/cerM2rP414aEbRnukFwP8K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F86F3I%2FbtsJ0NgTRfb%2FcerM2rP414aEbRnukFwP8K%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;1371&quot; height=&quot;937&quot; data-origin-width=&quot;1371&quot; data-origin-height=&quot;937&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1660&quot; data-origin-height=&quot;704&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nxJxE/btsJ0cIeCQS/rvT0ojKT3iHWbOee5h4pW1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nxJxE/btsJ0cIeCQS/rvT0ojKT3iHWbOee5h4pW1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nxJxE/btsJ0cIeCQS/rvT0ojKT3iHWbOee5h4pW1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnxJxE%2FbtsJ0cIeCQS%2FrvT0ojKT3iHWbOee5h4pW1%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;1660&quot; height=&quot;704&quot; data-origin-width=&quot;1660&quot; data-origin-height=&quot;704&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>AWS Cloud School</category>
      <category>k8s hpa</category>
      <category>마스터노드 삼중화</category>
      <author>채소기</author>
      <guid isPermaLink="true">https://vegetableworld.tistory.com/246</guid>
      <comments>https://vegetableworld.tistory.com/246#entry246comment</comments>
      <pubDate>Wed, 9 Oct 2024 17:48:43 +0900</pubDate>
    </item>
    <item>
      <title>[고득점 Kit / 탐욕법 ] 조이스틱 (feat.ord)</title>
      <link>https://vegetableworld.tistory.com/245</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/42860?language=python3&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://school.programmers.co.kr/learn/courses/30/lessons/42860?language=python3&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1728042280987&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;프로그래머스&quot; data-og-description=&quot;코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.&quot; data-og-host=&quot;programmers.co.kr&quot; data-og-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/42860?language=python3&quot; data-og-url=&quot;https://programmers.co.kr/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/o5l2e/hyXd4JOOtS/rrkqHkG7noufyP1HTsa951/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/coGKmp/hyXaJm22vZ/NMd6RApnryMY6zNBczSoS0/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/42860?language=python3&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/42860?language=python3&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/o5l2e/hyXd4JOOtS/rrkqHkG7noufyP1HTsa951/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/coGKmp/hyXaJm22vZ/NMd6RApnryMY6zNBczSoS0/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630');&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;프로그래머스&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;programmers.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;/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;1. 알파벳을 맞추기 위한 조작 횟수 계산&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;각 문자를 'A'에서 원하는 알파벳으로 바꾸는 데 필요한 최소 조작 횟수는 위쪽(▲) 혹은 아래쪽(▼)으로 이동했을 때 더 짧은 방향으로 선택&lt;/li&gt;
&lt;li&gt;각 알파벳에 대해, min(위로 이동하는 횟수, 아래로 이동하는 횟수)로 계산
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;위로 이동하는 횟수는 해당 알파벳의 순서(예: 'B'는 1번, 'C'는 2번...)&lt;/li&gt;
&lt;li&gt;아래로 이동하는 횟수는 26에서 위로 이동하는 횟수를 뺀 값&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;2. 커서 이동 최적화&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;커서를 오른쪽(▶)으로 이동하면서 알파벳을 변경하지만, 때에 따라 왼쪽(◀)으로 돌아가는 것이 더 효율적일 수 있다.&lt;/li&gt;
&lt;li&gt;모든 경우를 고려해 커서 이동의 최솟값을 찾는 것이 핵심!&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;코드를 살펴보자.&lt;/p&gt;
&lt;pre id=&quot;code_1728042475219&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;def solution(name):
    # 알파벳 변경 횟수 계산
    def get_char_move(c):
        return min(ord(c) - ord('A'), ord('Z') - ord(c) + 1)
    
    # 총 이동 횟수 초기화
    total_moves = 0
    n = len(name)
    
    # 각 문자에 대해 위, 아래로 움직이는 횟수 합산
    for char in name:
        total_moves += get_char_move(char)
    
    # 좌우 이동 최소 횟수 계산
    min_move = n - 1  # 오른쪽으로 쭉 가는 경우를 기본으로 설정
    
    for i in range(n):
        next_idx = i + 1
        
        # A가 연속으로 나오는 구간의 끝을 찾음
        while next_idx &amp;lt; n and name[next_idx] == 'A':
            next_idx += 1
        
        # 현재 위치에서 연속된 A 이후로 커서를 이동하는 경우 계산
        min_move = min(min_move, 2 * i + n - next_idx, i + 2 * (n - next_idx))
    
    total_moves += min_move
    return total_moves&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;get_char_move 함수는 각 알파벳을 'A'에서 원하는 알파벳으로 바꾸는 데 필요한 조작 횟수를 계산한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고, 각 문자에 대해 위, 아래로 움직이는 횟수를 구해서 합한 값을 total_moves에 저장한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1728042593830&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;for i in range(n):
    next_idx = i + 1
    
    # A가 연속으로 나오는 구간의 끝을 찾음
    while next_idx &amp;lt; n and name[next_idx] == 'A':
        next_idx += 1&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;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;A의 연속 구간 탐색:&lt;/b&gt; 이 부분은 현재 위치 i에서 연속된 'A' 구간이 어디까지 이어지는지를 찾는 과정이다. next_idx는 다음 커서의 위치를 가리키며, 만약 name[next_idx]가 'A'라면, 그 다음 인덱스로 계속 이동하면서 'A'가 끝나는 지점을 찾는다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;이동 경로 계산:&lt;/b&gt; 연속된 'A' 구간을 찾은 후, 커서를 어떻게 이동하는 것이 최적인지 계산한다. 여기서 이동 경로의 경우의 수는 크게 3가지다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1728042626380&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;min_move = min(
    min_move, 
    2 * i + n - next_idx,  # 현재 위치까지 갔다가 다시 돌아서 끝으로 이동하는 경우
    i + 2 * (n - next_idx) # 연속된 A를 넘어서 가는 경우
)&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;1. &lt;b&gt;첫 번째 경로: 2 * i + n - next_idx&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;i는 현재 커서 위치&lt;/li&gt;
&lt;li&gt;이 경로는 현재 위치에서 시작해 첫 번째로 연속된 'A'가 시작되기 전에 돌아서 끝까지 이동하는 경우를 의미한다.&lt;/li&gt;
&lt;li&gt;2 * i는 오른쪽으로 갔다가 다시 왼쪽으로 돌아오는 이동을 뜻함&lt;/li&gt;
&lt;li&gt;n - next_idx는 그 후 남은 문자열을 끝까지 쭉 이동하는 것&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;2. &lt;b&gt;두 번째 경로: i + 2 * (n - next_idx)&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;/li&gt;
&lt;li&gt;i는 시작 지점에서 앞으로 가는 거리를 의미하고, 2 * (n - next_idx)는 커서가 앞으로 가다가 연속된 'A'를 건너뛰고 그 다음 문자로 이동하는 것을 의미한다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉, min_move에 커서 이동의 최소 값을 구해 넣는다. min_move는 처음엔 그냥 오른쪽으로만 쭉 가는 경우로 설정하고(n-1), 이보다 더 효율적인 경로가 있는지를 계산하는 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Algorithm/코딩테스트 고득점 Kit</category>
      <category>greedy</category>
      <category>ORD</category>
      <category>그리디</category>
      <category>알고리즘 고득점 키트</category>
      <category>조이스틱</category>
      <category>코테</category>
      <category>탐욕법</category>
      <category>파이썬</category>
      <category>프로그래머스</category>
      <author>채소기</author>
      <guid isPermaLink="true">https://vegetableworld.tistory.com/245</guid>
      <comments>https://vegetableworld.tistory.com/245#entry245comment</comments>
      <pubDate>Fri, 4 Oct 2024 20:52:51 +0900</pubDate>
    </item>
    <item>
      <title>[고득점 Kit / 탐욕법 ] 체육복</title>
      <link>https://vegetableworld.tistory.com/244</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/42862&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://school.programmers.co.kr/learn/courses/30/lessons/42862&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1727274683228&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;프로그래머스&quot; data-og-description=&quot;코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.&quot; data-og-host=&quot;programmers.co.kr&quot; data-og-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/42862&quot; data-og-url=&quot;https://programmers.co.kr/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bzj92K/hyXauhgWVH/m4J8WsdwEOkOmJwZcsVf7k/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/eONyr/hyXaABNZGP/H2NrKRmbEFKdZ5nx3HDk9k/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/42862&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/42862&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bzj92K/hyXauhgWVH/m4J8WsdwEOkOmJwZcsVf7k/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/eONyr/hyXaABNZGP/H2NrKRmbEFKdZ5nx3HDk9k/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630');&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;프로그래머스&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;programmers.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;이 문제는 다음의 흐름으로 풀었다.&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;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;전체 학생 수 - 체육복을 잃어버리고 빌리지 못한 학생수를 빼면 그게 답이다.&lt;/li&gt;
&lt;li&gt;먼저 lost와 reserve에 모두 포함된 학생들은 체육복을 하나 잃었지만 여벌이 있으므로 다른 학생에게 빌려줄 수 없으므로 차집합을 이용하여 계산에 의미가 없는 학생들은 전부 제외시켜준다.(우리가 구하고자 하는 것은 체육복을 잃어버렸으면서 빌리지 못한 학생수를 구하는 것이고, 애초에 여벌이 있는 학생들은 빌릴 필요가 없으므로)&lt;/li&gt;
&lt;li&gt;남은 lost 학생들에 대해 앞번호나 뒷번호에 있는 reserve 학생에게 체육복을 빌릴 수 있는지 확인한다.&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;/p&gt;
&lt;pre id=&quot;code_1727274787865&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;def solution(n, lost, reserve):
    # 여벌을 가진 학생이 도난당한 경우를 처리
    lost_set = set(lost) - set(reserve) # set을 붙이는 이유는 리스트끼리는 차집합 계산이 불가능하므로!
    reserve_set = set(reserve) - set(lost)
    
    # 체육복을 빌려줄 수 있는 경우를 처리
    for r in sorted(reserve_set):
        if r - 1 in lost_set:
            lost_set.remove(r - 1)
        elif r + 1 in lost_set:
            lost_set.remove(r + 1)
    
    # 전체 학생 수에서 체육복을 잃어버리고 빌리지 못한 학생을 뺀다
    return n - len(lost_set)&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;pre id=&quot;code_1727274816371&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;	lost_set = set(lost) - set(reserve)
    reserve_set = set(reserve) - set(lost)&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;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;위와 같이 set함수를 이용하여 차집합을 구했다. (리스트끼리는 빼기 연산이 불가하므로 set함수를 이용)&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #333333; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;lost_set:&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;여벌이 없어서 체육복을 빌려야 하는 학생&lt;/b&gt;들.&lt;/li&gt;
&lt;li&gt;reserve_set:&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;다른 학생에게 체육복을 빌려줄 수 있는 학생&lt;/b&gt;들.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1727275611410&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;for r in sorted(reserve_set):  # 여벌을 가진 학생 번호를 정렬하여 하나씩 확인
    if r - 1 in lost_set:  # 여벌을 가진 학생의 바로 앞번호 학생이 체육복을 잃어버렸다면
        lost_set.remove(r - 1)  # 그 학생에게 체육복을 빌려주고 lost_set에서 제거
    elif r + 1 in lost_set:  # 앞번호가 없으면, 바로 뒷번호 학생이 체육복을 잃어버렸다면
        lost_set.remove(r + 1)  # 그 학생에게 체육복을 빌려주고 lost_set에서 제거&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;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;sorted(reserve_set)&lt;/b&gt;: 여벌 체육복을 가진 학생들의 번호를 정렬한다. 예를 들어, reserve_set에 {3, 5, 1}이 있으면, 정렬 후 [1, 3, 5]가 된다. 이렇게 정렬하는 이유는 &lt;b&gt;앞번호 학생에게 우선적으로 체육복을 빌려주기&lt;/b&gt; 위해서다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;if r - 1 in lost_set&lt;/b&gt;: 여벌 체육복을 가진 학생 r의 &lt;b&gt;바로 앞번호 학생이 체육복을 잃어버렸는지 확인한&lt;/b&gt;다. 예를 들어, 3번 학생이 여벌을 가지고 있을 때, 2번 학생이 도난당했으면 그 학생에게 체육복을 빌려준다.
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;빌려주면 &lt;b&gt;체육복을 빌린 학생은 더 이상 체육복이 필요하지 않으므로 lost_set에서 제거&lt;/b&gt;한다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;elif r + 1 in lost_set&lt;/b&gt;: 만약 바로 앞번호 학생이 체육복이 필요하지 않다면, &lt;b&gt;뒷번호 학생이 체육복을 잃어버렸는지 확인한&lt;/b&gt;다. 만약 4번 학생이 도난당했으면 그 학생에게 체육복을 빌려준다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Algorithm/코딩테스트 고득점 Kit</category>
      <category>greedy</category>
      <category>그리디</category>
      <category>체육복</category>
      <category>코딩테스트</category>
      <category>코테</category>
      <category>탐욕법</category>
      <category>파이썬</category>
      <category>프로그래머스</category>
      <author>채소기</author>
      <guid isPermaLink="true">https://vegetableworld.tistory.com/244</guid>
      <comments>https://vegetableworld.tistory.com/244#entry244comment</comments>
      <pubDate>Wed, 25 Sep 2024 23:53:22 +0900</pubDate>
    </item>
    <item>
      <title>[고득점 Kit / 완전탐색] 모음사전</title>
      <link>https://vegetableworld.tistory.com/243</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/84512&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://school.programmers.co.kr/learn/courses/30/lessons/84512&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1727181565504&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;프로그래머스&quot; data-og-description=&quot;코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.&quot; data-og-host=&quot;programmers.co.kr&quot; data-og-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/84512&quot; data-og-url=&quot;https://programmers.co.kr/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/8GrSC/hyW6E6wsgk/S1ktcuiGRE7JAe2OJDgd3k/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/wzhSt/hyW6zxmI6Q/Ri0NeoSmRkCCxkstknqeC1/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630&quot;&gt;&lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/84512&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/84512&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/8GrSC/hyW6E6wsgk/S1ktcuiGRE7JAe2OJDgd3k/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/wzhSt/hyW6zxmI6Q/Ri0NeoSmRkCCxkstknqeC1/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630');&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;프로그래머스&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;programmers.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;각 자리의 알파벳 선택에 따라 그 이후에 나올 수 있는 가능한 단어의 개수를 계산해야 한다. 단어의 길이가 최대 5자리이기 때문에 각 자리에 있는 문자가 선택된 후 그 다음 자리에서 만들 수 있는 단어들의 개수를 더하면 된다.&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;첫 번째 자리에 문자가 정해지면, 그 뒤로 0~4자리까지 단어를 만들 수 있다.&lt;/li&gt;
&lt;li&gt;예를 들어 첫 번째 자리가 &quot;A&quot;이면, 그 뒤로 &quot;A&quot;, &quot;AA&quot;, &quot;AAA&quot;, &quot;AAAA&quot;, &quot;AAAAA&quot; 등의 조합을 만들 수 있다.&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;/p&gt;
&lt;pre id=&quot;code_1727181660141&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;def solution(word):
    # 각 자릿수에서 해당 문자가 나왔을 때, 이후 가능한 단어 개수를 나타냄
    factors = [781, 156, 31, 6, 1]
    vowels = ['A', 'E', 'I', 'O', 'U']
    
    result = 0
    
    # word의 각 자리의 알파벳에 대해 해당 자릿수까지 몇 번째 단어인지 계산
    for i, char in enumerate(word):
        index = vowels.index(char)
        result += index * factors[i] + 1  # 해당 자리에 따른 가능한 모든 단어 개수 더하기
    
    return result&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;pre id=&quot;code_1727181749050&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;factors = [781, 156, 31, 6, 1]
vowels = ['A', 'E', 'I', 'O', 'U']&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;factors 배열&lt;/b&gt;: 각 자리에 따라 그 뒤에 나올 수 있는 단어의 개수를 미리 계산한 값이다.&lt;br /&gt;이 배열은 사전적으로 모든 단어를 정렬할 때, 각 자리에서 문자가 결정되면 그 이후에 가능한 단어 수를 의미한다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;factors[0] = 781: 첫 번째 자리가 정해졌을 때, 그 뒤에 나올 수 있는 단어 수. (5^4 + 5^3 + 5^2 + 5^1 + 5^0의 합)&lt;/li&gt;
&lt;li&gt;factors[1] = 156: 두 번째 자리가 정해졌을 때, 그 뒤에 나올 수 있는 단어 수. (5^3 + 5^2 + 5^1 + 5^0의 합)&lt;/li&gt;
&lt;li&gt;factors[2] = 31: 세 번째 자리 이후 가능한 단어 수. (5^2 + 5^1 + 5^0의 합)&lt;/li&gt;
&lt;li&gt;factors[3] = 6: 네 번째 자리 이후 가능한 단어 수. (5^1 + 5^0의 합)&lt;/li&gt;
&lt;li&gt;factors[4] = 1: 다섯 번째 자리 이후 가능한 단어 수. (5^0 = 1)&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;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;네 번째 자리가 'A'일 때, 다섯 번째 자리를 생각해보면:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&quot;AAAA&quot; (네 글자 단어)&lt;/li&gt;
&lt;li&gt;&quot;AAAAA&quot;&lt;/li&gt;
&lt;li&gt;&quot;AAAAE&quot;&lt;/li&gt;
&lt;li&gt;&quot;AAAAI&quot;&lt;/li&gt;
&lt;li&gt;&quot;AAAAO&quot;&lt;/li&gt;
&lt;li&gt;&quot;AAAAU&quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위처럼 총 6개의 단어가 나올 수 있다. 따라서, factors[3] = 6이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1727181838841&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;for i, char in enumerate(word):
    index = vowels.index(char)  # 'A' -&amp;gt; 0, 'E' -&amp;gt; 1, ...
    result += index * factors[i] + 1  # 해당 자리에 따른 가능한 모든 단어 개수 더하기&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;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;for i, char in enumerate(word)&lt;/b&gt;:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;enumerate를 사용해 단어 word의 각 자리(char)와 그 자릿수(i)를 순서대로 탐색한다.&lt;/li&gt;
&lt;li&gt;예를 들어, 단어 &quot;EIO&quot;가 입력되었다면:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;첫 번째 자리: i = 0, char = 'E'&lt;/li&gt;
&lt;li&gt;두 번째 자리: i = 1, char = 'I'&lt;/li&gt;
&lt;li&gt;세 번째 자리: i = 2, char = 'O'&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;index = vowels.index(char)&lt;/b&gt;:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;각 자리에 있는 문자가 사전에서 몇 번째 문자인지 파악하기 위해 vowels.index(char)를 사용한다.&lt;/li&gt;
&lt;li&gt;'A'는 리스트에서 0번째, 'E'는 1번째, 'I'는 2번째, 'O'는 3번째, 'U'는 4번째에 위치한다.&lt;/li&gt;
&lt;li&gt;예를 들어 &quot;EIO&quot;에서:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;첫 번째 자리 char = 'E': index = 1&lt;/li&gt;
&lt;li&gt;두 번째 자리 char = 'I': index = 2&lt;/li&gt;
&lt;li&gt;세 번째 자리 char = 'O': index = 3&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;result += index * factors[i] + 1&lt;/b&gt;:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;각 자리에서 가능한 단어 개수를 factors[i]와 곱하여 더해준다.&lt;/li&gt;
&lt;li&gt;예를 들어 첫 번째 자리에 'E'가 나오면, 사전에서 첫 번째 자리에 'A'로 시작하는 모든 단어가 끝난 뒤에 위치하므로, index = 1이 되고 factors[0] = 781이므로, 781만큼을 더한다.&lt;/li&gt;
&lt;li&gt;+1은 해당 자리에 있는 단어 자체를 포함시키기 위한 값이다. (사전 순서가 1부터 시작하므로)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;result 부분이 이해가 잘 안될 수 있다. 예시를 보며 이해해보자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;예시: &quot;EIO&quot;가 입력된 경우&lt;/h3&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;첫 번째 문자 'E'&lt;/b&gt;:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;i = 0 (첫 번째 자리)&lt;/li&gt;
&lt;li&gt;char = 'E' (vowels.index('E') = 1, index = 1)&lt;/li&gt;
&lt;li&gt;첫 번째 자리가 'A'가 아닌 'E'이므로, 사전에서 'A'로 시작하는 모든 단어들을 건너뛰어야 한다.&lt;/li&gt;
&lt;li&gt;factors[0] = 781 (첫 번째 자리에 문자가 고정되면 뒤에 가능한 단어의 개수)&lt;/li&gt;
&lt;li&gt;result += 1 * 781 + 1 = 781 + 1 = 782&lt;/li&gt;
&lt;/ul&gt;
첫 번째 자리에서 E가 사전에서 시작하는 모든 경우의 수는 782다. 즉, 첫 번째 자리에 'E'가 오면 'A'로 시작하는 모든 단어(781개)를 지나서, 자기 자신('E')부터 시작하게 된다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;두 번째 문자 'I'&lt;/b&gt;:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;i = 1 (두 번째 자리)&lt;/li&gt;
&lt;li&gt;char = 'I' (vowels.index('I') = 2, index = 2)&lt;/li&gt;
&lt;li&gt;두 번째 자리가 'A', 'E'가 아닌 'I'이므로, 그 이전 자리들을 건너뛰어야 한다.&lt;/li&gt;
&lt;li&gt;factors[1] = 156 (두 번째 자리에 문자가 고정되면 뒤에 가능한 단어의 개수)&lt;/li&gt;
&lt;li&gt;result += 2 * 156 + 1 = 312 + 1 = 313&lt;/li&gt;
&lt;/ul&gt;
두 번째 자리가 'I'이면, 그 전에 'A'로 시작하는 단어들과 'E'로 시작하는 단어들(312개)을 지나서 'I'로 시작하는 단어로 넘어간다. 그 후에 자기 자신인 'I'를 포함하여 1을 더해준다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;세 번째 문자 'O'&lt;/b&gt;:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;i = 2 (세 번째 자리)&lt;/li&gt;
&lt;li&gt;char = 'O' (vowels.index('O') = 3, index = 3)&lt;/li&gt;
&lt;li&gt;세 번째 자리가 'A', 'E', 'I'가 아닌 'O'이므로, 그 이전 자리들을 건너뛰어야 한다.&lt;/li&gt;
&lt;li&gt;factors[2] = 31 (세 번째 자리에 문자가 고정되면 뒤에 가능한 단어의 개수)&lt;/li&gt;
&lt;li&gt;result += 3 * 31 + 1 = 93 + 1 = 94&lt;/li&gt;
&lt;/ul&gt;
세 번째 자리가 'O'이면, 그 전에 'A', 'E', 'I'로 시작하는 단어들(93개)을 지나서 'O'로 시작하는 단어로 넘어간다. 그 후 자기 자신을 포함하여 1을 더해준다.&lt;/li&gt;
&lt;/ol&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_1727182564850&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;def solution(word):
    answer = 0
    for i, n in enumerate(word):
        answer += (5 ** (5 - i) - 1) / (5 - 1) * &quot;AEIOU&quot;.index(n) + 1
    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>Algorithm/코딩테스트 고득점 Kit</category>
      <category>enumerate</category>
      <category>모음사전</category>
      <category>완전탐색</category>
      <category>코딩테스트</category>
      <category>코테</category>
      <category>파이썬</category>
      <category>프로그래머스</category>
      <author>채소기</author>
      <guid isPermaLink="true">https://vegetableworld.tistory.com/243</guid>
      <comments>https://vegetableworld.tistory.com/243#entry243comment</comments>
      <pubDate>Tue, 24 Sep 2024 21:48:18 +0900</pubDate>
    </item>
  </channel>
</rss>