11P by GN⁺ 2일전 | ★ favorite | 댓글 1개
  • 개발 중 "몰입 상태(Flow)"를 AI와 함께 경험하는 Vibe Coding에 대해 반성적으로 고찰한 글
  • 최근 두 달 동안 Vibe 코딩에 의존했지만, 생산성과 비용 면에서 만족스럽지 않았다고 판단
  • Vibe Coding은 특정한 개발 방법론이 아니라 일종의 상태 혹은 감정 중심의 개발 방식
    • AI 코딩 도우미(Cline, Roo Code, Cursor 등)에 의존해 흐름을 따라가며 코드를 작성
    • 명확한 계획 없이 직관과 몰입감만으로 작업하며, 도파민에 이끌려 '진전된 느낌'을 추구

Vibe Coding의 문제점

  • 시간 낭비: 처음에는 빠르게 진행되는 듯하지만, 구조가 없기 때문에 오류나 변화에 끌려다님
  • 비용 증가: AI의 컨텍스트 윈도우가 커질수록 API 호출 비용도 증가
    • 예: 수십만 토큰 전송, 수천 줄 생성 → 결과적으로 비용 부담
  • 재작업 증가: 초기에 빠르게 만든 코드가 결국 목적에 맞지 않아 전체를 다시 고쳐야 하는 상황이 발생

장점도 존재함

  • 반복적인 디버깅과 재이해를 통해 코드 구조와 언어 자체에 대한 이해도 향상
  • 필자는 Python 학습에 집중 중이며, 에러를 이해하고 모델을 올바르게 유도하는 능력이 조금씩 생김

Vibe Coding vs. AI Chat vs. 웹 검색

  • Vibe Coding: 초기 탐색이나 실험적 시도에는 유용하나, 구조적인 개발에는 부적합
  • AI Chat (ChatGPT 등): 빠른 답변과 보일러플레이트 생성에는 유용하나, 맹목적 신뢰는 위험 (AI 환각 가능성 존재)
  • 웹 검색: 개념과 정확한 해결책을 찾는 데 필수적이나, 시간이 오래 걸릴 수 있음

현재 선호하는 조합: Gemini + Open WebUI

  • Gemini Code Assist (VS Code에서 사용):
    • 무료이며, 테스트 코드 생성 및 에러 수정에 강함
    • 유닛 테스트를 처음 해보는 사람에게 특히 유용
  • Open WebUI:
    • 다양한 모델 지원과 커스터마이징 가능
    • 특정 목적(코딩, 논문, 특허 등)에 맞는 프롬프트 설정 가능
    • 텍스트 정렬, 테이블 변환 등 비용 대비 효율적인 작업에 적합

비효율적인 선택: 무제한 AI 에이전트

  • Roo Code, Cline 등은 긴 시간 실행되며 토큰 사용량이 많음
    • 특히 Claude 기반은 성능은 좋지만 비용이 과도하게 큼
  • 대신 Gemini 2.0, DeepSeek V3/Chat 등은 무료이거나 저렴하고, 성능도 준수함

결론: 균형을 찾아가는 중

  • Vibe Coding이 완전히 나쁘다고는 할 수 없음
    • 창의력 발휘나 아이디어 탐색에는 도움이 됨
  • 그러나 지속 가능한 개발 방식은 아님
    • 마감 기한과 비용 앞에서 현실적인 대안이 필요
  • 필자의 현재 최적 조합:
    • Gemini Code Assist (무료, 유닛 테스트에 강함)
    • Open WebUI (컨트롤과 비용 측면에서 유리)
  • 향후 계획:
    • Perplexity 같은 유료 챗 앱 고려 ($20/월, 무료 티어도 존재)
    • API 비용이 월 $30 이상이므로, 구조적 비용 절감 필요
    • 장기적으로는 로컬 모델 실행도 고려, 더 효율적인 모델이 나오면 전환 가능성 있음
Hacker News 의견
  • 다른 사람들이 LLMs를 사용하여 코딩하는 방법에 대한 보고서를 읽는 것이 흥미로움

    • 개인적으로 LLMs가 프로그래밍의 "언캐니 밸리"를 넘어서서 생산성이 크게 향상됨
    • 문제와 제약 조건을 잘 설명하면 수천 줄의 코드를 정확하게 생성할 수 있음
    • LLM이 생성한 코드를 검토하는 것이 중요하며, 구체적으로 요구하면 잘 해결됨
    • "해결책을 구현할 계획을 말해달라"는 요청이 유용함
    • 결과는 놀라움. 스타일은 다를 수 있지만 구조적으로 매우 정확함
  • Vibe 코딩은 프로덕션 코드 작성이 아닌 탐색적 프로토타입에 적합함

    • 개인적인 도구에는 괜찮지만, 다른 사람에게 배포할 코드에는 적합하지 않음
    • 코드에 대한 이해와 반복이 필요함
    • Vibe 코딩은 코드에 신경 쓰지 않는 행위로 정의됨
  • Vibe 코딩은 "흐름"에 빠져 쉽게 코드를 생성하는 것임

    • 영화 속 해커 장면이 ChatGPT를 사용했다면 더 멋졌을 것이라는 농담
    • 코드 실행을 기준으로 코드의 정확성을 판단하는 것은 좋지 않음
    • 최소한 LLM 출력물을 검토하는 것이 중요함
  • Vibe 코딩은 코딩과 관련이 없다고 생각함

    • 비전문가도 작은 규모의 코드를 만들 수 있지만, 대규모 시스템은 어려움
    • LLMs는 보일러플레이트 코드를 생성하는 데 유용하지만, 문제 발생 시 수정이 필요함
    • 새로운 'vibe coders'는 문제를 이해하지 못하고 반복적으로 시도함
  • Claude Code를 사용하는 데 하루에 $30를 지출함

    • Vibe 코딩에 많은 비용을 들임
  • 트리 구조로 작업하는 것이 유용함

    • 큰 그림을 그리고 세부 사항을 채워나가는 방식
    • LLMs와 함께 작업할 때 효과적임
    • 구조적이지만 여전히 Vibe 코딩으로 간주될 수 있음
  • Karpathy는 이름 짓기에 능함

    • 새로운 이름이 잘 정착됨
  • LLM을 많이 사용하지만, Vibe라는 개념은 온라인 농담에서 시작됨

    • 질문을 잘 구성하는 것이 중요하며, 이는 코딩과 유사함
    • 테스트가 중요하며, LLM을 통해 학습이 빠르게 진행됨
  • 자신의 생각을 공식 언어로 표현하는 것의 가치가 있음

    • 수학이 자연어로도 표현 가능하지만 공식화의 명확성과 간결함이 유용함
    • 코드는 모호한 아이디어를 명확하게 만드는 수단임
    • 모든 시스템이 모호한 언어로 작성되는 것은 바람직하지 않음
  • AI 채팅이 웹 검색보다 더 나은 결과를 제공함

    • SQL 쿼리를 작성할 때 Gemini가 더 나은 결과를 제공함