arrow_back필드 노트로 돌아가기
AI 게시됨 4 Aug 2026

Vibe Coding이란 정말 무엇인가?

Vibe coding은 모든 줄을 손으로 입력하는 대신 AI 모델에 의도를 설명하고 출력을 반복하면서 소프트웨어를 작성하는 것을 의미한다.

"vibe coding"이라는 용어는 2024-2025년에 빠르게 퍼졌는데, 많은 개발자가 이미 조용히 하고 있던 무언가를 명명했기 때문이다: GPT-4, Claude 같은 모델이나 Cursor, GitHub Copilot 같은 도구에 평문으로 원하는 것을 설명하고 대부분의 실제 코드를 생성하도록 하는 것. 프로그래머는 루프에 남아 있지만, 루프는 기존 코딩과 다르게 보인다.

실제 정의

Andrej Karpathy는 이 문구를 만들었고, "완전히 분위기에 몸을 맡기는" 워크플로우를 설명했다 — 프롬프트를 입력하고, 제안을 받아들이고, 코드를 실행하고, 무엇이 깨지는지 보고, 다시 프롬프트를 입력한다. diff를 한 줄씩 읽지 않는다. 결과로 스티어링한다: 앱이 그 일을 하는가, 테스트가 통과하는가, 페이지가 올바르게 렌더링되는가. 기술은 문법 작성에서 의도를 명확하게 설명하고 출력이 잘못된 시점을 인식하는 것으로 변한다.

이는 단순히 자동완성을 사용하는 것과 다르다. Copilot 스타일의 인라인 제안은 여전히 함수를 직접 작성하면서 줄을 완성하는 데 도움을 받는다고 가정한다. Vibe coding은 모델이 함수, 파일, 때로는 전체 기능을 작성하고, 처음부터 작성하는 대신 검토하고 리디렉션한다고 가정한다.

실제 세션이 어떻게 보이는지

Cursor나 Replit의 Agent 모드 같은 도구를 사용하는 일반적인 vibe-coding 루프는 대략 다음과 같다:

  1. 프롬프트: "이 Express API에 rate limiter를 추가해, IP당 15분마다 100 요청, 429를 JSON 에러 바디로 반환해."
  2. 모델이 middleware/rateLimit.js를 편집하고, app.js에 연결하고, 아마도 express-rate-limit를 당겨온다.
  3. npm test를 실행하거나 루프에서 curl로 엔드포인트를 쳐서 429가 실제로 나가는지 확인한다.
  4. 뭔가 잘못됐다 — limiter가 메모리에 있어서 배포할 때마다 리셋된다. 그렇다고 말한다.
  5. 모델이 Redis 기반 저장소로 바꾸고, ioredis 의존성을 추가하고, docker-compose 파일을 업데이트한다.
  6. 다시 테스트하고, 작동하고, 커밋한다.

그 middleware의 어떤 줄도 손으로 입력하지 않았다. 하지만 6개 또는 7개의 판단 호출이 사람에 의해 이루어졌다: 제한이 얼마여야 하는지, 메모리 내 저장소가 프로덕션에 잘못되었다는 것, docker-compose 파일도 업데이트해야 한다는 것.

잘 작동하는 경우

Vibe coding은 보일러플레이트가 많은 작업에 강하다: CRUD 엔드포인트, 폼 검증, 테스트 스캐폴딩, 설정 파일, 이미 이해하는 두 API 사이의 glue 코드. 프로토타이핑에도 좋다 — 아이디어의 작동 데모를 하루 대신 한 시간에 가동시킨 후, 제대로 구축할 가치가 있는지 결정한다.

버그의 비용이 낮고 아키텍처 순수성보다 반복 속도가 더 중요한 내부 도구나 MVP를 배포하는 개별 개발자와 소규모 팀에는 진정으로 빠르다.

깨지는 경우

사람들이 충분히 이야기하지 않는 실패 모드: 모델은 실행되지만 나중까지 나타나지 않는 미묘하게 잘못된 방식의 코드를 생성한다. 생성된 SQL 쿼리는 해피 패스에서는 작동할 수 있지만 문자열 연결이 모델에 좋아 보였기 때문에 주입에 취약할 수 있다. 생성된 auth 체크는 테스트를 통과할 수 있지만 한 라우트에서 역할 체크를 건너뛸 수 있다. 코드를 읽지 않으면 그것을 잡지 못할 것이다 — 테스트가 통과하는 것을 보고 배포할 것이다.

이것은 거의 다른 곳보다 보안에 민감한 코드에서 더 중요하다. Simon Willison과 다른 사람들은 실제 사용자 데이터가 있는 vibe-coded 프로젝트는 다른 코드와 동일한 검토 엄격성이 필요하다고 지적했고, 아마도 더 필요하다고 했는데, 왜냐하면 그것을 "작성한" 사람이 그것이 무엇을 하는지를 줄 단위로 설명하지 못할 수 있기 때문이다.

많은 암묵적인 상태가 있는 복잡한 시스템 — 동시성, 분산 트랜잭션, 미묘한 타이밍 버그가 있는 것 — 도 좋지 않은 적합이다. 모델은 이러한 경우들에 그럴듯한 코드를 생성하는 경향이 있는데, 누구도, 인간도 모델도, 처음부터 엣지 케이스를 완전히 모델링하지 않았기 때문에 정확히 디버깅하기 어려운 방식으로 실패한다.

지금 정말 중요한 기술

Vibe coding을 하고 있다면, 귀중한 기술은 타이핑 속도가 아니라 사양이다. 모호한 프롬프트는 모호하고 버그가 있는 코드를 얻는다. 구체적인 프롬프트 — 정확한 라이브러리 이름, 에러 처리 기대, 부르는 엣지 케이스를 포함한 — 은 훨씬 나은 출력을 얻는다. 두 번째로 가장 귀중한 기술은 무엇이 잘못되었는지 잡기에 충분히 빠르게 코드를 읽는 것인데, 이는 모든 문자를 입력하지 않더라도 언어와 도메인을 이해해야 한다는 것을 의미한다.

AI 생성 코드를 빠르지만 때때로 과신하는 주니어 개발자로부터의 풀 요청을 처리하는 방식으로 다루어라: 유용하고, 종종 정확하지만, 프로덕션에 닿기 전에 실제 검토할 가치가 있다.

품질 제어를 잃지 않으면서 AI 도구로 코드 작성을 더 깊이 파고싶은가? Korra Studio의 AI and Python 세그먼트를 확인해 실습 워크스루를 보자.

AI 도움을 받아 작성했으며, Michal Pilch(CISSP), Korra Studio에서 검토 및 게시했어요.

더 나아가고 싶으신가요?

이것은 Korra Studio 나레지베이스의 한 노트예요. 플랫폼은 모든 주제를 1-to-1 멘토링과 함께 제공해요.

무료로 시작하기arrow_forward