"Vibe Coding" vs 현실

2 days ago 9

  • 최근 Andrej Karpathy의 발언이 화제: "Vibe에 몸을 맡기고, 기하급수적인 성장을 받아들이고, 코드가 존재한다는 사실 조차 잊어버리세요."
  • "Vibe Coding"은 명확한 계획이나 코드 작성 없이 AI 도구에 문제 해결을 위임하는 경향을 의미함
  • LLM(대형 언어 모델) 에이전트를 통해 자연어로 명령을 내리면 코드를 생성하고 수정할 수 있게 됨
    • 2022년: ChatGPT에서 코드 복사 및 수정 가능
    • 2023년: IDE와 통합된 Copilot에서 코드 리뷰 및 수정 가능
    • 2024~2025년: 프로젝트의 여러 파일을 수정하고 자체 테스트 및 수정 가능

"Vibe Coding"의 작동 방식

  • 기술 및 비기술 사용자 모두 LLM 기반 에이전트를 통해 프로젝트 설정 가능
  • 단순한 명령으로 웹사이트나 앱 생성 가능 (예: "스키 리조트 웹사이트 만들기")
  • 초기 설정 이후 자동 수정 및 테스트 가능
  • 예제:

    • Cursor, GitHub Copilot Agent Mode 등은 파일 수정 및 명령 실행 가능
    • 자동 수정 및 테스트 수행 → 일관성 부족으로 오류 발생 가능

에이전트의 자율성 문제

  • 에이전트는 자동으로 작업 수행 가능하지만 완전한 자율성은 아님
  • 사용자 승인 없이 실행되면 위험 발생 가능 (예: YOLO 모드에서 명령 실행)
  • 코드 품질 및 정확성 문제 발생 가능
  • 주요 문제:

    • 기존 코드 재사용 실패 → 동일한 컴포넌트 반복 생성
    • 클라이언트 측에서 서버 측 로직 실행 시도
    • 잘못된 코드 수정 후 오류 발생 → 수정 시 실패
    • 유닛 테스트 작성 실패 또는 코드 파괴 발생

현실적인 한계

  • Claude 3.7 Sonnet 등 모델은 훈련 데이터의 한계를 벗어나지 못함
  • 코드 기반에서 문맥을 잃으면 일관성 있는 수정 불가능
  • 코드 크기가 커지면 성능 저하 및 문맥 유지 불가능
  • LLM의 문맥 창 크기 초과 시 일관성 문제 발생
  • 구체적 문제 사례:

    • TypeScript 인터페이스 복제
    • 클라이언트에서 서버 로직 실행
    • 중복 컴포넌트 수정 실패
    • 유닛 테스트 작성 실패
    • 코드 리팩토링 후 오류 수정 실패

문제 해결 시도

  • Claude Plays Pokémon: 에이전트가 실시간 상호작용하며 게임 플레이
  • 메모리 유지 및 반복 오류 수정 시 실패
  • 장기적 기억 구축 실패 → 지속적인 오류 발생
  • 개선 가능성:

    • MCP(Model Context Protocol) 및 메모리 관리 개선 필요
    • 코드 수정 시 LLM이 이전 수정 내용을 정확히 반영해야 함
    • 도메인별 기억 및 작업 내역 보존 필요

결론

  • "Vibe Coding"은 기능적인 개념을 구현하는 데 80%까지 도달할 수 있지만, 신뢰할 수 있고 안전한 제품을 만들기 위해서는 경험 있는 인간의 노력이 필요함
  • AI 에이전트는 숙련된 사람들이 독립적으로 더 많은 것을 창조할 수 있게 해주지만, 경험과 직관이 필요한 어려운 문제를 해결할 수 있는 사람들을 대체할 수는 없음.
  • 현재 수준에서는 "Vibe Coding"이 실제로 유용한 제품으로 이어지기 어렵고, 숙련된 개발자의 도움이 필수적임
  • "Vibe Coding"은 코드 작성의 보조 수단일 뿐, 완전한 대체 수단이 아님

Read Entire Article