<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>Vintage appMaker의 Tech Blog</title>
    <link>https://vintageappmaker.tistory.com/</link>
    <description>https://github.com/VintageAppMaker
앱서비스, 외주개발(정부, 민간), 컨설팅, 강의, 심지어 H/W 유통까지 
늙어가니 &amp;quot;N잡러&amp;quot;  -1인회사</description>
    <language>ko</language>
    <pubDate>Mon, 18 May 2026 06:35:01 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>VintageappMaker</managingEditor>
    <image>
      <title>Vintage appMaker의 Tech Blog</title>
      <url>https://tistory1.daumcdn.net/tistory/4058857/attach/57e671d812664274be425c76ca472404</url>
      <link>https://vintageappmaker.tistory.com</link>
    </image>
    <item>
      <title>[유튜브 링크]  AI 에이전트 관련 교양 컨텐츠</title>
      <link>https://vintageappmaker.tistory.com/634</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure data-ke-type=&quot;video&quot; data-ke-style=&quot;alignCenter&quot; data-video-host=&quot;youtube&quot; data-video-url=&quot;https://www.youtube.com/watch?v=8VrtOkl1ztM&quot; data-video-thumbnail=&quot;https://scrap.kakaocdn.net/dn/ksu5c/dJMb84X3MlQ/Bw592Ei5pwgkYAV6dukhkK/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=224_36_1160_372,https://scrap.kakaocdn.net/dn/bmlnJy/dJMb9aKJ6bg/NKidPX6IMWBoKmphKgPktK/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=224_36_1160_372&quot; data-video-width=&quot;860&quot; data-video-height=&quot;484&quot; data-video-origin-width=&quot;860&quot; data-video-origin-height=&quot;484&quot; data-ke-mobilestyle=&quot;widthContent&quot; data-video-title=&quot;[지식뉴스] &amp;quot;올여름부터 난리가 날 겁니다&amp;quot;..AI에이전트 시대, 당신이 지금 당장 버려야 할 착각들&quot; data-original-url=&quot;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/8VrtOkl1ztM&quot; width=&quot;860&quot; height=&quot;484&quot; frameborder=&quot;&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;figcaption style=&quot;display: none;&quot;&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;1. 내용 핵심요약&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;941&quot; data-origin-height=&quot;1672&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/r1cee/dJMcahkaqKu/ch72XGjiFRvNE5Ibt8RK3K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/r1cee/dJMcahkaqKu/ch72XGjiFRvNE5Ibt8RK3K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/r1cee/dJMcahkaqKu/ch72XGjiFRvNE5Ibt8RK3K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fr1cee%2FdJMcahkaqKu%2Fch72XGjiFRvNE5Ibt8RK3K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;941&quot; height=&quot;1672&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;941&quot; data-origin-height=&quot;1672&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;941&quot; data-origin-height=&quot;1672&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cqGFOb/dJMcagyJjOi/YKYJeMOAVRkExSgwcgEvKK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cqGFOb/dJMcagyJjOi/YKYJeMOAVRkExSgwcgEvKK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cqGFOb/dJMcagyJjOi/YKYJeMOAVRkExSgwcgEvKK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcqGFOb%2FdJMcagyJjOi%2FYKYJeMOAVRkExSgwcgEvKK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;941&quot; height=&quot;1672&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;941&quot; data-origin-height=&quot;1672&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;3.png&quot; data-origin-width=&quot;941&quot; data-origin-height=&quot;1672&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Hh3IM/dJMcagyJjOs/8lCz8rTXIYCg1YMe0AjAd0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Hh3IM/dJMcagyJjOs/8lCz8rTXIYCg1YMe0AjAd0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Hh3IM/dJMcagyJjOs/8lCz8rTXIYCg1YMe0AjAd0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FHh3IM%2FdJMcagyJjOs%2F8lCz8rTXIYCg1YMe0AjAd0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;941&quot; height=&quot;1672&quot; data-filename=&quot;3.png&quot; data-origin-width=&quot;941&quot; data-origin-height=&quot;1672&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;2. 내용분석&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;_C__temp_youtube_chat_summary_20260515_071620.html.png&quot; data-origin-width=&quot;633&quot; data-origin-height=&quot;3660&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bQtUZ6/dJMcaglctI4/DyuDMkB8tGVNHZNK8K5O0K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bQtUZ6/dJMcaglctI4/DyuDMkB8tGVNHZNK8K5O0K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bQtUZ6/dJMcaglctI4/DyuDMkB8tGVNHZNK8K5O0K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbQtUZ6%2FdJMcaglctI4%2FDyuDMkB8tGVNHZNK8K5O0K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;633&quot; height=&quot;3660&quot; data-filename=&quot;_C__temp_youtube_chat_summary_20260515_071620.html.png&quot; data-origin-width=&quot;633&quot; data-origin-height=&quot;3660&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>강좌,  연재/AI 이야기</category>
      <category>ai에이전트</category>
      <author>VintageappMaker</author>
      <guid isPermaLink="true">https://vintageappmaker.tistory.com/634</guid>
      <comments>https://vintageappmaker.tistory.com/634#entry634comment</comments>
      <pubDate>Fri, 15 May 2026 07:03:31 +0900</pubDate>
    </item>
    <item>
      <title>[codex] image gen을 활용한 분필칠판 효과</title>
      <link>https://vintageappmaker.tistory.com/633</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;codex에서는 image gen을 사용할 수 있다. 그래서 chatgpt에서 사용하던 imagen 기능을 codex와 같은 프로그램 내에서 사용가능하다. 결과적으로 특정 필터의 기능을 프롬프트로 만들고 데스크탑에 있는 이미지들을 일괄적으로 필터링하여 변환할 수 있다.&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;다음은 ChatGpt에서 생성한 이미지를 &lt;u&gt;&lt;b&gt;&quot;템플릿으로 만들고자 한다. 지금의 이미지를 json 포맷으로 정의한다.&quot;&lt;/b&gt;&lt;/u&gt;와 같은 프롬프트를 실행하여 얻은 결과물이다.&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;1. 스킬등록&lt;/h4&gt;
