<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>sweety_jh223.log</title>
        <link>https://velog.io/</link>
        <description>풀스택 개발자 | 파이썬 • 자바스크립트 • 웹 스크래핑 • sweetyCodes</description>
        <lastBuildDate>Tue, 14 Jul 2026 19:15:14 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>sweety_jh223.log</title>
            <url>https://velog.velcdn.com/images/sweety_jh223/profile/2ceff2d5-faf1-4f74-8d86-14a1475a668e/image.jpg</url>
            <link>https://velog.io/</link>
        </image>
        <copyright>Copyright (C) 2019. sweety_jh223.log. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/sweety_jh223" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[YouCam API 리뷰: 뷰티/패션 AI API 5종 기능 테스트]]></title>
            <link>https://velog.io/@sweety_jh223/YouCam-API-%EB%A6%AC%EB%B7%B0-%EB%B7%B0%ED%8B%B0%ED%8C%A8%EC%85%98-AI-API-5%EC%A2%85-%EA%B8%B0%EB%8A%A5-%ED%85%8C%EC%8A%A4%ED%8A%B8</link>
            <guid>https://velog.io/@sweety_jh223/YouCam-API-%EB%A6%AC%EB%B7%B0-%EB%B7%B0%ED%8B%B0%ED%8C%A8%EC%85%98-AI-API-5%EC%A2%85-%EA%B8%B0%EB%8A%A5-%ED%85%8C%EC%8A%A4%ED%8A%B8</guid>
            <pubDate>Tue, 14 Jul 2026 19:15:14 GMT</pubDate>
            <description><![CDATA[<h1 id="뷰티-api-처음-써봤는데-생각보다-재밌었던-이야기-feat-youcam-api">뷰티 API 처음 써봤는데 생각보다 재밌었던 이야기 (feat. YouCam API)</h1>
<p>얼마 전에 살짝 신기한 메일을 하나 받았어요. Perfect Corp이라는 뷰티테크 회사의 YouCam API 팀에서, 제 벨로그를 보고 무료 API 유닛(500 units)을 주겠다는 연락이었습니다. 처음엔 &quot;이거 뭐지?&quot; 싶었는데, 알고 보니 진짜 뷰티/패션 AI API를 서비스하는 회사더라고요. 심지어 Amorepacific 같은 K-beauty 기업들과도 협업하고 있어서, 그냥 넘기기엔 아까워서 한번 제대로 파보기로 했습니다.</p>
<p>결론부터 말하면 - 예상보다 훨씬 재밌었어요. 피부 분석부터 헤어스타일, 룩 체험, 반지 착용까지 이것저것 눌러보면서 놀았던 후기를 남겨봅니다.</p>
<h2 id="youcam-api-뭐하는-곳인가">YouCam API, 뭐하는 곳인가</h2>
<p><a href="https://yce.perfectcorp.com/ko/ai-api">YouCam API</a>는 한마디로 &quot;얼굴에 AI 마법 부리는 기능들을 API로 가져다 쓸 수 있게 해주는 플랫폼&quot;이에요. 피부 분석, 메이크업 가상 체험, 헤어 컬러/스타일 체험 같은 기능들을 웹이나 앱에 그냥 붙여 쓸 수 있게 만들어놨더라고요.</p>
<p>Playground 들어가보니 curl, Node.js, JavaScript, PHP 코드가 바로바로 나와서, 문서 정독 안 하고도 감으로 눌러가면서 테스트할 수 있었어요. 이런 부분 진짜 개발자 친화적이라 좋았습니다.</p>
<h2 id="1-내-피부-점수는-몇-점일까---ai-skin-analysis">1. 내 피부 점수는 몇 점일까 - AI Skin Analysis</h2>
<p>일단 샘플 이미지로 먼저 찍먹해봤습니다. Acne(여드름), Eye Bag(눈밑 붓기), Dark Circles(다크서클), Radiance(광채) 이렇게 네 가지를 체크하고 돌려봤어요.</p>
<p><strong>결과가 이렇게 나왔어요</strong></p>
<ul>
<li>Eye Bag: 58점</li>
<li>Radiance: 77점</li>
<li>Acne: 99점</li>
<li>Dark Circles: 72점</li>
<li>종합 점수: 76.5점</li>
</ul>
<p><img src="https://velog.velcdn.com/images/sweety_jh223/post/f6a7c636-9b83-4884-b20e-cc027bc06d7c/image.png" alt="여기에 스킨 분석 결과 스크린샷 첨부"></p>
<p>신기했던 건 점수만 딱 주는 게 아니라, 얼굴 부위별로 시각화된 마스크 이미지도 같이 돌려준다는 거예요. &quot;아, 이 부분을 보고 이 점수를 매겼구나&quot;가 눈으로 바로 보여서 꽤 신뢰가 갔습니다. JSON 응답에 <code>ui_score</code>(0-100 정규화된 점수)랑 <code>raw_score</code>가 같이 오는데, 이 정도면 프론트에 바로 붙여서 점수 게이지 UI 만들기도 어렵지 않겠다 싶었어요.</p>
<h2 id="2-이-헤어스타일-어울릴까---ai-hair-style-virtual-try-on">2. 이 헤어스타일 어울릴까 - AI Hair Style Virtual Try-On</h2>
<p>이번엔 샘플 인물 사진으로 헤어스타일 체험을 해봤어요. 사진 고르고 스타일 하나 선택해서 돌렸더니, 한 7초 만에 결과가 나오더라고요.</p>
<p><img src="https://velog.velcdn.com/images/sweety_jh223/post/0636acdf-78a2-40ca-b5f7-7fa92bd55a88/image.png" alt="여기에 헤어 try-on 결과 스크린샷 첨부"></p>
<p>솔직히 좀 놀랐던 게, 합성 티가 별로 안 나요. &quot;이거 살짝 부자연스럽겠지&quot; 하고 기대치를 낮췄는데 생각보다 자연스러워서 살짝 소름... 이 정도 퀄리티면 실제 뷰티 앱에 넣어도 위화감 없겠다는 생각이 들었습니다.</p>
<h2 id="3-다른-사람의-룩을-그대로---ai-look-virtual-try-on">3. 다른 사람의 룩을 그대로 - AI Look Virtual Try On</h2>
<p>마지막으로 Look Virtual Try On도 해봤어요. 개별 항목을 하나씩 조정하는 게 아니라, 준비된 샘플 얼굴 중 하나를 고르면 그 얼굴의 메이크업 룩을 통째로 가져와 적용해주는 방식이더라고요.</p>
<p><img src="https://velog.velcdn.com/images/sweety_jh223/post/3f711272-df72-4373-8a74-ab692549417b/image.png" alt="여기에 Look try-on 결과 스크린샷 첨부"></p>
<p>처리 시간은 14초 정도였고, 눈매 라인이나 입술 컬러가 자연스럽게 입혀졌습니다. 세부 커스터마이징보다는 &quot;이 사람 메이크업 그대로 따라 하고 싶다&quot;는 상황에 어울리는 기능 같았어요.</p>
<h2 id="번외-ai-ring-virtual-try-on">번외: AI Ring Virtual Try-On</h2>
<p>얼굴뿐 아니라 손에도 적용되는 기능이 있길래 반지 가상 체험도 살짝 해봤어요. 샘플 손 사진에 반지를 씌워봤는데, 손가락 위치를 자동으로 인식해서 자연스럽게 합성해주더라고요.</p>
<p><img src="https://velog.velcdn.com/images/sweety_jh223/post/b5c70103-f1be-4dae-ad0c-68137ace1f71/image.png" alt="여기에 반지 try-on 결과 스크린샷 첨부"></p>
<p>뷰티뿐 아니라 주얼리/패션 쪽까지 API 활용 범위가 넓다는 걸 알 수 있었습니다.</p>
<p>개인적으로 가장 재밌었던 건 <strong>AI Clothes Virtual Try On</strong>이었어요. 옷 이미지를 골라서 사람 사진에 입혀보는 기능인데, 원단이 몸에 걸쳐지는 느낌이나 핏이 생각보다 자연스럽게 표현돼서 계속 이것저것 옷을 바꿔가며 눌러보게 되더라고요. 지금까지 써본 기능 중에 제일 재밌었던 건 이거였습니다.</p>
<h2 id="아쉬웠던-점도-살짝">아쉬웠던 점도 살짝</h2>
<p>좋은 얘기만 하면 재미없으니까 솔직한 피드백도 하나 남겨봅니다.</p>
<p>테스트하면서 좀 아쉬웠던 점 하나는, 결과 이미지 URL이 2시간 뒤에 만료된다는 거였어요. Playground 안에 지난 결과들을 모아볼 수 있는 히스토리 같은 게 없다 보니, 나중에 다시 비교해보고 싶거나 스크린샷을 놓쳤을 때 다시 찾아보기가 어려웠습니다. 최근 결과 몇 개 정도는 저장해서 볼 수 있는 기능이 있으면 훨씬 편할 것 같아요.</p>
<h2 id="총평">총평</h2>
<p>무료 유닛으로 이것저것 눌러보면서 반나절 즐겁게 놀았네요 (일하다 말고 이거 하느라 시간 좀 뺏겼다는 건 안 비밀). 피부 분석, 헤어, 룩, 반지 체험까지 한 플랫폼 안에서 다 되는 게 생각보다 편리했고, 응답 구조도 프론트엔드에 바로 붙이기 좋게 설계되어 있어서 뷰티/패션 쪽 사이드 프로젝트 아이디어가 있으신 분들이라면 한번 가볍게 테스트해보셔도 좋을 것 같아요.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[내 JSON 파싱 코드를 전부 삭제하게 만든 한 줄]]></title>
            <link>https://velog.io/@sweety_jh223/%EB%82%B4-JSON-%ED%8C%8C%EC%8B%B1-%EC%BD%94%EB%93%9C%EB%A5%BC-%EC%A0%84%EB%B6%80-%EC%82%AD%EC%A0%9C%ED%95%98%EA%B2%8C-%EB%A7%8C%EB%93%A0-%ED%95%9C-%EC%A4%84</link>
            <guid>https://velog.io/@sweety_jh223/%EB%82%B4-JSON-%ED%8C%8C%EC%8B%B1-%EC%BD%94%EB%93%9C%EB%A5%BC-%EC%A0%84%EB%B6%80-%EC%82%AD%EC%A0%9C%ED%95%98%EA%B2%8C-%EB%A7%8C%EB%93%A0-%ED%95%9C-%EC%A4%84</guid>
            <pubDate>Mon, 29 Jun 2026 12:18:46 GMT</pubDate>
            <description><![CDATA[<p>English version of this post : <a href="https://velog.io/@sweety_jh223/The-One-Line-That-Deleted-All-My-JSON-Parsing-Code">영어로 읽기</a>
<img src="https://velog.velcdn.com/images/sweety_jh223/post/d1fb027d-6015-406e-be11-6ebdd66aa32f/image.png" alt=""></p>
<h1 id="몇-시간-동안-막혔어요-그러다-response_schema를-찾았죠">몇 시간 동안 막혔어요. 그러다 <code>response_schema</code>를 찾았죠.</h1>
<p><em>K-Trust — AI 상인 컴플라이언스 툴을 만들면서 겪은 실제 이야기</em></p>
<hr>
<p>솔직하게 말할게요.</p>
<p>K-Trust를 만들기 시작했을 때, 어려운 부분은 AI 로직일 거라고 생각했어요. 프롬프트, 점수 기준, 컴플라이언스 요약. 그런 것들이요.</p>
<p>JSON과 몇 시간을 싸우게 될 줄은 몰랐어요.</p>
<hr>
<h2 id="계속-겪었던-문제">계속 겪었던 문제</h2>
<p>K-Trust의 아이디어는 간단했어요 — 원시 상인 데이터를 Gemini에 보내고 구조화된 리스크 보고서를 받는 것. 신뢰 점수, 위험 수준, 법적 상태, 요약. 깔끔하고 예측 가능하게.</p>
<p>근데 그렇지 않았어요.</p>
<p>첫 번째 접근법은 당연한 것이었어요 — 그냥 Gemini에게 뭘 반환할지 말해주기:</p>
<pre><code class="language-python">prompt = &quot;&quot;&quot;
이 상인을 분석하고 다음을 포함한 JSON을 반환하세요:
- trust_score (int)
- risk_level (string)  
- legal_status (boolean)
- summary (string)
&quot;&quot;&quot;</code></pre>
<p>가끔은 완벽하게 작동했어요. 가끔은 Gemini가 이렇게 반환했어요:</p>
<pre><code>물론이죠! 컴플라이언스 보고서입니다:
```json
{
  &quot;trust_score&quot;: 87,
  ...
}
```</code></pre><p>그러면 <code>json.loads()</code>가 충돌했어요.</p>
<p>그래서 <code>.strip()</code>을 추가했어요. 그다음 <code>.replace(&quot;```json&quot;, &quot;&quot;)</code>을. 그다음 <code>try/except</code> 블록을. 그다음 또 하나를. 실제 기능 코드보다 파싱 코드를 더 많이 쓰고 있었는데 여전히 랜덤하게 실패했어요.</p>
<p>터미널을 바라보며 생각했어요 — <em>더 좋은 방법이 있어야 해.</em></p>
<hr>
<h2 id="저를-구한-토끼굴">저를 구한 토끼굴</h2>
<p>이번엔 제대로 <a href="https://ai.google.dev/gemini-api/docs/structured-output">Google Gemini API 문서</a>로 돌아갔어요 — 훑어보는 게 아니라 제대로. 그리고 구조화된 출력 섹션에서 완전히 놓쳤던 것을 발견했어요:</p>
<blockquote>
<p>Pydantic 모델을 <code>response_schema</code>로 전달해서 정확한 출력 형태를 강제할 수 있습니다.</p>
</blockquote>
<p>잠깐. <em>강제</em>할 수 있다고요? 그냥 정중하게 부탁하는 게 아니라?</p>
<p><a href="https://googleapis.github.io/python-genai/">Google GenAI Python SDK 문서</a>에서도 실제 코드 예시와 함께 이것이 언급된 것을 발견했어요. 스키마를 제대로 정의하는 방법을 이해하기 위해 <a href="https://docs.pydantic.dev/latest/concepts/models/">Pydantic BaseModel 문서</a>도 읽었어요.</p>
<p>그리고 시도해봤어요.</p>
<hr>
<p> <img src="https://velog.velcdn.com/images/sweety_jh223/post/08ca3c67-f09b-4183-a824-19ff249cacd9/image.png" alt=""></p>
<h2 id="모든-게-딱-맞아떨어진-순간">모든 게 딱 맞아떨어진 순간</h2>
<h3 id="step-1--gemini가-반환하길-원하는-것을-정확히-정의했어요">Step 1 — Gemini가 반환하길 원하는 것을 정확히 정의했어요</h3>
<pre><code class="language-python">from pydantic import BaseModel

class GeminiReport(BaseModel):
    trust_score: int
    risk_level: str
    risk_tags: list[str]
    legal_status: bool
    financial_risk: bool
    sentiment_score: bool
    executive_stability: bool
    summary: str</code></pre>
<h3 id="step-2--response_schema로-gemini에-직접-전달했어요">Step 2 — <code>response_schema</code>로 Gemini에 직접 전달했어요</h3>
<pre><code class="language-python">ai_response = client.models.generate_content(
    model=&quot;gemini-2.5-flash&quot;,
    contents=prompt,
    config=types.GenerateContentConfig(
        response_mime_type=&quot;application/json&quot;,
        response_schema=GeminiReport,  # Gemini는 반드시 이 형태를 따라야 해요
    ),
)

structured_data = json.loads(ai_response.text)</code></pre>
<p>그게 전부였어요.</p>
<p>마크다운 제거 없음. 방어적 파싱 없음. 새벽 2시의 랜덤 충돌 없음.</p>
<p><code>structured_data</code>는 매번 완벽하게 타입이 지정된 상태로 돌아왔어요. <code>trust_score</code>는 항상 <code>int</code>였어요. <code>legal_status</code>는 항상 <code>bool</code>이었어요. 필드는 항상 제가 정의한 것과 정확히 같았어요.</p>
<p>처음 작동했을 때 &quot;오&quot; 하고 소리를 냈어요.</p>
<hr>
<h2 id="최종-k-trust-엔드포인트">최종 K-Trust 엔드포인트</h2>
<pre><code class="language-python">@app.post(&quot;/audit&quot;)
async def run_audit(request: AuditRequest):
    # 1. 상인 데이터 조회
    merchant = MARKET_DB[&quot;merchants&quot;].get(request.merchant_id)
    if not merchant:
        raise HTTPException(status_code=404, detail=&quot;상인을 찾을 수 없습니다.&quot;)

    # 2. 원시 비즈니스 데이터로 프롬프트 구성
    raw = merchant[&quot;raw_data&quot;]
    prompt = f&quot;&quot;&quot;
이 상인을 감사하고 컴플라이언스 보고서를 반환하세요.
회사: {merchant[&quot;company_name&quot;]}
법적 기록: {chr(10).join(raw[&quot;legal_records&quot;])}
재무 신호: {chr(10).join(raw[&quot;financial_signals&quot;])}
&quot;&quot;&quot;

    # 3. Gemini가 완벽하게 구조화된 데이터를 반환해요 — 매번
    ai_response = client.models.generate_content(
        model=&quot;gemini-2.5-flash&quot;,
        contents=prompt,
        config=types.GenerateContentConfig(
            response_mime_type=&quot;application/json&quot;,
            response_schema=GeminiReport,
        ),
    )

    structured_data = json.loads(ai_response.text)
    return {&quot;status&quot;: &quot;success&quot;, &quot;data&quot;: structured_data}</code></pre>
<p>깔끔해요. 드라마 없이.</p>
<hr>
<p> <img src="https://velog.velcdn.com/images/sweety_jh223/post/dec9358d-7264-4831-a38f-9b59f0080c10/image.png" alt=""></p>
<h2 id="제가-배운-것">제가 배운 것</h2>
<p>이것을 찾기 전에는 구조화된 LLM 출력이 항상 지저분할 거라고 생각했어요. 방어적 파싱이 그냥... AI로 작업하는 비용이라고요.</p>
<p>아니에요. 그냥 올바른 도구가 필요할 뿐이에요.</p>
<table>
<thead>
<tr>
<th>지저분한 방법</th>
<th>깔끔한 방법</th>
</tr>
</thead>
<tbody><tr>
<td>LLM이 프롬프트를 따르길 희망</td>
<td>정확한 출력 형태를 강제</td>
</tr>
<tr>
<td>파싱 코드 레이어 작성</td>
<td><code>json.loads()</code> 하고 끝</td>
</tr>
<tr>
<td>프로덕션에서 랜덤 충돌</td>
<td>매번 일관된 출력</td>
</tr>
<tr>
<td>매번 다른 필드명</td>
<td>정확한 Pydantic 타입 보장</td>
</tr>
</tbody></table>
<p>구조화된 출력이 필요한 Gemini로 무언가를 만들고 있다면 — 제가 겪은 고생은 건너뛰세요. 먼저 구조화된 출력 문서를 읽으세요. 저도 그랬으면 좋았을 텐데.</p>
<hr>
<h2 id="도움이-된-리소스">도움이 된 리소스</h2>
<ul>
<li>📖 <a href="https://ai.google.dev/gemini-api/docs/structured-output">Gemini 구조화된 출력 문서</a> — <em>모든 걸 바꾼 바로 그것</em></li>
<li>📖 <a href="https://googleapis.github.io/python-genai/">Google GenAI Python SDK</a> — <em>실제 코드 예시</em></li>
<li>📖 <a href="https://docs.pydantic.dev/latest/concepts/models/">Pydantic BaseModel 문서</a> — <em>스키마를 제대로 정의하는 방법</em></li>
<li>🔗 <a href="https://project-4xzgu-blush.vercel.app">K-Trust 라이브 데모</a> — <em>전체 작동 확인</em></li>
<li>📦 <a href="https://github.com/sweety-HJH223/K-Trust">K-Trust GitHub</a> — <em>전체 소스 코드</em></li>
</ul>
<hr>
<p> <img src="https://velog.velcdn.com/images/sweety_jh223/post/d7a6b573-044e-498c-bbd9-6a1db6ce0b7a/image.png" alt=""></p>
<p><em>SweetyCodes (Subhashree Behera) 작성 — AI &amp; 풀스택 개발자</em>
<em>현재 AI 기반 웹앱을 만들고 한국어를 배우는 중이에요</em></p>
<p>#개발 #Python #AI #백엔드 #Gemini</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[The One Line That Deleted All My JSON Parsing Code]]></title>
            <link>https://velog.io/@sweety_jh223/The-One-Line-That-Deleted-All-My-JSON-Parsing-Code</link>
            <guid>https://velog.io/@sweety_jh223/The-One-Line-That-Deleted-All-My-JSON-Parsing-Code</guid>
            <pubDate>Mon, 29 Jun 2026 12:03:48 GMT</pubDate>
            <description><![CDATA[<p>Korean version of this post (한국어 버전은 여기서 확인하세요): <a href="https://velog.io/@sweety_jh223/%EB%82%B4-JSON-%ED%8C%8C%EC%8B%B1-%EC%BD%94%EB%93%9C%EB%A5%BC-%EC%A0%84%EB%B6%80-%EC%82%AD%EC%A0%9C%ED%95%98%EA%B2%8C-%EB%A7%8C%EB%93%A0-%ED%95%9C-%EC%A4%84">한국어로 읽기</a></p>
<h1 id="i-was-stuck-for-hours-then-i-found-response_schema">I Was Stuck for Hours. Then I Found <code>response_schema</code>.</h1>
<p> <img src="https://velog.velcdn.com/images/sweety_jh223/post/47b5d68f-9d52-4439-924c-230b24eda22c/image.png" alt=""></p>
<p><em>A real story from building K-Trust — my AI merchant compliance tool</em></p>
<hr>
<p>Okay so let me be honest.</p>
<p>When I started building K-Trust, I thought the hard part would be the AI logic. The prompts, the scoring rubric, the compliance summary. That stuff.</p>
<p>I did not expect to spend hours fighting with JSON.</p>
<hr>
<h2 id="the-problem-i-kept-running-into">The Problem I Kept Running Into</h2>
<p>The idea behind K-Trust was simple — send raw merchant data to Gemini, get back a structured risk report. Trust score, risk level, legal status, summary. Clean. Predictable.</p>
<p>Except it wasn&#39;t.</p>
<p>My first approach was the obvious one — just tell Gemini what to return:</p>
<pre><code class="language-python">prompt = &quot;&quot;&quot;
Analyze this merchant and return a JSON with:
- trust_score (int)
- risk_level (string)
- legal_status (boolean)
- summary (string)
&quot;&quot;&quot;</code></pre>
<p>Sometimes it worked perfectly. Sometimes Gemini returned this:</p>
<pre><code>Sure! Here&#39;s the compliance report:
```json
{
  &quot;trust_score&quot;: 87,
  ...
}
```</code></pre><p>And my <code>json.loads()</code> would crash.</p>
<p>So I added <code>.strip()</code>. Then <code>.replace(&quot;```json&quot;, &quot;&quot;)</code>. Then a whole <code>try/except</code> block. Then another one. I was writing more parsing code than actual feature code and it still broke randomly.</p>
<p>I remember staring at my terminal thinking — <em>there has to be a better way.</em></p>
<hr>
<p> <img src="https://velog.velcdn.com/images/sweety_jh223/post/282fe2be-e806-4592-a6ca-9302db88f3f4/image.png" alt=""></p>
<h2 id="the-rabbit-hole-that-saved-me">The Rabbit Hole That Saved Me</h2>
<p>I went back to the <a href="https://ai.google.dev/gemini-api/docs/structured-output">Google Gemini API docs</a> — properly this time, not just skimming. And buried in the structured output section, I found something I had completely missed:</p>
<blockquote>
<p>You can pass a Pydantic model as <code>response_schema</code> to enforce the exact output shape.</p>
</blockquote>
<p>Wait. You can <em>enforce</em> it? Not just ask nicely?</p>
<p>I also found this mentioned in the <a href="https://googleapis.github.io/python-genai/">Google GenAI Python SDK docs</a> with actual code examples. I read through the <a href="https://docs.pydantic.dev/latest/concepts/models/">Pydantic BaseModel docs</a> to understand how to define the schema properly.</p>
<p>And then I tried it.</p>
<hr>
<h2 id="the-moment-everything-clicked">The Moment Everything Clicked</h2>
<h3 id="step-1--i-defined-exactly-what-i-wanted-gemini-to-return">Step 1 — I defined exactly what I wanted Gemini to return</h3>
<pre><code class="language-python">from pydantic import BaseModel

class GeminiReport(BaseModel):
    trust_score: int
    risk_level: str
    risk_tags: list[str]
    legal_status: bool
    financial_risk: bool
    sentiment_score: bool
    executive_stability: bool
    summary: str</code></pre>
<h3 id="step-2--i-passed-it-directly-to-gemini-as-response_schema">Step 2 — I passed it directly to Gemini as <code>response_schema</code></h3>
<pre><code class="language-python">ai_response = client.models.generate_content(
    model=&quot;gemini-2.5-flash&quot;,
    contents=prompt,
    config=types.GenerateContentConfig(
        response_mime_type=&quot;application/json&quot;,
        response_schema=GeminiReport,  # Gemini MUST match this shape
    ),
)

structured_data = json.loads(ai_response.text)</code></pre>
<p>And that was it.</p>
<p>No markdown stripping. No defensive parsing. No random crashes at 2am.</p>
<p><code>structured_data</code> came back perfectly typed every single time. <code>trust_score</code> was always an <code>int</code>. <code>legal_status</code> was always a <code>bool</code>. The fields were always exactly what I defined.</p>
<p>I literally said &quot;oh&quot; out loud when it worked the first time.</p>
<hr>
<h2 id="what-my-final-k-trust-endpoint-looks-like">What My Final K-Trust Endpoint Looks Like</h2>
<pre><code class="language-python">@app.post(&quot;/audit&quot;)
async def run_audit(request: AuditRequest):
    # 1. Look up merchant data
    merchant = MARKET_DB[&quot;merchants&quot;].get(request.merchant_id)
    if not merchant:
        raise HTTPException(status_code=404, detail=&quot;Merchant not found.&quot;)

    # 2. Build prompt with raw business data
    raw = merchant[&quot;raw_data&quot;]
    prompt = f&quot;&quot;&quot;
Audit this merchant and return a compliance report.
Company: {merchant[&quot;company_name&quot;]}
LEGAL RECORDS: {chr(10).join(raw[&quot;legal_records&quot;])}
FINANCIAL SIGNALS: {chr(10).join(raw[&quot;financial_signals&quot;])}
&quot;&quot;&quot;

    # 3. Gemini returns perfectly structured data — every time
    ai_response = client.models.generate_content(
        model=&quot;gemini-2.5-flash&quot;,
        contents=prompt,
        config=types.GenerateContentConfig(
            response_mime_type=&quot;application/json&quot;,
            response_schema=GeminiReport,
        ),
    )

    structured_data = json.loads(ai_response.text)
    return {&quot;status&quot;: &quot;success&quot;, &quot;data&quot;: structured_data}</code></pre>
<p>Clean. No drama.</p>
<hr>
<p> <img src="https://velog.velcdn.com/images/sweety_jh223/post/9a958c16-1e4b-45dc-8dbd-571f488a11a7/image.png" alt=""></p>
<h2 id="what-i-learned">What I Learned</h2>
<p>Before finding this, I thought structured LLM output was always going to be messy. That defensive parsing was just... the cost of working with AI.</p>
<p>It&#39;s not. You just need the right tool.</p>
<table>
<thead>
<tr>
<th>The messy way</th>
<th>The clean way</th>
</tr>
</thead>
<tbody><tr>
<td>Hope the LLM follows your prompt</td>
<td>Enforce the exact output shape</td>
</tr>
<tr>
<td>Write layers of parsing code</td>
<td>Just <code>json.loads()</code> and done</td>
</tr>
<tr>
<td>Random crashes in production</td>
<td>Consistent output every time</td>
</tr>
<tr>
<td>Different field names each run</td>
<td>Exact Pydantic types guaranteed</td>
</tr>
</tbody></table>
<p>If you&#39;re building anything with Gemini that needs structured output — skip the struggle I went through. Go read the structured output docs first. I wish I had.</p>
<hr>
<h2 id="resources-that-helped-me">Resources That Helped Me</h2>
<ul>
<li>📖 <a href="https://ai.google.dev/gemini-api/docs/structured-output">Gemini Structured Output Docs</a> — <em>this is the one that changed everything</em></li>
<li>📖 <a href="https://googleapis.github.io/python-genai/">Google GenAI Python SDK</a> — <em>real code examples here</em></li>
<li>📖 <a href="https://docs.pydantic.dev/latest/concepts/models/">Pydantic BaseModel Docs</a> — <em>for defining your schema properly</em></li>
<li>🔗 <a href="https://project-4xzgu-blush.vercel.app">K-Trust Live Demo</a> — <em>see the full thing in action</em></li>
<li>📦 <a href="https://github.com/sweety-HJH223/K-Trust">K-Trust GitHub</a> — <em>full source code</em></li>
</ul>
<hr>
<p> <img src="https://velog.velcdn.com/images/sweety_jh223/post/10ee3c93-fb82-41fa-bceb-21fbf6d36014/image.png" alt=""></p>
<p><em>Written by sweetyCodes (Subhashree Behera), AI &amp; Full-Stack Developer</em>
*Currently building AI-powered web apps and learning Korean *</p>
<p>#개발 #Python #AI #backend #Gemini #python #ai #webdev</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[InterviewLense- KR]]></title>
            <link>https://velog.io/@sweety_jh223/InterviewLense-8az2ajuq</link>
            <guid>https://velog.io/@sweety_jh223/InterviewLense-8az2ajuq</guid>
            <pubDate>Sun, 07 Jun 2026 17:19:54 GMT</pubDate>
            <description><![CDATA[<h1 id="내가-만든-ai가-목표-기업의-면접-방식을-조사하고--직접-시뮬레이션합니다-🚀">내가 만든 AI가 목표 기업의 면접 방식을 조사하고 — 직접 시뮬레이션합니다 🚀</h1>
<p>🔗 라이브: <a href="https://interview-lense.vercel.app">https://interview-lense.vercel.app</a>
📦 GitHub: <a href="https://github.com/sweety-HJH223/InterviewLense">https://github.com/sweety-HJH223/InterviewLense</a></p>
<hr>
<h2 id="문제점">문제점</h2>
<p>대부분의 면접 준비 도구는 지원하는 회사와 상관없이 똑같은 질문을 제공합니다. *&quot;자기소개를 해보세요.&quot; &quot;본인의 단점은 무엇인가요?&quot;*</p>
<p>구글에 지원하든 10명짜리 스타트업에 지원하든 — 항상 같은 리스트입니다. 대부분의 시뮬레이터는 &quot;획일적&quot;입니다. 나만의 커리어 히스토리를 무시하고, 실제 대형 테크 기업 면접을 통과하는 데 필요한 실질적인 피드백을 제공하지 못합니다.</p>
<p><strong>하지만 기업마다 면접 방식은 완전히 다릅니다:</strong></p>
<ul>
<li>구글은 완벽한 답보다 사고 과정을 봅니다.</li>
<li>아마존은 모든 것을 16가지 리더십 원칙으로 평가합니다.</li>
<li>카카오/네이버는 한국 시장 규모에 맞는 프로덕트 사고를 기대합니다.</li>
<li>토스는 실행 속도를 중요시합니다.</li>
</ul>
<p>저는 이걸 실제로 아는 도구를 원했습니다. 그래서 <strong>InterviewLens</strong>를 만들었습니다.</p>
<hr>
<p><img src="https://velog.velcdn.com/images/sweety_jh223/post/eec73cf7-2007-4f19-a93a-9703b79c36b2/image.png" alt="">
<img src="https://velog.velcdn.com/images/sweety_jh223/post/1580c9be-ebff-4c85-b163-5457d8dca8d7/image.png" alt="">
<img src="https://velog.velcdn.com/images/sweety_jh223/post/b8143f25-c79c-4834-8950-3186d28b5666/image.png" alt=""></p>
<h2 id="솔루션">솔루션</h2>
<p>InterviewLens는 AI 기반 면접 시뮬레이션 엔진으로:</p>
<ol>
<li>기업명과 직군을 입력합니다.</li>
<li>AI가 해당 기업의 채용 문화를 실시간으로 조사합니다.</li>
<li><strong>NEW — 이력서 정렬:</strong> PDF를 업로드하거나 이력서를 붙여넣으면, AI가 내 경험과 기업 요구사항 사이의 구체적인 갭을 파악합니다.</li>
<li>해당 기업의 실제 스타일로 면접을 시뮬레이션합니다.</li>
<li>기업의 특정 기준에 따라 답변을 평가합니다.</li>
<li>세션 전반에 걸쳐 나의 성장을 장기적으로 <strong>&quot;기억&quot;</strong> 합니다.</li>
</ol>
<hr>
<h2 id="3-에이전트-ai-아키텍처">3-에이전트 AI 아키텍처</h2>
<p>InterviewLens의 핵심은 Google Gemini로 구축된 3-에이전트 오케스트레이션 파이프라인입니다.</p>
<h3 id="에이전트-a--리서처">에이전트 A — 리서처</h3>
<p>에이전트 A는 채용 포커스, 면접 라운드 구조, 기업 문화 가치를 스캔합니다.</p>
<blockquote>
<p><strong>&quot;컨텍스트 엔진&quot;:</strong> 단순히 기업을 조사하는 것에 그치지 않습니다 — 이력서/PDF 데이터를 받아 내 배경과 기업 요구사항 사이의 갭 분석을 수행하여, 처음부터 개인화된 리서치를 제공합니다.</p>
</blockquote>
<h3 id="에이전트-b--인터뷰어">에이전트 B — 인터뷰어</h3>
<p>에이전트 B는 에이전트 A의 정보를 받아 해당 기업의 실제 면접관이 됩니다.</p>
<blockquote>
<p><strong>맥락 기반 질문:</strong> 이력서 컨텍스트를 받기 때문에 일반적인 질문을 하지 않습니다. 대신 이렇게 묻습니다: *&quot;이력서에서 [X] 프로젝트를 진행하셨는데, [기업]이 처리하는 트래픽 규모로 확장한다면 어떻게 하시겠어요?&quot;*</p>
</blockquote>
<h3 id="에이전트-c--평가자">에이전트 C — 평가자</h3>
<p>면접이 끝나면 에이전트 C가 &quot;채용 위원회&quot; 역할을 합니다.</p>
<blockquote>
<p><strong>엄격한 채점:</strong> 템플릿 형식의 일반적인 답변에는 감점을 주고, 자신의 구체적인 배경을 효과적으로 활용한 지원자에게 높은 점수를 부여합니다.</p>
</blockquote>
<hr>
<p><img src="https://velog.velcdn.com/images/sweety_jh223/post/595718f1-719f-4e9a-a388-c5496ccb930e/image.png" alt="">
<img src="https://velog.velcdn.com/images/sweety_jh223/post/6cfd4458-a953-43da-b2db-bb32854b1826/image.png" alt="">
<img src="https://velog.velcdn.com/images/sweety_jh223/post/806149a6-7b2d-4e7a-9646-f1cf54504656/image.png" alt="">
<img src="https://velog.velcdn.com/images/sweety_jh223/post/f5a1e1f3-5744-4afc-a6e6-9c0ed0e74a81/image.png" alt="">
<img src="https://velog.velcdn.com/images/sweety_jh223/post/39baa0b8-d0c7-44e7-a019-52c92082c64b/image.png" alt=""></p>
<h2 id="기술적-도전과-해결-방법">기술적 도전과 해결 방법</h2>
<h3 id="1-성능-병목-현상">1. 성능 병목 현상</h3>
<p>처음에는 AI를 통한 기업 조사에 10초 이상이 걸려 &quot;Request Timed Out&quot; 오류가 자주 발생했습니다.</p>
<p><strong>해결책:</strong> Firebase Firestore를 활용한 Redis 방식의 캐싱 레이어를 구현했습니다. 한 번 조사된 기업/직군은 이후 검색 시 거의 즉시 결과를 반환합니다 — 지연 시간과 API 할당량 소진 문제를 모두 해결했습니다.</p>
<h3 id="2-비정형-pdf-데이터-처리">2. 비정형 PDF 데이터 처리</h3>
<p>사용자에게 이력서 맞춤형 질문을 제공하려면 PDF 파싱이 필요한데, 이는 매우 복잡합니다.</p>
<p><strong>해결책:</strong> Gemini 1.5 Flash의 멀티모달 기능을 활용해 PDF 이력서를 직접 파싱하고, 면접 에이전트가 맥락 인식 후속 질문에 사용할 수 있는 구조화된 데이터를 추출했습니다 — 외부 PDF 라이브러리 없이 구현했습니다.</p>
<h3 id="3-에이전트-복잡성-관리">3. 에이전트 복잡성 관리</h3>
<p>세 개의 AI 에이전트(리서처, 인터뷰어, 평가자)를 조율하는 과정에서 프롬프트 인젝션과 상태 관리 문제가 발생했습니다.</p>
<p><strong>해결책:</strong> JSON 전용 출력 스키마를 강제하는 엄격한 오케스트레이션 레이어를 구축했습니다. 모델이 사전 정의된 JSON 구조를 따르도록 강제함으로써 파싱 실패를 없애고 세 에이전트 간의 원활한 상태 공유를 가능하게 했습니다.</p>
<hr>
<h2 id="google-기술-스택">Google 기술 스택</h2>
<table>
<thead>
<tr>
<th>도구</th>
<th>용도</th>
</tr>
</thead>
<tbody><tr>
<td>🤖 Google Gemini 1.5 Flash</td>
<td>세 에이전트 모두 구동 — 리서치, 면접 시뮬레이션, 평가</td>
</tr>
<tr>
<td>🔥 Firebase Firestore</td>
<td>세션 저장, 장기 지원자 메모리, 리서치 캐시</td>
</tr>
<tr>
<td>☁️ Vercel / Next.js</td>
<td>시뮬레이션 인터페이스의 고성능 실시간 배포</td>
</tr>
</tbody></table>
<hr>
<p><img src="https://velog.velcdn.com/images/sweety_jh223/post/eac0a076-afd2-4be8-ae72-c8050ba83933/image.png" alt="">
<img src="https://velog.velcdn.com/images/sweety_jh223/post/362cd7c0-c9b0-401f-b7a8-ced80203ba35/image.png" alt=""></p>
<h2 id="배운-점">배운 점</h2>
<p>멀티 에이전트 시스템은 단일 프롬프트 방식보다 훨씬 강력합니다. 리서치, 인터뷰, 평가를 분리함으로써 각 에이전트가 명확한 역할에 집중할 수 있습니다.</p>
<p>가장 어려웠던 부분은 <strong>이력서 정렬</strong>이었습니다. 단순히 &quot;이력서를 전달&quot;하는 것만으로는 부족했습니다 — AI가 지원자의 과거 경험을 기업의 미래 요구사항과 비교하도록 프롬프트를 정교하게 설계해야 했습니다. 이 연결고리가 일반 챗봇을 실제 코칭 도구로 변환시키는 핵심입니다.</p>
<hr>
<h2 id="직접-사용해보세요">직접 사용해보세요</h2>
<p>🔗 라이브: <a href="https://interview-lense.vercel.app">https://interview-lense.vercel.app</a>
📦 GitHub: <a href="https://github.com/sweety-HJH223/InterviewLense">https://github.com/sweety-HJH223/InterviewLense</a></p>
<hr>
<p>#AI #면접 #취업준비 #개발 #구글 #NextJS
<em>Google Gen AI Academy APAC 2026 — Meet the Builders Campaign 출품작</em>
<em>SweetyCodes — AI 풀스택 개발자</em></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[InterviewLense]]></title>
            <link>https://velog.io/@sweety_jh223/InterviewLense</link>
            <guid>https://velog.io/@sweety_jh223/InterviewLense</guid>
            <pubDate>Sun, 07 Jun 2026 17:14:54 GMT</pubDate>
            <description><![CDATA[<h1 id="i-built-an-ai-that-researches-how-your-target-company-interviews--then-simulates-it">I Built an AI That Researches How Your Target Company Interviews — Then Simulates It</h1>
<p>🔗 Live: <a href="https://interview-lense.vercel.app">https://interview-lense.vercel.app</a>
📦 GitHub: <a href="https://github.com/sweety-HJH223/InterviewLense">https://github.com/sweety-HJH223/InterviewLense</a></p>
<hr>
<h2 id="the-problem">The Problem</h2>
<p>Most interview prep tools give you the same generic questions regardless of where you&#39;re applying. *&quot;Tell me about yourself.&quot; &quot;What&#39;s your greatest weakness?&quot;*</p>
<p>It doesn&#39;t matter if you&#39;re interviewing at Google or a 10-person startup — you get the same list. Most simulators are &quot;one-size-fits-all&quot;: they ignore your unique career history and fail to provide the real-world feedback needed to actually pass a high-stakes interview at a top-tier tech firm.</p>
<p><strong>But interviews are NOT the same across companies:</strong></p>
<ul>
<li>Google wants reasoning processes over perfect answers.</li>
<li>Amazon scores everything against 16 Leadership Principles.</li>
<li>Kakao/Naver expect specific Korean-market-scale product thinking.</li>
<li>Toss focuses on speed of execution.</li>
</ul>
<p>I wanted a tool that actually knows this. So I built <strong>InterviewLens</strong>.</p>
<hr>
<p><img src="https://velog.velcdn.com/images/sweety_jh223/post/399c2dcf-b970-4541-8975-2ea3127059fd/image.png" alt="">
<img src="https://velog.velcdn.com/images/sweety_jh223/post/0602a1b3-76af-4d40-ba0f-5edcfdf0c3fc/image.png" alt="">
<img src="https://velog.velcdn.com/images/sweety_jh223/post/9ad3d1c7-0d6e-4552-b18b-89ada7509a16/image.png" alt=""></p>
<h2 id="the-solution">The Solution</h2>
<p>InterviewLens is an AI-powered simulation engine that:</p>
<ol>
<li>Takes any company name and role.</li>
<li>Researches that specific company&#39;s hiring culture in real-time.</li>
<li><strong>NEW — Resume Alignment:</strong> Upload your PDF or paste your resume, and the AI identifies the specific gaps between your experience and the company&#39;s requirements.</li>
<li>Simulates the interview in that company&#39;s actual style.</li>
<li>Evaluates your answers against the company&#39;s specific criteria.</li>
<li>Maintains a long-term <strong>&quot;memory&quot;</strong> of your growth across sessions.</li>
</ol>
<hr>
<h2 id="the-3-agent-ai-architecture">The 3-Agent AI Architecture</h2>
<p>The heart of InterviewLens is a 3-agent orchestration pipeline built with Google Gemini.</p>
<h3 id="agent-a--the-researcher">Agent A — The Researcher</h3>
<p>Agent A scans for hiring focus, round structure, and cultural values.</p>
<blockquote>
<p><strong>The &quot;Context Engine&quot;:</strong> It doesn&#39;t just research the company — it accepts your resume/PDF data and performs a gap analysis between your background and the company&#39;s requirements, making the research personalized from the start.</p>
</blockquote>
<h3 id="agent-b--the-interviewer">Agent B — The Interviewer</h3>
<p>Agent B receives the intelligence from Agent A and becomes that company&#39;s actual interviewer.</p>
<blockquote>
<p><strong>Contextual Interaction:</strong> Because it receives your resume context, Agent B doesn&#39;t ask generic questions. It asks: *&quot;You worked on [X] project in your resume — how would you scale that for the traffic [Company] handles?&quot;*</p>
</blockquote>
<h3 id="agent-c--the-evaluator">Agent C — The Evaluator</h3>
<p>After you finish, Agent C acts as a &quot;Hiring Committee.&quot;</p>
<blockquote>
<p><strong>Strict Scoring:</strong> It penalizes generic &quot;template&quot; answers and rewards candidates who leverage their specific background effectively.</p>
</blockquote>
<hr>
<p><img src="https://velog.velcdn.com/images/sweety_jh223/post/475973d8-c27e-4063-bde6-f74235f93581/image.png" alt="">
<img src="https://velog.velcdn.com/images/sweety_jh223/post/5c7da8fd-baa7-4b6b-a3bb-63eb18a26afb/image.png" alt="">
<img src="https://velog.velcdn.com/images/sweety_jh223/post/d9f55ea5-32cc-41f6-bc04-9e0f57bc08d3/image.png" alt="">
<img src="https://velog.velcdn.com/images/sweety_jh223/post/2d97c68f-53cc-4033-bd10-4f7259d2300e/image.png" alt=""></p>
<h2 id="technical-challenges--my-solutions">Technical Challenges &amp; My Solutions</h2>
<h3 id="1-the-performance-bottleneck">1. The performance bottleneck</h3>
<p>Initially, researching companies via AI took 10+ seconds, often leading to &quot;Request Timed Out&quot; errors.</p>
<p><strong>My solution:</strong> I implemented a Redis-like caching layer using Firebase Firestore. Once a company/role is researched once, subsequent searches are near-instant — solving both latency and quota exhaustion effectively.</p>
<h3 id="2-handling-unstructured-pdf-data">2. Handling unstructured PDF data</h3>
<p>Users need resume-tailored questions, but parsing PDFs is messy.</p>
<p><strong>My solution:</strong> I leveraged Gemini 1.5 Flash&#39;s multi-modal capability to directly parse PDF resumes, extracting structured data that the interview agent uses for context-aware follow-up questions — no external PDF libraries needed.</p>
<h3 id="3-agentic-complexity">3. Agentic complexity</h3>
<p>Coordinating three distinct AI agents (Researcher, Interviewer, Evaluator) led to prompt injection and state management issues.</p>
<p><strong>My solution:</strong> I built a strict orchestration layer that forces a JSON-only output schema. By forcing the models to adhere to a predefined JSON structure, I eliminated parsing failures and enabled smooth state sharing between all three agents.</p>
<hr>
<h2 id="google-tech-stack">Google Tech Stack</h2>
<table>
<thead>
<tr>
<th>Tool</th>
<th>Purpose</th>
</tr>
</thead>
<tbody><tr>
<td>🤖 Google Gemini 1.5 Flash</td>
<td>Powers all three agents — research, interview simulation, and evaluation</td>
</tr>
<tr>
<td>🔥 Firebase Firestore</td>
<td>Session storage, long-term candidate memory, and research cache</td>
</tr>
<tr>
<td>☁️ Vercel / Next.js</td>
<td>High-performance, real-time deployment of the simulation interface</td>
</tr>
</tbody></table>
<hr>
<p><img src="https://velog.velcdn.com/images/sweety_jh223/post/177dd37c-1f9d-4ff1-bd86-baf87767f741/image.png" alt="">
<img src="https://velog.velcdn.com/images/sweety_jh223/post/aa18cdbb-b1ff-42ed-9d9f-5b11441f9bde/image.png" alt=""></p>
<h2 id="what-i-learned">What I Learned</h2>
<p>Multi-agent systems are more powerful than single-prompt approaches. By separating Research, Interviewing, and Evaluation, each agent maintains a clear focus.</p>
<p>The most challenging part was <strong>Resume Alignment</strong>. Simply &quot;sending the resume&quot; wasn&#39;t enough — I had to engineer the prompts to force the AI to compare the candidate&#39;s past with the company&#39;s future needs. This bridge is what transforms a standard chatbot into an actual coaching tool.</p>
<hr>
<h2 id="try-it">Try It</h2>
<p>🔗 Live: <a href="https://interview-lense.vercel.app">https://interview-lense.vercel.app</a>
📦 GitHub: <a href="https://github.com/sweety-HJH223/InterviewLense">https://github.com/sweety-HJH223/InterviewLense</a></p>
<hr>
<p><em>Built for Google Gen AI Academy APAC 2026 — Meet the Builders Campaign.</em>
<em>SweetyCodes — AI &amp; Full Stack Developer
Subhashree Behera |  India</em></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[Vibe Coding — The New Way Developers Build Software with AI in 2026🤖]]></title>
            <link>https://velog.io/@sweety_jh223/Vibe-Coding-The-New-Way-Developers-Build-Software-with-AI-in-2026</link>
            <guid>https://velog.io/@sweety_jh223/Vibe-Coding-The-New-Way-Developers-Build-Software-with-AI-in-2026</guid>
            <pubDate>Thu, 28 May 2026 10:34:09 GMT</pubDate>
            <description><![CDATA[<p>Korean version of this post (한국어 버전은 여기서 확인하세요): <a href="https://velog.io/@sweety_jh223/%EB%B0%94%EC%9D%B4%EB%B8%8C-%EC%BD%94%EB%94%A9-2026%EB%85%84-AI%EB%A1%9C-%EA%B0%9C%EB%B0%9C%ED%95%98%EB%8A%94-%EC%83%88%EB%A1%9C%EC%9A%B4-%EB%B0%A9%EB%B2%95-1c1j75q4">한국어로 읽기</a></p>
<blockquote>
<p>*&quot;You don&#39;t write code anymore. You describe what you want, and AI writes it. You review, refine, and ship.&quot;*
— The Vibe Coding Philosophy</p>
</blockquote>
<p><img src="https://velog.velcdn.com/images/sweety_jh223/post/c0f88d5e-6499-4ff7-a53a-e10d637fe3f2/image.png" alt=""></p>
<hr>
<h2 id="🤔-what-is-vibe-coding">🤔 What is Vibe Coding?</h2>
<p>Vibe Coding is a new development methodology where you use AI tools to rapidly prototype, build, and iterate on software by describing what you want in plain English — instead of writing every line of code manually.</p>
<p>The term was coined in early 2025 and has taken the developer community by storm. It&#39;s not about replacing developers — it&#39;s about making developers 10x faster.</p>
<p>Think of it like this:</p>
<p><strong>Traditional Coding:</strong></p>
<pre><code>Developer thinks → Developer writes code → 
Developer debugs → Developer ships
(Hours to days)</code></pre><p><strong>Vibe Coding:</strong></p>
<pre><code>Developer describes → AI writes code → 
Developer reviews → Developer refines → Ships
(Minutes to hours)</code></pre><hr>
<p><img src="https://velog.velcdn.com/images/sweety_jh223/post/0e18c1eb-9c19-48eb-974d-3e50c3cf6759/image.png" alt=""></p>
<h2 id="🛠️-tools-used-in-vibe-coding">🛠️ Tools Used in Vibe Coding</h2>
<p>There are several AI tools that power the Vibe Coding workflow. Here are the most popular ones in 2026:</p>
<h3 id="1-cursor--the-ai-code-editor">1. Cursor — The AI Code Editor</h3>
<p>Cursor is a VS Code fork with AI built into every part of the editor. You can describe changes in plain English and it edits multiple files at once. It&#39;s the most popular Vibe Coding tool right now.</p>
<h3 id="2-claude-ai--the-thinking-partner">2. Claude AI — The Thinking Partner</h3>
<p>Claude (by Anthropic) is great for architecture decisions, code reviews, and explaining complex concepts. Many Vibe Coders use Claude for planning before switching to Cursor for building.</p>
<h3 id="3-github-copilot--the-autocomplete-king">3. GitHub Copilot — The Autocomplete King</h3>
<p>GitHub Copilot suggests entire functions and code blocks as you type. It&#39;s deeply integrated into VS Code and is great for repetitive code patterns.</p>
<h3 id="4-gemini-cli--the-free-powerhouse">4. Gemini CLI — The Free Powerhouse</h3>
<p>Google&#39;s Gemini CLI brings AI directly into your terminal. With 1000 free requests per day, it&#39;s perfect for budget-conscious developers who want full agentic coding capabilities.</p>
<h3 id="5-v0dev--the-ui-generator">5. V0.dev — The UI Generator</h3>
<p>V0.dev by Vercel generates entire React UI components from a text description. Describe a dashboard, and it builds it. Perfect for frontend prototyping.</p>
<hr>
<h2 id="⚡-how-vibe-coding-actually-works">⚡ How Vibe Coding Actually Works</h2>
<p>Here&#39;s the real workflow that most Vibe Coders use:</p>
<h3 id="step-1--plan-with-claude-or-chatgpt">Step 1 — Plan (with Claude or ChatGPT)</h3>
<p>Before writing a single line, describe your project to an AI and ask it to:</p>
<ul>
<li>Break it into components</li>
<li>Suggest the tech stack</li>
<li>Identify potential problems</li>
</ul>
<h3 id="step-2--scaffold-with-cursor-or-v0dev">Step 2 — Scaffold (with Cursor or V0.dev)</h3>
<p>Use AI to generate the initial structure:</p>
<ul>
<li>Project files and folders</li>
<li>Basic components</li>
<li>Database schemas</li>
</ul>
<h3 id="step-3--build-feature-by-feature">Step 3 — Build Feature by Feature</h3>
<p>For each feature:</p>
<ol>
<li>Describe what you want in plain English</li>
<li>AI generates the code</li>
<li>You read and understand it</li>
<li>Test it</li>
<li>Fix issues (with AI help)</li>
<li>Move to next feature</li>
</ol>
<h3 id="step-4--review-and-refine">Step 4 — Review and Refine</h3>
<p>Always review AI-generated code:</p>
<ul>
<li>Does it make sense?</li>
<li>Are there security issues?</li>
<li>Is it efficient?</li>
</ul>
<h3 id="step-5--ship">Step 5 — Ship</h3>
<p>Deploy with confidence because you understood every line!</p>
<p><img src="https://velog.velcdn.com/images/sweety_jh223/post/9120de96-7d80-40a1-937c-bac558fbf5b3/image.png" alt=""></p>
<hr>
<h2 id="✅-pros-of-vibe-coding">✅ Pros of Vibe Coding</h2>
<p><strong>1. Build Faster</strong>
Projects that used to take weeks now take days. Perfect for hackathons!</p>
<p><strong>2. Learn by Seeing</strong>
AI generates code you might not know how to write — you can study it and learn new patterns.</p>
<p><strong>3. Prototype Quickly</strong>
Test ideas fast without spending days on implementation. If the idea doesn&#39;t work, you haven&#39;t wasted much time.</p>
<p><strong>4. Overcome Blocks</strong>
Stuck on a problem? Describe it to AI and get unstuck immediately.</p>
<p><strong>5. Better Code Quality</strong>
AI often suggests best practices and patterns you might not know about.</p>
<hr>
<h2 id="❌-cons--the-honest-truth">❌ Cons — The Honest Truth</h2>
<p><strong>1. AI Makes Mistakes</strong>
AI-generated code is NOT always correct. It can have bugs, security issues, and logical errors. Always review!</p>
<p><strong>2. You Still Need to Understand Code</strong>
If you can&#39;t read and understand the AI-generated code, you can&#39;t fix it when it breaks. And it WILL break.</p>
<p><strong>3. Over-reliance is Dangerous</strong>
Some developers stop learning because AI does everything. This is a career killer. Keep learning fundamentals!</p>
<p><strong>4. Context Limits</strong>
AI tools have limits on how much code they can see at once. For large projects, you need to manage context carefully.</p>
<p><strong>5. Cost</strong>
Good AI tools like Cursor Pro cost $20/month. Budget-conscious developers need to plan for this.</p>
<p><img src="https://velog.velcdn.com/images/sweety_jh223/post/6b19a4ba-ea32-4727-a102-983ec21eec3d/image.jpg" alt=""></p>
<hr>
<h2 id="🤔-is-vibe-coding-cheating">🤔 Is Vibe Coding Cheating?</h2>
<p>This is the most controversial question in the developer community right now.</p>
<p><strong>My honest opinion: NO, it&#39;s not cheating.</strong></p>
<p>Here&#39;s why:</p>
<ul>
<li>Developers have always used tools — Stack Overflow, documentation, libraries</li>
<li>The goal is to ship working software, not to memorize syntax</li>
<li>A carpenter who uses an electric drill isn&#39;t &quot;cheating&quot; compared to one using a hand drill</li>
<li>What matters is the result and your understanding of it</li>
</ul>
<p><strong>BUT</strong> — and this is important — <strong>you still need to know how to code.</strong></p>
<p>Vibe Coding without coding knowledge is like trying to edit a video without knowing what good editing looks like. You won&#39;t know when the AI is wrong.</p>
<hr>
<h2 id="💡-tips-for-beginners">💡 Tips for Beginners</h2>
<p><strong>1. Learn basics first</strong>
Don&#39;t start Vibe Coding without understanding HTML, CSS, JavaScript, and at least one backend language. The fundamentals matter.</p>
<p><strong>2. Start small</strong>
Don&#39;t try to build a complex app first. Start with a simple component or feature.</p>
<p><strong>3. Always read AI code</strong>
Never copy-paste without reading. Understand what the code does before running it.</p>
<p><strong>4. Be specific in prompts</strong>
Vague prompts get vague code. The more specific you are, the better the output.</p>
<p>❌ Bad: *&quot;Make a button&quot;*
✅ Good: *&quot;Make a cyan rounded button with a hover glow effect that opens a modal when clicked&quot;*</p>
<p><strong>5. Iterate, don&#39;t regenerate</strong>
Instead of regenerating from scratch when something is wrong, describe specifically what needs to change.</p>
<p><strong>6. Use multiple tools</strong>
Different tools are good at different things. Use Claude for planning, Cursor for coding, V0.dev for UI.</p>
<hr>
<h2 id="🚀-my-vibe-coding-stack-in-2026">🚀 My Vibe Coding Stack in 2026</h2>
<p>Here&#39;s what I personally use:</p>
<table>
<thead>
<tr>
<th>Task</th>
<th>Tool</th>
</tr>
</thead>
<tbody><tr>
<td>Planning &amp; Architecture</td>
<td>Claude AI</td>
</tr>
<tr>
<td>Main coding</td>
<td>Cursor</td>
</tr>
<tr>
<td>UI Components</td>
<td>V0.dev</td>
</tr>
<tr>
<td>Terminal tasks</td>
<td>Gemini CLI</td>
</tr>
<tr>
<td>Code review</td>
<td>GitHub Copilot</td>
</tr>
<tr>
<td>Quick questions</td>
<td>Claude AI</td>
</tr>
</tbody></table>
<h2 id=""><img src="https://velog.velcdn.com/images/sweety_jh223/post/63050f6f-b59d-478b-898f-e39115bf1725/image.png" alt=""></h2>
<h2 id="🔮-the-future-of-coding">🔮 The Future of Coding</h2>
<p>Vibe Coding is not a trend — it&#39;s the future of software development.</p>
<p>In 5 years, every developer will use AI tools the same way every developer uses Git today. It won&#39;t be optional — it will be the standard.</p>
<p>The developers who thrive will be the ones who:</p>
<ul>
<li>Understand fundamentals deeply</li>
<li>Know how to work WITH AI</li>
<li>Can review and improve AI-generated code</li>
<li>Focus on creativity and problem-solving</li>
</ul>
<p>The developers who struggle will be the ones who:</p>
<ul>
<li>Refuse to adapt</li>
<li>OR rely completely on AI without understanding</li>
</ul>
<p><strong>The sweet spot is in the middle — use AI as a powerful tool, not a crutch.</strong></p>
<hr>
<h2 id="🎯-conclusion">🎯 Conclusion</h2>
<p>Vibe Coding has genuinely changed how I build software. I ship faster, learn more by seeing AI patterns, and spend more time on creative problem-solving instead of repetitive syntax.</p>
<p>Is it perfect? No. Does it have drawbacks? Absolutely. But as a developer in 2026, ignoring AI tools is like ignoring the internet in 2000.</p>
<p>Start small. Learn the fundamentals. Use AI as your co-pilot. Ship great software.</p>
<p><strong>That&#39;s the Vibe Coding way.</strong> ⚡</p>
<hr>
<p><img src="https://velog.velcdn.com/images/sweety_jh223/post/4ead8d40-afd8-4bbe-8f2d-fe16c4d48f25/image.png" alt=""></p>
<p><em>Written by SweetyCodes — Full-Stack Developer &amp; AI Engineer</em></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[바이브 코딩 — 2026년 AI로 개발하는 새로운 방법🤖]]></title>
            <link>https://velog.io/@sweety_jh223/%EB%B0%94%EC%9D%B4%EB%B8%8C-%EC%BD%94%EB%94%A9-2026%EB%85%84-AI%EB%A1%9C-%EA%B0%9C%EB%B0%9C%ED%95%98%EB%8A%94-%EC%83%88%EB%A1%9C%EC%9A%B4-%EB%B0%A9%EB%B2%95-1c1j75q4</link>
            <guid>https://velog.io/@sweety_jh223/%EB%B0%94%EC%9D%B4%EB%B8%8C-%EC%BD%94%EB%94%A9-2026%EB%85%84-AI%EB%A1%9C-%EA%B0%9C%EB%B0%9C%ED%95%98%EB%8A%94-%EC%83%88%EB%A1%9C%EC%9A%B4-%EB%B0%A9%EB%B2%95-1c1j75q4</guid>
            <pubDate>Thu, 28 May 2026 07:16:53 GMT</pubDate>
            <description><![CDATA[<p>English version of this post : <a href="https://velog.io/@sweety_jh223/Vibe-Coding-The-New-Way-Developers-Build-Software-with-AI-in-2026">영어로 읽기</a></p>
<p>안녕하세요! 저는 개발자 SweetyCodes예요 😊
<img src="https://velog.velcdn.com/images/sweety_jh223/post/9dd252a4-69c8-4fea-ab2e-50625d0530e8/image.png" alt=""></p>
<p>저는 한국어를 공부하고 있어요 — 지금은 중급 수준이에요!</p>
<p>이게 제 Velog 첫 번째 포스트예요!
첫 포스트인 만큼 한국어 문법을 완벽하게 쓰고 싶었어요.
그래서 바이브 코딩을 활용해서 제 글의 문법을 다듬었어요 ⚡</p>
<p>그리고 오늘 주제가 바로 바이브 코딩이에요! 😄</p>
<hr>
<blockquote>
<p>*&quot;이제 코드를 직접 쓰는 게 아니에요. 원하는 것을 설명하면 AI가 써줘요. 검토하고, 다듬고, 배포하면 돼요.&quot;*
— 바이브 코딩 철학</p>
</blockquote>
<hr>
<p><img src="https://velog.velcdn.com/images/sweety_jh223/post/8d6a46d5-4d49-44bd-8007-d3f64f1719dc/image.png" alt=""></p>
<h2 id="🤔-바이브-코딩이란-무엇인가요">🤔 바이브 코딩이란 무엇인가요?</h2>
<p>바이브 코딩(Vibe Coding)은 모든 코드를 직접 작성하는 대신, AI 도구를 사용해서 원하는 것을 자연어로 설명하며 빠르게 소프트웨어를 만드는 새로운 개발 방법론이에요.</p>
<p>이 용어는 2025년 초에 생겨났고 개발자 커뮤니티에서 엄청난 반향을 일으켰어요. 개발자를 대체하는 게 아니라 — <strong>개발자를 10배 더 빠르게 만들어주는 거예요.</strong></p>
<p>이렇게 생각해보세요:</p>
<p><strong>⏰ 전통적인 코딩:</strong></p>
<pre><code>개발자가 생각 → 코드 작성 → 디버깅 → 배포
(몇 시간에서 며칠)</code></pre><p><strong>⚡ 바이브 코딩:</strong></p>
<pre><code>개발자가 설명 → AI가 코드 작성 → 검토 → 수정 → 배포
(몇 분에서 몇 시간)</code></pre><hr>
<h2 id="🛠️-바이브-코딩에-사용되는-도구들">🛠️ 바이브 코딩에 사용되는 도구들</h2>
<p>2026년 현재 바이브 코딩 워크플로우를 지원하는 AI 도구들이에요:</p>
<h3 id="1-⚡-cursor--ai-코드-에디터">1. ⚡ Cursor — AI 코드 에디터</h3>
<p>Cursor는 AI가 에디터 전체에 내장된 VS Code 포크예요. 자연어로 변경 사항을 설명하면 여러 파일을 한 번에 수정해줘요. 지금 가장 인기 있는 바이브 코딩 도구예요.</p>
<h3 id="2-🧠-claude-ai--생각하는-파트너">2. 🧠 Claude AI — 생각하는 파트너</h3>
<p>Claude(Anthropic 개발)는 아키텍처 결정, 코드 리뷰, 복잡한 개념 설명에 탁월해요. 많은 바이브 코더들이 계획할 때 Claude를 사용하고, 실제 개발할 때 Cursor로 전환해요.</p>
<h3 id="3-🐙-github-copilot--자동완성의-왕">3. 🐙 GitHub Copilot — 자동완성의 왕</h3>
<p>GitHub Copilot은 타이핑하는 동안 전체 함수와 코드 블록을 제안해줘요. VS Code에 깊이 통합되어 있고 반복적인 코드 패턴에 탁월해요. <strong>학생은 무료!</strong></p>
<h3 id="4-💎-gemini-cli--무료-강자">4. 💎 Gemini CLI — 무료 강자</h3>
<p>Google의 Gemini CLI는 터미널에서 직접 AI를 사용할 수 있게 해줘요. <strong>하루 1000번 무료 요청</strong>으로 예산이 적은 개발자에게도 완전한 에이전틱 코딩 기능을 제공해요.</p>
<h3 id="5-🎨-v0dev--ui-생성기">5. 🎨 V0.dev — UI 생성기</h3>
<p>Vercel의 V0.dev는 텍스트 설명으로 전체 React UI 컴포넌트를 생성해줘요. 대시보드를 설명하면 바로 만들어줘요. 프론트엔드 프로토타이핑에 완벽해요.</p>
<hr>
<h2 id="⚡-바이브-코딩-실제-워크플로우">⚡ 바이브 코딩 실제 워크플로우</h2>
<p>대부분의 바이브 코더들이 사용하는 실제 워크플로우예요:</p>
<h3 id="1단계--💭-계획-claude-활용">1단계 — 💭 계획 (Claude 활용)</h3>
<p>코드 한 줄 작성 전에 AI에게 프로젝트를 설명하고 요청해요:</p>
<ul>
<li>컴포넌트로 분리하기</li>
<li>기술 스택 추천</li>
<li>잠재적 문제 파악</li>
</ul>
<h3 id="2단계--⚡-스캐폴딩-cursor-또는-v0dev-활용">2단계 — ⚡ 스캐폴딩 (Cursor 또는 V0.dev 활용)</h3>
<p>AI로 초기 구조 생성:</p>
<ul>
<li>프로젝트 파일과 폴더</li>
<li>기본 컴포넌트</li>
<li>데이터베이스 스키마</li>
</ul>
<h3 id="3단계--🔨-기능별-개발">3단계 — 🔨 기능별 개발</h3>
<p>각 기능마다:</p>
<ol>
<li>원하는 것을 자연어로 설명</li>
<li>AI가 코드 생성</li>
<li>코드를 읽고 이해</li>
<li>테스트</li>
<li>문제 수정 (AI 도움으로)</li>
</ol>
<h3 id="4단계--👁️-검토-및-수정">4단계 — 👁️ 검토 및 수정</h3>
<p>AI가 생성한 코드는 항상 검토해요:</p>
<ul>
<li>이해가 되나요?</li>
<li>보안 문제는 없나요?</li>
<li>효율적인가요?</li>
</ul>
<h3 id="5단계--🚀-배포">5단계 — 🚀 배포</h3>
<p>모든 코드를 이해했으니 자신 있게 배포!</p>
<hr>
<h2 id="💡-실제로-얼마나-빠를까요">💡 실제로 얼마나 빠를까요?</h2>
<p>바이브 코딩을 사용하면:</p>
<ul>
<li>기존에 <strong>6시간</strong> 걸리던 작업 → <strong>1시간</strong></li>
<li>기존에 <strong>3일</strong> 걸리던 프로젝트 → <strong>반나절</strong></li>
<li>막혔던 버그 → <strong>몇 분 만에 해결</strong></li>
</ul>
<p>개인적으로 바이브 코딩 덕분에 훨씬 더 많은 프로젝트를 완성할 수 있었어요! 😊</p>
<p><img src="https://velog.velcdn.com/images/sweety_jh223/post/54b8c749-3526-4243-bc27-c048d2a08755/image.png" alt=""></p>
<hr>
<h2 id="✅-장점-vs-❌-단점">✅ 장점 vs ❌ 단점</h2>
<h3 id="✅-장점">✅ 장점</h3>
<table>
<thead>
<tr>
<th>장점</th>
<th>설명</th>
</tr>
</thead>
<tbody><tr>
<td>⚡ 6배 빠른 개발</td>
<td>몇 주 걸리던 프로젝트가 며칠이면 완성</td>
</tr>
<tr>
<td>📚 보면서 배우기</td>
<td>AI 패턴으로 새로운 코딩 기술 습득</td>
</tr>
<tr>
<td>🧪 빠른 프로토타이핑</td>
<td>아이디어를 빠르게 테스트 가능</td>
</tr>
<tr>
<td>🚧 막힘 즉시 해소</td>
<td>문제에 막혔을 때 AI가 즉시 도움</td>
</tr>
<tr>
<td>🏆 해커톤에 유리</td>
<td>짧은 시간에 더 많은 기능 구현</td>
</tr>
</tbody></table>
<h3 id="❌-단점">❌ 단점</h3>
<table>
<thead>
<tr>
<th>단점</th>
<th>설명</th>
</tr>
</thead>
<tbody><tr>
<td>🐛 AI도 실수함</td>
<td>버그, 보안 문제, 논리 오류 가능</td>
</tr>
<tr>
<td>📖 기초는 필수</td>
<td>이해 못하면 디버깅 불가능</td>
</tr>
<tr>
<td>⚠️ 과도한 의존 위험</td>
<td>배우기를 멈추면 커리어에 치명적</td>
</tr>
<tr>
<td>📏 컨텍스트 한계</td>
<td>대형 프로젝트에서 컨텍스트 관리 필요</td>
</tr>
<tr>
<td>💰 좋은 도구는 유료</td>
<td>Cursor Pro 월 $20 정도</td>
</tr>
</tbody></table>
<p><img src="https://velog.velcdn.com/images/sweety_jh223/post/e5c40d51-19f3-43af-a6c1-7274392bd9f0/image.jpg" alt=""></p>
<hr>
<h2 id="🤔-바이브-코딩은-반칙인가요">🤔 바이브 코딩은 반칙인가요?</h2>
<p>개발자 커뮤니티에서 가장 논란이 많은 질문이에요.</p>
<p><strong>제 솔직한 의견: 아니요, 반칙이 아니에요.</strong></p>
<p>이유는:</p>
<ul>
<li>개발자들은 항상 도구를 사용했어요 — Stack Overflow, 문서, 라이브러리</li>
<li>목표는 작동하는 소프트웨어를 만드는 것이지, 문법을 외우는 게 아니에요</li>
<li>전동 드릴을 쓰는 목수가 수동 드릴보다 &quot;반칙&quot;하는 게 아니에요</li>
</ul>
<p><strong>하지만</strong> — 코딩을 이해해야 해요.</p>
<p>AI가 틀렸을 때 알 수 없다면 의미가 없어요.</p>
<hr>
<h2 id="💡-초보자를-위한-팁">💡 초보자를 위한 팁</h2>
<p><strong>1. 기초부터 배우세요</strong>
HTML, CSS, JavaScript 기초 없이 바이브 코딩을 시작하지 마세요.</p>
<p><strong>2. 작은 것부터 시작하세요</strong>
복잡한 앱보다 간단한 컴포넌트부터 시작해요.</p>
<p><strong>3. AI 코드는 항상 읽으세요</strong>
읽지 않고 복붙하지 마세요!</p>
<p><strong>4. 프롬프트를 구체적으로 쓰세요</strong></p>
<p>❌ 나쁜 예:</p>
<pre><code>&quot;버튼 만들어줘&quot;</code></pre><p>✅ 좋은 예:</p>
<pre><code>&quot;클릭하면 모달이 열리는 
호버 시 글로우 효과가 있는 
둥근 cyan 버튼 만들어줘&quot;</code></pre><p><strong>5. 여러 도구를 함께 쓰세요</strong>
계획 → Claude, 코딩 → Cursor, UI → V0.dev</p>
<hr>
<h2 id="🚀-2026년-제-바이브-코딩-스택">🚀 2026년 제 바이브 코딩 스택</h2>
<p>제가 실제로 사용하는 도구들이에요:</p>
<table>
<thead>
<tr>
<th>작업</th>
<th>도구</th>
</tr>
</thead>
<tbody><tr>
<td>💭 계획 &amp; 아키텍처</td>
<td>Claude AI</td>
</tr>
<tr>
<td>⚡ 주요 코딩</td>
<td>Cursor</td>
</tr>
<tr>
<td>🎨 UI 컴포넌트</td>
<td>V0.dev</td>
</tr>
<tr>
<td>💻 터미널 작업</td>
<td>Gemini CLI</td>
</tr>
<tr>
<td>👁️ 코드 리뷰</td>
<td>GitHub Copilot</td>
</tr>
<tr>
<td>❓ 빠른 질문</td>
<td>Claude AI</td>
</tr>
</tbody></table>
<p><img src="https://velog.velcdn.com/images/sweety_jh223/post/041536f4-f471-41cb-9e87-a7e4745411c6/image.jpg" alt=""></p>
<hr>
<h2 id="🔮-코딩의-미래">🔮 코딩의 미래</h2>
<p>바이브 코딩은 트렌드가 아니에요 — <strong>소프트웨어 개발의 미래예요.</strong></p>
<p>5년 후에는 모든 개발자가 오늘날 Git을 쓰는 것처럼 AI 도구를 사용할 거예요.</p>
<p><strong>잘 될 개발자들:</strong></p>
<ul>
<li>✅ 기초를 깊이 이해하는 사람</li>
<li>✅ AI와 함께 일하는 방법을 아는 사람</li>
<li>✅ AI 생성 코드를 검토하고 개선할 수 있는 사람</li>
</ul>
<p><strong>힘들어질 개발자들:</strong></p>
<ul>
<li>❌ 적응을 거부하는 사람</li>
<li>❌ AI에 완전히 의존해서 이해하지 못하는 사람</li>
</ul>
<p><strong>정답은 중간이에요 — AI를 강력한 도구로 사용하되, 의지하지는 마세요.</strong></p>
<hr>
<h2 id="🎯-마치며">🎯 마치며</h2>
<p>바이브 코딩은 제가 소프트웨어를 만드는 방식을 진정으로 바꿨어요.</p>
<p>완벽한가요? 아니요.
단점이 있나요? 물론이죠.</p>
<p>하지만 2026년 개발자로서 AI 도구를 무시하는 건 2000년에 인터넷을 무시하는 것과 같아요.</p>
<p><strong>작게 시작하세요. 기초를 배우세요. AI를 코파일럿으로 사용하세요. 멋진 소프트웨어를 만드세요.</strong></p>
<p><strong>그게 바이브 코딩의 방식이에요.</strong> ⚡</p>
<hr>
<p>읽어주셔서 감사해요! 질문이나 피드백이 있으면 댓글로 남겨주세요 😊</p>
<p>한국어가 틀린 부분이 있으면 알려주세요 — 저도 배우는 중이에요! </p>
<hr>
<p><img src="https://velog.velcdn.com/images/sweety_jh223/post/9e382214-3dcd-4ffa-8c01-2c13d1fb2b30/image.png" alt=""></p>
<p><em>SweetyCodes — Full-Stack Developer &amp; AI Engineer</em></p>
]]></description>
        </item>
    </channel>
</rss>