"상품 검색 기능 추가해달라고 했을 뿐인데, AI가 기존 코드를 다 망쳐버렸어요."

분명 잘 돌아가고 있었어요. 근데 기능 하나 추가하려고 했더니 갑자기 전체가 안 돌아가고, 고치려고 하면 할수록 더 망가지고.

왜 이렇게 되는 걸까요?

AI가 멍청해서가 아니에요. 지시가 너무 막연해서 그래요.

AI는 유능한 신입사원이라고 했죠. 신입한테 "알아서 잘 해줘"라고만 하면 안 되는 것처럼, AI한테도 구체적으로, 기술적으로 말할 수 있어야 해요.

오늘은 바이브 코더가 목표로 해야 할 수준을 구체적으로 보여드릴게요.


목표: 기술적 지시가 가능한 매니저

3편에서 "기술적 지시가 가능한 매니저"라는 표현을 썼어요. 이게 정확히 어떤 수준일까요?

기술적 지시가 가능한 매니저란?
 🎯 할 수 있는 것                                                      

    1. AI한테 여러 선택지를 물어볼 수 있다                              
       "이 기능 만들려면 어떤 방법들이 있어?"                           

    2. 선택지를 듣고 판단할 수 있다                                     
       "우리 상황에는 1번이 더 맞겠다"                                  

    3. 판단한 방향으로 구체적으로 지시할 수 있다                         
       "1번 방법으로 가자. 역할별로 폴더 나눠서 만들어줘"                

    4. AI가 만든 걸 보고 맞는지 확인할 수 있다                           
       "어, 한 파일에 다 섞여있는데? 화면이랑 데이터 처리 분리해줘"      

 ❌ 하지 않는 것                                                       

    - 코드를 직접 타이핑하지 않음                                       
    - 알고리즘을 직접 짜지 않음                                         
    - 버그를 직접 수정하지 않음 (AI한테 시킴)                           

핵심은 "대화"예요.

단방향으로 "만들어줘"가 아니라, 양방향으로 "어떻게 할까?" → 판단 → "이렇게 해줘" → 확인 → "여기 고쳐줘"

이런 대화가 가능한 수준이 목표예요.

일방적 지시가 아닌, 토론하고 결정하고 지시하는 대화 일방적 지시가 아닌, 토론하고 결정하고 지시하는 대화


수준별 비교: 막연 → 구체 → 기술적

같은 기능을 만들어도, 지시 수준에 따라 결과가 완전히 달라요. 쇼핑몰의 상품 검색/필터링 기능을 예시로 비교해볼게요.

수준 1: 막연한 지시

수준 1: 막연한 지시 (현재 대부분의 바이브 코더)
 나: "상품 검색 기능 만들어줘"                                         

 AI: "네, 검색 기능 만들었습니다."                                      

 [AI가 뭔가 만듦]                                                      

 나: (확인해보니 검색창만 있고 필터가 없음)                              
    "아니 이게 아니라... 카테고리 필터도 있어야지"                       

 [AI가 필터 추가 → 근데 기존 검색이 망가짐]                             

 나: "검색이 왜 갑자기 안 돼?"                                         

 → 복권 긁기. 뭐가 문제인지도 모름                                      

수준 2: 구체적 지시

수준 2: 구체적 지시 (조금 나아진 상태)
 나: "상품 검색 기능 만들어줘.                                         
     - 검색창에 입력하면 상품명으로 검색                                
     - 카테고리 필터 (의류, 전자기기, 식품)                            
     - 가격대 필터 (1만원 이하, 1~5만원, 5만원 이상)"                  

 AI: "네, 검색과 필터 기능 만들었습니다."                               

 [AI가 만듦]                                                           

 나: "잘 되네. 근데 상품 1000개 넘으면 엄청 느려지는데?"                

 AI: "아, 페이지네이션 추가하겠습니다."                                

 → 기능 명세는 명확. 근데 "어떻게 만들지"는 AI가 알아서 결정            
 → 성능 문제나 구조적 문제가 터지면 대응이 어려움                       

수준 3: 기술적 지시 (목표 수준)