&lt;pre id=&quot;code_1778541972435&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;{
  &quot;image_type&quot;: &quot;세로형 칠판 정리 이미지&quot;,
  &quot;aspect_ratio&quot;: &quot;9:16&quot;,
  &quot;style&quot;: {
    &quot;background&quot;: &quot;짙은 초록색 또는 검은색 칠판&quot;,
    &quot;texture&quot;: &quot;분필 가루, 지워진 흔적, 손글씨 느낌&quot;,
    &quot;drawing_tool&quot;: &quot;분필&quot;,
    &quot;mood&quot;: &quot;강의실 칠판 판서 스타일&quot;,
    &quot;color_palette&quot;: [
      &quot;흰색&quot;,
      &quot;노란색&quot;,
      &quot;분홍색&quot;,
      &quot;하늘색&quot;
    ]
  },
  &quot;layout&quot;: {
    &quot;orientation&quot;: &quot;vertical&quot;,
    &quot;top_left&quot;: &quot;날짜 또는 주제 번호&quot;,
    &quot;top_center&quot;: &quot;큰 제목&quot;,
    &quot;middle&quot;: &quot;핵심 개념 도식화&quot;,
    &quot;bottom&quot;: &quot;번호가 있는 핵심 문장 정리&quot;,
    &quot;spacing&quot;: &quot;넓은 행간, 읽기 쉬운 배치&quot;
  },
  &quot;content_rules&quot;: {
    &quot;source&quot;: &quot;업로드된 이미지 또는 사용자가 제공한 메모&quot;,
    &quot;summary_level&quot;: &quot;핵심만 요약&quot;,
    &quot;language&quot;: &quot;한국어&quot;,
    &quot;text_style&quot;: &quot;칠판 손글씨&quot;,
    &quot;diagram_rule&quot;: &quot;도식화 가능한 내용은 간단한 그림, 화살표, 박스, 아이콘으로 표현&quot;,
    &quot;avoid&quot;: [
      &quot;과도한 텍스트&quot;,
      &quot;복잡한 표&quot;,
      &quot;작은 글씨&quot;,
      &quot;불필요한 장식&quot;
    ]
  },
  &quot;prompt_template_ko&quot;: &quot;업로드된 메모 이미지를 바탕으로 세로형 9:16 칠판 정리 이미지를 만든다. 배경은 짙은 초록색 칠판이고, 모든 글씨와 그림은 분필로 쓴 것처럼 표현한다. 상단에는 날짜와 큰 제목을 배치한다. 핵심 문장은 한국어로 요약하여 번호 목록으로 정리한다. 도식화할 수 있는 내용은 간단한 그림, 박스, 화살표, 아이콘으로 표현한다. 흰색 분필을 기본으로 사용하고, 중요한 단어는 노란색, 분홍색, 하늘색 분필로 강조한다. 전체적으로 강의실 칠판 판서처럼 보이게 하고, 글자는 읽기 쉽게 크게 배치한다.&quot;,
  &quot;negative_prompt_ko&quot;: &quot;사진 같은 종이 노트 배경, 작은 글씨, 빽빽한 문장, 과도한 장식, 복잡한 인포그래픽, 잘못된 한글, 흐릿한 텍스트, 잘린 문장, 영어 중심 구성&quot;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위의 프롬프트를 codex에서 붙여넣기 후, &lt;u&gt;&lt;b&gt;&quot;와 같은 프롬프트를 템플릿으로 한다.&amp;nbsp;이미지를 &quot;칠판에 분필로 요약&quot;이라고 하면 위의 프롬프트를 실행시켜 변환된 이미지를 만든다. 스킬로 등록한다.&quot; &lt;/b&gt;&lt;/u&gt;를 프롬프트하면 스킬로 등록된다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;905&quot; data-origin-height=&quot;1066&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/0QpDO/dJMb99TSovy/gzB0aAQXtZEclwm9nxXeKk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/0QpDO/dJMb99TSovy/gzB0aAQXtZEclwm9nxXeKk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/0QpDO/dJMb99TSovy/gzB0aAQXtZEclwm9nxXeKk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F0QpDO%2FdJMb99TSovy%2FgzB0aAQXtZEclwm9nxXeKk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;905&quot; height=&quot;1066&quot; data-origin-width=&quot;905&quot; data-origin-height=&quot;1066&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;2. 스킬활용&amp;nbsp;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;i&gt;&quot;능력 테스트&quot;를 위해 가장 &quot;난해한&quot; 이미지를 선택했다(지도정보).&lt;/i&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;2. codex를 해당 폴더에서 실행한다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. 아래와 같은 프롬프트를 실행한다(@이미지 파일명을 통해 파일을 선택하면 [Image #1]으로 표시된다).&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1778542792926&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;[Image #1] 파일을 칠판분필로 표현해서 remake.jpg로 저장해줘.&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;1123&quot; data-origin-height=&quot;339&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Pwezp/dJMcaiwvfy5/K9OSxrJnamWC30XrefSjQK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Pwezp/dJMcaiwvfy5/K9OSxrJnamWC30XrefSjQK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Pwezp/dJMcaiwvfy5/K9OSxrJnamWC30XrefSjQK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FPwezp%2FdJMcaiwvfy5%2FK9OSxrJnamWC30XrefSjQK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1123&quot; height=&quot;339&quot; data-origin-width=&quot;1123&quot; data-origin-height=&quot;339&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;map.jpg&quot; data-origin-width=&quot;569&quot; data-origin-height=&quot;722&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/G5wyy/dJMcahK983q/QBsG80snQrRDrj6j4SsAN1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/G5wyy/dJMcahK983q/QBsG80snQrRDrj6j4SsAN1/img.jpg&quot; data-alt=&quot;원본이미지&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/G5wyy/dJMcahK983q/QBsG80snQrRDrj6j4SsAN1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FG5wyy%2FdJMcahK983q%2FQBsG80snQrRDrj6j4SsAN1%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;569&quot; height=&quot;722&quot; data-filename=&quot;map.jpg&quot; data-origin-width=&quot;569&quot; data-origin-height=&quot;722&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;원본이미지&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;remake.jpg&quot; data-origin-width=&quot;941&quot; data-origin-height=&quot;1672&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/5vCty/dJMcahYFWoN/KEkcwi0Qr2y8brwW168t3k/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/5vCty/dJMcahYFWoN/KEkcwi0Qr2y8brwW168t3k/img.jpg&quot; data-alt=&quot;변환이미지&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/5vCty/dJMcahYFWoN/KEkcwi0Qr2y8brwW168t3k/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F5vCty%2FdJMcahYFWoN%2FKEkcwi0Qr2y8brwW168t3k%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;941&quot; height=&quot;1672&quot; data-filename=&quot;remake.jpg&quot; data-origin-width=&quot;941&quot; data-origin-height=&quot;1672&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;변환이미지&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래는 skill 정보를 압축한 것이다. .codex 아래 skills 폴더 하부에 풀면 바로 사용할 수 있다 .&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;fileblock&quot; data-ke-align=&quot;alignCenter&quot;&gt;&lt;a href=&quot;https://blog.kakaocdn.net/dn/dpkrkF/dJMcafT9Be3/ovH6X0g1ejDFk7JSZxKJe1/chalk.zip?attach=1&amp;amp;knm=tfile.zip&quot; class=&quot;&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;desc&quot;&gt;&lt;div class=&quot;filename&quot;&gt;&lt;span class=&quot;name&quot;&gt;chalk.zip&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;size&quot;&gt;0.00MB&lt;/div&gt;
&lt;/div&gt;
  &lt;/a&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>Source code or Tip/생성AI</category>
      <category>Codex</category>
      <category>Skills</category>
      <category>생성AI</category>
      <author>VintageappMaker</author>
      <guid isPermaLink="true">https://vintageappmaker.tistory.com/633</guid>
      <comments>https://vintageappmaker.tistory.com/633#entry633comment</comments>
      <pubDate>Tue, 12 May 2026 08:45:59 +0900</pubDate>
    </item>
    <item>
      <title>[codex] chrome 확장 플러그인을 이용한 자동화</title>
      <link>https://vintageappmaker.tistory.com/632</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;codex에서 크롬확장 기능을 제공한다. 플러그인 형태로 제공함으로 codex의 플러그인 메뉴로 가서 설치를 하면 크롬 브라우저를 호출하고 그곳에서 codex 크롬확장을 확장하면 사용할 수 있다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;0.jpg&quot; data-origin-width=&quot;1219&quot; data-origin-height=&quot;357&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/G9dFx/dJMcafGyZRz/hyhIFgaC02JZjYcGwnK551/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/G9dFx/dJMcafGyZRz/hyhIFgaC02JZjYcGwnK551/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/G9dFx/dJMcafGyZRz/hyhIFgaC02JZjYcGwnK551/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FG9dFx%2FdJMcafGyZRz%2FhyhIFgaC02JZjYcGwnK551%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;1219&quot; height=&quot;357&quot; data-filename=&quot;0.jpg&quot; data-origin-width=&quot;1219&quot; data-origin-height=&quot;357&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;codex 크롬 확장이 주는 가장 큰 장점은 &quot;어려운 설치&quot; 없이 codex에서 프롬프트만으로 &quot;웹페이지 정보수집 및 리포트 만들기&quot;가 가능해진 것이다. 이전에는 codex내의 playwright mcp와 같은 개발자 지식이 어느정도 있는 mcp를 사용하여 웹페이지를 &quot;스크래핑 또는 크롤링&quot; 했지만 이제는 플러그인을 사용하면서 &lt;b&gt;&quot;소프트웨어&quot;를 사용하듯 자유자제로 웹페이지 정보를 가져온 후, 리포트를 만들 수&lt;/b&gt; 있다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;1. 사용법&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;프롬프트 창에서 @chrome을 입력하면 크롬 확장을 설치할 수 있다.&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;1217&quot; data-origin-height=&quot;450&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c8Ek7c/dJMcadPq4qh/oIKYhbDZEzNbtJv2e9vMi0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c8Ek7c/dJMcadPq4qh/oIKYhbDZEzNbtJv2e9vMi0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c8Ek7c/dJMcadPq4qh/oIKYhbDZEzNbtJv2e9vMi0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc8Ek7c%2FdJMcadPq4qh%2FoIKYhbDZEzNbtJv2e9vMi0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1217&quot; height=&quot;450&quot; data-origin-width=&quot;1217&quot; data-origin-height=&quot;450&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;2. 예제 1: 주식정보&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예제를 보여주기 위해 주식정보를 리포트하는 방법을 정리한다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;2.jpg&quot; data-origin-width=&quot;1870&quot; data-origin-height=&quot;917&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nqrTb/dJMcahxBUuX/RPLg16Nkw1SOFYMCHrsRX0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nqrTb/dJMcahxBUuX/RPLg16Nkw1SOFYMCHrsRX0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nqrTb/dJMcahxBUuX/RPLg16Nkw1SOFYMCHrsRX0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnqrTb%2FdJMcahxBUuX%2FRPLg16Nkw1SOFYMCHrsRX0%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;1870&quot; height=&quot;917&quot; data-filename=&quot;2.jpg&quot; data-origin-width=&quot;1870&quot; data-origin-height=&quot;917&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. 크롬에서 브라우저를 통해 두산주가를 검색한다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 화면에 두산 주가가 그래프와 함께 나온다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. codex를 실행시킨다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. codex에서 @Chrome 을 입력하여 크롬 플러그인을 활성화한다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5. 다음과 같은 프롬프트를 입력한다.&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1778370407239&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;@chrome 현재 활성화된 페이지에서 주가 그래프와 그 정보를 요약하여 report.html에 저장한다.&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;그러면 실행시킨 크롬화면의 탭에서 다음과 같이 작업이 진행 중임을 알려준다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;3.jpg&quot; data-origin-width=&quot;931&quot; data-origin-height=&quot;277&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dH6nLf/dJMcaaeby4h/r5Wpa9ukK5En5R5fMPWkdK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dH6nLf/dJMcaaeby4h/r5Wpa9ukK5En5R5fMPWkdK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dH6nLf/dJMcaaeby4h/r5Wpa9ukK5En5R5fMPWkdK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdH6nLf%2FdJMcaaeby4h%2Fr5Wpa9ukK5En5R5fMPWkdK%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;931&quot; height=&quot;277&quot; data-filename=&quot;3.jpg&quot; data-origin-width=&quot;931&quot; data-origin-height=&quot;277&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;그리고 다음과 같이 html이 완성된다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;4.jpg&quot; data-origin-width=&quot;930&quot; data-origin-height=&quot;938&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cEeQJw/dJMcaicepDR/xSlPhhY8f0uKuKrVzC6vmK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cEeQJw/dJMcaicepDR/xSlPhhY8f0uKuKrVzC6vmK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cEeQJw/dJMcaicepDR/xSlPhhY8f0uKuKrVzC6vmK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcEeQJw%2FdJMcaicepDR%2FxSlPhhY8f0uKuKrVzC6vmK%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;930&quot; height=&quot;938&quot; data-filename=&quot;4.jpg&quot; data-origin-width=&quot;930&quot; data-origin-height=&quot;938&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위의 예제에서 사용한 프롬프트는 모호한 내용으로 했기에 대략적인 내용으로 리포트가 완성되었다. 그러므로 프롬프트가 구체적일 수록 원하는 정확하고 세밀한 리포트를 만들 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;3. 예제 2: 가격정보&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예제를 보여주기 위해 크롬 브라우저에서 쿠팡의 아무 상품이나 이동한 후, 다음과 같은 프롬프트를 codex에서 요청한다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;8.jpg&quot; data-origin-width=&quot;736&quot; data-origin-height=&quot;105&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/AsXBu/dJMcajvopxe/4jd8TL0HDIJMkD3Dj5guyK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/AsXBu/dJMcajvopxe/4jd8TL0HDIJMkD3Dj5guyK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/AsXBu/dJMcajvopxe/4jd8TL0HDIJMkD3Dj5guyK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FAsXBu%2FdJMcajvopxe%2F4jd8TL0HDIJMkD3Dj5guyK%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;736&quot; height=&quot;105&quot; data-filename=&quot;8.jpg&quot; data-origin-width=&quot;736&quot; data-origin-height=&quot;105&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;그러면 실행되어 있는 브라우저를 chrome 확장이 제어하는 표시를 다음과 같이 보여준다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;9.jpg&quot; data-origin-width=&quot;444&quot; data-origin-height=&quot;118&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ddkzIB/dJMcaicepRt/pY7IdkaJEGbxpGwg7sutq1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ddkzIB/dJMcaicepRt/pY7IdkaJEGbxpGwg7sutq1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ddkzIB/dJMcaicepRt/pY7IdkaJEGbxpGwg7sutq1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FddkzIB%2FdJMcaicepRt%2FpY7IdkaJEGbxpGwg7sutq1%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;444&quot; height=&quot;118&quot; data-filename=&quot;9.jpg&quot; data-origin-width=&quot;444&quot; data-origin-height=&quot;118&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 진행과정을 codex에서 실시간으로 알려준다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;10.jpg&quot; data-origin-width=&quot;764&quot; data-origin-height=&quot;347&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bni1Lv/dJMcagMfARJ/vsZp3M47cxlPpyLkQkXfD1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bni1Lv/dJMcagMfARJ/vsZp3M47cxlPpyLkQkXfD1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bni1Lv/dJMcagMfARJ/vsZp3M47cxlPpyLkQkXfD1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbni1Lv%2FdJMcagMfARJ%2FvsZp3M47cxlPpyLkQkXfD1%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;764&quot; height=&quot;347&quot; data-filename=&quot;10.jpg&quot; data-origin-width=&quot;764&quot; data-origin-height=&quot;347&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;요청이 완료되면 어떤 식으로 작업하고 정리가 되었는 지 요약한 정보를 출력한다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;11.jpg&quot; data-origin-width=&quot;727&quot; data-origin-height=&quot;323&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Jai8i/dJMcagMfARM/EQDZUEJCQAO28fVsNFRJH1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Jai8i/dJMcagMfARM/EQDZUEJCQAO28fVsNFRJH1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Jai8i/dJMcagMfARM/EQDZUEJCQAO28fVsNFRJH1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FJai8i%2FdJMcagMfARM%2FEQDZUEJCQAO28fVsNFRJH1%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;727&quot; height=&quot;323&quot; data-filename=&quot;11.jpg&quot; data-origin-width=&quot;727&quot; data-origin-height=&quot;323&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;요청한 report가 html로 생성되었다.&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;12.jpg&quot; data-origin-width=&quot;1025&quot; data-origin-height=&quot;932&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/blaut9/dJMcajoy4Vr/AiJs8Qcv6VcZ6rBKQKLBI1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/blaut9/dJMcajoy4Vr/AiJs8Qcv6VcZ6rBKQKLBI1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/blaut9/dJMcajoy4Vr/AiJs8Qcv6VcZ6rBKQKLBI1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fblaut9%2FdJMcajoy4Vr%2FAiJs8Qcv6VcZ6rBKQKLBI1%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;1025&quot; height=&quot;932&quot; data-filename=&quot;12.jpg&quot; data-origin-width=&quot;1025&quot; data-origin-height=&quot;932&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;4. 예제 3:&amp;nbsp; 브라우저 자동화&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;크롬확장은 기본적으로 &quot;브라우저 자동화&quot;를 제공한다. 즉, 사용자가 프롬프트로 브라우저에서 할 행동들(웹페이지 이동, 검색, 정보입력, 마우스 처리 등등)을 지정하면 그대로 실행된다.&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_1778372280766&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;@chrome 지금 브라우저에서 http://www.google.com으로 이동 후, 
검색창에 codex를 입력한 후 검색한다. 
그리고 그 결과 중에 codex 다운로드 페이지가 있으면 
그 사이트를 정보를 드래그로 선택한다.&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음은 결과 화면이다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img style=&quot;text-align: center; caret-color: transparent; letter-spacing: 0px;&quot; src=&quot;https://blog.kakaocdn.net/dna/DFbEw/dJMcadBSk0T/AAAAAAAAAAAAAAAAAAAAAHjX3GXWilDrFJteH8lq1-5sNyB7QJiJAhBPUN_1Pndo/img.png?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&amp;amp;expires=1780239599&amp;amp;allow_ip=&amp;amp;allow_referer=&amp;amp;signature=NHzSmfz2Y8PY9tb9HolnXNqvGUU%3D&quot; data-origin-width=&quot;1523&quot; data-origin-height=&quot;955&quot; data-is-animation=&quot;false&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;span style=&quot;color: #0593d3;&quot;&gt;&lt;b&gt;웹사이트 자동 로그인 및 자동 클릭&lt;/b&gt;&lt;/span&gt;과 같은 내용을 구현할 수 있다.&amp;nbsp;&lt;/p&gt;</description>
      <category>Source code or Tip/생성AI</category>
      <category>Codex</category>
      <category>codex확장</category>
      <category>웹스크래핑</category>
      <category>웹크롤링</category>
      <category>크롬확장</category>
      <author>VintageappMaker</author>
      <guid isPermaLink="true">https://vintageappmaker.tistory.com/632</guid>
      <comments>https://vintageappmaker.tistory.com/632#entry632comment</comments>
      <pubDate>Sun, 10 May 2026 08:59:11 +0900</pubDate>
    </item>
    <item>
      <title>[codex] codex app에서 pet 기능</title>
      <link>https://vintageappmaker.tistory.com/631</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;어떤 이유인지는 모르지만 codex app(데스크탑 프로그램)에서 pet 기능을 제공하기 시작했다. 일단, 귀엽고 codex의 알림을 데스크탑에서도 볼 수 있는 장점이 있다. 개인적으로 추가 확장기능(데스크탑 화면 또는 프로그램을 대상으로 프롬프트)을 기대하게 된다.&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;pet.gif&quot; data-origin-width=&quot;918&quot; data-origin-height=&quot;640&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/EGTue/dJMcahqN4Zg/arX6w2GkgWL9UK5NF4mfMk/img.gif&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/EGTue/dJMcahqN4Zg/arX6w2GkgWL9UK5NF4mfMk/img.gif&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/EGTue/dJMcahqN4Zg/arX6w2GkgWL9UK5NF4mfMk/img.gif&quot; srcset=&quot;https://blog.kakaocdn.net/dn/EGTue/dJMcahqN4Zg/arX6w2GkgWL9UK5NF4mfMk/img.gif&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;918&quot; height=&quot;640&quot; data-filename=&quot;pet.gif&quot; data-origin-width=&quot;918&quot; data-origin-height=&quot;640&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20260507_093919424.png&quot; data-origin-width=&quot;478&quot; data-origin-height=&quot;964&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/zFes1/dJMcacC2erW/0e4TKRDfVr94lLlrH56LwK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/zFes1/dJMcacC2erW/0e4TKRDfVr94lLlrH56LwK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/zFes1/dJMcacC2erW/0e4TKRDfVr94lLlrH56LwK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FzFes1%2FdJMcacC2erW%2F0e4TKRDfVr94lLlrH56LwK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;478&quot; height=&quot;964&quot; data-filename=&quot;KakaoTalk_20260507_093919424.png&quot; data-origin-width=&quot;478&quot; data-origin-height=&quot;964&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>Source code or Tip/생성AI</category>
      <category>Codex</category>
      <category>생성AI</category>
      <category>코덱스</category>
      <category>펫</category>
      <author>VintageappMaker</author>
      <guid isPermaLink="true">https://vintageappmaker.tistory.com/631</guid>
      <comments>https://vintageappmaker.tistory.com/631#entry631comment</comments>
      <pubDate>Thu, 7 May 2026 10:32:12 +0900</pubDate>
    </item>
    <item>
      <title>[codex] 윈도우 사용자 폴더정리 - 스킬등록</title>
      <link>https://vintageappmaker.tistory.com/630</link>
      <description>&lt;h1&gt;윈도우 사용자 폴더 정리&lt;/h1&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;윈도우를 사용하다보면 다양한 프로그램들이 사용자 폴더 안에 캐쉬 정보를 저장한다. 그러나 삭제해도 남아있는 경우가 있으므로 수동으로 지워야 할 때도 있다.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;윈도우 사용자 정보의 수동으로 지워야 할 폴더를 분석한다.&lt;/li&gt;
&lt;li&gt;지우는 것은 사용자의 몫이다(위험성이 있으므로 자동은 불가함)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;1. 프롬프트&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래 내용을 복사 후, 설치할 데스크탑의 codex에서 붙여넣기 한다. 그리고 맨 마지막에 &lt;code&gt;스킬로 등록해줘&lt;/code&gt;라는 명령을 하면 된다.&lt;/p&gt;
&lt;pre class=&quot;django&quot;&gt;&lt;code&gt;
# 윈도우 사용자 캐시 리포트 스킬 설치 프롬프트

아래 내용을 새 데스크탑의 Codex에게 그대로 붙여넣어 실행하세요. 이 프롬프트는 `windows-cache-report` 스킬을 생성하고, 윈도우 사용자 폴더의 캐시/임시/로그/빌드 산출물 후보를 분석해 한글 HTML 리포트를 만드는 스킬 파일을 설치하도록 지시합니다.

---

## 설치 요청 프롬프트

다음 Codex 스킬을 현재 사용자 홈의 `.codex\skills\windows-cache-report` 경로에 설치해줘. 기존 파일이 있으면 이 내용으로 갱신해줘. 필요한 폴더는 직접 생성하고, 설치 후 `pwsh -NoProfile -ExecutionPolicy Bypass -File &quot;$env:USERPROFILE\.codex\skills\windows-cache-report\scripts\analyze_windows_cache.ps1&quot; -RootPath &quot;$env:USERPROFILE&quot; -OutputPath &quot;$env:USERPROFILE\windows-cache-report.html&quot;` 명령으로 동작 확인까지 해줘. 실제 삭제는 절대 하지 말고 리포트만 생성해줘.

설치할 파일은 다음 4개다.

### 1. `SKILL.md`

```markdown
---
name: windows-cache-report
description: Analyze Windows user-profile subfolders to find cache, temp, log, crash, build, package, browser, and regenerated folders that are likely safe to remove, then generate a code_snipet-style report.html with infographics, folder lists, size ranking, and usability/risk analysis. Use when the user asks which Windows user folders can be deleted, cleaned, cached, temporary, or made into an HTML cleanup report.
---

# Windows Cache Report

Use this skill to inspect a Windows user folder, classify removable cache-like subfolders, and create a standalone `report.html`.

## Workflow

1. Run `scripts/analyze_windows_cache.ps1` from this skill.
2. Pass `-RootPath` when the target is not the current user's profile.
3. Pass `-OutputPath` when the report should be written somewhere specific.
4. Review the generated report before recommending deletion. Do not delete files unless the user explicitly asks.

Example:

```powershell
pwsh -NoProfile -ExecutionPolicy Bypass -File &quot;$env:USERPROFILE\.codex\skills\windows-cache-report\scripts\analyze_windows_cache.ps1&quot; -RootPath &quot;$env:USERPROFILE&quot; -OutputPath &quot;$env:USERPROFILE\report.html&quot;
```

## Classification Rules

- `Safe`: temp, crash dump, browser/GPU/code cache, log, known tool cache, and generated preview folders.
- `Usually safe`: dependency/build caches such as Gradle, npm, Expo, Puppeteer, Selenium, Firebase, Bundler, Conda package cache, and Hugging Face cache. Warn that downloads/builds may be slower afterward.
- `Review first`: `node_modules`, project `build/dist/out`, editor extension internals, model caches, game profile caches, or folders inside `Documents`, `OneDrive`, and app data with user content risk.
- `Avoid`: credentials, settings, user documents, sync folders, mail stores, source repositories, and system reparse-point folders.

## Report Expectations

The report must include:

- Total candidate size and candidate count.
- Risk distribution infographic.
- Top folders by reclaimable size.
- Full folder list with path, size, category, recommendation, and deletion impact.
- Usability analysis explaining what will happen after cleanup.
- A conservative deletion note that locked files and active app folders should be skipped.
- All visible report text must be written in Korean.
- Do not show folders whose calculated size is 0 bytes in the folder list or top candidates.
- Long folder names in charts must wrap instead of overlapping the graph area.
- The full folder list must be grouped in this risk order: Safe, Usually safe, Review first, Avoid. Within each group, sort by size descending.

The script uses `assets/report-template.html` as the base theme. Keep it self-contained: no CDN, no external images, and no network dependency.
```

### 2. `agents/openai.yaml`

```yaml
display_name: Windows Cache Report
short_description: Find removable Windows caches and build HTML.
default_prompt: Analyze this Windows user folder for cache, temp, log, build, and regenerated folders, then create a report.html with an infographic summary and folder list.
```

### 3. `assets/report-template.html`

```html
&amp;lt;!doctype html&amp;gt;
&amp;lt;html lang=&quot;ko&quot;&amp;gt;
&amp;lt;head&amp;gt;
  &amp;lt;meta charset=&quot;utf-8&quot;&amp;gt;
  &amp;lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;&amp;gt;
  &amp;lt;title&amp;gt;{{TITLE}}&amp;lt;/title&amp;gt;
  &amp;lt;style&amp;gt;
    :root {
      --bg: #f7f8fb;
      --panel: #ffffff;
      --ink: #18202f;
      --muted: #667085;
      --line: #d9deea;
      --accent: #2563eb;
      --safe: #168255;
      --usual: #b7791f;
      --review: #b42318;
      --avoid: #667085;
    }
    * { box-sizing: border-box; }
    body { margin: 0; font-family: &quot;Segoe UI&quot;, &quot;Malgun Gothic&quot;, Arial, sans-serif; color: var(--ink); background: var(--bg); }
    header { background: #111827; color: white; padding: 34px 28px; }
    header .wrap, main { max-width: 1180px; margin: 0 auto; }
    h1 { margin: 0; font-size: 32px; letter-spacing: 0; }
    .subtitle { margin-top: 10px; color: #cbd5e1; line-height: 1.55; }
    main { padding: 24px 20px 48px; }
    section { margin-top: 22px; }
    h2 { margin: 0 0 12px; font-size: 20px; }
    .grid { display: grid; gap: 14px; }
    .cards { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .card, .panel { background: var(--panel); border: 1px solid var(--line); border-radius: 8px; padding: 16px; }
    .metric-label { color: var(--muted); font-size: 13px; }
    .metric-value { margin-top: 8px; font-size: 28px; font-weight: 750; }
    .metric-note { margin-top: 6px; color: var(--muted); font-size: 12px; }
    .bars { display: grid; gap: 10px; }
    .bar-row { display: grid; grid-template-columns: minmax(180px, 2fr) minmax(160px, 3fr) 90px; gap: 10px; align-items: center; font-size: 13px; }
    .bar-label { min-width: 0; overflow-wrap: anywhere; word-break: break-word; line-height: 1.35; }
    .bar-size { white-space: nowrap; text-align: right; }
    .track { height: 12px; border-radius: 999px; background: #edf1f7; overflow: hidden; }
    .fill { height: 100%; border-radius: 999px; background: var(--accent); }
    .fill.safe { background: var(--safe); }
    .fill.usual { background: var(--usual); }
    .fill.review { background: var(--review); }
    .fill.avoid { background: var(--avoid); }
    table { width: 100%; border-collapse: collapse; background: var(--panel); border: 1px solid var(--line); border-radius: 8px; overflow: hidden; }
    th, td { padding: 10px 12px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; font-size: 13px; }
    th { background: #eef2f8; color: #344054; font-size: 12px; }
    tr:last-child td { border-bottom: 0; }
    .path { font-family: Consolas, &quot;Courier New&quot;, monospace; word-break: break-all; }
    .pill { display: inline-block; border-radius: 999px; padding: 3px 9px; font-size: 12px; font-weight: 700; color: white; white-space: nowrap; }
    .pill.safe { background: var(--safe); }
    .pill.usual { background: var(--usual); }
    .pill.review { background: var(--review); }
    .pill.avoid { background: var(--avoid); }
    .analysis { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
    ul { margin: 8px 0 0 20px; padding: 0; line-height: 1.65; color: #344054; }
    .small { color: var(--muted); font-size: 12px; line-height: 1.5; }
    @media (max-width: 860px) {
      .cards, .analysis { grid-template-columns: 1fr; }
      .bar-row { grid-template-columns: 1fr; }
      .bar-size { text-align: left; }
      th, td { font-size: 12px; }
    }
  &amp;lt;/style&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
  &amp;lt;header&amp;gt;
    &amp;lt;div class=&quot;wrap&quot;&amp;gt;
      &amp;lt;h1&amp;gt;{{TITLE}}&amp;lt;/h1&amp;gt;
      &amp;lt;div class=&quot;subtitle&quot;&amp;gt;{{SUBTITLE}}&amp;lt;/div&amp;gt;
    &amp;lt;/div&amp;gt;
  &amp;lt;/header&amp;gt;
  &amp;lt;main&amp;gt;
    &amp;lt;section class=&quot;grid cards&quot;&amp;gt;
      {{METRIC_CARDS}}
    &amp;lt;/section&amp;gt;
    &amp;lt;section class=&quot;analysis&quot;&amp;gt;
      &amp;lt;div class=&quot;panel&quot;&amp;gt;
        &amp;lt;h2&amp;gt;위험도 분포&amp;lt;/h2&amp;gt;
        &amp;lt;div class=&quot;bars&quot;&amp;gt;{{RISK_BARS}}&amp;lt;/div&amp;gt;
      &amp;lt;/div&amp;gt;
      &amp;lt;div class=&quot;panel&quot;&amp;gt;
        &amp;lt;h2&amp;gt;사용성 분석&amp;lt;/h2&amp;gt;
        {{USABILITY}}
      &amp;lt;/div&amp;gt;
    &amp;lt;/section&amp;gt;
    &amp;lt;section&amp;gt;
      &amp;lt;h2&amp;gt;용량 상위 정리 후보&amp;lt;/h2&amp;gt;
      &amp;lt;div class=&quot;panel&quot;&amp;gt;
        &amp;lt;div class=&quot;bars&quot;&amp;gt;{{TOP_BARS}}&amp;lt;/div&amp;gt;
      &amp;lt;/div&amp;gt;
    &amp;lt;/section&amp;gt;
    &amp;lt;section&amp;gt;
      &amp;lt;h2&amp;gt;폴더 리스트&amp;lt;/h2&amp;gt;
      {{FOLDER_TABLE}}
      &amp;lt;p class=&quot;small&quot;&amp;gt;주의: 이 리포트는 삭제 후보 분석입니다. 실제 삭제 전에는 관련 앱을 종료하고, 잠긴 파일은 건너뛰며, 프로젝트/문서/동기화 폴더는 직접 확인하세요.&amp;lt;/p&amp;gt;
    &amp;lt;/section&amp;gt;
  &amp;lt;/main&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
```

### 4. `scripts/analyze_windows_cache.ps1`

```powershell
param(
  [string]$RootPath = $env:USERPROFILE,
  [string]$OutputPath = (Join-Path $env:USERPROFILE &quot;report.html&quot;),
  [int]$Depth = 4
)

$ErrorActionPreference = &quot;SilentlyContinue&quot;
$skillRoot = Split-Path -Parent (Split-Path -Parent $MyInvocation.MyCommand.Path)
$templatePath = Join-Path $skillRoot &quot;assets\report-template.html&quot;

function ConvertTo-HtmlText([object]$value) {
  $text = [string]$value
  return [System.Net.WebUtility]::HtmlEncode($text)
}

function Format-Size([double]$bytes) {
  if ($bytes -ge 1GB) { return &quot;{0:N1} GB&quot; -f ($bytes / 1GB) }
  if ($bytes -ge 1MB) { return &quot;{0:N1} MB&quot; -f ($bytes / 1MB) }
  if ($bytes -ge 1KB) { return &quot;{0:N1} KB&quot; -f ($bytes / 1KB) }
  return &quot;{0:N0} B&quot; -f $bytes
}

function ConvertTo-KoreanRisk([string]$risk) {
  switch ($risk) {
    &quot;Safe&quot; { return &quot;안전&quot; }
    &quot;Usually safe&quot; { return &quot;대체로 안전&quot; }
    &quot;Review first&quot; { return &quot;먼저 검토&quot; }
    &quot;Avoid&quot; { return &quot;삭제 금지&quot; }
    default { return $risk }
  }
}

function Get-RiskSortOrder([string]$risk) {
  switch ($risk) {
    &quot;Safe&quot; { return 1 }
    &quot;Usually safe&quot; { return 2 }
    &quot;Review first&quot; { return 3 }
    &quot;Avoid&quot; { return 4 }
    default { return 99 }
  }
}

function Get-FolderSize([string]$path) {
  $sum = (Get-ChildItem -LiteralPath $path -Force -Recurse -File -ErrorAction SilentlyContinue | Measure-Object Length -Sum).Sum
  if ($null -eq $sum) { return 0 }
  return [double]$sum
}

function New-Classification($risk, $class, $category, $recommendation, $impact) {
  return @{
    Risk = $risk
    Class = $class
    Category = $category
    Recommendation = $recommendation
    Impact = $impact
  }
}

function Get-Category([System.IO.DirectoryInfo]$dir) {
  $path = $dir.FullName
  $name = $dir.Name
  $lower = $path.ToLowerInvariant()

  $isUserDataArea = $lower -match &quot;\\(documents|downloads|desktop|pictures|videos|music|onedrive)\\&quot;
  $isEditorExtension = $lower -match &quot;\\\.(vscode|cursor|windsurf)\\extensions\\&quot;

  if ($lower -match &quot;\\(\.ssh|\.aws|\.azure|\.gnupg|outlook|mail|contacts|source|ideaprojects|documents|onedrive)(\\|$)&quot;) {
    return New-Classification &quot;Avoid&quot; &quot;avoid&quot; &quot;사용자/설정 데이터&quot; &quot;삭제하지 않음&quot; &quot;자격 증명, 문서, 소스 코드, 메일, 동기화 데이터가 포함될 수 있습니다.&quot;
  }

  if ($isEditorExtension -and $name -match &quot;^(node_modules|dist|out|build)$&quot;) {
    return New-Classification &quot;Review first&quot; &quot;review&quot; &quot;에디터 확장 파일&quot; &quot;확장 프로그램 제거/재설치로 관리&quot; &quot;직접 삭제하면 VS Code, Cursor, Windsurf 확장이 손상될 수 있습니다.&quot;
  }

  if ($isUserDataArea -and $name -match &quot;(?i)(cache|temp|logs?|crash|preview)&quot;) {
    return New-Classification &quot;Review first&quot; &quot;review&quot; &quot;사용자 영역 앱 캐시&quot; &quot;내용을 먼저 확인&quot; &quot;앱 캐시나 로그일 가능성이 있지만 사용자 작업 파일과 가까운 위치입니다.&quot;
  }

  if ($name -match &quot;(?i)^(temp|tmp|\.tmp|crashdumps|crashes|crashpad|logs?|gpucache|code cache|cache|cachestorage|shadercache|grshadercache|dawn.*cache|d3dscache|preview-cache|preview cache files|temporary internet files)$&quot;) {
    return New-Classification &quot;Safe&quot; &quot;safe&quot; &quot;임시/렌더링/로그 캐시&quot; &quot;관련 앱 종료 후 삭제&quot; &quot;대체로 자동 재생성됩니다. 실행 중인 앱의 파일은 잠겨 있을 수 있습니다.&quot;
  }

  if ($lower -match &quot;\\\.cache\\(puppeteer|selenium|firebase|vscode-ripgrep)(\\|$)&quot; -or $lower -match &quot;\\(npm-cache|package cache|electron-builder|squirreltemp|squirrelclowdtemp)(\\|$)&quot;) {
    return New-Classification &quot;Usually safe&quot; &quot;usual&quot; &quot;도구 다운로드 캐시&quot; &quot;삭제 가능&quot; &quot;다음 실행 시 브라우저, 드라이버, 패키지를 다시 다운로드할 수 있습니다.&quot;
  }

  if ($lower -match &quot;\\\.cache\\huggingface(\\|$)&quot;) {
    return New-Classification &quot;Review first&quot; &quot;review&quot; &quot;AI 모델 캐시&quot; &quot;모델 사용 여부를 먼저 확인&quot; &quot;삭제하면 나중에 큰 모델을 다시 다운로드해야 할 수 있습니다.&quot;
  }

  if ($lower -match &quot;\\\.gradle\\(caches|\.tmp)(\\|$)&quot; -or $lower -match &quot;\\(\.expo\\.*cache|android-apk-cache|native-modules-cache|schema-cache|template-cache|versions-cache)(\\|$)&quot; -or $lower -match &quot;\\\.(bundle|conda)\\.*cache(\\|$)&quot;) {
    return New-Classification &quot;Usually safe&quot; &quot;usual&quot; &quot;빌드/패키지 캐시&quot; &quot;삭제 가능&quot; &quot;다음 빌드나 패키지 설치가 느려지고 네트워크 다운로드가 필요할 수 있습니다.&quot;
  }

  if ($name -match &quot;(?i)^node_modules$|^build$|^dist$|^out$|^\.pytest_cache$|^\.mypy_cache$|^\.ruff_cache$|^\.next$&quot;) {
    return New-Classification &quot;Review first&quot; &quot;review&quot; &quot;개발 산출물&quot; &quot;프로젝트 맥락을 먼저 확인&quot; &quot;대체로 다시 빌드하거나 설치할 수 있지만 현재 작업에 바로 필요할 수 있습니다.&quot;
  }

  if ($name -match &quot;(?i)(cache|tmp|temp|logs?|crash|shader|gpu|preview)&quot;) {
    return New-Classification &quot;Review first&quot; &quot;review&quot; &quot;이름 기반 후보&quot; &quot;내용을 먼저 확인&quot; &quot;캐시처럼 보이지만 앱별 의미를 확인해야 합니다.&quot;
  }

  return $null
}

if (-not (Test-Path -LiteralPath $RootPath)) {
  throw &quot;RootPath not found: $RootPath&quot;
}

$rootItem = Get-Item -LiteralPath $RootPath -Force
$dirs = @(Get-ChildItem -LiteralPath $rootItem.FullName -Force -Directory -Recurse -Depth $Depth -ErrorAction SilentlyContinue | Sort-Object { $_.FullName.Length }, FullName)
$selectedRoots = New-Object System.Collections.Generic.List[string]
$items = foreach ($dir in $dirs) {
  $full = $dir.FullName.TrimEnd('\')
  $underSelected = $false
  foreach ($selected in $selectedRoots) {
    if ($full.StartsWith($selected + &quot;\&quot;, [System.StringComparison]::OrdinalIgnoreCase)) {
      $underSelected = $true
      break
    }
  }
  if ($underSelected) { continue }

  $category = Get-Category $dir
  if ($null -ne $category) {
    $selectedRoots.Add($full) | Out-Null
    $size = Get-FolderSize $dir.FullName
    if ($size -le 0) { continue }
    [PSCustomObject]@{
      Path = $dir.FullName
      Name = $dir.Name
      Bytes = $size
      Size = Format-Size $size
      Risk = $category.Risk
      Class = $category.Class
      Category = $category.Category
      Recommendation = $category.Recommendation
      Impact = $category.Impact
      LastWrite = $dir.LastWriteTime
    }
  }
}

$items = @($items | Sort-Object Bytes -Descending)
$totalBytes = ($items | Measure-Object Bytes -Sum).Sum
if ($null -eq $totalBytes) { $totalBytes = 0 }
$safeBytes = ($items | Where-Object Risk -eq &quot;Safe&quot; | Measure-Object Bytes -Sum).Sum
$usualBytes = ($items | Where-Object Risk -eq &quot;Usually safe&quot; | Measure-Object Bytes -Sum).Sum
$reviewBytes = ($items | Where-Object Risk -eq &quot;Review first&quot; | Measure-Object Bytes -Sum).Sum
$avoidBytes = ($items | Where-Object Risk -eq &quot;Avoid&quot; | Measure-Object Bytes -Sum).Sum
foreach ($v in &quot;safeBytes&quot;,&quot;usualBytes&quot;,&quot;reviewBytes&quot;,&quot;avoidBytes&quot;) {
  if ($null -eq (Get-Variable $v).Value) { Set-Variable $v 0 }
}

function New-Metric($label, $value, $note) {
  return &quot;&amp;lt;div class=&quot;&quot;card&quot;&quot;&amp;gt;&amp;lt;div class=&quot;&quot;metric-label&quot;&quot;&amp;gt;$(ConvertTo-HtmlText $label)&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;&quot;metric-value&quot;&quot;&amp;gt;$(ConvertTo-HtmlText $value)&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;&quot;metric-note&quot;&quot;&amp;gt;$(ConvertTo-HtmlText $note)&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&quot;
}

function New-Bar($label, [double]$bytes, [double]$maxBytes, $className) {
  $pct = 0
  if ($maxBytes -gt 0) { $pct = [math]::Max(2, [math]::Round(($bytes / $maxBytes) * 100, 1)) }
  return &quot;&amp;lt;div class=&quot;&quot;bar-row&quot;&quot;&amp;gt;&amp;lt;div class=&quot;&quot;bar-label&quot;&quot;&amp;gt;$(ConvertTo-HtmlText $label)&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;&quot;track&quot;&quot;&amp;gt;&amp;lt;div class=&quot;&quot;fill $className&quot;&quot; style=&quot;&quot;width:$pct%&quot;&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&quot;&quot;bar-size&quot;&quot;&amp;gt;$(ConvertTo-HtmlText (Format-Size $bytes))&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&quot;
}

$riskMax = @($safeBytes, $usualBytes, $reviewBytes, $avoidBytes, 1) | Measure-Object -Maximum | Select-Object -ExpandProperty Maximum
$riskBars = @(
  New-Bar &quot;안전&quot; $safeBytes $riskMax &quot;safe&quot;
  New-Bar &quot;대체로 안전&quot; $usualBytes $riskMax &quot;usual&quot;
  New-Bar &quot;먼저 검토&quot; $reviewBytes $riskMax &quot;review&quot;
  New-Bar &quot;삭제 금지&quot; $avoidBytes $riskMax &quot;avoid&quot;
) -join &quot;`n&quot;

$top = @($items | Where-Object { $_.Risk -ne &quot;Avoid&quot; -and $_.Bytes -gt 0 } | Select-Object -First 8)
$topMax = @($top | ForEach-Object Bytes; 1) | Measure-Object -Maximum | Select-Object -ExpandProperty Maximum
$topBars = if ($top.Count -gt 0) {
  ($top | ForEach-Object { New-Bar $_.Path $_.Bytes $topMax $_.Class }) -join &quot;`n&quot;
} else {
  &quot;&amp;lt;p class=&quot;&quot;small&quot;&quot;&amp;gt;정리 후보가 없습니다.&amp;lt;/p&amp;gt;&quot;
}

$folderRows = @($items |
  Where-Object { $_.Bytes -gt 0 } |
  Sort-Object @{ Expression = { Get-RiskSortOrder $_.Risk }; Ascending = $true }, @{ Expression = &quot;Bytes&quot;; Descending = $true }, Path)

$rows = ($folderRows | ForEach-Object {
  &quot;&amp;lt;tr&amp;gt;&amp;lt;td class=&quot;&quot;path&quot;&quot;&amp;gt;$(ConvertTo-HtmlText $_.Path)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$(ConvertTo-HtmlText $_.Size)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;span class=&quot;&quot;pill $($_.Class)&quot;&quot;&amp;gt;$(ConvertTo-HtmlText (ConvertTo-KoreanRisk $_.Risk))&amp;lt;/span&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$(ConvertTo-HtmlText $_.Category)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$(ConvertTo-HtmlText $_.Recommendation)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$(ConvertTo-HtmlText $_.Impact)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$(ConvertTo-HtmlText $_.LastWrite)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&quot;
}) -join &quot;`n&quot;
if ([string]::IsNullOrWhiteSpace($rows)) {
  $rows = &quot;&amp;lt;tr&amp;gt;&amp;lt;td colspan=&quot;&quot;7&quot;&quot;&amp;gt;표시할 정리 후보가 없습니다.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&quot;
}
$folderTable = &quot;&amp;lt;table&amp;gt;&amp;lt;thead&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;경로&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;크기&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;위험도&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;분류&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;권장 조치&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;삭제 영향&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;마지막 수정&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/thead&amp;gt;&amp;lt;tbody&amp;gt;$rows&amp;lt;/tbody&amp;gt;&amp;lt;/table&amp;gt;&quot;

$usability = @&quot;
&amp;lt;ul&amp;gt;
  &amp;lt;li&amp;gt;안전 항목은 관련 앱을 종료한 뒤 삭제해도 대체로 자동 재생성됩니다.&amp;lt;/li&amp;gt;
  &amp;lt;li&amp;gt;대체로 안전 항목은 첫 실행, 빌드, 패키지 설치, 브라우저 자동화가 느려질 수 있습니다.&amp;lt;/li&amp;gt;
  &amp;lt;li&amp;gt;먼저 검토 항목에는 프로젝트 의존성, AI 모델, 사용자 작업 파일 주변 캐시가 포함될 수 있습니다.&amp;lt;/li&amp;gt;
  &amp;lt;li&amp;gt;삭제 금지 항목에는 자격 증명, 문서, 소스 코드, 동기화 파일, 앱 설정이 포함될 수 있습니다.&amp;lt;/li&amp;gt;
&amp;lt;/ul&amp;gt;
&quot;@

$metrics = @(
  New-Metric &quot;전체 후보 용량&quot; (Format-Size $totalBytes) &quot;발견된 캐시성 폴더 합계&quot;
  New-Metric &quot;후보 폴더 수&quot; $items.Count &quot;검색 깊이: $Depth&quot;
  New-Metric &quot;우선 정리 가능&quot; (Format-Size ($safeBytes + $usualBytes)) &quot;안전 + 대체로 안전&quot;
  New-Metric &quot;검토 필요&quot; (Format-Size $reviewBytes) &quot;수동 확인 권장&quot;
) -join &quot;`n&quot;

$template = Get-Content -LiteralPath $templatePath -Raw -Encoding UTF8
$html = $template.Replace(&quot;{{TITLE}}&quot;, &quot;윈도우 사용자 폴더 캐시 정리 리포트&quot;)
$html = $html.Replace(&quot;{{SUBTITLE}}&quot;, &quot;대상: $(ConvertTo-HtmlText $rootItem.FullName) / 생성일: $(Get-Date -Format 'yyyy-MM-dd HH:mm:ss')&quot;)
$html = $html.Replace(&quot;{{METRIC_CARDS}}&quot;, $metrics)
$html = $html.Replace(&quot;{{RISK_BARS}}&quot;, $riskBars)
$html = $html.Replace(&quot;{{USABILITY}}&quot;, $usability)
$html = $html.Replace(&quot;{{TOP_BARS}}&quot;, $topBars)
$html = $html.Replace(&quot;{{FOLDER_TABLE}}&quot;, $folderTable)

$outDir = Split-Path -Parent $OutputPath
if ($outDir -and -not (Test-Path -LiteralPath $outDir)) {
  New-Item -ItemType Directory -Path $outDir -Force | Out-Null
}
Set-Content -LiteralPath $OutputPath -Value $html -Encoding UTF8

[PSCustomObject]@{
  OutputPath = $OutputPath
  CandidateCount = $items.Count
  TotalSize = Format-Size $totalBytes
  SafeAndUsuallySafe = Format-Size ($safeBytes + $usualBytes)
  ReviewFirst = Format-Size $reviewBytes
} | Format-List
```

설치 후 사용자가 &amp;ldquo;윈도우 사용자 폴더에서 지워도 되는 캐시/임시 폴더 분석&amp;rdquo;이라고 요청하면 이 스킬을 사용해 현재 사용자 폴더를 분석하고 HTML 리포트를 생성해줘.
&lt;/code&gt;&lt;/pre&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;2. 사용법&lt;/h2&gt;
&lt;pre class=&quot;&quot;&gt;&lt;code&gt;윈도우 사용자 폴더에서 지워도 되는 캐시/임시 폴더 분석&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src=&quot;1.jpg&quot; alt=&quot;&quot; /&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;1.jpg&quot; data-origin-width=&quot;1002&quot; data-origin-height=&quot;861&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cIhQjq/dJMcadhB9YE/x7ipjJcj1B22dZ1tQofNL1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cIhQjq/dJMcadhB9YE/x7ipjJcj1B22dZ1tQofNL1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cIhQjq/dJMcadhB9YE/x7ipjJcj1B22dZ1tQofNL1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcIhQjq%2FdJMcadhB9YE%2Fx7ipjJcj1B22dZ1tQofNL1%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;1002&quot; height=&quot;861&quot; data-filename=&quot;1.jpg&quot; data-origin-width=&quot;1002&quot; data-origin-height=&quot;861&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Source code or Tip/생성AI</category>
      <category>AI</category>
      <category>Codex</category>
      <category>Skills</category>
      <author>VintageappMaker</author>
      <guid isPermaLink="true">https://vintageappmaker.tistory.com/630</guid>
      <comments>https://vintageappmaker.tistory.com/630#entry630comment</comments>
      <pubDate>Wed, 6 May 2026 16:12:10 +0900</pubDate>
    </item>
    <item>
      <title>빅테크의 AI 비지니스의 위험성</title>
      <link>https://vintageappmaker.tistory.com/629</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;1.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/zf2QW/dJMcahEgnO7/dlkoQ0i8W8IJ40IwHozHP0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/zf2QW/dJMcahEgnO7/dlkoQ0i8W8IJ40IwHozHP0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/zf2QW/dJMcahEgnO7/dlkoQ0i8W8IJ40IwHozHP0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fzf2QW%2FdJMcahEgnO7%2FdlkoQ0i8W8IJ40IwHozHP0%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;2752&quot; height=&quot;1536&quot; data-filename=&quot;1.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;2.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/n7HU5/dJMcahEgnPe/USJRhAB9yQReUWAwAlfiX0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/n7HU5/dJMcahEgnPe/USJRhAB9yQReUWAwAlfiX0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/n7HU5/dJMcahEgnPe/USJRhAB9yQReUWAwAlfiX0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fn7HU5%2FdJMcahEgnPe%2FUSJRhAB9yQReUWAwAlfiX0%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;2752&quot; height=&quot;1536&quot; data-filename=&quot;2.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;3.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/eiweVa/dJMcagej9l2/I4vyb9SKf3NtC5QS5ZNFi0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/eiweVa/dJMcagej9l2/I4vyb9SKf3NtC5QS5ZNFi0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/eiweVa/dJMcagej9l2/I4vyb9SKf3NtC5QS5ZNFi0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FeiweVa%2FdJMcagej9l2%2FI4vyb9SKf3NtC5QS5ZNFi0%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;2752&quot; height=&quot;1536&quot; data-filename=&quot;3.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;4.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bjcGJI/dJMcagSVl8W/E461LDG4icZLC8dykN3aV1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bjcGJI/dJMcagSVl8W/E461LDG4icZLC8dykN3aV1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bjcGJI/dJMcagSVl8W/E461LDG4icZLC8dykN3aV1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbjcGJI%2FdJMcagSVl8W%2FE461LDG4icZLC8dykN3aV1%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;2752&quot; height=&quot;1536&quot; data-filename=&quot;4.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;5.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cthPvV/dJMcagSVl87/odTUXCQ3tPahHmk351F0AK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cthPvV/dJMcagSVl87/odTUXCQ3tPahHmk351F0AK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cthPvV/dJMcagSVl87/odTUXCQ3tPahHmk351F0AK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcthPvV%2FdJMcagSVl87%2FodTUXCQ3tPahHmk351F0AK%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;2752&quot; height=&quot;1536&quot; data-filename=&quot;5.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;6.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bRNQk1/dJMcahqLTEf/BCr4dBoplp5rPoTcLODGg1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bRNQk1/dJMcahqLTEf/BCr4dBoplp5rPoTcLODGg1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bRNQk1/dJMcahqLTEf/BCr4dBoplp5rPoTcLODGg1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbRNQk1%2FdJMcahqLTEf%2FBCr4dBoplp5rPoTcLODGg1%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;2752&quot; height=&quot;1536&quot; data-filename=&quot;6.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&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;7.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b8uP5y/dJMcahqLTEF/W7qZFwMcfv9kpDNVNZloZK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b8uP5y/dJMcahqLTEF/W7qZFwMcfv9kpDNVNZloZK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b8uP5y/dJMcahqLTEF/W7qZFwMcfv9kpDNVNZloZK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb8uP5y%2FdJMcahqLTEF%2FW7qZFwMcfv9kpDNVNZloZK%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;2752&quot; height=&quot;1536&quot; data-filename=&quot;7.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&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;8.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cuwNp1/dJMcafNhbFh/7jMOhq67QyWtbdOHJn9K20/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cuwNp1/dJMcafNhbFh/7jMOhq67QyWtbdOHJn9K20/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cuwNp1/dJMcafNhbFh/7jMOhq67QyWtbdOHJn9K20/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcuwNp1%2FdJMcafNhbFh%2F7jMOhq67QyWtbdOHJn9K20%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;2752&quot; height=&quot;1536&quot; data-filename=&quot;8.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&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;9.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cx3tlB/dJMcac31vVB/GQdzHSC5x9LyGleJkYt5MK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cx3tlB/dJMcac31vVB/GQdzHSC5x9LyGleJkYt5MK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cx3tlB/dJMcac31vVB/GQdzHSC5x9LyGleJkYt5MK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcx3tlB%2FdJMcac31vVB%2FGQdzHSC5x9LyGleJkYt5MK%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;2752&quot; height=&quot;1536&quot; data-filename=&quot;9.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;10.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mdkiC/dJMcabjNTLM/fQYNJCgkmeccgs0q41ykBk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mdkiC/dJMcabjNTLM/fQYNJCgkmeccgs0q41ykBk/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mdkiC/dJMcabjNTLM/fQYNJCgkmeccgs0q41ykBk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmdkiC%2FdJMcabjNTLM%2FfQYNJCgkmeccgs0q41ykBk%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;2752&quot; height=&quot;1536&quot; data-filename=&quot;10.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;11.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bhO3ci/dJMcafNhbHc/y3GXCprZigqSHBPrBw9Jl0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bhO3ci/dJMcafNhbHc/y3GXCprZigqSHBPrBw9Jl0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bhO3ci/dJMcafNhbHc/y3GXCprZigqSHBPrBw9Jl0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbhO3ci%2FdJMcafNhbHc%2Fy3GXCprZigqSHBPrBw9Jl0%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;2752&quot; height=&quot;1536&quot; data-filename=&quot;11.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;12.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ceb1ke/dJMcafsVnrF/7a3hnEPhDtjUGFWSBhL7bK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ceb1ke/dJMcafsVnrF/7a3hnEPhDtjUGFWSBhL7bK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ceb1ke/dJMcafsVnrF/7a3hnEPhDtjUGFWSBhL7bK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fceb1ke%2FdJMcafsVnrF%2F7a3hnEPhDtjUGFWSBhL7bK%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;2752&quot; height=&quot;1536&quot; data-filename=&quot;12.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;13.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/QzeVE/dJMcafNhbHI/FQ7u6dKbugL6Shthg473V1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/QzeVE/dJMcafNhbHI/FQ7u6dKbugL6Shthg473V1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/QzeVE/dJMcafNhbHI/FQ7u6dKbugL6Shthg473V1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FQzeVE%2FdJMcafNhbHI%2FFQ7u6dKbugL6Shthg473V1%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;2752&quot; height=&quot;1536&quot; data-filename=&quot;13.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;14.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c1KFF9/dJMcacXgFa3/BkNFvcVKLg0FooKmWg1SCk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c1KFF9/dJMcacXgFa3/BkNFvcVKLg0FooKmWg1SCk/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c1KFF9/dJMcacXgFa3/BkNFvcVKLg0FooKmWg1SCk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc1KFF9%2FdJMcacXgFa3%2FBkNFvcVKLg0FooKmWg1SCk%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;2752&quot; height=&quot;1536&quot; data-filename=&quot;14.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&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;style1&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div data-start-index=&quot;0&quot;&gt;&lt;span data-start-index=&quot;0&quot;&gt;빅테크 기업들이 AI를 통해 설계한 비즈니스 전략과 마케팅 수법, 그리고 이에 맞선 기업의 생존 전략을 비개발자도 이해하기 쉽게 표로 정리.&lt;/span&gt;&lt;/div&gt;
&lt;h4 data-start-index=&quot;84&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span data-start-index=&quot;84&quot;&gt;1. 우리가 AI를 쓰며 실제로 지불하고 있는 '4가지 비용'&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;div data-start-index=&quot;118&quot;&gt;&lt;span data-start-index=&quot;118&quot;&gt;빅테크는 AI가 무료인 것처럼 광고하지만, 실제로는 다양한 형태의 비용을 사용자에게 청구하고 있다.&lt;/span&gt;&lt;/div&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-start-index=&quot;175&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: start;&quot;&gt;
&lt;div data-start-index=&quot;192&quot;&gt;&lt;b data-start-index=&quot;192&quot;&gt;직접 비용 (Money)&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
&lt;td style=&quot;text-align: start;&quot;&gt;
&lt;div data-start-index=&quot;205&quot;&gt;&lt;span data-start-index=&quot;205&quot;&gt;서비스를 이용하기 위해 매달 내는 구독료&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
&lt;td style=&quot;text-align: start;&quot;&gt;
&lt;div data-start-index=&quot;231&quot;&gt;&lt;span data-start-index=&quot;231&quot;&gt;월 $20 ~ $200 수준의 현금&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: start;&quot;&gt;
&lt;div data-start-index=&quot;250&quot;&gt;&lt;b data-start-index=&quot;250&quot;&gt;데이터 비용 (Data)&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
&lt;td style=&quot;text-align: start;&quot;&gt;
&lt;div data-start-index=&quot;263&quot;&gt;&lt;span data-start-index=&quot;263&quot;&gt;우리가 입력한 질문과 자료가 AI의 학습 재료&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
&lt;td style=&quot;text-align: start;&quot;&gt;
&lt;div data-start-index=&quot;294&quot;&gt;&lt;span data-start-index=&quot;294&quot;&gt;질문 내용(프롬프트), 업무 기록&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: start;&quot;&gt;
&lt;div data-start-index=&quot;312&quot;&gt;&lt;b data-start-index=&quot;312&quot;&gt;주의력 비용 (Attention)&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
&lt;td style=&quot;text-align: start;&quot;&gt;
&lt;div data-start-index=&quot;330&quot;&gt;&lt;span data-start-index=&quot;330&quot;&gt;무료 사용 시 광고를 보거나 마케팅에 노출되는 시간&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
&lt;td style=&quot;text-align: start;&quot;&gt;
&lt;div data-start-index=&quot;362&quot;&gt;&lt;span data-start-index=&quot;362&quot;&gt;서비스 내 광고 노출, 시간 소모&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: start;&quot;&gt;
&lt;div data-start-index=&quot;380&quot;&gt;&lt;b data-start-index=&quot;380&quot;&gt;종속성 비용 (Lock-in)&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
&lt;td style=&quot;text-align: start;&quot;&gt;
&lt;div data-start-index=&quot;396&quot;&gt;&lt;span data-start-index=&quot;396&quot;&gt;특정 플랫폼(MS, 구글 등)에 업무 환경에 종속&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
&lt;td style=&quot;text-align: start;&quot;&gt;
&lt;div data-start-index=&quot;437&quot;&gt;&lt;span data-start-index=&quot;437&quot;&gt;플랫폼 이동의 어려움, 생태계 종속&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 data-start-index=&quot;538&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span data-start-index=&quot;538&quot;&gt;2. 빅테크의 '가두리 양식' (Hook and Switch) 3단계 전략&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;div data-start-index=&quot;579&quot;&gt;&lt;span data-start-index=&quot;579&quot;&gt;처음엔 달콤한 혜택으로 유혹하고, 나중에는 수익을 극대화하는 전형적인 마케팅 수법.&lt;/span&gt;&lt;/div&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-start-index=&quot;628&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: start; width: 6.16279%;&quot;&gt;
&lt;div data-start-index=&quot;646&quot;&gt;&lt;b data-start-index=&quot;646&quot;&gt;1단계&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
&lt;td style=&quot;text-align: start; width: 18.4884%;&quot;&gt;
&lt;div data-start-index=&quot;649&quot;&gt;&lt;b data-start-index=&quot;649&quot;&gt;유인 (Hook)&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
&lt;td style=&quot;text-align: start; width: 41.9767%;&quot;&gt;
&lt;div data-start-index=&quot;658&quot;&gt;&lt;span data-start-index=&quot;658&quot;&gt;저렴한 정액제로 &quot;모든 데이터를 다 넣으라&quot;며 무제한 사용 권장&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
&lt;td style=&quot;text-align: start; width: 33.3721%;&quot;&gt;
&lt;div data-start-index=&quot;693&quot;&gt;&lt;span data-start-index=&quot;693&quot;&gt;&quot;AI 없이는 일 못 하겠다&quot;는 습관 형성&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: start; width: 6.16279%;&quot;&gt;
&lt;div data-start-index=&quot;716&quot;&gt;&lt;b data-start-index=&quot;716&quot;&gt;2단계&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
&lt;td style=&quot;text-align: start; width: 18.4884%;&quot;&gt;
&lt;div data-start-index=&quot;719&quot;&gt;&lt;b data-start-index=&quot;719&quot;&gt;종속 (Switch)&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
&lt;td style=&quot;text-align: start; width: 41.9767%;&quot;&gt;
&lt;div data-start-index=&quot;730&quot;&gt;&lt;span data-start-index=&quot;730&quot;&gt;충분히 길들여지면 슬그머니 사용량에 따른 '종량제' 도입&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
&lt;td style=&quot;text-align: start; width: 33.3721%;&quot;&gt;
&lt;div data-start-index=&quot;761&quot;&gt;&lt;span data-start-index=&quot;761&quot;&gt;AI 도구 없이는 업무 마비, 사실상 해지 불가&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: start; width: 6.16279%;&quot;&gt;
&lt;div data-start-index=&quot;787&quot;&gt;&lt;b data-start-index=&quot;787&quot;&gt;3단계&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
&lt;td style=&quot;text-align: start; width: 18.4884%;&quot;&gt;
&lt;div data-start-index=&quot;790&quot;&gt;&lt;b data-start-index=&quot;790&quot;&gt;수확 (Harvest)&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
&lt;td style=&quot;text-align: start; width: 41.9767%;&quot;&gt;
&lt;div data-start-index=&quot;802&quot;&gt;&lt;span data-start-index=&quot;802&quot;&gt;비효율적인 토큰 소비를 방치하며 높은 요금 부과&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
&lt;td style=&quot;text-align: start; width: 33.3721%;&quot;&gt;
&lt;div data-start-index=&quot;828&quot;&gt;&lt;span data-start-index=&quot;828&quot;&gt;'요금 폭탄' 발생 및 빅테크의 매출 극대화&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 data-start-index=&quot;934&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span data-start-index=&quot;934&quot;&gt;3. '바이브 코딩' 마케팅의 환상 vs 비즈니스 현실&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;div data-start-index=&quot;964&quot;&gt;&lt;b data-start-index=&quot;964&quot;&gt;※ 용어 설명 - 토큰(Token):&lt;/b&gt;&lt;span data-start-index=&quot;984&quot;&gt; AI가 글자를 읽고 쓰는 단위로, 택시 요금기처럼 많이 쓸수록 비용이 상승.&lt;/span&gt;&lt;span data-start-index=&quot;1042&quot;&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-start-index=&quot;1030&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: start;&quot;&gt;
&lt;div data-start-index=&quot;1058&quot;&gt;&lt;span data-start-index=&quot;1058&quot;&gt;&quot;느낌(Vibe)만으로 앱을 만드세요&quot;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
&lt;td style=&quot;text-align: start;&quot;&gt;
&lt;div data-start-index=&quot;1079&quot;&gt;&lt;span data-start-index=&quot;1079&quot;&gt;비개발자 고객층을 넓혀 구독자를 늘리려는 전략&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: start;&quot;&gt;
&lt;div data-start-index=&quot;1104&quot;&gt;&lt;span data-start-index=&quot;1104&quot;&gt;&quot;전체 코드를 통째로 AI에 넣으세요&quot;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
&lt;td style=&quot;text-align: start;&quot;&gt;
&lt;div data-start-index=&quot;1125&quot;&gt;&lt;span data-start-index=&quot;1125&quot;&gt;토큰 과소비를 유도하여 API 매출을 올리려는 수법 (Token Bleeding)&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: start;&quot;&gt;
&lt;div data-start-index=&quot;1170&quot;&gt;&lt;span data-start-index=&quot;1170&quot;&gt;&quot;AI가 알아서 다 해줍니다&quot;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
&lt;td style=&quot;text-align: start;&quot;&gt;
&lt;div data-start-index=&quot;1186&quot;&gt;&lt;span data-start-index=&quot;1186&quot;&gt;사용자가 내부 구조를 모르게 만들어 자사 서비스에 평생 종속시킴&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: start;&quot;&gt;
&lt;div data-start-index=&quot;1221&quot;&gt;&lt;span data-start-index=&quot;1221&quot;&gt;&quot;생산성이 10배 올라갑니다&quot;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
&lt;td style=&quot;text-align: start;&quot;&gt;
&lt;div data-start-index=&quot;1237&quot;&gt;&lt;span data-start-index=&quot;1237&quot;&gt;투자 유치와 주가 부양을 위한 과장된 마케팅(Hype)&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 data-start-index=&quot;1349&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span data-start-index=&quot;1349&quot;&gt;4. 실사례 기반: 마케터와 비즈니스맨을 위한 미래 생존 전략&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;div data-start-index=&quot;1383&quot;&gt;&lt;span data-start-index=&quot;1383&quot;&gt;앞으로 기업은 무분별한 AI 사용보다는 '효율적인 분리'가 핵심 경쟁력.&lt;/span&gt;&lt;/div&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-start-index=&quot;1432&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: start;&quot;&gt;
&lt;div data-start-index=&quot;1468&quot;&gt;&lt;b data-start-index=&quot;1468&quot;&gt;역할&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
&lt;td style=&quot;text-align: start;&quot;&gt;
&lt;div data-start-index=&quot;1470&quot;&gt;&lt;span data-start-index=&quot;1470&quot;&gt;기획, 시스템 설계, 초안 작성&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
&lt;td style=&quot;text-align: start;&quot;&gt;
&lt;div data-start-index=&quot;1487&quot;&gt;&lt;span data-start-index=&quot;1487&quot;&gt;반복적인 운영 업무, 데이터 처리&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: start;&quot;&gt;
&lt;div data-start-index=&quot;1505&quot;&gt;&lt;b data-start-index=&quot;1505&quot;&gt;비용&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
&lt;td style=&quot;text-align: start;&quot;&gt;
&lt;div data-start-index=&quot;1507&quot;&gt;&lt;span data-start-index=&quot;1507&quot;&gt;높음 (대형 AI 모델 사용)&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
&lt;td style=&quot;text-align: start;&quot;&gt;
&lt;div data-start-index=&quot;1523&quot;&gt;&lt;b data-start-index=&quot;1523&quot;&gt;0원에 수렴&lt;/b&gt;&lt;span data-start-index=&quot;1529&quot;&gt; (스크립트, 자동화 툴 활용)&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: start;&quot;&gt;
&lt;div data-start-index=&quot;1546&quot;&gt;&lt;b data-start-index=&quot;1546&quot;&gt;특징&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
&lt;td style=&quot;text-align: start;&quot;&gt;
&lt;div data-start-index=&quot;1548&quot;&gt;&lt;span data-start-index=&quot;1548&quot;&gt;창의적이지만 결과가 매번 다를 수 있음&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
&lt;td style=&quot;text-align: start;&quot;&gt;
&lt;div data-start-index=&quot;1569&quot;&gt;&lt;span data-start-index=&quot;1569&quot;&gt;규칙에 따라 정확하고 빠른 결과 도출&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: start;&quot;&gt;
&lt;div data-start-index=&quot;1589&quot;&gt;&lt;b data-start-index=&quot;1589&quot;&gt;비즈니스 의견&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
&lt;td style=&quot;text-align: start;&quot;&gt;
&lt;div data-start-index=&quot;1596&quot;&gt;&lt;b data-start-index=&quot;1596&quot;&gt;초기 기획 단계&lt;/b&gt;&lt;span data-start-index=&quot;1604&quot;&gt;에서만 '인턴'처럼 활용&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
&lt;td style=&quot;text-align: start;&quot;&gt;
&lt;div data-start-index=&quot;1617&quot;&gt;&lt;b data-start-index=&quot;1617&quot;&gt;운영 단계&lt;/b&gt;&lt;span data-start-index=&quot;1622&quot;&gt;에서는 자체 자동화 툴(RPA)로 대체하여 운영비 절감&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;div data-start-index=&quot;1734&quot;&gt;&lt;span data-start-index=&quot;1734&quot;&gt;향후 변화될 방향에 대한 의견&lt;/span&gt;&lt;/div&gt;
&lt;ol style=&quot;list-style-type: decimal; background-color: #ffffff; color: #303030; text-align: start;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li data-start-index=&quot;1753&quot;&gt;&lt;b data-start-index=&quot;1753&quot;&gt;'컨텍스트 다이어트'의 시대:&lt;/b&gt;&lt;span data-start-index=&quot;1769&quot;&gt; AI에게 무조건 질문을 길게 하는 것이 능력이 아니다. 필요한 정보만 선별해 입력하여 '토큰 요금'을 아끼는 설계 능력이 비즈니스맨의 필수 역량이 될 것&lt;/span&gt;&lt;span data-start-index=&quot;1859&quot;&gt;.&lt;/span&gt;&lt;/li&gt;
&lt;li data-start-index=&quot;1860&quot;&gt;&lt;b data-start-index=&quot;1860&quot;&gt;'AI-Free' 프리미엄 마케팅:&lt;/b&gt;&lt;span data-start-index=&quot;1879&quot;&gt; AI 콘텐츠가 범람하면서, 역설적으로 **&quot;이 콘텐츠는 사람이 직접 만들었습니다&quot;**라는 인증(AI-Free 라벨)이 고급 브랜드의 차별화 요소로 부상할 것&lt;/span&gt;&lt;span data-start-index=&quot;1970&quot;&gt;.&lt;/span&gt;&lt;/li&gt;
&lt;li data-start-index=&quot;1971&quot;&gt;&lt;b data-start-index=&quot;1971&quot;&gt;자체 자동화 기술 보유:&lt;/b&gt;&lt;span data-start-index=&quot;1984&quot;&gt; 빅테크의 종량제 요금 폭탄을 피하기 위해, AI로 만든 코드를 파이썬 스크립트나 내부 시스템으로 고착화시켜 운영비를 낮추는 기업만이 장기적으로 살아남을 수 있다.&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;unnamed.png&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/8b611/dJMcagZEEjh/5ZYqgCnzRKIBYPVp9R6TG0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/8b611/dJMcagZEEjh/5ZYqgCnzRKIBYPVp9R6TG0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/8b611/dJMcagZEEjh/5ZYqgCnzRKIBYPVp9R6TG0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F8b611%2FdJMcagZEEjh%2F5ZYqgCnzRKIBYPVp9R6TG0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2752&quot; height=&quot;1536&quot; data-filename=&quot;unnamed.png&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>강좌,  연재/AI 이야기</category>
      <category>AI</category>
      <category>ax</category>
      <category>빅테크</category>
      <category>토큰비용</category>
      <author>VintageappMaker</author>
      <guid isPermaLink="true">https://vintageappmaker.tistory.com/629</guid>
      <comments>https://vintageappmaker.tistory.com/629#entry629comment</comments>
      <pubDate>Mon, 4 May 2026 11:09:06 +0900</pubDate>
    </item>
    <item>
      <title>AI 비용과 선별적 활용</title>
      <link>https://vintageappmaker.tistory.com/628</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;1.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bbD18K/dJMcafT0s6c/KB8GAP3FrfL6qUaJuXb0f0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bbD18K/dJMcafT0s6c/KB8GAP3FrfL6qUaJuXb0f0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bbD18K/dJMcafT0s6c/KB8GAP3FrfL6qUaJuXb0f0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbbD18K%2FdJMcafT0s6c%2FKB8GAP3FrfL6qUaJuXb0f0%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;2752&quot; height=&quot;1536&quot; data-filename=&quot;1.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;2.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/BTZ92/dJMcacXfP6Y/sSg3vtCDxiK6oR86RCq9mK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/BTZ92/dJMcacXfP6Y/sSg3vtCDxiK6oR86RCq9mK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/BTZ92/dJMcacXfP6Y/sSg3vtCDxiK6oR86RCq9mK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FBTZ92%2FdJMcacXfP6Y%2FsSg3vtCDxiK6oR86RCq9mK%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;2752&quot; height=&quot;1536&quot; data-filename=&quot;2.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;3.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bNux39/dJMcacXfP61/SL9Q6yTa4y27v0n1kAG61k/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bNux39/dJMcacXfP61/SL9Q6yTa4y27v0n1kAG61k/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bNux39/dJMcacXfP61/SL9Q6yTa4y27v0n1kAG61k/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbNux39%2FdJMcacXfP61%2FSL9Q6yTa4y27v0n1kAG61k%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;2752&quot; height=&quot;1536&quot; data-filename=&quot;3.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;4.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bqDPW3/dJMcacJLhLZ/LtcfQKEH1CpvkbISCkOl9K/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bqDPW3/dJMcacJLhLZ/LtcfQKEH1CpvkbISCkOl9K/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bqDPW3/dJMcacJLhLZ/LtcfQKEH1CpvkbISCkOl9K/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbqDPW3%2FdJMcacJLhLZ%2FLtcfQKEH1CpvkbISCkOl9K%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;2752&quot; height=&quot;1536&quot; data-filename=&quot;4.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;5.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bLcCYW/dJMcagk26Oa/F9FguLCKXb3Qij7kcKrOh1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bLcCYW/dJMcagk26Oa/F9FguLCKXb3Qij7kcKrOh1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bLcCYW/dJMcagk26Oa/F9FguLCKXb3Qij7kcKrOh1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbLcCYW%2FdJMcagk26Oa%2FF9FguLCKXb3Qij7kcKrOh1%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;2752&quot; height=&quot;1536&quot; data-filename=&quot;5.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;6.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/x6zl2/dJMcaffqO29/OcSEUCkcN6Z5FFmMvpJYXK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/x6zl2/dJMcaffqO29/OcSEUCkcN6Z5FFmMvpJYXK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/x6zl2/dJMcaffqO29/OcSEUCkcN6Z5FFmMvpJYXK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fx6zl2%2FdJMcaffqO29%2FOcSEUCkcN6Z5FFmMvpJYXK%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;2752&quot; height=&quot;1536&quot; data-filename=&quot;6.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;7.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dG41Q2/dJMcadaJSH3/Zy9BylDKtwTbsRHUkSkTq1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dG41Q2/dJMcadaJSH3/Zy9BylDKtwTbsRHUkSkTq1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dG41Q2/dJMcadaJSH3/Zy9BylDKtwTbsRHUkSkTq1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdG41Q2%2FdJMcadaJSH3%2FZy9BylDKtwTbsRHUkSkTq1%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;2752&quot; height=&quot;1536&quot; data-filename=&quot;7.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;8.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/3OHLG/dJMcadBM1sA/jdTjjpM1uUwyXKXYW9k6kK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/3OHLG/dJMcadBM1sA/jdTjjpM1uUwyXKXYW9k6kK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/3OHLG/dJMcadBM1sA/jdTjjpM1uUwyXKXYW9k6kK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F3OHLG%2FdJMcadBM1sA%2FjdTjjpM1uUwyXKXYW9k6kK%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;2752&quot; height=&quot;1536&quot; data-filename=&quot;8.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;9.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bfdn20/dJMcahj0Jxn/2PUoZNJ7KDXTAcjEKidNs0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bfdn20/dJMcahj0Jxn/2PUoZNJ7KDXTAcjEKidNs0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bfdn20/dJMcahj0Jxn/2PUoZNJ7KDXTAcjEKidNs0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbfdn20%2FdJMcahj0Jxn%2F2PUoZNJ7KDXTAcjEKidNs0%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;2752&quot; height=&quot;1536&quot; data-filename=&quot;9.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;10.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bcqws8/dJMb99TLEV5/boPvNxXoMuYKVo9dAIx6Jk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bcqws8/dJMb99TLEV5/boPvNxXoMuYKVo9dAIx6Jk/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bcqws8/dJMb99TLEV5/boPvNxXoMuYKVo9dAIx6Jk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbcqws8%2FdJMb99TLEV5%2FboPvNxXoMuYKVo9dAIx6Jk%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;2752&quot; height=&quot;1536&quot; data-filename=&quot;10.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;11.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bjeleT/dJMcai4bV6X/usGGy6ahs1oiKJUMYdO11K/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bjeleT/dJMcai4bV6X/usGGy6ahs1oiKJUMYdO11K/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bjeleT/dJMcai4bV6X/usGGy6ahs1oiKJUMYdO11K/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbjeleT%2FdJMcai4bV6X%2FusGGy6ahs1oiKJUMYdO11K%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;2752&quot; height=&quot;1536&quot; data-filename=&quot;11.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;12.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/d3bTAJ/dJMcai4bV6Z/nD0GEl7qhwhu1SmWCBaKLK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/d3bTAJ/dJMcai4bV6Z/nD0GEl7qhwhu1SmWCBaKLK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/d3bTAJ/dJMcai4bV6Z/nD0GEl7qhwhu1SmWCBaKLK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fd3bTAJ%2FdJMcai4bV6Z%2FnD0GEl7qhwhu1SmWCBaKLK%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;2752&quot; height=&quot;1536&quot; data-filename=&quot;12.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;13.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lGZAB/dJMcai4bV61/SNw6pQAI7PXGRSyfvqsqp1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lGZAB/dJMcai4bV61/SNw6pQAI7PXGRSyfvqsqp1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lGZAB/dJMcai4bV61/SNw6pQAI7PXGRSyfvqsqp1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlGZAB%2FdJMcai4bV61%2FSNw6pQAI7PXGRSyfvqsqp1%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;2752&quot; height=&quot;1536&quot; data-filename=&quot;13.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;14.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dV8GwU/dJMcacJLhNG/k9c6M1rVDQP83hfWAcmy3K/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dV8GwU/dJMcacJLhNG/k9c6M1rVDQP83hfWAcmy3K/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dV8GwU/dJMcacJLhNG/k9c6M1rVDQP83hfWAcmy3K/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdV8GwU%2FdJMcacJLhNG%2Fk9c6M1rVDQP83hfWAcmy3K%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;2752&quot; height=&quot;1536&quot; data-filename=&quot;14.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;15.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bUfJ32/dJMcacJLhOc/yx13MBz9AWLO73IzvDlzCK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bUfJ32/dJMcacJLhOc/yx13MBz9AWLO73IzvDlzCK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bUfJ32/dJMcacJLhOc/yx13MBz9AWLO73IzvDlzCK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbUfJ32%2FdJMcacJLhOc%2Fyx13MBz9AWLO73IzvDlzCK%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;2752&quot; height=&quot;1536&quot; data-filename=&quot;15.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&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-start-index=&quot;0&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b data-start-index=&quot;0&quot;&gt;AI 도입의 한계와 비용 관리 체계&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span data-start-index=&quot;19&quot;&gt;항목&lt;/span&gt;&lt;span data-start-index=&quot;21&quot;&gt;주요 내용 및 실태 &lt;/span&gt;&lt;span data-start-index=&quot;31&quot;&gt;비즈니스적 시사점&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-start-index=&quot;19&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: start; width: 19.4186%;&quot;&gt;
&lt;div data-start-index=&quot;40&quot;&gt;&lt;b data-start-index=&quot;40&quot;&gt;인간 대체 불가 사유&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
&lt;td style=&quot;text-align: start; width: 60.4651%;&quot;&gt;
&lt;div data-start-index=&quot;51&quot;&gt;&lt;span data-start-index=&quot;51&quot;&gt;AI는 결과물에 대한 법적&amp;middot;윤리적 책임을 질 수 없으며, 기존 데이터의 평균치를 산출하는 특성상 독창적인 브랜드 정체성 구축에 한계가 명확하다&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span data-start-index=&quot;130&quot;&gt;. 또한, 인간 사이의 깊은 신뢰 관계 형성이나 비판적 사고를 통한 문제 정의는 여전히 인간 고유의 영역으로 남는다&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span data-start-index=&quot;194&quot;&gt;.&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
&lt;td style=&quot;text-align: start; width: 20%;&quot;&gt;
&lt;div data-start-index=&quot;195&quot;&gt;&lt;span data-start-index=&quot;195&quot;&gt;최종 의사결정과 책임이 따르는 업무는 인간이 주도해야 한다&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span data-start-index=&quot;227&quot;&gt;.&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: start; width: 19.4186%;&quot;&gt;
&lt;div data-start-index=&quot;228&quot;&gt;&lt;b data-start-index=&quot;228&quot;&gt;비용 문제의 요인&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
&lt;td style=&quot;text-align: start; width: 60.4651%;&quot;&gt;
&lt;div data-start-index=&quot;237&quot;&gt;&lt;span data-start-index=&quot;237&quot;&gt;단순 월정액을 넘어 사용량 기반(Pay-as-you-go) 과금이 확산됨에 따라 이용자 증가 시 운영비가 기하급수적으로 늘어나는 '빌 쇼크(Bill Shock)' 리스크가 상존한다&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span data-start-index=&quot;337&quot;&gt;. 특히 기존 ERP/CRM 시스템 연동 및 데이터 정제에 초기 구축비의 30~50%가 투입된다&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span data-start-index=&quot;390&quot;&gt;.&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
&lt;td style=&quot;text-align: start; width: 20%;&quot;&gt;
&lt;div data-start-index=&quot;391&quot;&gt;&lt;span data-start-index=&quot;391&quot;&gt;기술 도입 비용보다 유지 및 확장을 위한 숨은 비용이 더 크다&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span data-start-index=&quot;425&quot;&gt;.&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: start; width: 19.4186%;&quot;&gt;
&lt;div data-start-index=&quot;426&quot;&gt;&lt;b data-start-index=&quot;426&quot;&gt;비용 절감 및 최적화&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
&lt;td style=&quot;text-align: start; width: 60.4651%;&quot;&gt;
&lt;div data-start-index=&quot;437&quot;&gt;&lt;span data-start-index=&quot;437&quot;&gt;고가의 거대 모델 대신 비용이 1/10 수준인 소형 언어 모델(SLM)을 작업 난이도에 따라 배치하는 '모델 라우팅' 전략이 필수적이다&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span data-start-index=&quot;512&quot;&gt;. 또한, 토큰 소모를 최소화하는 프롬프트 최적화와 보안을 위한 온프레미스 구축을 통해 장기적 운영 비용을 통제한다&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span data-start-index=&quot;576&quot;&gt;.&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
&lt;td style=&quot;text-align: start; width: 20%;&quot;&gt;
&lt;div data-start-index=&quot;577&quot;&gt;&lt;span data-start-index=&quot;577&quot;&gt;'AI FinOps'를 통한 철저한 가성비 중심의 운영이 요구된다&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span data-start-index=&quot;613&quot;&gt;.&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;div data-start-index=&quot;696&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div data-start-index=&quot;696&quot;&gt;&lt;b data-start-index=&quot;696&quot;&gt;요약 및 제언&lt;/b&gt;&lt;span data-start-index=&quot;703&quot;&gt; &lt;/span&gt;&lt;span data-start-index=&quot;704&quot;&gt;AI는 책임 주체의 부재와 창의성의 한계로 인해 인간을 완전히 대체할 수 없으며, 무분별한 확장 시 API 호출 및 인프라 통합 과정에서 막대한 운영비 손실을 야기한다&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span data-start-index=&quot;797&quot;&gt;. 따라서 소형 모델(SLM)을 활용한 비용 효율화와 성과(ROI)가 확실한 업무 위주의 선별적 도입을 통해 경영 효율성을 극대화하는 전략이 필요하다&lt;/span&gt;.&lt;/div&gt;
&lt;div data-start-index=&quot;696&quot;&gt;&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;&lt;/div&gt;
&lt;div data-start-index=&quot;696&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;unnamed.png&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/clwblT/dJMcagk27hn/40wftEDOtuU572b9cdCenk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/clwblT/dJMcagk27hn/40wftEDOtuU572b9cdCenk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/clwblT/dJMcagk27hn/40wftEDOtuU572b9cdCenk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FclwblT%2FdJMcagk27hn%2F40wftEDOtuU572b9cdCenk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2752&quot; height=&quot;1536&quot; data-filename=&quot;unnamed.png&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&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;</description>
      <category>강좌,  연재/AI 이야기</category>
      <category>ai비용</category>
      <category>AI선별적사용</category>
      <author>VintageappMaker</author>
      <guid isPermaLink="true">https://vintageappmaker.tistory.com/628</guid>
      <comments>https://vintageappmaker.tistory.com/628#entry628comment</comments>
      <pubDate>Sat, 2 May 2026 07:38:47 +0900</pubDate>
    </item>
    <item>
      <title>[vibe coding #3] 비개발자는 어떻게 바이브 코딩을 시작해야 하나?</title>
      <link>https://vintageappmaker.tistory.com/627</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;1.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/314VG/dJMcagL9t5G/GN4O5N48sjjNTQ4tIGMpYk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/314VG/dJMcagL9t5G/GN4O5N48sjjNTQ4tIGMpYk/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/314VG/dJMcagL9t5G/GN4O5N48sjjNTQ4tIGMpYk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F314VG%2FdJMcagL9t5G%2FGN4O5N48sjjNTQ4tIGMpYk%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;2752&quot; height=&quot;1536&quot; data-filename=&quot;1.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;2.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/C0Jrt/dJMcag6qR07/HtJbkQ07vlS5tKjVjcbJmk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/C0Jrt/dJMcag6qR07/HtJbkQ07vlS5tKjVjcbJmk/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/C0Jrt/dJMcag6qR07/HtJbkQ07vlS5tKjVjcbJmk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FC0Jrt%2FdJMcag6qR07%2FHtJbkQ07vlS5tKjVjcbJmk%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;2752&quot; height=&quot;1536&quot; data-filename=&quot;2.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;3.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bI6uZX/dJMcacCYLZ4/fH8cflSn6AjHNEAk1DA6Fk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bI6uZX/dJMcacCYLZ4/fH8cflSn6AjHNEAk1DA6Fk/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bI6uZX/dJMcacCYLZ4/fH8cflSn6AjHNEAk1DA6Fk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbI6uZX%2FdJMcacCYLZ4%2FfH8cflSn6AjHNEAk1DA6Fk%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;2752&quot; height=&quot;1536&quot; data-filename=&quot;3.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;4.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bSMTBv/dJMcag6qR1h/osXVGMK1ClkrhIBw5Q9IyK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bSMTBv/dJMcag6qR1h/osXVGMK1ClkrhIBw5Q9IyK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bSMTBv/dJMcag6qR1h/osXVGMK1ClkrhIBw5Q9IyK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbSMTBv%2FdJMcag6qR1h%2FosXVGMK1ClkrhIBw5Q9IyK%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;2752&quot; height=&quot;1536&quot; data-filename=&quot;4.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;5.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dB3M6L/dJMcag6qR1m/3K555Z2LiuIAgkkAzczh6K/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dB3M6L/dJMcag6qR1m/3K555Z2LiuIAgkkAzczh6K/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dB3M6L/dJMcag6qR1m/3K555Z2LiuIAgkkAzczh6K/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdB3M6L%2FdJMcag6qR1m%2F3K555Z2LiuIAgkkAzczh6K%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;2752&quot; height=&quot;1536&quot; data-filename=&quot;5.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;6.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/sKXgt/dJMcadBMCin/EexLzkK3Z6LebFOq262qXK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/sKXgt/dJMcadBMCin/EexLzkK3Z6LebFOq262qXK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/sKXgt/dJMcadBMCin/EexLzkK3Z6LebFOq262qXK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FsKXgt%2FdJMcadBMCin%2FEexLzkK3Z6LebFOq262qXK%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;2752&quot; height=&quot;1536&quot; data-filename=&quot;6.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;7.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Be4Bu/dJMcadPlfFL/qGKgkVeQDr0jfuzc5NV9xK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Be4Bu/dJMcadPlfFL/qGKgkVeQDr0jfuzc5NV9xK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Be4Bu/dJMcadPlfFL/qGKgkVeQDr0jfuzc5NV9xK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FBe4Bu%2FdJMcadPlfFL%2FqGKgkVeQDr0jfuzc5NV9xK%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;2752&quot; height=&quot;1536&quot; data-filename=&quot;7.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;8.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/pfN3n/dJMcab47geX/VxpKdSdzvB8c11PwOQJIK0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/pfN3n/dJMcab47geX/VxpKdSdzvB8c11PwOQJIK0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/pfN3n/dJMcab47geX/VxpKdSdzvB8c11PwOQJIK0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FpfN3n%2FdJMcab47geX%2FVxpKdSdzvB8c11PwOQJIK0%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;2752&quot; height=&quot;1536&quot; data-filename=&quot;8.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;9.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/k4kxQ/dJMcaayorhi/di7lphnPECDLacNalYT7z1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/k4kxQ/dJMcaayorhi/di7lphnPECDLacNalYT7z1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/k4kxQ/dJMcaayorhi/di7lphnPECDLacNalYT7z1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fk4kxQ%2FdJMcaayorhi%2Fdi7lphnPECDLacNalYT7z1%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;2752&quot; height=&quot;1536&quot; data-filename=&quot;9.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;10.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dz5wIw/dJMcaiXqHvG/WlK7lLphwgBe9KiYfDv2kK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dz5wIw/dJMcaiXqHvG/WlK7lLphwgBe9KiYfDv2kK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dz5wIw/dJMcaiXqHvG/WlK7lLphwgBe9KiYfDv2kK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdz5wIw%2FdJMcaiXqHvG%2FWlK7lLphwgBe9KiYfDv2kK%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;2752&quot; height=&quot;1536&quot; data-filename=&quot;10.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 style=&quot;background-color: #ffffff; color: #5c5c5c; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;눈에 보여야 감이 잡힌다!&lt;/h4&gt;
&lt;p style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;[&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;개발자의 조언]&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;남들이 아무리 좋다고 해도 내가 할 수 없다면 무용지물이다. 그런 점에서 처음에는 내가 가장 쉽게 할 수 있는 방법을 찾는 것이 중요하다. 많은 사람들이 바이브 코딩이 혁신적이다 무엇이든 가능하다라고 말하지만 현실에서 바이브 코딩을 성공하는 사람들은 IT에 대한 이해도가 높거나 종사자들인 경우가 대부분이다. 단어조차 어려운 &quot;소스&quot;와 &quot;에디터&quot;라는 말이 나오는 순간 머리가 멈추는 것은 당연한 것이다.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;1. 생각없이 따라하기&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;2. 조금만&amp;nbsp;신경쓰기&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;3. 재대로 시작하기&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;에 따라 가능한 방법이 달라진다. 그리고 반드시 숙지해야 할 것은 &quot;웹앱(HTML, Javascript)&quot;이 바이브 코딩에서 가장 쉬운 방법으로 완성도가 높은 결과물을 얻는다. 프로그래밍에 대한 이해도가 높다면 다른 종류(안드로이드,&amp;nbsp; iOS, PC용 프로그램)을 만들 수 있지만&lt;b&gt; &lt;/b&gt;&lt;u&gt;&lt;b&gt;프로그래밍에 대한 이해도가 없다면 다른 분야는 프롬프트를 만들 수도 프롬프트로 나온 결과를 이해할 수도 없다.&lt;/b&gt;&lt;/u&gt;그러므로 &lt;span style=&quot;color: #ee2323;&quot;&gt;반드시 &quot;웹앱&quot;부터 만드는 것을 잊지 말아야 한다.&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;1. 생각없이 하기&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;br /&gt;가장 좋은 방법은 모바일(핸드폰, 태블릿)이나 데스크탑 환경에서 크롬 브라우저를 열고 주소창에 간단하게 원하는 웹앱(HTML)을 입력하고 실행한다(엔터 또는 실행버튼).&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;여기서는 &quot;일정관리 웹앱을 만들어줘&quot;를 입력했다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1164&quot; data-origin-height=&quot;408&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/l1bcl/dJMcahqKA3t/zEODWMeI83q2HSoHieNdFK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/l1bcl/dJMcahqKA3t/zEODWMeI83q2HSoHieNdFK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/l1bcl/dJMcahqKA3t/zEODWMeI83q2HSoHieNdFK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fl1bcl%2FdJMcahqKA3t%2FzEODWMeI83q2HSoHieNdFK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1164&quot; height=&quot;408&quot; data-origin-width=&quot;1164&quot; data-origin-height=&quot;408&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러면 크롬은 구글검색과 연동을 한다. 크롬창에 입력된 내용은 기본적으로 주소로 이동하거나&amp;nbsp; &quot;요청&quot;으로 받아들여 구글검색에서 처리한다. 구글검색은 AI와 연동되기 때문에 Gemini에서 입력을 프롬프트로 인식하여 처리하게 된다.&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;816&quot; data-origin-height=&quot;820&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/41GJH/dJMcacwdoOn/PR7HKeK54DblbVBOgZyWwk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/41GJH/dJMcacwdoOn/PR7HKeK54DblbVBOgZyWwk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/41GJH/dJMcacwdoOn/PR7HKeK54DblbVBOgZyWwk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F41GJH%2FdJMcacwdoOn%2FPR7HKeK54DblbVBOgZyWwk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;816&quot; height=&quot;820&quot; data-origin-width=&quot;816&quot; data-origin-height=&quot;820&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그런데 이렇게 생성된 결과는 일반인들에게 너무 어려운 내용이다. HTML이 뭔지도 프로그래밍이 뭔지도 모르는 사람들이 프로젝트 설정방법과 에디터에서 어떤 값을 변경하라고 설명하면 100% 포기하게 된다. 그러므로 크롬 브라우저에서 프롬프트로 웹앱을 만들 때에는 적어도 HTML에 대한 기본이해가 있거나 웹앱에 대한 공부가 된 사람들만 가능하다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;2. 조금만&amp;nbsp;신경쓰기&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;조금만 신경을 쓰면 일반인들도 웹앱을 만들 수 있다. 성능 좋고 강력한 웹앱 저작 프로그램들이 존재하지만 2026년 4월 현재에는 &lt;b&gt;gemini의 canvas 기능을 &quot;따라하기&quot;식으로 사용하면 누구나 웹 앱을 만들 수 있다. 단지, &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;u&gt;반드시&amp;nbsp; 데스크탑(PC)에서 작업&lt;/u&gt;&lt;/span&gt;해야 한다.&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;(1) 먼저 &lt;a href=&quot;https://gemini.google.com/app&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;제미나이&lt;/a&gt;에 접속한다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(2) 새 채팅을 눌러 다음과 같이 프롬프트 한다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;1.jpg&quot; data-origin-width=&quot;999&quot; data-origin-height=&quot;851&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cBCxIe/dJMb99TLfDP/vdjuRWy1JHYLqqckpyaCB0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cBCxIe/dJMb99TLfDP/vdjuRWy1JHYLqqckpyaCB0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cBCxIe/dJMb99TLfDP/vdjuRWy1JHYLqqckpyaCB0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcBCxIe%2FdJMb99TLfDP%2FvdjuRWy1JHYLqqckpyaCB0%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;999&quot; height=&quot;851&quot; data-filename=&quot;1.jpg&quot; data-origin-width=&quot;999&quot; data-origin-height=&quot;851&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기서 중요한 것은 도구로 Canvas를 선택해야 한다는 것이다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(3) &amp;gt; 버튼을 눌러 실행한다. 우측 상단의 버튼이 미리보기가 기본으로 되어 있기에 결과를 바로 볼 수 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;3.jpg&quot; data-origin-width=&quot;1448&quot; data-origin-height=&quot;911&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bqKUOY/dJMcagFog60/v1k5xOKZyPMQwdOqUdJyw1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bqKUOY/dJMcagFog60/v1k5xOKZyPMQwdOqUdJyw1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bqKUOY/dJMcagFog60/v1k5xOKZyPMQwdOqUdJyw1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbqKUOY%2FdJMcagFog60%2Fv1k5xOKZyPMQwdOqUdJyw1%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;1448&quot; height=&quot;911&quot; data-filename=&quot;3.jpg&quot; data-origin-width=&quot;1448&quot; data-origin-height=&quot;911&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위와 같이 우측에 웹앱의 결과물이 보인다. 참고로 AI는 그 때마다 다른 결과를 만든다. 그리고 한 번에 만들지 못하고 에러를 만드는 경우가 적지 않다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(4) 실행된 웹이 작동하는 지 클릭을 하며 테스트 한다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;4.jpg&quot; data-origin-width=&quot;1424&quot; data-origin-height=&quot;886&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bLfJpa/dJMcaaLVnAg/PPOfaMRT5XATJ7Ik74XIE0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bLfJpa/dJMcaaLVnAg/PPOfaMRT5XATJ7Ik74XIE0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bLfJpa/dJMcaaLVnAg/PPOfaMRT5XATJ7Ik74XIE0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbLfJpa%2FdJMcaaLVnAg%2FPPOfaMRT5XATJ7Ik74XIE0%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;1424&quot; height=&quot;886&quot; data-filename=&quot;4.jpg&quot; data-origin-width=&quot;1424&quot; data-origin-height=&quot;886&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;3. 재대로 시작하기&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;바이브 코딩을 재대로 시작하려면 웹환경에서는 어림도 없다. 결코 웹에서 모든 것을 만들 수 있다는 말에 현혹되어서는 안된다. 그런 말을 하는 사람들이 거짓말을 하는 것은 아닌데, 몇 몇 특수상황에서만 웹에서 바이브 코딩이 가능한 것이다. 실제로 소프트웨어를 개발하는 작업을 해야 한다면 데스크탑(PC)에서 해야 한다. 심지어 cli 환경(command line interface)에서 해야 하므로 터미널 사용법 학습이 필수가 된다.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;그러면 비개발자 입장에서 재대로 된 바이브 코딩을 하려면 어떻게 해야 할까? codex, gemini cli, antigravity, cursor 등등 수도없는 전문적이고 강력한 툴(개발환경)이 있다. 그러나 입문자라면 &lt;b&gt;&quot;클로드를 강력히 추천&quot;&lt;/b&gt;한다. 괜히 claude 이야기를 사람들이 하는 것이 아니다.&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;(1) &lt;a href=&quot;https://claude.com/download&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;클로드 데스크탑&lt;/a&gt; 을 설치했다면 프로그램을 실행시킨다. 그리고 새로운 채팅에 다음과 같은 프롬프트를 실행시킨다.&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1777595937786&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;캘린더와 연동하는 웹앱을 만들어줘. 자체 캘린더로 데이터를 관리한다. API 연동없다.&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;5.jpg&quot; data-origin-width=&quot;840&quot; data-origin-height=&quot;938&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bRwk7M/dJMcadV8dd6/ALVKqKc0X4189PkjDcxTD0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bRwk7M/dJMcadV8dd6/ALVKqKc0X4189PkjDcxTD0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bRwk7M/dJMcadV8dd6/ALVKqKc0X4189PkjDcxTD0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbRwk7M%2FdJMcadV8dd6%2FALVKqKc0X4189PkjDcxTD0%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;840&quot; height=&quot;938&quot; data-filename=&quot;5.jpg&quot; data-origin-width=&quot;840&quot; data-origin-height=&quot;938&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위와 같이 claude가 프로그래밍을 만드는 과정을 보여준다. 처음에는 단순히 보고만 있어도 문제는 없지만, 프로그램에 기능이 추가됨에 따라 진행상황을 반드시 이해해야 하는 순간이 온다. 나중에 큰 문제(버그, 보안, 잘못된 설계)가 발생할 수도 있기 때문이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(2) 클로드의 장점은 강력한 기능과 더불어 직관적인 기능을 제공한다는 점이다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;6.jpg&quot; data-origin-width=&quot;847&quot; data-origin-height=&quot;967&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/E14Ef/dJMcagST6mg/HjlicXBhKrmRUKWHPY4LF1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/E14Ef/dJMcagST6mg/HjlicXBhKrmRUKWHPY4LF1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/E14Ef/dJMcagST6mg/HjlicXBhKrmRUKWHPY4LF1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FE14Ef%2FdJMcagST6mg%2FHjlicXBhKrmRUKWHPY4LF1%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;847&quot; height=&quot;967&quot; data-filename=&quot;6.jpg&quot; data-origin-width=&quot;847&quot; data-origin-height=&quot;967&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;(3) 지금 만든 웹앱을 저장하려면 우측 상단의 ... 버튼을 눌러 다운로드를 실행한다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;7.jpg&quot; data-origin-width=&quot;782&quot; data-origin-height=&quot;306&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/CaMz9/dJMcacbTd8m/Vc7BMfkfeHbBUsP8oOkwik/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/CaMz9/dJMcacbTd8m/Vc7BMfkfeHbBUsP8oOkwik/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/CaMz9/dJMcacbTd8m/Vc7BMfkfeHbBUsP8oOkwik/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FCaMz9%2FdJMcacbTd8m%2FVc7BMfkfeHbBUsP8oOkwik%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;782&quot; height=&quot;306&quot; data-filename=&quot;7.jpg&quot; data-origin-width=&quot;782&quot; data-origin-height=&quot;306&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;8.jpg&quot; data-origin-width=&quot;450&quot; data-origin-height=&quot;220&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/7Dzyx/dJMcaakPRDH/bq12FokEL5yHQ3sK1OqhB1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/7Dzyx/dJMcaakPRDH/bq12FokEL5yHQ3sK1OqhB1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/7Dzyx/dJMcaakPRDH/bq12FokEL5yHQ3sK1OqhB1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F7Dzyx%2FdJMcaakPRDH%2Fbq12FokEL5yHQ3sK1OqhB1%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;450&quot; height=&quot;220&quot; data-filename=&quot;8.jpg&quot; data-origin-width=&quot;450&quot; data-origin-height=&quot;220&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(4) 그러면 html이 데스크탑에 저장된다. 이제 생성된 HTML 파일을 내 데스크탑에서 클릭하여 사용, 친구에게 공유, 아니면 서버를 만들어서 업로드를 할 수 있다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;9.jpg&quot; data-origin-width=&quot;1543&quot; data-origin-height=&quot;1042&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bv5ghO/dJMb990zqYZ/13CAzWrKyuGGDADlVPjVUk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bv5ghO/dJMb990zqYZ/13CAzWrKyuGGDADlVPjVUk/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bv5ghO/dJMb990zqYZ/13CAzWrKyuGGDADlVPjVUk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbv5ghO%2FdJMb990zqYZ%2F13CAzWrKyuGGDADlVPjVUk%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;1543&quot; height=&quot;1042&quot; data-filename=&quot;9.jpg&quot; data-origin-width=&quot;1543&quot; data-origin-height=&quot;1042&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;fileblock&quot; data-ke-align=&quot;alignCenter&quot;&gt;&lt;a href=&quot;https://blog.kakaocdn.net/dn/eES9qS/dJMb990zqZo/6lsojNMTsnGv6K3u0AW7M0/calendar_webapp.html?attach=1&amp;amp;knm=tfile.html&quot; class=&quot;&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;desc&quot;&gt;&lt;div class=&quot;filename&quot;&gt;&lt;span class=&quot;name&quot;&gt;calendar_webapp.html&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;size&quot;&gt;0.02MB&lt;/div&gt;
&lt;/div&gt;
  &lt;/a&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>강좌,  연재/바이브 코딩(Vibe coding)</category>
      <category>AI</category>
      <category>바이브코딩</category>
      <category>클로드</category>
      <author>VintageappMaker</author>
      <guid isPermaLink="true">https://vintageappmaker.tistory.com/627</guid>
      <comments>https://vintageappmaker.tistory.com/627#entry627comment</comments>
      <pubDate>Fri, 1 May 2026 09:08:26 +0900</pubDate>
    </item>
    <item>
      <title>[vibe coding #2] 한 번의 명령(프롬프트)로 되는 것 아닌데요?</title>
      <link>https://vintageappmaker.tistory.com/626</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;1.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b7gqjK/dJMcabRzLf8/NTCDM1B5DnE7LRo4lNNsK0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b7gqjK/dJMcabRzLf8/NTCDM1B5DnE7LRo4lNNsK0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b7gqjK/dJMcabRzLf8/NTCDM1B5DnE7LRo4lNNsK0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb7gqjK%2FdJMcabRzLf8%2FNTCDM1B5DnE7LRo4lNNsK0%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;2752&quot; height=&quot;1536&quot; data-filename=&quot;1.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;2.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Gz3U2/dJMcafNfR0m/Tdw9kuOwHwkfLk28R3sg1K/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Gz3U2/dJMcafNfR0m/Tdw9kuOwHwkfLk28R3sg1K/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Gz3U2/dJMcafNfR0m/Tdw9kuOwHwkfLk28R3sg1K/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FGz3U2%2FdJMcafNfR0m%2FTdw9kuOwHwkfLk28R3sg1K%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;2752&quot; height=&quot;1536&quot; data-filename=&quot;2.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;3.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cVoTa2/dJMcafNfR0Y/kkfPMXZO5DE85OpvOlpya1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cVoTa2/dJMcafNfR0Y/kkfPMXZO5DE85OpvOlpya1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cVoTa2/dJMcafNfR0Y/kkfPMXZO5DE85OpvOlpya1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcVoTa2%2FdJMcafNfR0Y%2FkkfPMXZO5DE85OpvOlpya1%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;2752&quot; height=&quot;1536&quot; data-filename=&quot;3.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;4.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b1fSFY/dJMb99TLekA/AyGhFU8z0sNvQb9kKYn0r0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b1fSFY/dJMb99TLekA/AyGhFU8z0sNvQb9kKYn0r0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b1fSFY/dJMb99TLekA/AyGhFU8z0sNvQb9kKYn0r0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb1fSFY%2FdJMb99TLekA%2FAyGhFU8z0sNvQb9kKYn0r0%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;2752&quot; height=&quot;1536&quot; data-filename=&quot;4.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;5.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b0zio3/dJMcagk2FxZ/WPWy7cQtid1cJcH3zgIqx1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b0zio3/dJMcagk2FxZ/WPWy7cQtid1cJcH3zgIqx1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b0zio3/dJMcagk2FxZ/WPWy7cQtid1cJcH3zgIqx1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb0zio3%2FdJMcagk2FxZ%2FWPWy7cQtid1cJcH3zgIqx1%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;2752&quot; height=&quot;1536&quot; data-filename=&quot;5.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;6.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lIzQ0/dJMcah5l2Nk/A13fQBujp3CUQz019YSlA0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lIzQ0/dJMcah5l2Nk/A13fQBujp3CUQz019YSlA0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lIzQ0/dJMcah5l2Nk/A13fQBujp3CUQz019YSlA0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlIzQ0%2FdJMcah5l2Nk%2FA13fQBujp3CUQz019YSlA0%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;2752&quot; height=&quot;1536&quot; data-filename=&quot;6.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;7.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cvWp7X/dJMcacwdm7e/yO1k9UjQwfIi0TUC9E18r1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cvWp7X/dJMcacwdm7e/yO1k9UjQwfIi0TUC9E18r1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cvWp7X/dJMcacwdm7e/yO1k9UjQwfIi0TUC9E18r1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcvWp7X%2FdJMcacwdm7e%2FyO1k9UjQwfIi0TUC9E18r1%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;2752&quot; height=&quot;1536&quot; data-filename=&quot;7.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;8.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/biVDy5/dJMcad2SRcx/mnoUejE6E6nsdNqIkcMcS1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/biVDy5/dJMcad2SRcx/mnoUejE6E6nsdNqIkcMcS1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/biVDy5/dJMcad2SRcx/mnoUejE6E6nsdNqIkcMcS1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbiVDy5%2FdJMcad2SRcx%2FmnoUejE6E6nsdNqIkcMcS1%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;2752&quot; height=&quot;1536&quot; data-filename=&quot;8.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;9.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/LmCgn/dJMcah5l2O2/dgIZtnCVMLsnR7KT6aYxY1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/LmCgn/dJMcah5l2O2/dgIZtnCVMLsnR7KT6aYxY1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/LmCgn/dJMcah5l2O2/dgIZtnCVMLsnR7KT6aYxY1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FLmCgn%2FdJMcah5l2O2%2FdgIZtnCVMLsnR7KT6aYxY1%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;2752&quot; height=&quot;1536&quot; data-filename=&quot;9.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;10.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/s7bVp/dJMcaiwnJx8/AmHKaKhuoMFYkODREoKmk0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/s7bVp/dJMcaiwnJx8/AmHKaKhuoMFYkODREoKmk0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/s7bVp/dJMcaiwnJx8/AmHKaKhuoMFYkODREoKmk0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fs7bVp%2FdJMcaiwnJx8%2FAmHKaKhuoMFYkODREoKmk0%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;2752&quot; height=&quot;1536&quot; data-filename=&quot;10.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;11.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bCGVBx/dJMcaiwnJyb/DKKKKbTtj60Kt1Hj3hKoB1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bCGVBx/dJMcaiwnJyb/DKKKKbTtj60Kt1Hj3hKoB1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bCGVBx/dJMcaiwnJyb/DKKKKbTtj60Kt1Hj3hKoB1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbCGVBx%2FdJMcaiwnJyb%2FDKKKKbTtj60Kt1Hj3hKoB1%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;2752&quot; height=&quot;1536&quot; data-filename=&quot;11.jpg&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;바이브 코딩은 코딩이다!&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;[&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;개발자의 조언]&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;단지 이전처럼 전문성이 요구되는 &quot;프로그래밍 언어를 이용한 코딩스킬&quot;이 많이 사라졌을 뿐이다. 그럼 코딩은 무엇인가? 컴퓨터에게 나의 구체화된 설계를 전달하는 과정이다. 결과적으로 &quot;프로그래밍 언어가 인간의 언어로 대체&quot;되었을 뿐이지 개발자의 사고방식으로 프로그램을 설계하는 것은 달라지지 않았다. 심지어 더 강화되었다.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;결과적으로 &lt;u&gt;&lt;b&gt;바이브 코딩을 하는 사람은 &quot;개발자 사고력&quot;을 키우지 않으면 안된다&lt;/b&gt;&lt;/u&gt;. AI 시대에는 개발자의 필수능력(프로그래밍 언어스킬, 모듈화 능력, 요구사항 분석)이 요구되었던 시대보다 편리한 시대임은 분명하다. 그러나 전체 구성에 대한 &lt;b&gt;기획력, 발생된 문제 해결능력, 유지보수 설계&lt;/b&gt;는 절대 변할 수도 변하지도 않는다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;바이브 코딩은 &lt;br /&gt;개발자가 되기 위한 &lt;br /&gt;세발자전거 같은 존재이다.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;</description>
      <category>강좌,  연재/바이브 코딩(Vibe coding)</category>
      <author>VintageappMaker</author>
      <guid isPermaLink="true">https://vintageappmaker.tistory.com/626</guid>
      <comments>https://vintageappmaker.tistory.com/626#entry626comment</comments>
      <pubDate>Fri, 1 May 2026 08:24:15 +0900</pubDate>
    </item>
    <item>
      <title>[codex] 유튜브를 채팅UI로 요약하는 스킬</title>
      <link>https://vintageappmaker.tistory.com/625</link>
      <description>&lt;h1&gt;유튜브 채팅요약&lt;/h1&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래 프롬프트를 Codex에 전달하면 &lt;code&gt;유튜브채팅요약&lt;/code&gt;을 사용해 &quot;채팅스타일의 유튜브 요약&quot;을 만들 수 있다.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;1. 스킬등록 프롬프트&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래와 같이 codex에서 프롬프트 한다.&lt;/p&gt;
&lt;pre class=&quot;yaml&quot;&gt;&lt;code&gt;내 로컬 Codex 스킬로 `youtube-chat-summary`를 설치해줘.

목표:
YouTube URL을 입력받아 영상 메타데이터와 가능한 자막을 확인하고, 내용을 한국어 카카오톡 스타일 채팅 요약 HTML로 만들어 저장하는 스킬을 생성한다. 결과 HTML은 매번 새 디자인을 만들지 말고, 아래 `Fixed HTML Template Contract`를 고정 템플릿으로 사용한다.

설치 위치:
- Windows라면 기본값: C:\Users\user\.codex\skills\youtube-chat-summary\SKILL.md
- 다른 환경이라면 Codex 홈의 skills/youtube-chat-summary/SKILL.md에 저장한다.
- 폴더가 없으면 생성한다.

생성할 SKILL.md 내용:

---
name: youtube-chat-summary
description: YouTube chat summary skill. Use when the user provides a YouTube URL and wants the video summarized into a KakaoTalk-style chat storyboard/conti HTML file, asks for youtube-chat-summary, asks for a YouTube video summarized as a chat, or wants inferred speaker personas and a responsive HTML chat storyboard saved locally.
---

# YouTube Chat Summary

## Workflow

1. Accept a YouTube URL from the user. If missing, ask only for the URL.
2. Use an existing `youtube-info` skill when available to retrieve metadata and, when possible, captions or transcript:
   - Run its helper for metadata preview.
   - Use `yt-dlp --list-subs` and prefer Korean original captions (`ko-orig`), then Korean auto captions (`ko`), then English or available captions if Korean is unavailable.
   - If captions are unavailable, use title, description, chapters, and conservative fallback sections. State that the summary is metadata/description-based.
3. Summarize the video in Korean:
   - Identify the central claim, 3 to 5 supporting points, and the ending takeaway.
   - Avoid claiming exact transcript-level detail unless captions or user-provided notes were available.
4. Create plausible chat participants from the content:
   - Choose 2 to 3 speakers, such as a questioner plus an expert/source persona.
   - Names should fit the topic naturally.
   - Do not claim these speakers are actual video participants unless the video clearly establishes them.
5. Build a responsive single-file HTML report with the fixed template defined in `Fixed HTML Template Contract` below:
   - A KakaoTalk-style chat frame based on the current local generation time.
   - A top video summary card with thumbnail, title, channel, duration, and original URL.
   - Chat bubbles that convert the video summary into a readable conversation.
   - A storyboard/conti section with 6 to 10 scenes, each with time range, scene title, visual direction, and dialogue/subtitle guidance.
6. Save the HTML in the current working directory unless the user specifies another output directory.

## Chat UI Rules

- Do not show KakaoTalk read/unread numbers.
- Use the actual generation time for chat timestamps. Start at the generation minute and increment naturally.
- Put each bubble beside a visible avatar icon.
- Put the speaker name above the bubble.
- For consecutive messages from the same speaker, still show the avatar and name unless the user asks for compact grouping.
- Keep the visual style close to KakaoTalk: blue chat background, yellow right-side expert bubbles, white left-side questioner bubbles, dark room header, and bottom input bar.
- Make the layout responsive:
  - On desktop, place the phone-style chat and storyboard side by side.
  - On mobile, stack the chat first and storyboard second.
- Use CSS only; avoid external JavaScript unless needed.
- Use `word-break: keep-all` and `overflow-wrap: anywhere` so Korean text does not overflow on mobile.

## Content Rules

- Base the content on captions when available.
- If captions are unavailable, explicitly mark the output as based on metadata, description, chapters, or generated fallback.
- Paraphrase copyrighted transcript content. Do not dump a full transcript into the HTML.
- Keep chat bubbles concise and conversational; put dense facts in small info boxes inside bubbles.
- Use a neutral summary bot or narrator bubble for the final takeaway.
- Use absolute dates/times for generated metadata when relevant.

## Fixed HTML Template Contract

Use `youtube_chat_summary_20260428_092016.html` as the canonical template style and structure. The content changes for each video, but the page architecture, class names, CSS rules, and major sections must stay fixed.

Required structure:

- Top `.video-card` with `.thumb`, `h1`, `.meta .pill`, and `.basis`.
- Main `.layout` with left `.phone` KakaoTalk-style chat and right `.panel`.
- Chat frame with `.chat-header`, `.chat-body`, `.stamp`, repeated `.msg`, `.msg.expert`, optional `.msg.bot`, `.avatar`, `.content`, `.name`, `.bubble`, `.time`, and `.input-bar`.
- Summary area with `.summary-grid` and exactly four `.summary-item` cards.
- Storyboard area with 6 to 10 repeated `.scene` blocks using `.range`, `h3`, and two `p` lines for visual direction and subtitle/dialogue.

Fixed styling:

- Preserve the original color tokens: `--bg: #eef3f7`, `--phone: #9bb8d2`, `--header: #2f343a`, `--yellow: #fee500`, `--white: #ffffff`, `--ink: #1f2933`, `--muted: #6b7684`, `--line: #dde4ec`, `--panel: #f8fafc`, `--accent: #2f6f8f`.
- Preserve the desktop grid: `.layout { grid-template-columns: minmax(340px, 430px) 1fr; }`.
- Preserve the mobile breakpoint at `max-width: 820px`, stacking the chat above the storyboard.
- Preserve `.video-card`, `.phone`, `.panel`, `.bubble`, `.summary-item`, and `.scene` spacing, borders, radii, and typography from the canonical template.
- Use inline `style=&quot;background-image: url('{{thumbnail_url}}');&quot;` on `.thumb` so each video uses its own thumbnail while keeping the same template.

Fixed CSS:

```css
:root {
  --bg: #eef3f7;
  --phone: #9bb8d2;
  --header: #2f343a;
  --yellow: #fee500;
  --white: #ffffff;
  --ink: #1f2933;
  --muted: #6b7684;
  --line: #dde4ec;
  --panel: #f8fafc;
  --accent: #2f6f8f;
}
* { box-sizing: border-box; }
body {
  margin: 0;
  font-family: &quot;Malgun Gothic&quot;, &quot;Apple SD Gothic Neo&quot;, Arial, sans-serif;
  background: var(--bg);
  color: var(--ink);
  word-break: keep-all;
  overflow-wrap: anywhere;
}
a { color: inherit; }
.page { max-width: 1180px; margin: 0 auto; padding: 24px; }
.video-card {
  display: grid;
  grid-template-columns: 220px 1fr;
  gap: 18px;
  align-items: stretch;
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 16px;
  box-shadow: 0 12px 30px rgba(31, 41, 51, 0.08);
  margin-bottom: 20px;
}
.thumb {
  min-height: 124px;
  border-radius: 6px;
  background-size: cover;
  background-position: center;
  border: 1px solid var(--line);
}
.video-card h1 { font-size: 21px; line-height: 1.35; margin: 0 0 10px; letter-spacing: 0; }
.meta { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 12px; font-size: 13px; color: var(--muted); }
.pill { border: 1px solid var(--line); border-radius: 999px; padding: 5px 9px; background: var(--panel); }
.basis { font-size: 14px; line-height: 1.6; margin: 0; }
.layout { display: grid; grid-template-columns: minmax(340px, 430px) 1fr; gap: 22px; align-items: start; }
.phone { border-radius: 8px; overflow: hidden; background: var(--phone); border: 1px solid #7fa0bd; box-shadow: 0 18px 38px rgba(31, 41, 51, 0.14); }
.chat-header { height: 54px; background: var(--header); color: var(--white); display: flex; align-items: center; justify-content: space-between; padding: 0 15px; font-weight: 700; letter-spacing: 0; }
.chat-header small { color: #cbd5df; font-weight: 400; font-size: 12px; }
.chat-body { padding: 16px 12px 14px; min-height: 670px; }
.stamp { text-align: center; font-size: 12px; color: #4c6072; margin: 6px 0 16px; }
.msg { display: flex; gap: 8px; margin: 0 0 14px; align-items: flex-start; }
.msg.expert { flex-direction: row-reverse; }
.avatar { width: 34px; height: 34px; border-radius: 50%; flex: 0 0 34px; display: grid; place-items: center; font-weight: 700; font-size: 13px; color: #ffffff; background: #5d6f82; border: 1px solid rgba(255,255,255,0.45); }
.expert .avatar { background: #b88a00; color: #1f2933; }
.bot .avatar { background: #276749; }
.content { max-width: 78%; }
.name { font-size: 12px; color: #334e68; margin: 0 0 4px; }
.expert .name { text-align: right; }
.bubble { border-radius: 8px; padding: 10px 11px; background: var(--white); font-size: 14px; line-height: 1.55; box-shadow: 0 1px 1px rgba(31, 41, 51, 0.08); }
.expert .bubble { background: var(--yellow); }
.time { font-size: 11px; color: #4c6072; margin-top: 4px; }
.expert .time { text-align: right; }
.info-box { border-top: 1px solid rgba(31,41,51,0.12); margin-top: 8px; padding-top: 8px; font-size: 13px; }
.input-bar { height: 52px; background: #f5f6f7; border-top: 1px solid #d5dce3; display: grid; grid-template-columns: 36px 1fr 44px; gap: 8px; align-items: center; padding: 8px 10px; }
.icon-btn, .send-btn { height: 32px; border: 0; border-radius: 6px; background: #e2e8ef; color: #3a4652; font-weight: 700; }
.field { height: 34px; border-radius: 6px; background: #ffffff; border: 1px solid #d5dce3; }
.send-btn { background: var(--yellow); color: #3b2f00; }
.panel { background: var(--white); border: 1px solid var(--line); border-radius: 8px; padding: 18px; }
.panel h2 { font-size: 20px; margin: 0 0 12px; letter-spacing: 0; }
.summary-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-bottom: 18px; }
.summary-item { border: 1px solid var(--line); border-radius: 8px; padding: 12px; background: var(--panel); min-height: 94px; }
.summary-item b { display: block; margin-bottom: 6px; color: var(--accent); font-size: 14px; }
.summary-item p { margin: 0; font-size: 14px; line-height: 1.55; }
.scene { display: grid; grid-template-columns: 82px 1fr; gap: 12px; padding: 12px 0; border-top: 1px solid var(--line); }
.range { font-weight: 700; color: var(--accent); font-size: 13px; padding-top: 3px; }
.scene h3 { margin: 0 0 5px; font-size: 15px; letter-spacing: 0; }
.scene p { margin: 3px 0; color: #3f4d5a; font-size: 14px; line-height: 1.55; }
@media (max-width: 820px) {
  .page { padding: 14px; }
  .video-card { grid-template-columns: 1fr; }
  .thumb { aspect-ratio: 16 / 9; min-height: 0; }
  .layout { grid-template-columns: 1fr; }
  .chat-body { min-height: auto; }
  .content { max-width: 82%; }
  .summary-grid { grid-template-columns: 1fr; }
  .scene { grid-template-columns: 1fr; gap: 4px; }
}
```

Fixed HTML skeleton:

```html
&amp;lt;!doctype html&amp;gt;
&amp;lt;html lang=&quot;ko&quot;&amp;gt;
&amp;lt;head&amp;gt;
  &amp;lt;meta charset=&quot;utf-8&quot;&amp;gt;
  &amp;lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;&amp;gt;
  &amp;lt;title&amp;gt;유튜브 채팅 요약 - {{short_topic}}&amp;lt;/title&amp;gt;
  &amp;lt;style&amp;gt;{{fixed_css_above}}&amp;lt;/style&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
  &amp;lt;main class=&quot;page&quot;&amp;gt;
    &amp;lt;section class=&quot;video-card&quot; aria-label=&quot;영상 정보&quot;&amp;gt;
      &amp;lt;div class=&quot;thumb&quot; role=&quot;img&quot; aria-label=&quot;{{thumbnail_alt}}&quot; style=&quot;background-image: url('{{thumbnail_url}}');&quot;&amp;gt;&amp;lt;/div&amp;gt;
      &amp;lt;div&amp;gt;
        &amp;lt;h1&amp;gt;{{video_title}}&amp;lt;/h1&amp;gt;
        &amp;lt;div class=&quot;meta&quot;&amp;gt;
          &amp;lt;span class=&quot;pill&quot;&amp;gt;채널: {{channel}}&amp;lt;/span&amp;gt;
          &amp;lt;span class=&quot;pill&quot;&amp;gt;길이: {{duration}}&amp;lt;/span&amp;gt;
          &amp;lt;span class=&quot;pill&quot;&amp;gt;업로드: {{upload_date_or_unknown}}&amp;lt;/span&amp;gt;
          &amp;lt;span class=&quot;pill&quot;&amp;gt;생성: {{generated_at_kst}}&amp;lt;/span&amp;gt;
        &amp;lt;/div&amp;gt;
        &amp;lt;p class=&quot;basis&quot;&amp;gt;
          원본: &amp;lt;a href=&quot;{{source_url}}&quot;&amp;gt;{{source_url}}&amp;lt;/a&amp;gt;&amp;lt;br&amp;gt;
          요약 근거: {{source_basis}}. 아래 대화 인물은 실제 출연자가 아니라 요약을 쉽게 읽기 위한 구성입니다.
        &amp;lt;/p&amp;gt;
      &amp;lt;/div&amp;gt;
    &amp;lt;/section&amp;gt;
    &amp;lt;section class=&quot;layout&quot;&amp;gt;
      &amp;lt;div class=&quot;phone&quot; aria-label=&quot;카카오톡 스타일 채팅 요약&quot;&amp;gt;
        &amp;lt;div class=&quot;chat-header&quot;&amp;gt;
          &amp;lt;span&amp;gt;{{chat_room_title}}&amp;lt;/span&amp;gt;
          &amp;lt;small&amp;gt;{{channel_or_topic}}&amp;lt;/small&amp;gt;
        &amp;lt;/div&amp;gt;
        &amp;lt;div class=&quot;chat-body&quot;&amp;gt;
          &amp;lt;div class=&quot;stamp&quot;&amp;gt;{{chat_date_stamp}}&amp;lt;/div&amp;gt;
          {{chat_messages}}
        &amp;lt;/div&amp;gt;
        &amp;lt;div class=&quot;input-bar&quot; aria-hidden=&quot;true&quot;&amp;gt;
          &amp;lt;button class=&quot;icon-btn&quot;&amp;gt;+&amp;lt;/button&amp;gt;
          &amp;lt;div class=&quot;field&quot;&amp;gt;&amp;lt;/div&amp;gt;
          &amp;lt;button class=&quot;send-btn&quot;&amp;gt;전송&amp;lt;/button&amp;gt;
        &amp;lt;/div&amp;gt;
      &amp;lt;/div&amp;gt;
      &amp;lt;aside class=&quot;panel&quot; aria-label=&quot;요약과 콘티&quot;&amp;gt;
        &amp;lt;h2&amp;gt;요약 포인트&amp;lt;/h2&amp;gt;
        &amp;lt;div class=&quot;summary-grid&quot;&amp;gt;{{summary_items}}&amp;lt;/div&amp;gt;
        &amp;lt;h2&amp;gt;스토리보드/콘티&amp;lt;/h2&amp;gt;
        {{storyboard_scenes}}
      &amp;lt;/aside&amp;gt;
    &amp;lt;/section&amp;gt;
  &amp;lt;/main&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
```

Repeated block rules:

- `{{chat_messages}}`: Generate 7 to 10 `.msg` blocks. Use `.msg expert` for the answer/expert/source persona and `.msg bot` for the final takeaway. Keep avatar initials visible.
- `{{summary_items}}`: Generate exactly four `.summary-item` blocks: 중심 주장, 핵심 사건, 근거/맥락, 결론/시사점.
- `{{storyboard_scenes}}`: Generate 6 to 10 `.scene` blocks. Each scene must contain `.range`, `h3`, one visual direction paragraph, and one subtitle/dialogue paragraph.
- Keep timestamps based on the actual local generation time, incrementing naturally by minute.
- Do not include JavaScript unless the user explicitly requests dynamic behavior.

## Output Naming

Default filename:

```text
youtube_chat_summary_YYYYMMDD_HHMMSS.html
```

If the content has an obvious short topic, a descriptive name is acceptable.

## Verification

After writing the HTML:

1. Confirm the file exists and has non-trivial size.
2. Search the file to ensure no read-number markers remain, such as `unread`.
3. Search for `visibility:hidden` and remove it if it was used to fake avatar spacing.
4. Confirm timestamps reflect the generation time, not arbitrary source-video times.
5. Report the saved path and the source basis used: captions, description/chapters, or fallback.

추가 요구:
- 설치 후 `youtube-chat-summary` 스킬이 생성된 전체 경로를 알려줘.
- `yt-dlp`가 없으면 설치하지 말고, 필요 패키지로 `yt-dlp`가 필요하다고 알려줘.
- 네트워크 접근이 막힌 환경에서는 승인 요청 후 `yt-dlp` 명령을 다시 실행하도록 안내해줘.&lt;/code&gt;&lt;/pre&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;2. 예제&lt;/h2&gt;
&lt;pre class=&quot;stylus&quot;&gt;&lt;code&gt;$youtube-chat-summary https://www.youtube.com/watch?v=UqUD1sTkbkc를 요약해줘.&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src=&quot;1.jpg&quot; alt=&quot;&quot; /&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;1.jpg&quot; data-origin-width=&quot;1173&quot; data-origin-height=&quot;946&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/MxDVp/dJMcadIzy5Z/8JTgksKBG3I3gsQMZBiAfK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/MxDVp/dJMcadIzy5Z/8JTgksKBG3I3gsQMZBiAfK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/MxDVp/dJMcadIzy5Z/8JTgksKBG3I3gsQMZBiAfK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FMxDVp%2FdJMcadIzy5Z%2F8JTgksKBG3I3gsQMZBiAfK%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;1173&quot; height=&quot;946&quot; data-filename=&quot;1.jpg&quot; data-origin-width=&quot;1173&quot; data-origin-height=&quot;946&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;fileblock&quot; data-ke-align=&quot;alignCenter&quot;&gt;&lt;a href=&quot;https://blog.kakaocdn.net/dn/bKSAEm/dJMcajvhctA/X9A1DYXcxP7KLINgrQk4UK/report.html?attach=1&amp;amp;knm=tfile.html&quot; class=&quot;&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;desc&quot;&gt;&lt;div class=&quot;filename&quot;&gt;&lt;span class=&quot;name&quot;&gt;report.html&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;size&quot;&gt;0.02MB&lt;/div&gt;
&lt;/div&gt;
  &lt;/a&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>Source code or Tip/생성AI</category>
      <category>Codex</category>
      <category>Skill</category>
      <category>생성AI</category>
      <category>유튜브요약</category>
      <author>VintageappMaker</author>
      <guid isPermaLink="true">https://vintageappmaker.tistory.com/625</guid>
      <comments>https://vintageappmaker.tistory.com/625#entry625comment</comments>
      <pubDate>Thu, 30 Apr 2026 09:42:48 +0900</pubDate>
    </item>
  </channel>
</rss>