https://helloworld.kurly.com/blog/vibe-coding-with-claude-code/ 

먼저 위 글을 참고했습니다. 

 

— LLM과 일할 때, 원하는 답을 얻기 위한 실전 가이드

요즘 “바이브 코딩(Vibe Coding)”이라는 말이 자주 등장합니다. 
AI에게 자연어로 요구사항을 던지고, 코드를 생성하게 한 뒤 흐름에 몸을 맡기는 개발 방식입니다. 

하지만 실무에서 바이브 코딩을 써본 사람이라면 이런 경험이 한 번쯤은 있을 것입니다. 

  • 분명 규칙을 다 써줬는데 일부가 빠져있다든지..
  • 처음엔 잘 지키다가, 대화가 길어지면 갑자기 구조가 바뀐다던지..
  • 최신 스택을 쓰자고 했는데 어느 순간 과거 패턴으로 돌아가는 경우입니다. 

이건 AI가 충분히 성능을 못내줘서가 아니라,
LLM의 구조적 특성을 이해하지 못한 채 사용했기 때문인거로 보여집니다. 

이번 포스팅은 바이브 코딩을 무작정 따르지 않고,
명확하고 원하는 결과를 얻기 위한 실전 가이드라인을 정리해보겠습니다. 


1. 바이브 코딩의 전제: AI는 의사결정자가 아니다

LLM은 생각하는 존재가 아니라 확률적으로 가장 그럴듯한 답을 생성하는 모델로 보여집니다. 

  • 많이 본 패턴 → 더 높은 확률 (이전 규칙이 희석될 가능성이 큼)
  • 오래 대화할수록 → 학습 데이터의 “중앙값”으로 회귀
  • 규칙이 많아질수록 → 일부는 누락

즉, 바이브 코딩은

“AI에게 설계를 맡기는 방식”이 아니라
“AI를 빠른 실행 도구로 사용하는 방식”
으로 접근해야 합니다. 


2. 왜 AI는 규칙을 자꾸 어길까?

2-1. 학습 데이터 편향 (과거 패턴 회귀)

AI는 최신 기술도 알고 있지만, 과거에 많이 등장한 패턴을 더 선호하게 됩니다. 

  • Zustand를 쓰자고 해도
  • 대화가 길어지면 Redux 패턴이 섞이거나 회귀하는 이유

명시적 지시 vs 학습된 prior의 싸움에서
대화가 길어질수록 prior가 이길 확률이 높아지는것입니다.


2-2. 작업 기억(Working Memory)의 한계

AI는 규칙을 기억할 수는 있지만,
여러 규칙을 동시에 조작하며 유지하는 능력에는 한계가 있습니다. 

예를 들어:

  • 에러 처리
  • 타임아웃 설정
  • 환경변수 관리
  • JSON 로그
  • 테스트 코드

이 다섯 가지를 한 번에 요구하면,
높은 확률로 1~2개는 빠지게 될겁니다. 진짜.. 

이건 길이 문제가 아니라 동시 처리 개수의 문제로 추측됩니다. 


3. 바이브 코딩을 성공시키는 핵심 원칙

원칙 1. 한 번에 하나의 역할만 맡긴다

AI에게 동시에 이것저것 시키면 반드시 품질이 무너지게된다. 

X 나쁜 예

“설계도 해주고, 코드도 짜고, 테스트도 만들고, 리팩터링까지 해줘”

O 좋은 예

  1. 지금은 설계자 역할
  2. 다음은 구현자 역할
  3. 마지막은 리뷰어 역할

역할을 나누는 것만으로 결과가 달라질 수 있습니다. 


원칙 2. 코드보다 ‘계획’을 먼저 시킨다

바로 코드부터 생성하게 하면
AI는 자기가 익숙한 패턴으로 밀어붙인다.

대신 이렇게 한다.

코드는 아직 작성하지 말고,
이 기능을 구현하기 위한 단계별 계획을 먼저 작성해줘.

계획을 보고:

  • 빠진 요구사항 추가
  • 잘못된 방향 수정

그 다음에:

이 계획을 그대로 코드로 옮겨줘.

이렇게 보면 누락과 회귀가 눈에 띄게 줄어들게 됩니다.


원칙 3. 요청은 반드시 쪼갠다

AI에게 “잘 시키는 법”보다 중요한 건
나눠서 시키는 법입니다. 

X

“장바구니 API 만들어줘. 에러 처리, 테스트, 로그도 포함해줘.”

O

  1. 핵심 로직만 구현
  2. 에러 처리 추가
  3. 테스트 코드 추가
  4. 로그 형식 수정

이 방식은 번거로워 보이지만,
결과적으로 수정 횟수와 스트레스를 줄여줍니다. 


원칙 4. 중요한 규칙은 반복 고정한다

AI는 한 번 말한 규칙보다, 여러 번 반복된 규칙을 더 중요하게 유지합니다. 

대화 중간중간 짧게 고정하자.

다시 강조하지만,
- Domain은 Presentation에 의존하지 않는다
- ViewModel은 Controller에서만 생성한다

이 한 줄이 구조 붕괴를 막아줍니다. 


원칙 5. 체크리스트를 사용한다

AI는 완료 조건이 명확할수록 잘 지키게 됩니다. 

아래 체크리스트를 모두 만족하는지 확인하며 작성해줘.
- [ ] ViewModel은 Controller에서만 생성
- [ ] Facade는 ApplicationResult만 반환
- [ ] 테스트 코드 포함

그리고 결과 후:

체크리스트 기준으로 다시 검증하고 누락된 부분 수정해줘.

이렇게 하면 누락 방지에 매우 효과적입니다. 


4. 실무에서 가장 추천하는 바이브 코딩 3단계

ㅡ Plan 먼저
ㅡ 단계별 요청
ㅡ 체크리스트 검증

이 세 가지만 지켜도,

  • 왜 또 구조가 깨졌지?
  • 아까 말한 거 왜 안 지켰지?

라는 질문을 훨씬 덜 하게 됩니다. 


5. 결론: 바이브 코딩은 ‘통제된 자유’다

바이브 코딩의 핵심은
AI에게 모든 걸 맡기는 것이 아닙니다. 

설계와 판단은 사람이,
실행 속도는 AI가 담당하는 구조

이 전제가 지켜질 때,
바이브 코딩은 위험한 지름길이 아니라
강력한 생산성 도구가 된다고 생각합니다.