수준 3: 기술적 지시 (바이브 코더 목표)
 나: "상품 검색/필터 기능 만들 건데, 방식 먼저 정하자.                   
     상품이 많아질 수 있어서 성능도 고려해야 해."                       

 AI: "두 가지 방식이 있어요:                                           
     1. 프론트에서 필터링 - 상품 적으면 빠름, 많으면 느림               
     2. 백엔드 API로 필터링 - 상품 많아도 빠름, 설정 복잡"             

 나: "일단 상품 100개 정도니까 1번으로 가고,                            
     나중에 2번으로 바꾸기 쉽게 구조 잡아줘."                           

 AI: "네, 필터 로직을 별도 파일로 분리해서 만들게요.                    
     - SearchFilter 컴포넌트 (검색창 + 필터 UI)                        
     - filterService (필터링 로직만 담당)                              
     - ProductList 컴포넌트 (결과 표시)"                               

 [AI가 만듦]                                                           

 나: (확인해보니 필터는 되는데 URL이 안 바뀜)                           
    "필터 선택하면 URL에 반영해줘. 링크 공유되게."                      

 AI: "URL 파라미터로 필터 상태 관리하게 수정할게요."                    

 → 방식의 장단점을 듣고 내가 판단                                      
 → 구조를 이해하고 있어서, 문제 생기면 어디를 고칠지 앎                 

 ⚠️ 근데 이 수준에 도달하는 게 쉽지는 않아요                           
 → 개념을 알아야 하고, 대화 경험이 쌓여야 해요                          
 → 이 시리즈가 그 과정을 돕는 거예요                                   

차이가 보이시나요?

수준 3은:

  • 기술 스택을 먼저 정해요
  • AI한테 선택지를 물어보고, 듣고 판단해요
  • 구체적인 방향을 지시해요
  • AI가 뭘 만들었는지 이해하고 확인해요

이게 "기술적 지시가 가능한 매니저"예요.

막연한 바램에서 기술적 지시로 성장하는 단계 막연한 바램에서 기술적 지시로 성장하는 단계


실제 대화 흐름 예시

좀 더 실감나게, 프로젝트 처음부터 끝까지 대화 흐름을 보여드릴게요.

예시: 간단한 할일 관리 웹앱

1단계: 아키텍처 결정
 나: "할일 관리 웹앱 만들 건데,                                         
     아키텍처 추천해줘. 사용자 많지 않고 간단해야 해."                   

 AI: "세 가지 방법이 있어요:                                           
     1. 프론트만 (localStorage) - 서버 없이 빠름                       
     2. 프론트+백엔드 분리 - 확장성 좋음                               
     3. 풀스택 프레임워크 (Next.js) - 설정 편함"                        

 나: "1번으로 가자. React로 만들고,                                    
     나중에 백엔드 추가하기 쉽게 구조만 잡아둬."                         


 2단계: 프로젝트 구조 결정                                              

 AI: "프로젝트 구조 제안합니다:                                         
     /components - 화면에 보이는 부분들                                
     /services - 데이터 저장/불러오기 담당"                            

 나: "좋아. 폴더 나눠서 역할 분리하는 거지?"                             

 AI: "네, 화면 그리는 코드랑 데이터 처리 코드를 분리하는 거예요.         
     나중에 수정할 때 어디를 고쳐야 할지 찾기 쉬워요."                   

 나: "오케이, 그렇게 해줘."                                             


 3단계: 구현 및 확인                                                   

 AI: "기본 구조 만들었어요. 확인해보세요."                              

 [기능 단위로 직접 확인]                                               
 - 할일 추가 버튼 눌러보기 → 잘 됨                                     
 - 삭제 버튼 눌러보기 → 잘 됨                                          
 - 새로고침 후 데이터 남아있는지 확인 → OK                              

 [코드 구조도 확인]                                                    

 나: "어, 한 파일에 코드가 너무 많은데?                                 
     화면 그리는 거랑 데이터 처리는 분리해줘."                          

 AI: "네, 데이터 처리 부분을 services 폴더로 분리할게요."               

 [수정 후]                                                            

 나: "이제 역할별로 나뉘어 있네. 좋아."                                 

