<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>blog.tedhome.net</title>
    <link>https://tedhome.tistory.com/</link>
    <description>software engineer, since 2010</description>
    <language>ko</language>
    <pubDate>Mon, 8 Jun 2026 23:31:53 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>tedhong</managingEditor>
    <image>
      <title>blog.tedhome.net</title>
      <url>https://tistory1.daumcdn.net/tistory/5992626/attach/fbb6e62354634d399ccd775f4d906084</url>
      <link>https://tedhome.tistory.com</link>
    </image>
    <item>
      <title>[AI] Gemini 2.0  업데이트!</title>
      <link>https://tedhome.tistory.com/123</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;Gemini 모델 업데이트 - 2025년 2월&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2025-02-06 095000.png&quot; data-origin-width=&quot;1262&quot; data-origin-height=&quot;500&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cskzUQ/btsL7rrgqk9/jesvBKBeRq3DK1ph5DkUdk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cskzUQ/btsL7rrgqk9/jesvBKBeRq3DK1ph5DkUdk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cskzUQ/btsL7rrgqk9/jesvBKBeRq3DK1ph5DkUdk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcskzUQ%2FbtsL7rrgqk9%2FjesvBKBeRq3DK1ph5DkUdk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1262&quot; height=&quot;500&quot; data-filename=&quot;스크린샷 2025-02-06 095000.png&quot; data-origin-width=&quot;1262&quot; data-origin-height=&quot;500&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;br /&gt;2025년&amp;nbsp;2월&amp;nbsp;5일,&amp;nbsp;구글은&amp;nbsp;Gemini&amp;nbsp;2.0&amp;nbsp;모델의&amp;nbsp;새로운&amp;nbsp;업데이트를&amp;nbsp;발표했습니다.&amp;nbsp;새로운&amp;nbsp;모델인&amp;nbsp;Gemini&amp;nbsp;2.0&amp;nbsp;Flash,&amp;nbsp;Flash-Lite,&amp;nbsp;Pro&amp;nbsp;Experimental이&amp;nbsp;포함되어&amp;nbsp;있습니다.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Gemini 2.0 Flash의 일반 공개&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;Gemini&amp;nbsp;2.0&amp;nbsp;Flash는&amp;nbsp;이제&amp;nbsp;Google&amp;nbsp;AI&amp;nbsp;Studio와&amp;nbsp;Vertex&amp;nbsp;AI에서&amp;nbsp;사용할&amp;nbsp;수&amp;nbsp;있으며,&amp;nbsp;전반적으로&amp;nbsp;더&amp;nbsp;많은&amp;nbsp;사용자에게&amp;nbsp;공개됩니다.&lt;br /&gt;이&amp;nbsp;모델은&amp;nbsp;이미지&amp;nbsp;생성&amp;nbsp;및&amp;nbsp;텍스트-음성&amp;nbsp;변환&amp;nbsp;기능이&amp;nbsp;곧&amp;nbsp;추가될&amp;nbsp;예정이며,&amp;nbsp;대량의&amp;nbsp;정보를&amp;nbsp;처리할&amp;nbsp;수&amp;nbsp;있는&amp;nbsp;큰&amp;nbsp;맥락&amp;nbsp;창(1백만&amp;nbsp;토큰)을&amp;nbsp;갖추고&amp;nbsp;있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;Gemini&amp;nbsp;2.0&amp;nbsp;Flash-Lite의&amp;nbsp;출시&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;Flash-Lite는&amp;nbsp;비용&amp;nbsp;효율성이&amp;nbsp;가장&amp;nbsp;높은&amp;nbsp;모델로,&amp;nbsp;이전&amp;nbsp;모델인&amp;nbsp;1.5&amp;nbsp;Flash보다&amp;nbsp;더&amp;nbsp;나은&amp;nbsp;품질을&amp;nbsp;제공합니다.&lt;br /&gt;이&amp;nbsp;모델은&amp;nbsp;40,000개의&amp;nbsp;독특한&amp;nbsp;이미지에&amp;nbsp;대해&amp;nbsp;한&amp;nbsp;줄짜리&amp;nbsp;설명을&amp;nbsp;생성할&amp;nbsp;수&amp;nbsp;있으며,&amp;nbsp;Google&amp;nbsp;AI&amp;nbsp;Studio의&amp;nbsp;유료&amp;nbsp;서비스에서&amp;nbsp;1달러&amp;nbsp;미만의&amp;nbsp;비용으로&amp;nbsp;이용할&amp;nbsp;수&amp;nbsp;있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;프로&amp;nbsp;모델&amp;nbsp;업데이트&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;br /&gt;Gemini&amp;nbsp;2.0&amp;nbsp;Pro&amp;nbsp;Experimental은&amp;nbsp;코딩&amp;nbsp;성능과&amp;nbsp;복잡한&amp;nbsp;프롬프트&amp;nbsp;처리에서&amp;nbsp;최고의&amp;nbsp;모델입니다.&lt;br /&gt;2백만&amp;nbsp;토큰의&amp;nbsp;맥락&amp;nbsp;창을&amp;nbsp;가지고&amp;nbsp;있어&amp;nbsp;방대한&amp;nbsp;정보를&amp;nbsp;분석하고&amp;nbsp;이해할&amp;nbsp;수&amp;nbsp;있는&amp;nbsp;기능을&amp;nbsp;갖추고&amp;nbsp;있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;모델의&amp;nbsp;안전성과&amp;nbsp;책임&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;br /&gt;Gemini&amp;nbsp;모델은&amp;nbsp;안전하고&amp;nbsp;보안성을&amp;nbsp;강화하기&amp;nbsp;위해&amp;nbsp;새로운&amp;nbsp;강화&amp;nbsp;학습&amp;nbsp;기법을&amp;nbsp;사용하여&amp;nbsp;그&amp;nbsp;응답을&amp;nbsp;평가합니다.&lt;br /&gt;자동화된&amp;nbsp;분석팀을&amp;nbsp;통해&amp;nbsp;사이버&amp;nbsp;보안&amp;nbsp;리스크를&amp;nbsp;평가하고&amp;nbsp;있으며,&amp;nbsp;간접&amp;nbsp;프롬프트&amp;nbsp;주입과&amp;nbsp;같은&amp;nbsp;공격으로부터의&amp;nbsp;위험도&amp;nbsp;점검합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;결론&lt;/b&gt;&lt;br /&gt;Gemini&amp;nbsp;2.0&amp;nbsp;모델&amp;nbsp;업데이트는&amp;nbsp;개발자와&amp;nbsp;사용자&amp;nbsp;모두에게&amp;nbsp;향상된&amp;nbsp;성능과&amp;nbsp;새로운&amp;nbsp;기능을&amp;nbsp;제공합니다.&amp;nbsp;특히,&amp;nbsp;Flash-Lite&amp;nbsp;모델은&amp;nbsp;비용&amp;nbsp;효율성과&amp;nbsp;빠른&amp;nbsp;성능으로&amp;nbsp;많은&amp;nbsp;관심을&amp;nbsp;받고&amp;nbsp;있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;a href=&quot;https://blog.google/technology/google-deepmind/gemini-model-updates-february-2025/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://blog.google/technology/google-deepmind/gemini-model-updates-february-2025/&lt;/a&gt;&lt;/p&gt;</description>
      <category>프로그래밍</category>
      <category>llm #ai #gemini #gemini2.0</category>
      <author>tedhong</author>
      <guid isPermaLink="true">https://tedhome.tistory.com/123</guid>
      <comments>https://tedhome.tistory.com/123#entry123comment</comments>
      <pubDate>Thu, 6 Feb 2025 09:51:13 +0900</pubDate>
    </item>
    <item>
      <title>[AI] OpenAI o3-mini 출시</title>
      <link>https://tedhome.tistory.com/122</link>
      <description>&lt;h2 style=&quot;text-align: center;&quot; data-ke-size=&quot;size26&quot;&gt;OpenAI&amp;nbsp;o3-mini&amp;nbsp;출시&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;OpenAI&amp;nbsp;o3-mini가&amp;nbsp;출시되었습니다.&amp;nbsp;이는&amp;nbsp;우리의&amp;nbsp;추론&amp;nbsp;시리즈에서&amp;nbsp;가장&amp;nbsp;최근의,&amp;nbsp;가장&amp;nbsp;비용&amp;nbsp;효율적인&amp;nbsp;모델로,&amp;nbsp;오늘부터&amp;nbsp;ChatGPT와&amp;nbsp;API에서&amp;nbsp;제공됩니다.&amp;nbsp;2024년&amp;nbsp;12월에&amp;nbsp;미리&amp;nbsp;공개된&amp;nbsp;이&amp;nbsp;강력하고&amp;nbsp;빠른&amp;nbsp;모델은&amp;nbsp;소형&amp;nbsp;모델이&amp;nbsp;달성할&amp;nbsp;수&amp;nbsp;있는&amp;nbsp;한계를&amp;nbsp;확장하며,&amp;nbsp;특히&amp;nbsp;과학,&amp;nbsp;수학,&amp;nbsp;코딩&amp;nbsp;분야에서&amp;nbsp;뛰어난&amp;nbsp;STEM&amp;nbsp;능력을&amp;nbsp;제공합니다.&amp;nbsp;또한&amp;nbsp;OpenAI&amp;nbsp;o1-mini의&amp;nbsp;낮은&amp;nbsp;비용과&amp;nbsp;감소된&amp;nbsp;대기&amp;nbsp;시간을&amp;nbsp;유지합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1200&quot; data-origin-height=&quot;720&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bepVGP/btsL4dy1pYT/f8kHsJXOY29FUvzP39TczK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bepVGP/btsL4dy1pYT/f8kHsJXOY29FUvzP39TczK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bepVGP/btsL4dy1pYT/f8kHsJXOY29FUvzP39TczK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbepVGP%2FbtsL4dy1pYT%2Ff8kHsJXOY29FUvzP39TczK%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;1200&quot; height=&quot;720&quot; data-origin-width=&quot;1200&quot; data-origin-height=&quot;720&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;br /&gt;&lt;br /&gt;OpenAI&amp;nbsp;o3-mini는&amp;nbsp;함수&amp;nbsp;호출,&amp;nbsp;구조화된&amp;nbsp;출력,&amp;nbsp;개발자&amp;nbsp;메시지와&amp;nbsp;같은&amp;nbsp;개발자들이&amp;nbsp;요청한&amp;nbsp;기능을&amp;nbsp;지원하는&amp;nbsp;첫&amp;nbsp;번째&amp;nbsp;소형&amp;nbsp;추론&amp;nbsp;모델로,&amp;nbsp;즉시&amp;nbsp;생산&amp;nbsp;준비가&amp;nbsp;완료된&amp;nbsp;상태입니다.&amp;nbsp;OpenAI&amp;nbsp;o1-mini와&amp;nbsp;OpenAI&amp;nbsp;o1-preview와&amp;nbsp;마찬가지로,&amp;nbsp;o3-mini는&amp;nbsp;스트리밍을&amp;nbsp;지원합니다.&amp;nbsp;또한&amp;nbsp;개발자들은&amp;nbsp;특정&amp;nbsp;사용&amp;nbsp;사례에&amp;nbsp;맞게&amp;nbsp;세&amp;nbsp;가지&amp;nbsp;추론&amp;nbsp;노력&amp;nbsp;옵션&amp;mdash;낮음,&amp;nbsp;중간,&amp;nbsp;높음&amp;mdash;중에서&amp;nbsp;선택할&amp;nbsp;수&amp;nbsp;있어,&amp;nbsp;복잡한&amp;nbsp;문제를&amp;nbsp;해결할&amp;nbsp;때&amp;nbsp;&quot;더&amp;nbsp;깊이&amp;nbsp;생각&quot;하거나&amp;nbsp;대기&amp;nbsp;시간이&amp;nbsp;중요할&amp;nbsp;경우&amp;nbsp;속도를&amp;nbsp;우선시할&amp;nbsp;수&amp;nbsp;있습니다.&amp;nbsp;o3-mini는&amp;nbsp;비전&amp;nbsp;기능을&amp;nbsp;지원하지&amp;nbsp;않으므로,&amp;nbsp;시각적&amp;nbsp;추론&amp;nbsp;작업에는&amp;nbsp;계속해서&amp;nbsp;OpenAI&amp;nbsp;o1을&amp;nbsp;사용해야&amp;nbsp;합니다.&amp;nbsp;o3-mini는&amp;nbsp;오늘부터&amp;nbsp;API&amp;nbsp;사용&amp;nbsp;등급&amp;nbsp;3-5의&amp;nbsp;일부&amp;nbsp;개발자에게&amp;nbsp;Chat&amp;nbsp;Completions&amp;nbsp;API,&amp;nbsp;Assistants&amp;nbsp;API,&amp;nbsp;Batch&amp;nbsp;API에서&amp;nbsp;제공됩니다.&lt;br /&gt;&lt;br /&gt;ChatGPT&amp;nbsp;Plus,&amp;nbsp;Team,&amp;nbsp;Pro&amp;nbsp;사용자들은&amp;nbsp;오늘부터&amp;nbsp;OpenAI&amp;nbsp;o3-mini에&amp;nbsp;접근할&amp;nbsp;수&amp;nbsp;있으며,&amp;nbsp;기업&amp;nbsp;고객은&amp;nbsp;2월부터&amp;nbsp;사용할&amp;nbsp;수&amp;nbsp;있습니다.&amp;nbsp;o3-mini는&amp;nbsp;모델&amp;nbsp;선택기에서&amp;nbsp;OpenAI&amp;nbsp;o1-mini를&amp;nbsp;대체하며,&amp;nbsp;더&amp;nbsp;높은&amp;nbsp;메시지&amp;nbsp;한도와&amp;nbsp;낮은&amp;nbsp;대기&amp;nbsp;시간을&amp;nbsp;제공하여&amp;nbsp;코딩,&amp;nbsp;STEM,&amp;nbsp;논리&amp;nbsp;문제&amp;nbsp;해결&amp;nbsp;작업에&amp;nbsp;매력적인&amp;nbsp;선택이&amp;nbsp;됩니다.&amp;nbsp;이번&amp;nbsp;업그레이드의&amp;nbsp;일환으로,&amp;nbsp;Plus와&amp;nbsp;Team&amp;nbsp;사용자들의&amp;nbsp;하루&amp;nbsp;메시지&amp;nbsp;한도가&amp;nbsp;o1-mini의&amp;nbsp;50개에서&amp;nbsp;o3-mini의&amp;nbsp;150개로&amp;nbsp;세&amp;nbsp;배&amp;nbsp;증가했습니다.&amp;nbsp;또한,&amp;nbsp;o3-mini는&amp;nbsp;최신&amp;nbsp;답변을&amp;nbsp;찾기&amp;nbsp;위해&amp;nbsp;검색&amp;nbsp;기능과&amp;nbsp;연동되어&amp;nbsp;관련&amp;nbsp;웹&amp;nbsp;소스의&amp;nbsp;링크를&amp;nbsp;제공할&amp;nbsp;수&amp;nbsp;있습니다.&amp;nbsp;이는&amp;nbsp;검색&amp;nbsp;기능을&amp;nbsp;추론&amp;nbsp;모델에&amp;nbsp;통합하기&amp;nbsp;위한&amp;nbsp;초기&amp;nbsp;프로토타입입니다.&lt;br /&gt;&lt;br /&gt;오늘부터&amp;nbsp;무료&amp;nbsp;플랜&amp;nbsp;사용자들도&amp;nbsp;메시지&amp;nbsp;작성기에서&amp;nbsp;'Reason'을&amp;nbsp;선택하거나&amp;nbsp;응답을&amp;nbsp;재생성하여&amp;nbsp;OpenAI&amp;nbsp;o3-mini를&amp;nbsp;시도할&amp;nbsp;수&amp;nbsp;있습니다.&amp;nbsp;이는&amp;nbsp;무료&amp;nbsp;사용자에게&amp;nbsp;처음으로&amp;nbsp;추론&amp;nbsp;모델이&amp;nbsp;제공되는&amp;nbsp;사례입니다.&lt;br /&gt;&lt;br /&gt;OpenAI&amp;nbsp;o1이&amp;nbsp;보다&amp;nbsp;폭넓은&amp;nbsp;일반&amp;nbsp;지식&amp;nbsp;추론&amp;nbsp;모델로&amp;nbsp;남아&amp;nbsp;있는&amp;nbsp;반면,&amp;nbsp;OpenAI&amp;nbsp;o3-mini는&amp;nbsp;정밀성과&amp;nbsp;속도가&amp;nbsp;요구되는&amp;nbsp;기술&amp;nbsp;분야를&amp;nbsp;위한&amp;nbsp;전문&amp;nbsp;대안을&amp;nbsp;제공합니다.&amp;nbsp;ChatGPT에서&amp;nbsp;o3-mini는&amp;nbsp;중간&amp;nbsp;추론&amp;nbsp;노력을&amp;nbsp;사용하여&amp;nbsp;속도와&amp;nbsp;정확성&amp;nbsp;간의&amp;nbsp;균형&amp;nbsp;잡힌&amp;nbsp;거래를&amp;nbsp;제공합니다.&amp;nbsp;모든&amp;nbsp;유료&amp;nbsp;사용자는&amp;nbsp;모델&amp;nbsp;선택기에서&amp;nbsp;좀&amp;nbsp;더&amp;nbsp;높은&amp;nbsp;지능&amp;nbsp;버전인&amp;nbsp;o3-mini-high를&amp;nbsp;선택할&amp;nbsp;수&amp;nbsp;있으며,&amp;nbsp;Pro&amp;nbsp;사용자는&amp;nbsp;o3-mini와&amp;nbsp;o3-mini-high에&amp;nbsp;무제한&amp;nbsp;접근할&amp;nbsp;수&amp;nbsp;있습니다.&lt;br /&gt;&lt;br /&gt;빠르고&amp;nbsp;강력하며&amp;nbsp;STEM&amp;nbsp;추론을&amp;nbsp;최적화한&amp;nbsp;OpenAI&amp;nbsp;o3-mini는&amp;nbsp;OpenAI&amp;nbsp;o1의&amp;nbsp;성능을&amp;nbsp;매칭하면서도&amp;nbsp;더&amp;nbsp;빠른&amp;nbsp;응답을&amp;nbsp;제공합니다.&amp;nbsp;전문가&amp;nbsp;테스터들의&amp;nbsp;평가에&amp;nbsp;따르면,&amp;nbsp;o3-mini는&amp;nbsp;OpenAI&amp;nbsp;o1-mini보다&amp;nbsp;더&amp;nbsp;정확하고&amp;nbsp;명확한&amp;nbsp;답변을&amp;nbsp;제공하며,&amp;nbsp;뛰어난&amp;nbsp;추론&amp;nbsp;능력을&amp;nbsp;보여주었습니다.&amp;nbsp;테스터들은&amp;nbsp;o3-mini의&amp;nbsp;응답을&amp;nbsp;o1-mini보다&amp;nbsp;56%&amp;nbsp;더&amp;nbsp;선호했으며,&amp;nbsp;어려운&amp;nbsp;실제&amp;nbsp;질문에서&amp;nbsp;주요&amp;nbsp;오류가&amp;nbsp;39%&amp;nbsp;감소하는&amp;nbsp;것을&amp;nbsp;관찰했습니다.&amp;nbsp;중간&amp;nbsp;추론&amp;nbsp;노력을&amp;nbsp;사용한&amp;nbsp;o3-mini는&amp;nbsp;AIME&amp;nbsp;및&amp;nbsp;GPQA와&amp;nbsp;같은&amp;nbsp;가장&amp;nbsp;도전적인&amp;nbsp;추론&amp;nbsp;및&amp;nbsp;지능&amp;nbsp;평가에서&amp;nbsp;o1의&amp;nbsp;성능과&amp;nbsp;일치합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://openai.com/index/openai-o3-mini/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://openai.com/index/openai-o3-mini/&lt;/a&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;#openai #llm #chatgpt #o3-mini #OpenAI #인공지능&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>프로그래밍</category>
      <category>ChatGPT</category>
      <category>LLM</category>
      <category>o3-mini</category>
      <category>OpenAI</category>
      <category>인공지능</category>
      <author>tedhong</author>
      <guid isPermaLink="true">https://tedhome.tistory.com/122</guid>
      <comments>https://tedhome.tistory.com/122#entry122comment</comments>
      <pubDate>Sat, 1 Feb 2025 16:53:32 +0900</pubDate>
    </item>
    <item>
      <title>디아블로4 시즌 6 암폭 드루 (저장용)</title>
      <link>https://tedhome.tistory.com/121</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;PTR 에서 연구한 디아블로4 시즌6용 암석폭발 드루이드 셋팅&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;영상&lt;/h3&gt;

            &lt;figure class=&quot;unsupported component-kakaotv&quot; contenteditable=&quot;false&quot; style=&quot;background:#000;margin:16px 0;min-height:72px;padding:10px 16px;display:flex;align-items:center;justify-content:center;text-align:center;box-sizing:border-box;width:100%;max-width:100%;&quot;&gt;
                &lt;p contenteditable=&quot;false&quot; style=&quot;margin:0;color:#8a8a8a;font-size:13px;line-height:1.6;user-select:none;pointer-events:none;&quot;&gt;동영상 서비스가 종료되어 해당 콘텐츠를 재생할 수 없습니다.&lt;/p&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;장비 / 위상&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageslideblock alignLeft&quot; data-image=&quot;[{&amp;quot;src&amp;quot;:&amp;quot;https://blog.kakaocdn.net/dn/3MjOp/btsJ21ukPtG/2okBnQ7cPQAC1hDcJeWAak/img.png&amp;quot;},{&amp;quot;src&amp;quot;:&amp;quot;https://blog.kakaocdn.net/dn/KyyNX/btsJ2VBf5wL/VMU5dVka7NXAWkCFlKPXS1/img.png&amp;quot;},{&amp;quot;src&amp;quot;:&amp;quot;https://blog.kakaocdn.net/dn/dmmAeb/btsJ2Yj8AuP/qKKm7p9GyvhAK59XF0d3Q0/img.png&amp;quot;},{&amp;quot;src&amp;quot;:&amp;quot;https://blog.kakaocdn.net/dn/ommX7/btsJ4iuOhZ7/fOEyoAI0Wh1hyPjOvrKb70/img.png&amp;quot;},{&amp;quot;src&amp;quot;:&amp;quot;https://blog.kakaocdn.net/dn/bqVCO0/btsJ3RxOg7s/DSN618SdV5PJyYNFULN43K/img.png&amp;quot;},{&amp;quot;src&amp;quot;:&amp;quot;https://blog.kakaocdn.net/dn/bgACeL/btsJ4uBNQkN/rLcI6qol2dQnkpjKPGib41/img.png&amp;quot;},{&amp;quot;src&amp;quot;:&amp;quot;https://blog.kakaocdn.net/dn/HfYHs/btsJ3REABzg/nviirqKmNrdF2EeBLx2O1k/img.png&amp;quot;},{&amp;quot;src&amp;quot;:&amp;quot;https://blog.kakaocdn.net/dn/3OsfR/btsJ3qNVWu3/iuuvyZxuSZ8PJuvgijRHg0/img.png&amp;quot;},{&amp;quot;src&amp;quot;:&amp;quot;https://blog.kakaocdn.net/dn/o85PT/btsJ4iBB0bf/RT3QK0DS5yJ8Hbcw2dnEH0/img.png&amp;quot;},{&amp;quot;src&amp;quot;:&amp;quot;https://blog.kakaocdn.net/dn/S4Dxf/btsJ3NWq1yX/bygl0v6UPJv2kDtwEjxKT0/img.png&amp;quot;}]&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span class=&quot;image-wrap selected&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/3MjOp/btsJ21ukPtG/2okBnQ7cPQAC1hDcJeWAak/img.png&quot; data-url=&quot;https://blog.kakaocdn.net/dn/3MjOp/btsJ21ukPtG/2okBnQ7cPQAC1hDcJeWAak/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/3MjOp/btsJ21ukPtG/2okBnQ7cPQAC1hDcJeWAak/img.png&quot; loading=&quot;lazy&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F3MjOp%2FbtsJ21ukPtG%2F2okBnQ7cPQAC1hDcJeWAak%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; data-origin-width=&quot;654&quot; data-origin-height=&quot;1045&quot;/&gt;&lt;/span&gt;&lt;span class=&quot;image-wrap &quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/KyyNX/btsJ2VBf5wL/VMU5dVka7NXAWkCFlKPXS1/img.png&quot; data-url=&quot;https://blog.kakaocdn.net/dn/KyyNX/btsJ2VBf5wL/VMU5dVka7NXAWkCFlKPXS1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/KyyNX/btsJ2VBf5wL/VMU5dVka7NXAWkCFlKPXS1/img.png&quot; loading=&quot;lazy&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FKyyNX%2FbtsJ2VBf5wL%2FVMU5dVka7NXAWkCFlKPXS1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; data-origin-width=&quot;654&quot; data-origin-height=&quot;1045&quot;/&gt;&lt;/span&gt;&lt;span class=&quot;image-wrap &quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dmmAeb/btsJ2Yj8AuP/qKKm7p9GyvhAK59XF0d3Q0/img.png&quot; data-url=&quot;https://blog.kakaocdn.net/dn/dmmAeb/btsJ2Yj8AuP/qKKm7p9GyvhAK59XF0d3Q0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dmmAeb/btsJ2Yj8AuP/qKKm7p9GyvhAK59XF0d3Q0/img.png&quot; loading=&quot;lazy&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdmmAeb%2FbtsJ2Yj8AuP%2FqKKm7p9GyvhAK59XF0d3Q0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; data-origin-width=&quot;654&quot; data-origin-height=&quot;1045&quot;/&gt;&lt;/span&gt;&lt;span class=&quot;image-wrap &quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ommX7/btsJ4iuOhZ7/fOEyoAI0Wh1hyPjOvrKb70/img.png&quot; data-url=&quot;https://blog.kakaocdn.net/dn/ommX7/btsJ4iuOhZ7/fOEyoAI0Wh1hyPjOvrKb70/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ommX7/btsJ4iuOhZ7/fOEyoAI0Wh1hyPjOvrKb70/img.png&quot; loading=&quot;lazy&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FommX7%2FbtsJ4iuOhZ7%2FfOEyoAI0Wh1hyPjOvrKb70%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; data-origin-width=&quot;654&quot; data-origin-height=&quot;1045&quot;/&gt;&lt;/span&gt;&lt;span class=&quot;image-wrap &quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bqVCO0/btsJ3RxOg7s/DSN618SdV5PJyYNFULN43K/img.png&quot; data-url=&quot;https://blog.kakaocdn.net/dn/bqVCO0/btsJ3RxOg7s/DSN618SdV5PJyYNFULN43K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bqVCO0/btsJ3RxOg7s/DSN618SdV5PJyYNFULN43K/img.png&quot; loading=&quot;lazy&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbqVCO0%2FbtsJ3RxOg7s%2FDSN618SdV5PJyYNFULN43K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; data-origin-width=&quot;654&quot; data-origin-height=&quot;1045&quot;/&gt;&lt;/span&gt;&lt;span class=&quot;image-wrap &quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bgACeL/btsJ4uBNQkN/rLcI6qol2dQnkpjKPGib41/img.png&quot; data-url=&quot;https://blog.kakaocdn.net/dn/bgACeL/btsJ4uBNQkN/rLcI6qol2dQnkpjKPGib41/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bgACeL/btsJ4uBNQkN/rLcI6qol2dQnkpjKPGib41/img.png&quot; loading=&quot;lazy&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbgACeL%2FbtsJ4uBNQkN%2FrLcI6qol2dQnkpjKPGib41%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; data-origin-width=&quot;654&quot; data-origin-height=&quot;1045&quot;/&gt;&lt;/span&gt;&lt;span class=&quot;image-wrap &quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/HfYHs/btsJ3REABzg/nviirqKmNrdF2EeBLx2O1k/img.png&quot; data-url=&quot;https://blog.kakaocdn.net/dn/HfYHs/btsJ3REABzg/nviirqKmNrdF2EeBLx2O1k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/HfYHs/btsJ3REABzg/nviirqKmNrdF2EeBLx2O1k/img.png&quot; loading=&quot;lazy&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FHfYHs%2FbtsJ3REABzg%2FnviirqKmNrdF2EeBLx2O1k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; data-origin-width=&quot;654&quot; data-origin-height=&quot;1045&quot;/&gt;&lt;/span&gt;&lt;span class=&quot;image-wrap &quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/3OsfR/btsJ3qNVWu3/iuuvyZxuSZ8PJuvgijRHg0/img.png&quot; data-url=&quot;https://blog.kakaocdn.net/dn/3OsfR/btsJ3qNVWu3/iuuvyZxuSZ8PJuvgijRHg0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/3OsfR/btsJ3qNVWu3/iuuvyZxuSZ8PJuvgijRHg0/img.png&quot; loading=&quot;lazy&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F3OsfR%2FbtsJ3qNVWu3%2FiuuvyZxuSZ8PJuvgijRHg0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; data-origin-width=&quot;654&quot; data-origin-height=&quot;1045&quot;/&gt;&lt;/span&gt;&lt;span class=&quot;image-wrap &quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/o85PT/btsJ4iBB0bf/RT3QK0DS5yJ8Hbcw2dnEH0/img.png&quot; data-url=&quot;https://blog.kakaocdn.net/dn/o85PT/btsJ4iBB0bf/RT3QK0DS5yJ8Hbcw2dnEH0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/o85PT/btsJ4iBB0bf/RT3QK0DS5yJ8Hbcw2dnEH0/img.png&quot; loading=&quot;lazy&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fo85PT%2FbtsJ4iBB0bf%2FRT3QK0DS5yJ8Hbcw2dnEH0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; data-origin-width=&quot;654&quot; data-origin-height=&quot;1045&quot;/&gt;&lt;/span&gt;&lt;span class=&quot;image-wrap &quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/S4Dxf/btsJ3NWq1yX/bygl0v6UPJv2kDtwEjxKT0/img.png&quot; data-url=&quot;https://blog.kakaocdn.net/dn/S4Dxf/btsJ3NWq1yX/bygl0v6UPJv2kDtwEjxKT0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/S4Dxf/btsJ3NWq1yX/bygl0v6UPJv2kDtwEjxKT0/img.png&quot; loading=&quot;lazy&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FS4Dxf%2FbtsJ3NWq1yX%2Fbygl0v6UPJv2kDtwEjxKT0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; data-origin-width=&quot;654&quot; data-origin-height=&quot;1045&quot;/&gt;&lt;/span&gt;&lt;button class=&quot;btn btn-prev&quot;&gt;&lt;span class=&quot;ico-prev&quot;&gt;이전&lt;/span&gt;&lt;/button&gt;&lt;button class=&quot;btn btn-next&quot;&gt;&lt;span class=&quot;ico-next&quot;&gt;다음&lt;/span&gt;&lt;/button&gt;&lt;/div&gt;
  &lt;div class=&quot;mark&quot;&gt;&lt;span data-index=&quot;0&quot;&gt;0&lt;/span&gt;&lt;span data-index=&quot;1&quot;&gt;1&lt;/span&gt;&lt;span data-index=&quot;2&quot;&gt;2&lt;/span&gt;&lt;span data-index=&quot;3&quot;&gt;3&lt;/span&gt;&lt;span data-index=&quot;4&quot;&gt;4&lt;/span&gt;&lt;span data-index=&quot;5&quot;&gt;5&lt;/span&gt;&lt;span data-index=&quot;6&quot;&gt;6&lt;/span&gt;&lt;span data-index=&quot;7&quot;&gt;7&lt;/span&gt;&lt;span data-index=&quot;8&quot;&gt;8&lt;/span&gt;&lt;span data-index=&quot;9&quot;&gt;9&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;스킬&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageslideblock alignLeft&quot; data-image=&quot;[{&amp;quot;src&amp;quot;:&amp;quot;https://blog.kakaocdn.net/dn/c4Bajh/btsJ4e0fSPi/JXXCWiTGrPFwo1QkvwsNg1/img.png&amp;quot;},{&amp;quot;src&amp;quot;:&amp;quot;https://blog.kakaocdn.net/dn/llho6/btsJ2SxFL8U/H0QC8tpEdIEIENCNwlksvk/img.png&amp;quot;},{&amp;quot;src&amp;quot;:&amp;quot;https://blog.kakaocdn.net/dn/bVu8QD/btsJ3Z97sPR/OcckKYsrwiKzCaPfZGwjK1/img.png&amp;quot;},{&amp;quot;src&amp;quot;:&amp;quot;https://blog.kakaocdn.net/dn/26jQw/btsJ4KxIbct/5ancraFHjWYqZkm6jvzcDK/img.png&amp;quot;},{&amp;quot;src&amp;quot;:&amp;quot;https://blog.kakaocdn.net/dn/du7lQu/btsJ2waAVny/VxwbeaAEKIZAMkjaEOV7V1/img.png&amp;quot;}]&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span class=&quot;image-wrap selected&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c4Bajh/btsJ4e0fSPi/JXXCWiTGrPFwo1QkvwsNg1/img.png&quot; data-url=&quot;https://blog.kakaocdn.net/dn/c4Bajh/btsJ4e0fSPi/JXXCWiTGrPFwo1QkvwsNg1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c4Bajh/btsJ4e0fSPi/JXXCWiTGrPFwo1QkvwsNg1/img.png&quot; loading=&quot;lazy&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc4Bajh%2FbtsJ4e0fSPi%2FJXXCWiTGrPFwo1QkvwsNg1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; data-origin-width=&quot;764&quot; data-origin-height=&quot;281&quot;/&gt;&lt;/span&gt;&lt;span class=&quot;image-wrap &quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/llho6/btsJ2SxFL8U/H0QC8tpEdIEIENCNwlksvk/img.png&quot; data-url=&quot;https://blog.kakaocdn.net/dn/llho6/btsJ2SxFL8U/H0QC8tpEdIEIENCNwlksvk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/llho6/btsJ2SxFL8U/H0QC8tpEdIEIENCNwlksvk/img.png&quot; loading=&quot;lazy&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fllho6%2FbtsJ2SxFL8U%2FH0QC8tpEdIEIENCNwlksvk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; data-origin-width=&quot;764&quot; data-origin-height=&quot;281&quot;/&gt;&lt;/span&gt;&lt;span class=&quot;image-wrap &quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bVu8QD/btsJ3Z97sPR/OcckKYsrwiKzCaPfZGwjK1/img.png&quot; data-url=&quot;https://blog.kakaocdn.net/dn/bVu8QD/btsJ3Z97sPR/OcckKYsrwiKzCaPfZGwjK1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bVu8QD/btsJ3Z97sPR/OcckKYsrwiKzCaPfZGwjK1/img.png&quot; loading=&quot;lazy&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbVu8QD%2FbtsJ3Z97sPR%2FOcckKYsrwiKzCaPfZGwjK1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; data-origin-width=&quot;764&quot; data-origin-height=&quot;281&quot;/&gt;&lt;/span&gt;&lt;span class=&quot;image-wrap &quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/26jQw/btsJ4KxIbct/5ancraFHjWYqZkm6jvzcDK/img.png&quot; data-url=&quot;https://blog.kakaocdn.net/dn/26jQw/btsJ4KxIbct/5ancraFHjWYqZkm6jvzcDK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/26jQw/btsJ4KxIbct/5ancraFHjWYqZkm6jvzcDK/img.png&quot; loading=&quot;lazy&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F26jQw%2FbtsJ4KxIbct%2F5ancraFHjWYqZkm6jvzcDK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; data-origin-width=&quot;764&quot; data-origin-height=&quot;281&quot;/&gt;&lt;/span&gt;&lt;span class=&quot;image-wrap &quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/du7lQu/btsJ2waAVny/VxwbeaAEKIZAMkjaEOV7V1/img.png&quot; data-url=&quot;https://blog.kakaocdn.net/dn/du7lQu/btsJ2waAVny/VxwbeaAEKIZAMkjaEOV7V1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/du7lQu/btsJ2waAVny/VxwbeaAEKIZAMkjaEOV7V1/img.png&quot; loading=&quot;lazy&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdu7lQu%2FbtsJ2waAVny%2FVxwbeaAEKIZAMkjaEOV7V1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; data-origin-width=&quot;764&quot; data-origin-height=&quot;281&quot;/&gt;&lt;/span&gt;&lt;button class=&quot;btn btn-prev&quot;&gt;&lt;span class=&quot;ico-prev&quot;&gt;이전&lt;/span&gt;&lt;/button&gt;&lt;button class=&quot;btn btn-next&quot;&gt;&lt;span class=&quot;ico-next&quot;&gt;다음&lt;/span&gt;&lt;/button&gt;&lt;/div&gt;
  &lt;div class=&quot;mark&quot;&gt;&lt;span data-index=&quot;0&quot;&gt;0&lt;/span&gt;&lt;span data-index=&quot;1&quot;&gt;1&lt;/span&gt;&lt;span data-index=&quot;2&quot;&gt;2&lt;/span&gt;&lt;span data-index=&quot;3&quot;&gt;3&lt;/span&gt;&lt;span data-index=&quot;4&quot;&gt;4&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;정복자&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageslideblock alignLeft&quot; data-image=&quot;[{&amp;quot;src&amp;quot;:&amp;quot;https://blog.kakaocdn.net/dn/rTToQ/btsJ3IHQwac/P8Xoo7rNYF5m7PPKD9wplK/img.png&amp;quot;},{&amp;quot;src&amp;quot;:&amp;quot;https://blog.kakaocdn.net/dn/p2sbR/btsJ27BnpkA/9fLJPlr17lMIk54bqKxzUK/img.png&amp;quot;},{&amp;quot;src&amp;quot;:&amp;quot;https://blog.kakaocdn.net/dn/lZKMJ/btsJ3F5spVx/v0AFDKLZh0oNBmaSG8Tb11/img.png&amp;quot;},{&amp;quot;src&amp;quot;:&amp;quot;https://blog.kakaocdn.net/dn/EY5Ww/btsJ3oiDeqf/WSWsyTSdEijzogAgNFRIx1/img.png&amp;quot;},{&amp;quot;src&amp;quot;:&amp;quot;https://blog.kakaocdn.net/dn/TPMHf/btsJ33regSP/T3692gDdcM5fx6bW4iNqRK/img.png&amp;quot;},{&amp;quot;src&amp;quot;:&amp;quot;https://blog.kakaocdn.net/dn/ceYUAn/btsJ4tXaB1p/N4Q7qPSIFRAF67O9Al0y9K/img.png&amp;quot;},{&amp;quot;src&amp;quot;:&amp;quot;https://blog.kakaocdn.net/dn/bmvHXW/btsJ2VVArXa/MOw8pTlCwkUqvJy80ryfI1/img.png&amp;quot;},{&amp;quot;src&amp;quot;:&amp;quot;https://blog.kakaocdn.net/dn/ciYar3/btsJ3QlpNUH/VYpQ60CNvXAFDad9BxdrKk/img.png&amp;quot;},{&amp;quot;src&amp;quot;:&amp;quot;https://blog.kakaocdn.net/dn/crRYgO/btsJ4Li5i1q/NPQokdNvbAKTAlKGKKWaj0/img.png&amp;quot;},{&amp;quot;src&amp;quot;:&amp;quot;https://blog.kakaocdn.net/dn/qxMfR/btsJ34jm6HC/74FiEnKCK9rsaclCloLZwK/img.png&amp;quot;},{&amp;quot;src&amp;quot;:&amp;quot;https://blog.kakaocdn.net/dn/zvILn/btsJ3InAfUZ/gt8ltGfIsFjEKZLFxK9qT0/img.png&amp;quot;},{&amp;quot;src&amp;quot;:&amp;quot;https://blog.kakaocdn.net/dn/7gFpe/btsJ3ZI3iYw/DvbMkfTdFtGo4qYpF6ddr0/img.png&amp;quot;},{&amp;quot;src&amp;quot;:&amp;quot;https://blog.kakaocdn.net/dn/qlUVC/btsJ21OIvJr/lGmBntPrYgbsO4byQnPISK/img.png&amp;quot;},{&amp;quot;src&amp;quot;:&amp;quot;https://blog.kakaocdn.net/dn/bzvK5H/btsJ4MoLhXo/9rYQn0U4NBHa42nWj0nzcK/img.png&amp;quot;}]&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span class=&quot;image-wrap selected&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/rTToQ/btsJ3IHQwac/P8Xoo7rNYF5m7PPKD9wplK/img.png&quot; data-url=&quot;https://blog.kakaocdn.net/dn/rTToQ/btsJ3IHQwac/P8Xoo7rNYF5m7PPKD9wplK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/rTToQ/btsJ3IHQwac/P8Xoo7rNYF5m7PPKD9wplK/img.png&quot; loading=&quot;lazy&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FrTToQ%2FbtsJ3IHQwac%2FP8Xoo7rNYF5m7PPKD9wplK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; data-origin-width=&quot;567&quot; data-origin-height=&quot;1100&quot;/&gt;&lt;/span&gt;&lt;span class=&quot;image-wrap &quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/p2sbR/btsJ27BnpkA/9fLJPlr17lMIk54bqKxzUK/img.png&quot; data-url=&quot;https://blog.kakaocdn.net/dn/p2sbR/btsJ27BnpkA/9fLJPlr17lMIk54bqKxzUK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/p2sbR/btsJ27BnpkA/9fLJPlr17lMIk54bqKxzUK/img.png&quot; loading=&quot;lazy&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fp2sbR%2FbtsJ27BnpkA%2F9fLJPlr17lMIk54bqKxzUK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; data-origin-width=&quot;567&quot; data-origin-height=&quot;1100&quot;/&gt;&lt;/span&gt;&lt;span class=&quot;image-wrap &quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lZKMJ/btsJ3F5spVx/v0AFDKLZh0oNBmaSG8Tb11/img.png&quot; data-url=&quot;https://blog.kakaocdn.net/dn/lZKMJ/btsJ3F5spVx/v0AFDKLZh0oNBmaSG8Tb11/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lZKMJ/btsJ3F5spVx/v0AFDKLZh0oNBmaSG8Tb11/img.png&quot; loading=&quot;lazy&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlZKMJ%2FbtsJ3F5spVx%2Fv0AFDKLZh0oNBmaSG8Tb11%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; data-origin-width=&quot;567&quot; data-origin-height=&quot;1100&quot;/&gt;&lt;/span&gt;&lt;span class=&quot;image-wrap &quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/EY5Ww/btsJ3oiDeqf/WSWsyTSdEijzogAgNFRIx1/img.png&quot; data-url=&quot;https://blog.kakaocdn.net/dn/EY5Ww/btsJ3oiDeqf/WSWsyTSdEijzogAgNFRIx1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/EY5Ww/btsJ3oiDeqf/WSWsyTSdEijzogAgNFRIx1/img.png&quot; loading=&quot;lazy&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FEY5Ww%2FbtsJ3oiDeqf%2FWSWsyTSdEijzogAgNFRIx1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; data-origin-width=&quot;567&quot; data-origin-height=&quot;1100&quot;/&gt;&lt;/span&gt;&lt;span class=&quot;image-wrap &quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/TPMHf/btsJ33regSP/T3692gDdcM5fx6bW4iNqRK/img.png&quot; data-url=&quot;https://blog.kakaocdn.net/dn/TPMHf/btsJ33regSP/T3692gDdcM5fx6bW4iNqRK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/TPMHf/btsJ33regSP/T3692gDdcM5fx6bW4iNqRK/img.png&quot; loading=&quot;lazy&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FTPMHf%2FbtsJ33regSP%2FT3692gDdcM5fx6bW4iNqRK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; data-origin-width=&quot;567&quot; data-origin-height=&quot;1100&quot;/&gt;&lt;/span&gt;&lt;span class=&quot;image-wrap &quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ceYUAn/btsJ4tXaB1p/N4Q7qPSIFRAF67O9Al0y9K/img.png&quot; data-url=&quot;https://blog.kakaocdn.net/dn/ceYUAn/btsJ4tXaB1p/N4Q7qPSIFRAF67O9Al0y9K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ceYUAn/btsJ4tXaB1p/N4Q7qPSIFRAF67O9Al0y9K/img.png&quot; loading=&quot;lazy&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FceYUAn%2FbtsJ4tXaB1p%2FN4Q7qPSIFRAF67O9Al0y9K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; data-origin-width=&quot;567&quot; data-origin-height=&quot;1100&quot;/&gt;&lt;/span&gt;&lt;span class=&quot;image-wrap &quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bmvHXW/btsJ2VVArXa/MOw8pTlCwkUqvJy80ryfI1/img.png&quot; data-url=&quot;https://blog.kakaocdn.net/dn/bmvHXW/btsJ2VVArXa/MOw8pTlCwkUqvJy80ryfI1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bmvHXW/btsJ2VVArXa/MOw8pTlCwkUqvJy80ryfI1/img.png&quot; loading=&quot;lazy&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbmvHXW%2FbtsJ2VVArXa%2FMOw8pTlCwkUqvJy80ryfI1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; data-origin-width=&quot;567&quot; data-origin-height=&quot;1100&quot;/&gt;&lt;/span&gt;&lt;span class=&quot;image-wrap &quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ciYar3/btsJ3QlpNUH/VYpQ60CNvXAFDad9BxdrKk/img.png&quot; data-url=&quot;https://blog.kakaocdn.net/dn/ciYar3/btsJ3QlpNUH/VYpQ60CNvXAFDad9BxdrKk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ciYar3/btsJ3QlpNUH/VYpQ60CNvXAFDad9BxdrKk/img.png&quot; loading=&quot;lazy&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FciYar3%2FbtsJ3QlpNUH%2FVYpQ60CNvXAFDad9BxdrKk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; data-origin-width=&quot;567&quot; data-origin-height=&quot;1100&quot;/&gt;&lt;/span&gt;&lt;span class=&quot;image-wrap &quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/crRYgO/btsJ4Li5i1q/NPQokdNvbAKTAlKGKKWaj0/img.png&quot; data-url=&quot;https://blog.kakaocdn.net/dn/crRYgO/btsJ4Li5i1q/NPQokdNvbAKTAlKGKKWaj0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/crRYgO/btsJ4Li5i1q/NPQokdNvbAKTAlKGKKWaj0/img.png&quot; loading=&quot;lazy&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcrRYgO%2FbtsJ4Li5i1q%2FNPQokdNvbAKTAlKGKKWaj0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; data-origin-width=&quot;567&quot; data-origin-height=&quot;1100&quot;/&gt;&lt;/span&gt;&lt;span class=&quot;image-wrap &quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qxMfR/btsJ34jm6HC/74FiEnKCK9rsaclCloLZwK/img.png&quot; data-url=&quot;https://blog.kakaocdn.net/dn/qxMfR/btsJ34jm6HC/74FiEnKCK9rsaclCloLZwK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qxMfR/btsJ34jm6HC/74FiEnKCK9rsaclCloLZwK/img.png&quot; loading=&quot;lazy&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqxMfR%2FbtsJ34jm6HC%2F74FiEnKCK9rsaclCloLZwK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; data-origin-width=&quot;567&quot; data-origin-height=&quot;1100&quot;/&gt;&lt;/span&gt;&lt;span class=&quot;image-wrap &quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/zvILn/btsJ3InAfUZ/gt8ltGfIsFjEKZLFxK9qT0/img.png&quot; data-url=&quot;https://blog.kakaocdn.net/dn/zvILn/btsJ3InAfUZ/gt8ltGfIsFjEKZLFxK9qT0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/zvILn/btsJ3InAfUZ/gt8ltGfIsFjEKZLFxK9qT0/img.png&quot; loading=&quot;lazy&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FzvILn%2FbtsJ3InAfUZ%2Fgt8ltGfIsFjEKZLFxK9qT0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; data-origin-width=&quot;567&quot; data-origin-height=&quot;1100&quot;/&gt;&lt;/span&gt;&lt;span class=&quot;image-wrap &quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/7gFpe/btsJ3ZI3iYw/DvbMkfTdFtGo4qYpF6ddr0/img.png&quot; data-url=&quot;https://blog.kakaocdn.net/dn/7gFpe/btsJ3ZI3iYw/DvbMkfTdFtGo4qYpF6ddr0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/7gFpe/btsJ3ZI3iYw/DvbMkfTdFtGo4qYpF6ddr0/img.png&quot; loading=&quot;lazy&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F7gFpe%2FbtsJ3ZI3iYw%2FDvbMkfTdFtGo4qYpF6ddr0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; data-origin-width=&quot;567&quot; data-origin-height=&quot;1100&quot;/&gt;&lt;/span&gt;&lt;span class=&quot;image-wrap &quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qlUVC/btsJ21OIvJr/lGmBntPrYgbsO4byQnPISK/img.png&quot; data-url=&quot;https://blog.kakaocdn.net/dn/qlUVC/btsJ21OIvJr/lGmBntPrYgbsO4byQnPISK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qlUVC/btsJ21OIvJr/lGmBntPrYgbsO4byQnPISK/img.png&quot; loading=&quot;lazy&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqlUVC%2FbtsJ21OIvJr%2FlGmBntPrYgbsO4byQnPISK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; data-origin-width=&quot;567&quot; data-origin-height=&quot;1100&quot;/&gt;&lt;/span&gt;&lt;span class=&quot;image-wrap &quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bzvK5H/btsJ4MoLhXo/9rYQn0U4NBHa42nWj0nzcK/img.png&quot; data-url=&quot;https://blog.kakaocdn.net/dn/bzvK5H/btsJ4MoLhXo/9rYQn0U4NBHa42nWj0nzcK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bzvK5H/btsJ4MoLhXo/9rYQn0U4NBHa42nWj0nzcK/img.png&quot; loading=&quot;lazy&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbzvK5H%2FbtsJ4MoLhXo%2F9rYQn0U4NBHa42nWj0nzcK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; data-origin-width=&quot;567&quot; data-origin-height=&quot;1100&quot;/&gt;&lt;/span&gt;&lt;button class=&quot;btn btn-prev&quot;&gt;&lt;span class=&quot;ico-prev&quot;&gt;이전&lt;/span&gt;&lt;/button&gt;&lt;button class=&quot;btn btn-next&quot;&gt;&lt;span class=&quot;ico-next&quot;&gt;다음&lt;/span&gt;&lt;/button&gt;&lt;/div&gt;
  &lt;div class=&quot;mark&quot;&gt;&lt;span data-index=&quot;0&quot;&gt;0&lt;/span&gt;&lt;span data-index=&quot;1&quot;&gt;1&lt;/span&gt;&lt;span data-index=&quot;2&quot;&gt;2&lt;/span&gt;&lt;span data-index=&quot;3&quot;&gt;3&lt;/span&gt;&lt;span data-index=&quot;4&quot;&gt;4&lt;/span&gt;&lt;span data-index=&quot;5&quot;&gt;5&lt;/span&gt;&lt;span data-index=&quot;6&quot;&gt;6&lt;/span&gt;&lt;span data-index=&quot;7&quot;&gt;7&lt;/span&gt;&lt;span data-index=&quot;8&quot;&gt;8&lt;/span&gt;&lt;span data-index=&quot;9&quot;&gt;9&lt;/span&gt;&lt;span data-index=&quot;10&quot;&gt;10&lt;/span&gt;&lt;span data-index=&quot;11&quot;&gt;11&lt;/span&gt;&lt;span data-index=&quot;12&quot;&gt;12&lt;/span&gt;&lt;span data-index=&quot;13&quot;&gt;13&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Music&amp;nbsp;by:&amp;nbsp;&lt;a href=&quot;https://www.bensound.com&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.bensound.com&lt;/a&gt;&lt;br /&gt;License&amp;nbsp;code:&amp;nbsp;IGNODZQPN4737VAX&lt;/p&gt;</description>
      <category>게임&amp;amp;애니</category>
      <category>디아블로 #디아블로4 #디아4 #시즌6 #확장팩 #드루이드 #드루 #암석폭발 #암폭드루 #스킬트리 #장비 #위상 #정복자 #diablo4 #druid</category>
      <author>tedhong</author>
      <guid isPermaLink="true">https://tedhome.tistory.com/121</guid>
      <comments>https://tedhome.tistory.com/121#entry121comment</comments>
      <pubDate>Sat, 12 Oct 2024 15:48:13 +0900</pubDate>
    </item>
    <item>
      <title>Mac 에서 KensingtonWorks&amp;nbsp;설치 시 권한 문제 해결</title>
      <link>https://tedhome.tistory.com/120</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;새로운 맥을 구입해서 KensingtonWorks 를 설치하는데&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;개인정보 보호 및 보안으로 가서 권한을 주라는 팝업이 뜬다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;문제는 손쉬운 사용과 전체 디스크 접근 권한을 추가 했는데도 계속 뜬다는 점이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;해결 방법을 찾다가 못찾아서 Uninstall 하고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Karabiner 로 버튼 매핑을 해서 쓰려고 설치하다보니&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;일반 - 드라이버 확장 프로그램&lt;/b&gt;에 KensingtonWorks 항목이 있길래&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;혹시나 하고 체크했더니&amp;nbsp;설치 성공... ;;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Karabiner 는 친절하게 스크린샷 까지 보여주며 안내를 해주는데&lt;/p&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;아.. 혹시 Karabiner 를 쓰라는 켄싱턴의 큰 그림인가?;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2024-10-10 오전 10.28.41.png&quot; data-origin-width=&quot;1400&quot; data-origin-height=&quot;616&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b5ix1V/btsJZqAysDx/OyBYJT1XJJbd95LFRhJSa1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b5ix1V/btsJZqAysDx/OyBYJT1XJJbd95LFRhJSa1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b5ix1V/btsJZqAysDx/OyBYJT1XJJbd95LFRhJSa1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb5ix1V%2FbtsJZqAysDx%2FOyBYJT1XJJbd95LFRhJSa1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1400&quot; height=&quot;616&quot; data-filename=&quot;스크린샷 2024-10-10 오전 10.28.41.png&quot; data-origin-width=&quot;1400&quot; data-origin-height=&quot;616&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2024-10-10 오전 10.29.09.png&quot; data-origin-width=&quot;1316&quot; data-origin-height=&quot;1096&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cnRXWu/btsJ0BgL2ch/IkuxUhS3lGGmuJja9GNqG0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cnRXWu/btsJ0BgL2ch/IkuxUhS3lGGmuJja9GNqG0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cnRXWu/btsJ0BgL2ch/IkuxUhS3lGGmuJja9GNqG0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcnRXWu%2FbtsJ0BgL2ch%2FIkuxUhS3lGGmuJja9GNqG0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1316&quot; height=&quot;1096&quot; data-filename=&quot;스크린샷 2024-10-10 오전 10.29.09.png&quot; data-origin-width=&quot;1316&quot; data-origin-height=&quot;1096&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>일상</category>
      <category>kensingtonworks #mac #권한 #설치</category>
      <author>tedhong</author>
      <guid isPermaLink="true">https://tedhome.tistory.com/120</guid>
      <comments>https://tedhome.tistory.com/120#entry120comment</comments>
      <pubDate>Thu, 10 Oct 2024 10:43:15 +0900</pubDate>
    </item>
    <item>
      <title>애플 Vision Pro 세미나 후기</title>
      <link>https://tedhome.tistory.com/119</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;모두의 연구소에서 진행 한 '애플 Vision Pro 상세 기술 설명 &amp;amp; SW 개발 튜토리얼' 세미나에 다녀왔습니다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-09-06 132208.png&quot; data-origin-width=&quot;650&quot; data-origin-height=&quot;685&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/FmU6O/btss700aAwK/HnqtcCUIcQAS3DSuIeoMvk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/FmU6O/btss700aAwK/HnqtcCUIcQAS3DSuIeoMvk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/FmU6O/btss700aAwK/HnqtcCUIcQAS3DSuIeoMvk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFmU6O%2Fbtss700aAwK%2FHnqtcCUIcQAS3DSuIeoMvk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;650&quot; height=&quot;685&quot; data-filename=&quot;스크린샷 2023-09-06 132208.png&quot; data-origin-width=&quot;650&quot; data-origin-height=&quot;685&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;1693909447893792.jpg&quot; data-origin-width=&quot;839&quot; data-origin-height=&quot;629&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/IMyIA/btsteAeSy3j/fXEoinAl4LVuzSzHifKD7k/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/IMyIA/btsteAeSy3j/fXEoinAl4LVuzSzHifKD7k/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/IMyIA/btsteAeSy3j/fXEoinAl4LVuzSzHifKD7k/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FIMyIA%2FbtsteAeSy3j%2FfXEoinAl4LVuzSzHifKD7k%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;839&quot; height=&quot;629&quot; data-filename=&quot;1693909447893792.jpg&quot; data-origin-width=&quot;839&quot; data-origin-height=&quot;629&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1시간이 좀 넘는 시간동안 비전 프로에 대한 이야기를 들을 수 있었는데요&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;한 줄로 요약하면 비전프로는 애플이 작정하고 만든 진짜 좋은 기기라는 겁니다. ㅎㅎ&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기억에 남는 내용들을 정리해 보면&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;비전 프로는 VR 이 아니라 AR 기기이다.&lt;/li&gt;
&lt;li&gt;LiDAR 센서와 TrueDepth 센서를 이용해 주변을 스캐닝하고 R1 칩을 이용해 공간을 재구성한다.
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;비전프로는 4K + 4K 의 해상도와 90프레임의 주사율을 가지고 있는데 이는 12ms 마다 한 번씩 랜더링을 해야 된다는 얘기이다. 비전 프로는 이것이 가능한 스펙을 갖췄다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;위에서 재구성 한 공간에 애플리케이션들과 컨텐츠들을 표현하는데 이를 공간 컴퓨팅 (Spatial Computing) 이라 부르고 비전프로는 최초의 공간 컴퓨터이다.&lt;/li&gt;
&lt;li&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;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 정도이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;비전 프로를 통해 공간 컴퓨팅이라는 개념이 확산 되면 나중에는 공간과 공간을 잇는 개념이 나오지 않을까?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;서울에 있는 사람과 뉴욕에 있는 사람이 비전 프로를 통해 각자의 공간을 만들고 그것을 연결해서 새로운 공간을 구성해 실제로는 떨어져 있지만 한 공간에 함께 있는 것 처럼 느끼게 되는 공간간의 연결...&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;재밌겠다 ㅎㅎ&lt;/p&gt;</description>
      <category>자료</category>
      <category>Apple</category>
      <category>vision_pro</category>
      <category>공간컴퓨팅</category>
      <category>비전프로</category>
      <author>tedhong</author>
      <guid isPermaLink="true">https://tedhome.tistory.com/119</guid>
      <comments>https://tedhome.tistory.com/119#entry119comment</comments>
      <pubDate>Wed, 6 Sep 2023 13:42:46 +0900</pubDate>
    </item>
    <item>
      <title>네이버클라우드 - SourcePipeline 사용하기</title>
      <link>https://tedhome.tistory.com/117</link>
      <description>&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt; &lt;b&gt;ncloud&lt;/b&gt; 에서 제공하는 CI/CD Pipeline 인 SourcePipeline 사용하여&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;Dockerfile 을 생성하고 ncloud K8S 환경에 배포하는 방법에 대해 알아봅니다.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;SourcePipeline 을 사용하면 Github Action, Gitlab CI, Jenkins, Argo 같은 프레임워크를 사용하지 않고도&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;프로젝트의 지속적인 통합 및 배포가 가능해집니다.&lt;/span&gt;&lt;/blockquote&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #fcfcfc; color: #666666; text-align: left;&quot;&gt; &lt;/span&gt;CI/CD 의 흐름은 다음과 같습니다.&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;1. SourceCommit 에 프로젝트를 Push 하면&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;2. SourceBuild 에서 해당 repository 를 끌어와 DockerImage 로 빌드하고&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;ncloud의 Container Registry 에 업로드 합니다.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;3. SourceDeploy 에서 업로드 된 DockerImage 를 ncloud Kubernetes 에 배포합니다.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;Source Pipeline 을 이용하면 이 작업을 자동화 할 수 있습니다.&lt;/b&gt;&lt;/span&gt;&lt;/blockquote&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 style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;Docker Image 의 빌드 설정은 Dockerfile,&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;프로젝트의 k8s 배포 설정 : deploy_dev.yaml (dev 버전), deploy_live.yaml (live버전)&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;서버 구동에 필요한 환경 변수는 위 yaml 파일에 선언합니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;목차&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;Source Commit 설정&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;Source Build 설정&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;Source Deploy 설정&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;Source Pipeline 설정&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;네이버 클라우드 공식 가이드 : &lt;a href=&quot;https://guide.ncloud-docs.com/docs/ko/sourcepipeline-overview&quot;&gt;SourcePipeline 개요 (ncloud-docs.com)&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h2 id=&quot;Source-Commit-(-=-git-repository)&quot; style=&quot;background-color: #ffffff; color: #172b4d; text-align: start;&quot; data-renderer-start-pos=&quot;426&quot; data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;⌨️ Source Commit ( = git 의 repository) 설정&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #172b4d; text-align: start;&quot; data-indent-level=&quot;1&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;생성&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-indent-level=&quot;2&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&amp;ldquo;+리포지토리 생성&amp;rdquo; 버튼 클릭 &amp;rarr; 필수 내용 입력 후 생성&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;git 계정/git SSH 설정&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-indent-level=&quot;2&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;PC에서 git 을 사용하기 위해 &lt;u data-renderer-mark=&quot;true&quot;&gt;password 등록&lt;/u&gt; 또는 &lt;u data-renderer-mark=&quot;true&quot;&gt;SSH 키 등록&lt;/u&gt;이 필요합니다.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;둘 중 편한 방법으로 사용하면 됩니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;password 생성&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-indent-level=&quot;3&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&amp;ldquo;GIT계정/GIT SSH 설정&amp;rdquo; 버튼 클릭&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;GIT 계정 설정 탭에서 password 입력 후 &amp;lsquo;적용&amp;rsquo;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;SSH 설정&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-indent-level=&quot;3&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;PC에서 SSH 생성 : &lt;a style=&quot;color: #000000;&quot; href=&quot;https://git-scm.com/book/ko/v2/Git-%EC%84%9C%EB%B2%84-SSH-%EA%B3%B5%EA%B0%9C%ED%82%A4-%EB%A7%8C%EB%93%A4%EA%B8%B0&quot; data-testid=&quot;link-with-safety&quot; data-renderer-mark=&quot;true&quot;&gt;SSH키 생성하기&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;GIT SSH 설정 탭 &amp;rarr; 생성된 SSH 키를 복사해서 붙여 넣기 후 등록&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;997&quot; data-origin-height=&quot;430&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nDfoO/btsjPFpItOu/XbBboh4q7Qch5EjD6BskbK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nDfoO/btsjPFpItOu/XbBboh4q7Qch5EjD6BskbK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nDfoO/btsjPFpItOu/XbBboh4q7Qch5EjD6BskbK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnDfoO%2FbtsjPFpItOu%2FXbBboh4q7Qch5EjD6BskbK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;607&quot; height=&quot;262&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;997&quot; data-origin-height=&quot;430&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;1099&quot; data-origin-height=&quot;822&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b4tYVq/btsjJU2pAr3/5HyzM6ZjMgMwoOXcK1q3s1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b4tYVq/btsjJU2pAr3/5HyzM6ZjMgMwoOXcK1q3s1/img.png&quot; data-alt=&quot;password 는 계정의 비밀번호와 별도로 관리해야 합니다.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b4tYVq/btsjJU2pAr3/5HyzM6ZjMgMwoOXcK1q3s1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb4tYVq%2FbtsjJU2pAr3%2F5HyzM6ZjMgMwoOXcK1q3s1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;632&quot; height=&quot;473&quot; data-origin-width=&quot;1099&quot; data-origin-height=&quot;822&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;password 는 계정의 비밀번호와 별도로 관리해야 합니다.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;생성한 git 리포지토리를 clone 받습니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1686704450277&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;git clone [리포지토리의 url]&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h2 id=&quot;[inlineExtension]--[hardBreak]Source-Build&quot; style=&quot;background-color: #ffffff; color: #172b4d; text-align: start;&quot; data-renderer-start-pos=&quot;1123&quot; data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;b&gt;⌨️&lt;/b&gt;Source Build 설정&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #172b4d; text-align: start;&quot; data-indent-level=&quot;1&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;repository 에 저장 된 소스 코드를 build 할 수 있는 runtime service 입니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;Object Storage 에 1개 이상의 bucket 이 필요합니다.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1627&quot; data-origin-height=&quot;85&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cTKaj1/btsjO8eMelK/oW1PkBfR7OnS2FVxlv2k6k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cTKaj1/btsjO8eMelK/oW1PkBfR7OnS2FVxlv2k6k/img.png&quot; data-alt=&quot;Source Build는 총 6단계로 구성되어 있습니다.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cTKaj1/btsjO8eMelK/oW1PkBfR7OnS2FVxlv2k6k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcTKaj1%2FbtsjO8eMelK%2FoW1PkBfR7OnS2FVxlv2k6k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1627&quot; height=&quot;85&quot; data-origin-width=&quot;1627&quot; data-origin-height=&quot;85&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Source Build는 총 6단계로 구성되어 있습니다.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #172b4d; text-align: start;&quot; data-indent-level=&quot;1&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;기본 설정 : 필수 항목을 작성합니다.&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;빌드 대상은 SourceCommit 으로 하고 리파지토리와 브랜치를 원하는 대상으로 설정합니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1054&quot; data-origin-height=&quot;751&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/zD5uC/btsjPqMXDqz/4dGwHMK2jKOU5I4qLLHrR0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/zD5uC/btsjPqMXDqz/4dGwHMK2jKOU5I4qLLHrR0/img.png&quot; data-alt=&quot;빌드 대상은 SourceCommit 으로 하고 리파지토리와 브랜치를 원하는 대상으로 설정합니다.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/zD5uC/btsjPqMXDqz/4dGwHMK2jKOU5I4qLLHrR0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FzD5uC%2FbtsjPqMXDqz%2F4dGwHMK2jKOU5I4qLLHrR0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;607&quot; height=&quot;433&quot; data-origin-width=&quot;1054&quot; data-origin-height=&quot;751&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;빌드 대상은 SourceCommit 으로 하고 리파지토리와 브랜치를 원하는 대상으로 설정합니다.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #172b4d; text-align: start;&quot; data-indent-level=&quot;1&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;빌드 환경 설정&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;SourceBuild 에서 사옹할 빌드 머신의 사양과 환경을 정합니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;여기서는 Spring 프로젝트를 빌드할 것이기 때문에 빌드 런타임으로 java 를 선택했습니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;도커이미지빌드 : 도커 명령어를 이용하여 이미지를 만들 것이기 때문에 체크합니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1861&quot; data-origin-height=&quot;840&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dNcHNw/btsjOoWH7Ax/MLqLhigHZ7x5ZxoEZNssEk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dNcHNw/btsjOoWH7Ax/MLqLhigHZ7x5ZxoEZNssEk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dNcHNw/btsjOoWH7Ax/MLqLhigHZ7x5ZxoEZNssEk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdNcHNw%2FbtsjOoWH7Ax%2FMLqLhigHZ7x5ZxoEZNssEk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1861&quot; height=&quot;840&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1861&quot; data-origin-height=&quot;840&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;빌드 명령어 설정&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;빌드 전 명령어&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;maven 을 이용해 빌드할 것이므로 mvn 버전을 체크하고&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;docker login 을 이용해 container registry 에 로그인 합니다. (image 업로드를 위해)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;네이버 클라우드 플랫폼에 생성된 레지스트리에 로그인 하기 위해서는 &lt;/span&gt;API 인증키가 필요하며, &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;Username에 Access Key Id를 Password에 Secret Key를 사용해주세요. &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;(계정 프로필에서 확인 가능합니다.)&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1686705579298&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;echo build_start
mvn -version
docker login -u {ACCESS KEY} -p {SECRET_KEY} registry-hc.kr.ncr.ntruss.com&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;빌드 명령어&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1686706692814&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;mvn clean package
cd target // target 폴더로 이동
FILENAME=$(ls *.war) // 확장자가 war 인 파일 선택
mv $FILENAME web.war // 파일 이름 web.war 로 변경&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1519&quot; data-origin-height=&quot;1075&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dhfxWr/btsjNOneXar/IK6ZvwzLUXDjfjocNd2NhK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dhfxWr/btsjNOneXar/IK6ZvwzLUXDjfjocNd2NhK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dhfxWr/btsjNOneXar/IK6ZvwzLUXDjfjocNd2NhK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdhfxWr%2FbtsjNOneXar%2FIK6ZvwzLUXDjfjocNd2NhK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1519&quot; height=&quot;1075&quot; data-origin-width=&quot;1519&quot; data-origin-height=&quot;1075&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;업로드 설정&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;빌드 결과물 : 결과물을 Object Storage 에 저장합니다. (빌드 한 파일 저장이 필요 없다면 생략 가능)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;빌드 결과물 경로 : 이전 단계의 빌드 명령어에서 지정한 빌드 파일 생성 경로 입니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;업로드 할 Object Storage : Object Storage 선택&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;Obejct Storage 폴더 경로 : 빌드 파일이 저장 될 경로&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;저장될 파일 이름 :: 저장될 파일 명&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;결과물 백업 : 백업 사용 여부 적용&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1471&quot; data-origin-height=&quot;835&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/zdM8T/btsjR8dzmMz/k9BIwl2qdZOF7SQhHvQtWK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/zdM8T/btsjR8dzmMz/k9BIwl2qdZOF7SQhHvQtWK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/zdM8T/btsjR8dzmMz/k9BIwl2qdZOF7SQhHvQtWK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FzdM8T%2FbtsjR8dzmMz%2Fk9BIwl2qdZOF7SQhHvQtWK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;835&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1471&quot; data-origin-height=&quot;835&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;ℹ️ 빌드 완료 후 이미지 업로드 설정&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&amp;gt; 이미지 저장에 체크하면 빌드 환경 자체를 도커 이미지로 만들어 Container Registry 에 업로드 할 수 있습니다.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이후 빌드 설정 변경을 통해 [빌드 환경 설정 - 빌드 환경 이미지 - Container Registry 이미지] 로 체크하면&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;환경 이미지를 불러와 사용할 수 있고 이를 통해 빌드 시간을 줄일 수 있습니다.&lt;/span&gt;&lt;/blockquote&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-pm-slice=&quot;3 1 []&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;추가 상품 연동&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;- Cloud Log Analytics 연동 여부 설정&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;- File Safer 연동 여부 설정&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;최종 확인&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;- 설정한 내용 확인 후 &amp;lsquo;생성&amp;rsquo;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&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;style3&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;빌드 테스트&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;빌드 시작하기를 눌러서 빌드를 진행하고&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;Object Stroage 에 업로드가 잘 되어있는지 확인하거나&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;Container Registry 에 이미지가 제대로 업로드가 되었는지 확인합니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div data-node-type=&quot;mediaSingle&quot; data-layout=&quot;center&quot; data-width=&quot;&quot; data-pm-slice=&quot;0 0 []&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1495&quot; data-origin-height=&quot;688&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bkXOnf/btsjWqkqdpL/dDmjOk6VhatUynCNnrgDZ0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bkXOnf/btsjWqkqdpL/dDmjOk6VhatUynCNnrgDZ0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bkXOnf/btsjWqkqdpL/dDmjOk6VhatUynCNnrgDZ0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbkXOnf%2FbtsjWqkqdpL%2FdDmjOk6VhatUynCNnrgDZ0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;754&quot; height=&quot;347&quot; data-origin-width=&quot;1495&quot; data-origin-height=&quot;688&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h2 id=&quot;Source-Commit-(-=-git-repository)&quot; style=&quot;background-color: #ffffff; color: #172b4d; text-align: start;&quot; data-renderer-start-pos=&quot;426&quot; data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;⌨️ &lt;/b&gt;&lt;b&gt;Source Deploy 설정&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;Source Deploy 는 K8S 클러스터에 배포하는 방법과 VPC 에 배포하는 방법이 있습니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;Kubernetes Cluster 에 배포하기&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;기본 설정 - 배포 프로젝트 생성 후 프로젝트 이름 입력&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;배포 환경 설정&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;배포 할 stage 선택 후 설정에 체크&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;배포 타겟 - Kubetnetes Service 선택&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;배포 할 클러스터 선택&lt;/span&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/yGpGY/btsjPFQSMPv/TK57kdgKTVkPjOTVKs0Ap1/img.png&quot; width=&quot;760&quot; height=&quot;426&quot; data-origin-width=&quot;1562&quot; data-origin-height=&quot;875&quot; data-is-animation=&quot;false&quot; data-filename=&quot;blob&quot; /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;배포 프로젝트 생성&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;생성 된 프로젝트 선택&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;배포 시나리오 생성&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;하단 배포 시나리오 -&amp;gt; 생성 클릭&lt;/span&gt;&lt;br /&gt;&lt;img style=&quot;text-align: center; caret-color: transparent; letter-spacing: 0px;&quot; src=&quot;https://blog.kakaocdn.net/dn/l3m9m/btsjRWYNb30/xBGOIikbIXittGAkXEkUyK/img.png&quot; width=&quot;251&quot; height=&quot;294&quot; data-origin-width=&quot;531&quot; data-origin-height=&quot;622&quot; data-is-animation=&quot;false&quot; data-filename=&quot;blob&quot; /&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;기본 설정 - 시나리오 이름 설정&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;리포지토리 선택 - K8S 용 설정 파일 경로 추가&amp;nbsp;&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이 예제에서는 프로젝트의 root 경로에 yaml 파일이 있기 때문에 './deploy.yaml'이라고 입력&lt;/span&gt;&lt;img style=&quot;text-align: center; caret-color: transparent; letter-spacing: 0px;&quot; src=&quot;https://blog.kakaocdn.net/dn/cA7Wdm/btsjRmKadKW/Vpz63KkmNRz3AIkKYjZ6u1/img.png&quot; width=&quot;710&quot; height=&quot;217&quot; data-origin-width=&quot;1984&quot; data-origin-height=&quot;606&quot; data-is-animation=&quot;false&quot; /&gt;&lt;/li&gt;
&lt;li data-pm-slice=&quot;2 2 [&amp;quot;bulletList&amp;quot;,null,&amp;quot;listItem&amp;quot;,null,&amp;quot;bulletList&amp;quot;,null]&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;배포가 진행되면 해당 리포지토리 내부의 ./ 경로에서 deploy.yaml 파일을 가져와 kubectl apply 를 진행합니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;ℹ️ SourceDeploy에서 지원하는 Kubernetes Object는 Pod, Deployment, ReplicaSet, ReplicationController, Service 입니다. &lt;a href=&quot;https://guide.ncloud-docs.com/docs/devtools-devtools-4-3&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://guide.ncloud-docs.com/docs/devtools-devtools-4-3&lt;/a&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;h4 data-pm-slice=&quot;1 1 []&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;VPC(Server) 에 배포하기&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-pm-slice=&quot;3 3 []&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;일반적인 VPC 서버에 war 파일을 배포하는 방법입니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;Source Deploy Agent 설치&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;SourceDeploy 를 사용하기 위해서는 서버에 Agent 를 설치해야 합니다. &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;(참고 : &lt;a href=&quot;https://guide.ncloud-docs.com/docs/devtools-devtools-4-4#%EC%97%90%EC%9D%B4%EC%A0%84%ED%8A%B8%EC%84%A4%EC%B9%98&quot;&gt;에이전트 설치 및 관리 - SourceDeploy 사용 (ncloud-docs.com)&lt;/a&gt; )&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;API KEY 생성 &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;- 마이페이지 &amp;rarr; 계정관리 &amp;rarr; 인증키 관리에서 &amp;lsquo;신규 API 인증키 생성' 클릭&lt;/span&gt;&lt;img style=&quot;text-align: center; caret-color: transparent; letter-spacing: 0px;&quot; src=&quot;https://blog.kakaocdn.net/dn/clfwo9/btsjO3YPhaD/n2YBsqobIKIJ6OvQZmIcnk/img.png&quot; width=&quot;686&quot; height=&quot;140&quot; data-origin-width=&quot;1506&quot; data-origin-height=&quot;307&quot; data-is-animation=&quot;false&quot; /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;span style=&quot;caret-color: auto; letter-spacing: 0px;&quot;&gt;&amp;nbsp; &amp;nbsp;2. 서버 shell 에 설치 명령어 입력&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1686716463878&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;echo $'NCP_ACCESS_KEY=accesskey\nNCP_SECRET_KEY=secretkey' &amp;gt; /opt/NCP_AUTH_KEY
chmod 400 /opt/NCP_AUTH_KEY
wget  Agent https://sourcedeploy-agent.apigw.ntruss.com/agent/v2/download/install
chmod 755 install
./install
rm -rf install&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&amp;nbsp; &amp;nbsp; - accesskey 에 Access Key ID secretkey 에 Secret Key 입력&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&amp;nbsp; &amp;nbsp;3. 배포 설정&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-pm-slice=&quot;1 1 [&amp;quot;bulletList&amp;quot;,null,&amp;quot;listItem&amp;quot;,null]&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;배포 프로젝트 생성&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-pm-slice=&quot;1 1 [&amp;quot;bulletList&amp;quot;,null,&amp;quot;listItem&amp;quot;,null]&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;기본 설정&lt;/span&gt;&lt;br /&gt;&lt;img style=&quot;text-align: center; caret-color: transparent; letter-spacing: 0px;&quot; src=&quot;https://blog.kakaocdn.net/dn/cIX1qh/btsjPKLEGZj/4o3zEgnkqeI0TFuKfLNw70/img.png&quot; width=&quot;604&quot; height=&quot;307&quot; data-origin-width=&quot;1123&quot; data-origin-height=&quot;571&quot; data-is-animation=&quot;false&quot; /&gt;&lt;/li&gt;
&lt;li data-pm-slice=&quot;1 1 [&amp;quot;bulletList&amp;quot;,null,&amp;quot;listItem&amp;quot;,null]&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;배포 환경 설정&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-pm-slice=&quot;1 1 [&amp;quot;bulletList&amp;quot;,null,&amp;quot;listItem&amp;quot;,null]&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;배포 타겟 - Server&lt;/span&gt;&lt;/li&gt;
&lt;li data-pm-slice=&quot;1 1 [&amp;quot;bulletList&amp;quot;,null,&amp;quot;listItem&amp;quot;,null]&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;서버 목록이 나오면 배포할 서버를 선택 후 &amp;gt; 클릭하여 적용 서버 쪽으로 옮기기&lt;/span&gt;&lt;br /&gt;&lt;img style=&quot;text-align: center; caret-color: transparent; letter-spacing: 0px;&quot; src=&quot;https://blog.kakaocdn.net/dn/bgi896/btsjXH7D1ny/5kUmgBGo4qk4iY8YVCWDj1/img.png&quot; width=&quot;600&quot; height=&quot;319&quot; data-origin-width=&quot;1795&quot; data-origin-height=&quot;955&quot; data-is-animation=&quot;false&quot; /&gt;&lt;/li&gt;
&lt;li data-pm-slice=&quot;1 1 [&amp;quot;bulletList&amp;quot;,null,&amp;quot;listItem&amp;quot;,null]&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;최종 확인 - 배포 프로젝트 생성&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;배포 시나리오 생성&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;기본 설정&lt;/span&gt;&lt;br /&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mhXsx/btsjXv0EOXV/e1ovr844VwafOrmdsy88Fk/img.png&quot; width=&quot;449&quot; height=&quot;394&quot; data-origin-width=&quot;785&quot; data-origin-height=&quot;688&quot; data-is-animation=&quot;false&quot; /&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;배포 전략 설정&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;기본 적인 순차 배포 선택&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;배포 파일 설정&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;배포 파일은 이전에 Source Build 를 통해 빌드 해서 Object Storage 에 저장된 파일을 선택 하거나&lt;/span&gt;&lt;img style=&quot;text-align: center; caret-color: transparent; letter-spacing: 0px;&quot; src=&quot;https://blog.kakaocdn.net/dn/Qohx5/btsjO1UH8zj/zKWlJgjcsLVudSz3pn1Xok/img.png&quot; width=&quot;576&quot; height=&quot;396&quot; data-origin-width=&quot;1516&quot; data-origin-height=&quot;1041&quot; data-is-animation=&quot;false&quot; /&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;Source Build 의 빌드 프로젝트를 선택하는 방법이 있습니다.&lt;/span&gt;&lt;br /&gt;&lt;img style=&quot;text-align: center; caret-color: transparent; letter-spacing: 0px;&quot; src=&quot;https://blog.kakaocdn.net/dn/9Vhrk/btsjO2MLqeu/0TM66x2iVJ0kqAK9ezg4sK/img.png&quot; width=&quot;539&quot; height=&quot;166&quot; data-origin-width=&quot;997&quot; data-origin-height=&quot;307&quot; data-is-animation=&quot;false&quot; /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;배포 테스트 하기&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;배포 프로로젝트 선택&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;배포로 이동 클릭&lt;/span&gt;&lt;br /&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/xGHEG/btsjO80Hry8/ITWdUVtIZgsWsAaMBtLa9k/img.png&quot; width=&quot;384&quot; height=&quot;224&quot; data-origin-width=&quot;772&quot; data-origin-height=&quot;450&quot; data-is-animation=&quot;false&quot; /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;배포 프로세스 선택 -&amp;gt; 배포 시작하기 클릭&lt;/span&gt;&lt;img style=&quot;text-align: center; caret-color: transparent; letter-spacing: 0px;&quot; src=&quot;https://blog.kakaocdn.net/dn/b4TLOM/btsjRiBe2u2/dWMSfu53lLKBgfuiMG6Dpk/img.png&quot; data-origin-width=&quot;1805&quot; data-origin-height=&quot;414&quot; data-is-animation=&quot;false&quot; /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;배포 결과 확인&lt;/span&gt;&lt;img style=&quot;text-align: center; caret-color: transparent; letter-spacing: 0px;&quot; src=&quot;https://blog.kakaocdn.net/dn/Ddk6k/btsjQhbuQog/El36LZKgGFxRTafdJ2MSYK/img.png&quot; data-origin-width=&quot;1804&quot; data-origin-height=&quot;799&quot; data-is-animation=&quot;false&quot; /&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;&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;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;⌨️&amp;nbsp;Source Pipeline 설정&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이제 Source Commit 에 코드가 Push 되면 Source Build 를 통해 자동으로 프로젝트가 빌드되고&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;Source Deploy 에서 자동으로 배포 되게 해보겠습니다.&lt;/span&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;파이프라인 생성&lt;/b&gt;&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;파이프라인 생성 버튼 클릭&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;기본 정보 입력&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;Phase 추가&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;빌드&lt;/span&gt;&lt;br /&gt;&lt;img style=&quot;text-align: center; caret-color: transparent; letter-spacing: 0px;&quot; src=&quot;https://blog.kakaocdn.net/dn/bNOj7G/btsjRWShC0E/wH73u2TifOXkWwlzEoHqK0/img.png&quot; width=&quot;486&quot; height=&quot;349&quot; data-origin-width=&quot;1072&quot; data-origin-height=&quot;770&quot; data-is-animation=&quot;false&quot; /&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;배포&lt;/span&gt;&lt;br /&gt;&lt;img style=&quot;text-align: center; caret-color: transparent; letter-spacing: 0px;&quot; src=&quot;https://blog.kakaocdn.net/dn/ky4Vr/btsjRmKq4hO/q5k2IAgTDk9LCx11IsF8e1/img.png&quot; width=&quot;492&quot; height=&quot;383&quot; data-origin-width=&quot;1059&quot; data-origin-height=&quot;824&quot; data-is-animation=&quot;false&quot; /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;스테이지 구성&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;SourcePipeline 에서는 Node(Phase)를 추가하고 연결하는 방식으로&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;편리하게 스테이지를 구성할 수 있습니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;진행 순서는 Build - Deploy 이기 때문에 먼저 위에서 추가한 Build Phase 를 스테이지에 추가합니다.&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;첫 실행 되는 Node 는 선행작업이 없으므로 &amp;lt;+&amp;gt; 버튼을 클릭하여 선행 작업 없음을 체크합니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;다음에 실행 될 Deploy Phase 는 선행 작업이있으므로 &amp;lt;+&amp;gt; 버튼 클릭 후 선행 작업으로 Build Phase 를 서낵해 줍니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1643&quot; data-origin-height=&quot;886&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/yFguW/btsjRl5X1OE/c8n1Vb6Lqik4EfFShp98TK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/yFguW/btsjRl5X1OE/c8n1Vb6Lqik4EfFShp98TK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/yFguW/btsjRl5X1OE/c8n1Vb6Lqik4EfFShp98TK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FyFguW%2FbtsjRl5X1OE%2Fc8n1Vb6Lqik4EfFShp98TK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;662&quot; height=&quot;357&quot; data-origin-width=&quot;1643&quot; data-origin-height=&quot;886&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;Trigger 설정&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;지정한 이벤트가 발생하면 Pipeline 동작시키는 trigger 를 지정하는 기능입니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;일반적으로는 특정 브랜치를 지정해두고 브랜치에 소스가 push 되는 것을 trigger 로 지정합니다.&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;테스트&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;위 그림에서는 sample1 이라는 리포지토리의 master 브랜치로 지정되었기 때문에&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;master 브랜치에 새로운 코드가 올라오게 되면 자동으로 파이프라인이 실행됩니다.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1799&quot; data-origin-height=&quot;478&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cQR8Ly/btsjXVkTTdT/P8aKY7k1LPkHMtPm6A9mN1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cQR8Ly/btsjXVkTTdT/P8aKY7k1LPkHMtPm6A9mN1/img.png&quot; data-alt=&quot;먼저 Build Phase 가 실행됩니다.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cQR8Ly/btsjXVkTTdT/P8aKY7k1LPkHMtPm6A9mN1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcQR8Ly%2FbtsjXVkTTdT%2FP8aKY7k1LPkHMtPm6A9mN1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1799&quot; height=&quot;478&quot; data-origin-width=&quot;1799&quot; data-origin-height=&quot;478&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;먼저 Build Phase 가 실행됩니다.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1832&quot; data-origin-height=&quot;496&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/taV4I/btsjPqfWZDO/xukuSuFleGKbW3sgwiW4s0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/taV4I/btsjPqfWZDO/xukuSuFleGKbW3sgwiW4s0/img.png&quot; data-alt=&quot;Build 가 성공하면 Deploy Phase 가 실행됩니다.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/taV4I/btsjPqfWZDO/xukuSuFleGKbW3sgwiW4s0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FtaV4I%2FbtsjPqfWZDO%2FxukuSuFleGKbW3sgwiW4s0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1832&quot; height=&quot;496&quot; data-origin-width=&quot;1832&quot; data-origin-height=&quot;496&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Build 가 성공하면 Deploy Phase 가 실행됩니다.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;ℹ️ Build 나 Deploy 가 실패한 경우에는 해당 서비스 항목에 있는 로그를 통해 오류 내역을 확인 할 수 있습니다.&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&amp;lt;fin&amp;gt;&lt;/span&gt;&lt;/p&gt;</description>
      <category>프로그래밍</category>
      <author>tedhong</author>
      <guid isPermaLink="true">https://tedhome.tistory.com/117</guid>
      <comments>https://tedhome.tistory.com/117#entry117comment</comments>
      <pubDate>Wed, 14 Jun 2023 14:26:07 +0900</pubDate>
    </item>
    <item>
      <title>디아블로4 !</title>
      <link>https://tedhome.tistory.com/116</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-06-10 194620.png&quot; data-origin-width=&quot;484&quot; data-origin-height=&quot;807&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vIrz6/btsjqw6G2Dk/I4vM1yWDXAFJhcx19fBa01/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vIrz6/btsjqw6G2Dk/I4vM1yWDXAFJhcx19fBa01/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vIrz6/btsjqw6G2Dk/I4vM1yWDXAFJhcx19fBa01/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvIrz6%2Fbtsjqw6G2Dk%2FI4vM1yWDXAFJhcx19fBa01%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;484&quot; height=&quot;807&quot; data-filename=&quot;스크린샷 2023-06-10 194620.png&quot; data-origin-width=&quot;484&quot; data-origin-height=&quot;807&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;며칠간의 고민 끝에&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;설치 중...&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&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;근데 용량 85기가 ㄷㄷㄷㄷ&lt;/p&gt;</description>
      <category>일상</category>
      <category>게임</category>
      <category>디아블로4</category>
      <category>블리자드</category>
      <category>직장인</category>
      <category>취미</category>
      <author>tedhong</author>
      <guid isPermaLink="true">https://tedhome.tistory.com/116</guid>
      <comments>https://tedhome.tistory.com/116#entry116comment</comments>
      <pubDate>Sat, 10 Jun 2023 19:50:40 +0900</pubDate>
    </item>
    <item>
      <title>Springboot - TemplateInputException (Error resolving templete 오류)</title>
      <link>https://tedhome.tistory.com/115</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;local 에서 이상없이 동작하던 웹 페이지를&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;서버에서 구동시키니 에러코드 500 과 함께 이런 메세지가 출력되었습니다.&lt;/p&gt;
&lt;pre id=&quot;code_1686124999776&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;org.thymeleaf.exceptions.TemplateInputException: 
Error resolving template [/test/index], 
template might not exist or might not be accessible 
by any of the configured Template Resolvers&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;대충 경로'&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;/test/index&lt;span&gt; '&lt;/span&gt;&lt;/span&gt;에 지정된 templete 파일을 못찾는다는 얘기인데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;오류 메세지가 이게 전부라 디버깅이 어려웠습니다..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;결국 구글링으로 해결했는데요,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;원인은 Requestmapping 어노테이션이 붙어있는 Controller 함수가 return 하는&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;templete URL 이 '/' 로 시작해서였습니다.&lt;/p&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;b&gt;'&lt;/b&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;b&gt;/test/index'&lt;/b&gt;&lt;span&gt; &amp;nbsp;&lt;/span&gt;&lt;/span&gt;이걸 &lt;b&gt;'t&lt;/b&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;b&gt;est/index'&lt;/b&gt;&lt;span&gt; 이렇게 바꾸니 해결되었어요.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1686125265421&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;@RequestMapping(&quot;/getTest&quot;)
    public String index() {
        return &quot;test/index&quot;; // &amp;lt;-- 이 부분
    }&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;이유는 application.properties 에&amp;nbsp;&lt;/p&gt;
&lt;div style=&quot;background-color: #2b2b2b; color: #a9b7c6;&quot;&gt;
&lt;pre class=&quot;gradle&quot;&gt;&lt;code&gt;spring.thymeleaf.prefix=classpath:/templates/&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 설정되어 있는데 또 이렇게 &quot;/test/index&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;경로를 지정할 때 주의해야 할 점입니다.&lt;/p&gt;</description>
      <category>프로그래밍</category>
      <category>500error</category>
      <category>ErrorResolvingTemplete</category>
      <category>springboot</category>
      <category>thymeleaf</category>
      <author>tedhong</author>
      <guid isPermaLink="true">https://tedhome.tistory.com/115</guid>
      <comments>https://tedhome.tistory.com/115#entry115comment</comments>
      <pubDate>Wed, 7 Jun 2023 17:09:16 +0900</pubDate>
    </item>
    <item>
      <title>thymeleaf 의 layout:decorate 가 동작하지 않을 때</title>
      <link>https://tedhome.tistory.com/114</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;thymeleaf 의 layout:decorate 가 동작하지 않을 때는&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;보통 spring-boot-starter-thymeleaf 의존성 하나만 추가되어 있을 확률이 높습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 경우 thymeleaf-layout-dialect 의존성을 추가하면 잘 동작합니다.&lt;/p&gt;
&lt;pre id=&quot;code_1685940185761&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;dependency&amp;gt;
    &amp;lt;groupId&amp;gt;org.springframework.boot&amp;lt;/groupId&amp;gt;
    &amp;lt;artifactId&amp;gt;spring-boot-starter-thymeleaf&amp;lt;/artifactId&amp;gt;
&amp;lt;/dependency&amp;gt;

&amp;lt;dependency&amp;gt;
	&amp;lt;groupId&amp;gt;nz.net.ultraq.thymeleaf&amp;lt;/groupId&amp;gt;
	&amp;lt;artifactId&amp;gt;thymeleaf-layout-dialect&amp;lt;/artifactId&amp;gt;
&amp;lt;/dependency&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>프로그래밍</category>
      <category>decorate</category>
      <category>layout</category>
      <category>springboot</category>
      <category>thymeleaf</category>
      <author>tedhong</author>
      <guid isPermaLink="true">https://tedhome.tistory.com/114</guid>
      <comments>https://tedhome.tistory.com/114#entry114comment</comments>
      <pubDate>Mon, 5 Jun 2023 13:44:07 +0900</pubDate>
    </item>
    <item>
      <title>Springboot 와 Elasticsearch 연동하기</title>
      <link>https://tedhome.tistory.com/113</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Springboot 에서 Elasticsearch 를 연동하는 방법에 대해 알아봅니다.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h1 data-pm-slice=&quot;1 3 []&quot;&gt;버전&lt;/h1&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Java : OpenJDK 17&lt;/li&gt;
&lt;li&gt;Springboot : 3.1.0&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 data-pm-slice=&quot;1 3 []&quot;&gt;필수 의존성&lt;/h1&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;spring-boot-starter-data-elasticsearch&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;spring-boot-starter-web&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;lombok&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span&gt;클래스&lt;/span&gt;&lt;/h2&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-pm-slice=&quot;2 4 [&amp;quot;bulletList&amp;quot;,null]&quot;&gt;&lt;b&gt;프로퍼티&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;host 와 port 를 application.properties 파일에 저장합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1685694362287&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# ElasticSearch
elasticsearch.host = localhost
elasticsearch.port = 9200&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 data-pm-slice=&quot;2 4 [&amp;quot;bulletList&amp;quot;,null]&quot;&gt;&lt;b&gt;Config&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Elasticsearch Client 를 생성하는 설정 클래스입니다.&lt;/li&gt;
&lt;li&gt;application.properties 에서 host 와 port 를 가져와 RestClient 객체를 생성합니다.&lt;/li&gt;
&lt;li&gt;&lt;span&gt;ElasticSearchConfig.java&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1685694433529&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;@Configuration
@EnableElasticsearchRepositories // elasticsearch repository 허용
public class ElasticSearchConfig{
    @Value(&quot;${elasticsearch.dev.host}&quot;)
    String host;
    @Value(&quot;${elasticsearch.port}&quot;)
    int port;

    @Bean
    public RestClient getRestClient() {
        final CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
        credentialsProvider.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials(&quot;&quot;, &quot;&quot;));
        return RestClient.builder(new HttpHost(host, port))
                .setHttpClientConfigCallback(httpClientBuilder -&amp;gt; {
                    httpClientBuilder.disableAuthCaching();
                    httpClientBuilder.setDefaultHeaders(List.of(
                            new BasicHeader(
                                    HttpHeaders.CONTENT_TYPE, ContentType.APPLICATION_JSON)));
                    httpClientBuilder.addInterceptorLast((HttpResponseInterceptor)
                            (response, context) -&amp;gt;
                                    response.addHeader(&quot;X-Elastic-Product&quot;, &quot;Elasticsearch&quot;));
                    return httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider);
                }).build();
    }

    @Bean
    public ElasticsearchTransport getElasticsearchTransport() {
        return new RestClientTransport(getRestClient(), new JacksonJsonpMapper());
    }

    @Bean
    public ElasticsearchClient getElasticsearchClient() {
        return new ElasticsearchClient(getElasticsearchTransport());
    }
}&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 data-pm-slice=&quot;2 4 [&amp;quot;bulletList&amp;quot;,null]&quot;&gt;&lt;b&gt;Repository&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;ElasticsearchRepository 를 상속받는 인터페이스 입니다.&lt;br /&gt;이 인터페이스를 통해 CRUD, 검색, 페이징, 정렬등의 작업을 할 수 있습니다.&lt;br /&gt;상속시 필요한 인자 2가지는 Document 타입과 ID 의 타입 입니다.&lt;/li&gt;
&lt;li&gt;&lt;span&gt;SearchResultRepo.java&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1685694446361&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;public interface SearchResultRepo extends ElasticsearchRepository&amp;lt;SearchResultDocument, Integer&amp;gt; {
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-pm-slice=&quot;2 4 [&amp;quot;bulletList&amp;quot;,null]&quot;&gt;&lt;b&gt;Document&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;검색 결과 Document 클래스입니다.&lt;br /&gt;@Document 어노테이션에 정의된 indexName 으로 document (= database) 의 이름이 정의 되고 &lt;br /&gt;각 @Field 의 타입과 변수명으로 field (=column) 이 정의됩니다.&lt;/li&gt;
&lt;li&gt;&lt;span&gt;SearchResultDocument.java&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1685694459996&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;@Getter
@Builder
@AllArgsConstructor
@Document(indexName = &quot;search_result&quot;)
public class SearchResultDocument {
    @Id
    @Field(type = FieldType.Integer)
    private int id;
    @Field(type = FieldType.Text)
    private String keywords;
    @Field(type = FieldType.Text)
    private String resultData;

    //    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = &quot;yyyyMMdd&quot;)
    @Field(type = FieldType.Date, format = {DateFormat.date_hour_minute_second_millis, DateFormat.epoch_millis})
    private Date createDate;

}&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 data-pm-slice=&quot;2 4 [&amp;quot;bulletList&amp;quot;,null]&quot;&gt;&lt;b&gt;Service&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Service 클래스입니다.&lt;/li&gt;
&lt;li&gt;Elasticsearch 의 기능 이용을 위해 SearchResultRepo, ElasticsearchOperations 객체를 사용합니다.&lt;br /&gt;각 객체의 의존성은 Service 가 생성 될 때 주입 됩니다.&lt;/li&gt;
&lt;li&gt;&lt;span&gt;SearchResultService.java&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1685694483921&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;@Service
@RequiredArgsConstructor
@Transactional(readOnly = true)
public class SearchResultService {

    private final SearchResultRepo searchResultRepo;
    private final ElasticsearchOperations elasticsearchOperations;

    public Page&amp;lt;SearchResultDocument&amp;gt; findAll(){
        return (Page&amp;lt;SearchResultDocument&amp;gt;) searchResultRepo.findAll();
    }

    public SearchResultDocument saveResult(SearchResultDocument doc){
        return searchResultRepo.save(doc);
    }
    public Optional&amp;lt;SearchResultDocument&amp;gt; getResultById(int id){
        return searchResultRepo.findById(id);
    }

    public void deleteResult(int id){
        searchResultRepo.deleteById(id);
    }

    public void deleteResult(SearchResultDocument doc){
        searchResultRepo.delete(doc);
    }

    public List&amp;lt;SearchResultDocument&amp;gt; searchResult(String keyword) {
        IndexCoordinates indexCoordinates = IndexCoordinates.of(&quot;search_result&quot;);
        Criteria criteria = new Criteria(&quot;keywords&quot;).contains(keyword)
                .or(new Criteria(&quot;resultData&quot;).contains(keyword));
        CriteriaQuery query = new CriteriaQuery(criteria);
        SearchHits&amp;lt;SearchResultDocument&amp;gt; searchHits = elasticsearchOperations.search(query, SearchResultDocument.class, indexCoordinates);
        return searchHits.get().map(SearchHit::getContent).collect(Collectors.toList());
    }

}&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 data-pm-slice=&quot;2 4 [&amp;quot;bulletList&amp;quot;,null]&quot;&gt;&lt;b&gt;Controller&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Service 객체를 이용해 비즈니스 로직을 처리하는 Controller 클래스 입니다.&lt;/li&gt;
&lt;li&gt;RestController 로 지정되어 RESTful 하게 사용할 수 있습니다.&lt;/li&gt;
&lt;li&gt;&lt;span&gt;SearchResultController.java&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1685694517516&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;@RequiredArgsConstructor
@RequestMapping(&quot;/&quot;)
@RestController
public class SearchResultController {
    private final SearchResultService searchResultService;

    @PostMapping(&quot;/save&quot;)
    public ResponseEntity&amp;lt;SearchResultDocument&amp;gt; createSearchResult(
            @RequestParam(&quot;keywords&quot;) String keywords,
            @RequestParam(&quot;resultData&quot;) String resultData
    ) {
        SimpleDateFormat format = new SimpleDateFormat(&quot;yyyy-MM-dd hh:mm:ss.SSS&quot;);
        SearchResultDocument searchResult = null;
        try {
            searchResult = SearchResultDocument.builder()
                    .keywords(keywords)
                    .resultData(resultData)
                    .createDate(format.parse(format.format(new Date())))
                    .build();
        } catch (ParseException e) {
            System.out.println(e.toString());
        }

        SearchResultDocument createdSearchResult = searchResultService.saveResult(searchResult);
        return new ResponseEntity&amp;lt;&amp;gt;(createdSearchResult, HttpStatus.CREATED);
    }

    @GetMapping(&quot;/{id}&quot;)
    public ResponseEntity&amp;lt;SearchResultDocument&amp;gt; getSearchResultById(@PathVariable(&quot;id&quot;) int id) {
        return searchResultService.getResultById(id)
                .map(result -&amp;gt; new ResponseEntity&amp;lt;&amp;gt;(result, HttpStatus.OK))
                .orElse(new ResponseEntity&amp;lt;&amp;gt;(HttpStatus.NOT_FOUND));
    }

    @GetMapping(&quot;/findall&quot;)
    public ResponseEntity&amp;lt;Page&amp;lt;SearchResultDocument&amp;gt;&amp;gt; getAllSearchResults() {
        Page&amp;lt;SearchResultDocument&amp;gt; searchResults = searchResultService.findAll();
        return new ResponseEntity&amp;lt;&amp;gt;(searchResults, HttpStatus.OK);
    }

    @DeleteMapping(&quot;/delete/{id}&quot;)
    public ResponseEntity&amp;lt;Void&amp;gt; deleteSearchResult(@PathVariable(&quot;id&quot;) int id) {
        searchResultService.deleteResult(id);
        return new ResponseEntity&amp;lt;&amp;gt;(HttpStatus.NO_CONTENT);
    }

    @GetMapping(&quot;/search&quot;)
    public ResponseEntity&amp;lt;List&amp;lt;SearchResultDocument&amp;gt;&amp;gt; searchByKeyword(@RequestParam(&quot;keyword&quot;) String keyword) {
        List&amp;lt;SearchResultDocument&amp;gt; searchResults = searchResultService.searchResult(keyword);
        return new ResponseEntity&amp;lt;&amp;gt;(searchResults, HttpStatus.OK);
    }


}&lt;/code&gt;&lt;/pre&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;예제 코드&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;github :&amp;nbsp;&lt;a href=&quot;https://github.com/TedHong/springboot-elasticsearch&quot;&gt;TedHong/springboot-elasticsearch: Springboot 에서 Elasticsearch 연동하기 (github.com)&lt;/a&gt;&lt;/p&gt;</description>
      <category>프로그래밍</category>
      <category>ElasticSearch</category>
      <category>spring-boot-starter-data-elasticsearch #</category>
      <category>springboot</category>
      <author>tedhong</author>
      <guid isPermaLink="true">https://tedhome.tistory.com/113</guid>
      <comments>https://tedhome.tistory.com/113#entry113comment</comments>
      <pubDate>Fri, 2 Jun 2023 17:40:21 +0900</pubDate>
    </item>
  </channel>
</rss>