이게 기술적 대화예요.

"만들어줘"가 아니라:

  • "아키텍처 추천해봐"
  • "폴더 나눠서 역할 분리하는 거지?"
  • "한 파일에 너무 많은데, 분리해줘"

이런 대화를 할 수 있으려면 뭘 알아야 할까요?


이 수준에 도달하려면 뭘 알아야 하나요?

위 대화에서 쓰인 개념들만 봐도:

  • 프론트엔드 vs 백엔드
  • 아키텍처 (프로젝트를 어떤 방식으로 만들지)
  • 프로젝트 구조 (폴더를 어떻게 나눌지)
  • 역할 분리 (화면 vs 데이터 처리)

이런 개념들을 알아야 해요.

💡 근데 다 외울 필요는 없어요
"프론트엔드가 정확히 뭐지?"를 외우는 게 아니라,
"프론트엔드랑 백엔드가 다르구나" 정도만 알면 돼요.

그럼 AI한테 "프론트만 할 거야"라고 말할 수 있어요.

세부 내용은 이 시리즈에서 차근차근 배울 거예요.

수준별 성장 경로

바이브 코더로서 성장하는 경로를 단계별로 보여드릴게요.

바이브 코더 성장 경로
 1단계: 기능 요청 수준 (시작점)                                         
    "○○ 기능 만들어줘"                                                 
    → 뭔가 나오긴 하는데, 내가 원한 건지 모름                           

 2단계: 명세 제공 수준                                                 
    "△△ 기능 만들어줘. ××하면 ◇◇되게."                                
    → 기능은 원하는 대로 나옴. 근데 구조는 몰라서 나중에 막힘             

 3단계: 구조 이해 수준                                                 
    "프론트/백 분리해줘", "컴포넌트 나눠줘"                             
    → 프로젝트 구조는 이해함. 설계는 여전히 AI가 알아서                  

 4단계: 설계 대화 수준 (목표!)                                         
    "아키텍처 추천해봐" → 판단 → "1번으로 가자"                         
    → AI랑 설계 대화 가능. 방향 내가 정함                               

 5단계: 고도화 (추가 성장)                                             
    성능, 보안, 확장성까지 고려한 지시                                  
    → 실제 서비스 운영 가능                                            

이 시리즈의 목표는 4단계예요.

1~3단계를 거쳐서, 4단계에 도달하는 것. 5단계는 그 이후에 각자 필요에 따라 성장하면 돼요.


"기술적"이라는 게 어렵게 들리는데...

"기술적 지시"라고 하니까 너무 어렵게 느껴질 수 있어요.

근데 어렵게 생각하지 않아도 돼요. 한 번에 하나씩 배우면 돼요.

🎯 기술적 ≠ 복잡한
"기술적으로 말한다" = 개념을 정확한 이름으로 부른다

예시:
❌ "이거 눈에 보이는 부분만 만들어줘"
✅ "프론트엔드만 만들어줘"

❌ "데이터 어딘가에 저장해줘"
✅ "localStorage에 저장해줘"

❌ "화면 나누고 싶어"
✅ "컴포넌트로 분리해줘"

→ 정확한 용어를 쓰는 것뿐이에요

용어를 알면, AI가 정확히 이해해요. 그럼 원하는 대로 나올 확률이 훨씬 높아져요.


코드를 봐야 하나요?

"기술적으로 지시한다"고 해서 코드를 줄줄 읽어야 하는 건 아니에요.

💡 코드는 "확인용"으로만 봐요
AI한테 지시할 때는 코드를 안 봐도 돼요.
근데 AI가 만든 후에는 확인해봐야 해요.

확인하는 것:
  ✅ "어, 이 파일에 다 때려박았네? 분리해야겠다"
  ✅ "폴더 구조가 이상한데? 역할별로 나눠야지"
  ✅ "이 파일이 너무 길어. 쪼개야겠다"

이 정도만 보면 돼요.
코드 한 줄 한 줄 다 이해할 필요는 없어요.

전체 구조만 파악하면 돼요.

"어디에 뭐가 있는지", "파일이 어떻게 나뉘어 있는지" 정도만요.


오늘의 핵심 정리

✅ 목표: 기술적 지시가 가능한 매니저 수준
   → "만들어줘"가 아니라 "추천해봐" → 판단 → "이렇게 해줘"

✅ 대화가 핵심
   → 단방향 지시 X, 양방향 대화 O
   → AI한테 물어보고, 듣고, 판단하고, 지시하기

✅ 이 수준에 필요한 것
   → 프로그램 구조, 폴더 나누는 법, 역할 분리 같은 개념들
   → 이 시리즈에서 차근차근 배움

✅ 성장 경로
   → 기능 요청 → 명세 제공 → 구조 이해 → 설계 대화 (목표!)

✅ AI한테 기술적으로 지시할 때:
   "○○ 만들어줘. 방식 먼저 정하자.
    장단점 알려줘 → [듣고 판단] → 1번 방식으로 가고,
    나중에 바꾸기 쉽게 구조 잡아줘."

셀프체크

오늘 배운 내용, 제대로 이해했는지 확인해볼까요?

□ 이 시리즈가 끝나면 무엇을 할 수 있게 되나요?
□ AI가 여러 선택지를 주면 어떻게 해야 하나요?

(정답: AI에게 기술적으로 지시하고 결과를 판단할 수 있다 / 장단점을 파악하고 나의 상황에 맞는 것을 선택한다)

다음 글 예고

PART 1 마인드셋 정리해볼게요.

  • AI는 유능한 신입사원이다 (1편)
  • 바이브 코딩은 코드가 아니라 명확한 지침이다 (2편)
  • 문법이 아니라 개념을 배운다 (3편)
  • 기술적 지시가 가능한 매니저가 목표다 (4편, 지금)

다음 글부터는 PART 2: 큰 그림이에요.

프로그램의 종류부터 시작할게요.

  • 웹이랑 앱이 어떻게 다른지
  • 자동화 스크립트는 뭔지
  • AI한테 "어디서 돌아가게 만들어줘"라고 말하는 법

개념 하나씩 배우면서, AI한테 기술적으로 말하는 법을 익혀갈 거예요.


이 시리즈 로드맵

PART 1: 마인드셋 (4편) ✅ 완료!
[ 1편 ] AI는 유능한 신입사원이다 ✅
[ 2편 ] 바이브 코딩이란 무엇인가 ✅
[ 3편 ] 바이브 코더가 알아야 할 것 ✅
[ 4편 ] 목표 수준: 기술적 지시가 가능한 매니저 ← 지금 여기! ✅
   ↓
PART 2: 기술 개념 - 큰 그림 (6편)
[ 5편 ] 프로그램의 종류 (웹앱 vs 네이티브앱)
[ 6편 ] 프론트엔드 vs 백엔드
[ 7편 ] 데이터는 어디에 저장되나
[ 8편 ] 서비스들이 대화하는 방법: API
[ 9편 ] 프로젝트 구조
[ 10편 ] 데이터 흐름
   ↓
PART 3: 기술 개념 - 설계 (5편)
[ 11~15편 ] 자료구조, 아키텍처, 디자인 패턴, 상태 관리
   ↓
PART 4: 도구 세팅 (5편)
[ 16~20편 ] Claude Code, 터미널, VS Code, Git, 환경 세팅
   ↓
PART 5: 첫 프로젝트 - 할 일 관리 웹앱 (4편)
PART 6: 두 번째 프로젝트 - 자동화 봇 (4편)
PART 7: 세 번째 프로젝트 - 데이터 대시보드 (4편)
   ↓
PART 8: 독립 성장 (3편)
[ 33~35편 ] 에러 읽기, AI와 디버깅, 앞으로의 여정

"만들어줘"에서 "어떻게 만들까? 추천해봐"로. 이 한 걸음이 복권에서 주문서로 바뀌는 차이예요.

궁금한 점이나 다뤘으면 하는 주제가 있으면 댓글로 남겨주세요!