멈추고 읽어라 (Pause & Read): "Apply"를 무조건 클릭하지 마세요. AI가 수정한 코드는 반드시 직접 확인한 후 적용하세요. Intermediate 트랙의 핵심 원칙은 Consumer → Reviewer로의 전환입니다. 빠른 적용보다 정확한 이해가 먼저입니다.
뭐가 달라지나요?
핵심 차이는 단순히 "AI 성능이 좋아지는 것"이 아닙니다. AI가 내 프로젝트 파일을 직접 보고, 읽고, 수정할 수 있다는 것입니다. 복붙 없이 대화만으로 파일이 바뀝니다.
| 항목 | Beginner 트랙 | Intermediate 트랙 |
|---|---|---|
| AI의 파일 접근 | 없음 (코드를 복붙해야 함) | 직접 읽고 수정 가능 |
| 맥락 유지 | 매번 코드를 다시 붙여줘야 함 | 프로젝트 전체를 AI가 기억 |
| 여러 파일 작업 | 하나씩만 가능 | 여러 파일 동시 수정 가능 |
| 개발 도구 | ChatGPT, Claude.ai 웹 브라우저 | Cursor, Windsurf, Claude CLI |
| 디버깅 속도 | 오류 복사 → 붙여넣기 반복 | AI가 코드 읽고 바로 수정 |
주의: AI가 편하게 파일을 수정하는 만큼, "AI가 뭘 바꿨는지" 모르고 넘어가기 쉽습니다. 변경된 내용을 반드시 직접 확인하고 이해하는 습관이 더 중요해집니다.
바이브코딩 스택 한 눈에 보기
Intermediate 트랙에서 사용하는 세 가지 핵심 도구가 어떻게 연결되는지 파악하면 환경 설정이 훨씬 쉬워집니다.
어떤 도구를 쓸까요?
AI가 파일을 직접 수정하는 도구는 크게 두 가지 유형입니다. GUI 편집기와 CLI 도구. 처음에는 GUI 편집기로 시작하고, 익숙해지면 CLI 도구를 추가합니다.
Cursor
VS Code 기반 AI 편집기. 가장 많이 씁니다. cursor.com에서 무료로 설치하고 바로 시작할 수 있습니다.
Windsurf
Codeium이 만든 AI 편집기. Cursor와 비슷합니다. codeium.com/windsurf에서 설치합니다.
Claude CLI
터미널에서 실행하는 AI. 프로젝트 폴더 안에서 실행하면 파일을 직접 읽고 수정합니다. 이 페이지 후반에서 다룹니다.
GitHub Copilot
VS Code 플러그인으로 설치. 학생이면 무료. education.github.com에서 신청합니다.
추천: 처음 시작한다면 Cursor 무료 플랜을 써보세요. VS Code와 인터페이스가 거의 같아서 적응이 빠르고, AI 기능은 매달 일정량 무료로 제공됩니다.
Cursor 설치 방법
-
1cursor.com 접속 → Download for [OS] 클릭
Windows/Mac 모두 지원합니다.
-
2설치 후 실행 → GitHub 계정으로 로그인
-
3File → Open Folder → 작업할 프로젝트 폴더 선택
폴더를 열면 AI가 프로젝트의 모든 파일을 볼 수 있게 됩니다.
-
4Node.js가 없다면 먼저 설치합니다
nodejs.org → LTS 버전 다운로드 후 설치. 터미널에서
node -v로 확인합니다.
코드보다 설계 먼저
가장 많이 하는 실수: 처음부터 "코드 짜줘"로 시작하는 것. 방향 없이 코드를 쌓다 보면 나중에 기능 추가가 어려워집니다.
대신 이렇게 시작하세요. 먼저 설계를 받고, 그 다음에 코드를 요청합니다.
기술 스택: React + Vite, 기본 CSS
기능: 이름 입력 → 출석 추가 / 중복 방지 / 삭제 / localStorage 저장
배포: Vercel
지금 코드는 필요 없고, 먼저:
1. 어떤 컴포넌트(파일)로 나눌지 구조
2. 각 파일의 역할
3. 개발 순서 (무엇을 먼저 만들면 좋은지)
를 정리해줘.
먼저 App.jsx와 AttendanceForm.jsx를 만들어줘.
이번 단계에서는 기능보다 UI 레이아웃만 먼저.
스타일은 인라인으로 간단하게 넣어줘.
각 파일을 어디에 저장해야 하는지도 알려줘.
왜 설계를 먼저 받나요? 설계를 먼저 잡으면 기능을 추가할 때 어디에 넣어야 할지 명확해지고, 오류가 났을 때 어느 파일을 봐야 하는지도 분명해집니다.
4단계 루프 반복하기
어떤 AI 도구를 쓰든 이 루프를 반복합니다. 도구가 달라져도 흐름은 동일합니다.
목표 정의
- 이번 단계에서 만들 기능
- 누가 쓰는 서비스인지
- 이번 단계에서 하지 않을 것
- 완성 기준 (어떻게 보이면 OK?)
구현 요청
- 구조 / 역할 정의 요청
- 첫 버전 코드 생성
- 수정 범위 명확하게 지정
- 이전 맥락 함께 제공
실행 & 검증
- 브라우저에서 직접 실행
- 기능 하나하나 테스트
- 오류 발생 시 즉시 처리
- 모바일에서도 확인
개선 요청
- 디자인 / 색상 조정
- 예외 처리 추가
- localStorage 저장
- 컴포넌트 분리 정리
Cursor에서 AI에게 요청하는 두 가지 방식
Chat 창 (Ctrl+L)
AI와 대화하며 코드를 제안받습니다. 제안을 수락하면 파일에 자동 반영됩니다. 여러 파일을 한 번에 수정할 수 있어요.
인라인 편집 (Ctrl+K)
수정하고 싶은 코드를 선택하고 Ctrl+K를 누르면 해당 부분만 AI가 수정해줍니다.
맥락을 잘 전달하기
App.jsx에 이름 입력 + 목록 표시가 있고, AttendanceForm.jsx에 폼이 있어. 이 구조를 유지하면서 중복 이름 방지 기능을 추가해줘.
오류 로그를 AI에게 잘 전달하는 법
Intermediate 트랙에서 가장 많이 막히는 순간은 AI가 코드를 수정한 뒤 새로운 오류가 생겼을 때입니다. 아래 3단계 루프를 반복하면 대부분의 오류를 해결할 수 있습니다.
오류 수집
- 브라우저 F12 → Console 탭 열기
- 빨간 오류 메시지 전체 복사
- VS Code / Cursor 터미널 오류도 확인
- 오류 메시지를 자르지 말고 전체 복사
컨텍스트 확보
- 오류가 발생한 파일 이름 파악
- 오류 직전에 내가 요청한 변경사항 파악
- 관련 파일 코드 복사 준비
- 어떤 동작을 했을 때 오류가 났는지 메모
AI에게 전달
- 오류 메시지 + 관련 파일 코드 세트로 제공
- "원인 설명 후 수정된 전체 코드 달라"고 요청
- 수정 후 즉시 브라우저 테스트
- 해결 안 되면 루프 반복
핵심 습관
- 오류 전에 반드시 git commit 저장
- 모듈식으로 요청: 한 번에 하나씩만
- "왜 이렇게 수정했어?"를 항상 물어보기
- 해결 후 원인을 이해하고 넘어가기
[브라우저 콘솔 또는 터미널에서 복사한 전체 오류]
직전에 요청한 변경사항:
[내가 방금 AI에게 시킨 작업 설명]
관련 파일 코드 (파일명.jsx):
[파일 전체 코드 붙여넣기]
오류 원인을 설명해주고, 수정된 전체 코드를 다시 써줘.
이것만 알면 시작할 수 있어요
CLI 도구를 쓰려면 터미널이 필요합니다. 처음에 필요한 명령어는 딱 6개입니다. 외우려 하지 말고, 참고하면서 쓰다 보면 자연스럽게 익혀집니다.
터미널 여는 방법
Windows
시작 메뉴 → "Windows Terminal" 검색
또는 Cursor / VS Code에서 Ctrl+`
Mac
Spotlight (Cmd+Space) → "Terminal" 검색
또는 Cursor / VS Code에서 Ctrl+`
Vite + React 프로젝트 만들기
# 원하는 위치로 이동 cd Desktop # Vite + React 프로젝트 생성 npm create vite@latest my-app # Framework: React / Variant: JavaScript 선택 cd my-app npm install npm run dev # localhost:5173 에서 열립니다
팁: 터미널에서 막히면 AI에게 그대로 물어보면 됩니다. "내 터미널 pwd 결과가 이래. 프로젝트 폴더로 어떻게 이동해?" 처럼요.
Claude CLI / Codex CLI 사용하기
CLI AI 도구는 터미널에서 실행하는 AI입니다. 프로젝트 폴더 안에서 실행하면 AI가 그 폴더의 파일을 읽고 직접 수정할 수 있습니다. GUI 편집기보다 더 빠르고 강력하게 동작합니다.
Claude CLI 설치 (Claude Code)
-
1Node.js 18 이상 설치 확인
node -v로 버전 확인. v18 미만이면 nodejs.org에서 최신 LTS 재설치. -
2아래 명령어를 터미널에서 실행합니다
# Claude CLI 설치 npm install -g @anthropic-ai/claude-code # 설치 확인 claude --version # 처음 실행 (Anthropic 계정으로 로그인) claude
비용 주의: Claude CLI는 Anthropic API를 사용하므로 사용량에 따라 비용이 발생할 수 있습니다. 처음엔 소량만 써보고, Anthropic 대시보드에서 사용량을 확인하세요.
Codex CLI 설치 (OpenAI)
# Codex CLI 설치 npm install -g @openai/codex # OpenAI API 키 설정 # platform.openai.com → API Keys → Create new key export OPENAI_API_KEY="sk-..." # Windows: set OPENAI_API_KEY=sk-... # 실행 codex
CLI에서 AI와 개발하는 흐름
프로젝트 폴더 안에서 CLI를 실행하면, AI가 그 폴더를 자동으로 읽기 시작합니다. 이후에는 대화하듯 요청하면 됩니다.
# 프로젝트 폴더로 이동 cd my-app # Claude CLI 실행 claude # AI가 현재 폴더를 자동으로 읽기 시작합니다 # 이제 대화하듯 요청하면 됩니다
기능: 25분 카운트다운 / 시작·일시정지·초기화 버튼 / 완료 시 메시지
스타일은 깔끔하게, 모바일에서도 잘 보이면 좋겠어.
작업이 끝나면:
1. 어떤 파일을 만들거나 수정했는지
2. 각 파일이 무슨 역할인지
3. 다음에 내가 직접 수정하려면 어디를 보면 되는지
를 요약해줘.
핵심 습관: "알아서 다 고쳐줘"라고 하지 마세요. "왜 이렇게 수정하는지 설명해줘"를 항상 붙이는 것이 실력을 키우는 방법입니다.
비용과 품질을 함께 지키는 법
AI에게 많은 정보를 제공하는 것이 항상 좋지는 않을 수 있습니다.
필요한 맥락만 전달하는 것이 더 빠르고, 비용 효율적입니다.
컨텍스트 창(Context Window)이란?
AI가 한 번의 대화에서 읽을 수 있는 텍스트의 한계입니다. 코드 파일 하나도 쉽게 수백~수천 토큰이 될 수 있고, 대화가 길어질수록 이전 내용이 모두 포함되어 비용이 늘어납니다. 불필요한 컨텍스트가 커질수록 응답 품질도 떨어질 수 있습니다.
토큰이 쌓이는 실제 구조
많은 사람이 "내 질문 길이 = 토큰 비용"이라고 생각하지만, 실제로는 다릅니다.
Claude는 매 응답마다 대화 시작부터 지금까지의 모든 내용을, 처음부터 다시 읽습니다.
그렇기에 대화가 길어지면 길어질수록, 사용되는 토큰이 폭발적으로 늘어납니다. 이 증가는 지수함수처럼 느껴지지만, 실제로는 2차 함수(quadratic) 구조입니다. 출력 토큰은 턴 수에 비례하지만, 입력 토큰은 턴 수의 제곱에 비례해 쌓이기 때문에 전체 비용이 가파르게 올라갑니다.
아래 시뮬레이터에서 모델과 설정을 바꾸며 비용이 어떻게 쌓이는지 직접 확인해보세요.
핵심: 토큰 비용의 대부분은 지금 쓴 질문이 아니라 쌓인 대화 이력에서 나옵니다. 가장 현실적인 비용 절감 방법은 컨텍스트를 자주, 적극적으로 초기화하는 것입니다.
비용만이 아닙니다 — 품질도 함께 흐려집니다
컨텍스트가 길어지면 Claude는 더 많은 텍스트를 처리해야 하고, 이 과정에서 무엇이 지금 중요한지 판단하는 능력이 흐려집니다.
우선순위 충돌
초반 요구사항과 지금 요구사항이 충돌할 때, Claude는 어느 쪽이 더 중요한지 판단하지 못하고 두 가지를 모두 반영하려다 어정쩡한 결과를 냅니다.
오래된 지시 재반영
10턴 전에 "빨간색으로 해줘"라고 했다가 나중에 "파란색으로 바꿔줘"라고 해도, 두 지시가 대화에 모두 남아 있으면 Claude가 헷갈립니다.
핵심보다 잡음이 커짐
실패한 시도, 이미 해결된 질문, 반복 설명이 쌓이면 지금 필요한 맥락이 노이즈에 묻힙니다. 대화가 길수록 핵심 지침의 영향력이 줄어듭니다.
컨텍스트를 구성하는 3가지 레이어
컨텍스트는 하나의 덩어리가 아닙니다. 세 가지 레이어로 나뉘고, 각각 다른 방식으로 관리합니다.
대화 이력
가장 빠르게 불어나는 레이어. 대화가 길어질수록 같은 질문을 해도 토큰이 누적 증가합니다. /clear 또는 /compact로 관리합니다.
참조 파일 (@file)
코드 파일 하나가 수백~수천 토큰. 꼭 관련된 파일만, 필요한 순간에만 참조하세요. 전체 코드베이스 일괄 첨부는 절대 피하세요.
시스템 지침 (CLAUDE.md)
매 대화 시작마다 자동으로 포함됩니다. 반복 설명을 없애는 장점이 있지만, 너무 길면 기본 토큰 부담이 됩니다. 핵심만 간결하게 유지하세요.
원칙: 컨텍스트는 많을수록 좋은 게 아닙니다. 관련성이 높을수록 좋습니다. 파일 10개를 통째로 붙이는 것보다, 핵심 파일 1~2개를 정확히 붙이는 게 더 좋은 답변을 만듭니다.
@src/ 폴더 전체 참조 + "로그인 버그 고쳐줘"Claude가 수십 개 파일을 모두 읽고, 어디가 문제인지 스스로 추측해야 합니다
@auth/useLogin.js 참조 + "이 훅의 토큰 검증 로직에서 만료 처리가 빠진 것 같아. 확인해줘"Claude가 정확히 필요한 부분만 보고 즉시 답변할 수 있습니다
Claude Code 전용 컨텍스트 명령어
Claude Code(CLI)에는 컨텍스트를 직접 제어하는 전용 명령어가 있습니다. 이 세 가지가 가장 현실적인 비용·품질 관리 수단입니다.
/clear vs /compact 선택 기준: AI가 이전 맥락 때문에 잘못된 방향으로 가고 있다면 /clear. 현재 작업 흐름은 유지하되 토큰만 줄이고 싶다면 /compact. 확신이 없다면 새 주제마다 /clear가 기본값입니다.
/compact를 해야 할 타이밍
/compact는 "토큰이 많이 쌓이면 누르는" 명령이 아닙니다. 아래 신호 중 하나라도 보이면 즉시 압축하세요.
-
①작업 주제가 바뀔 때
하나의 기능 구현이 끝나고 새 기능으로 넘어가기 전. 지금까지의 탐색은 요약으로 남기고 새 주제를 깔끔하게 시작합니다.
-
②같은 이슈를 오래 붙잡고 있을 때
디버깅이 길어졌다면 이미 실패한 시도들이 많이 쌓인 상태입니다. 결론만 남기고 과정은 버리세요. 턴 수 기준으로는 짧은 대화(질문·답변이 짧은 경우) 8~10턴, 일반 대화 6~8턴, 파일을 자주 참조하는 긴 대화 4~5턴이 정리 기준입니다.
-
③결정된 내용은 남기고, 탐색 과정은 버려도 될 때
"React로 하기로 결정"은 남겨야 합니다. "Vue도 고려해봤는데…"는 버려도 됩니다.
/compact가 이 판단을 자동으로 처리합니다. -
④응답이 느려지거나 엉뚱해지기 시작할 때
Claude의 답변이 현재 맥락과 맞지 않거나 이전 내용을 자꾸 언급하면, 컨텍스트 과부하 신호입니다. 즉시
/compact또는/clear하세요.
/compact 직후에는 Claude가 맥락을 잃을 수 있습니다. 아래 4줄 템플릿으로 상태를 빠르게 재설정하세요.
유지할 제약: React + Tailwind, components 폴더 구조 유지, localStorage 로직 건드리지 않기
참고 파일: @AttendanceList.jsx
다음 액션: 각 항목 옆 삭제 버튼 추가, 클릭 시 해당 항목 제거
무엇을 남기고 무엇을 버릴지
컨텍스트 관리의 핵심은 "삭제"가 아니라 압축 기준입니다. /compact를 쓸 때든 새 대화를 시작할 때든 이 기준으로 판단하세요.
- ·현재 목표 (지금 만들려는 것)
- ·결정된 제약 (스택, 규칙, 금지 사항)
- ·관련 파일 위치와 구조
- ·이미 검증된 코드와 사실
- ·실패한 시도들의 긴 과정
- ·이미 해결된 탐색 과정
- ·반복된 설명과 재확인
- ·채택하지 않은 대안들
새 대화를 시작해야 하는 경우
/clear와 /compact로도 해결이 안 될 때가 있습니다. 아래 경우는 명령어가 아니라 완전히 새 대화가 필요합니다.
/compact 이후에도 Claude가 계속 예전 맥락을 끌고 온다면, 스레드 자체를 새로 시작하는 게 낫습니다
도구별 지침 파일
반복 규칙을 저장하는 파일명은 도구마다 다릅니다. 아래 예시처럼 프로젝트 루트에 만들어두면 AI가 자동으로 읽고 적용합니다.
Claude Code: CLAUDE.md
프로젝트 루트에 생성. 매 대화 시작마다 자동으로 읽힙니다. 매번 말하는 반복 규칙을 여기에 옮기면, 그 내용은 대화 이력에서 완전히 사라집니다. 토큰 절약의 가장 확실한 방법입니다.
Codex CLI: AGENTS.md
프로젝트 루트에 생성. Codex CLI가 자동으로 읽는 프로젝트 지침 파일입니다. 스택, 규칙, 작업 방식을 여기에 정의합니다.
# 프로젝트 규칙 스택: React + Vite + TypeScript 스타일: Tailwind CSS만 사용 (인라인 스타일 금지) 컴포넌트: src/components/ 아래에 파일별로 분리 규칙: 새 기능 추가 시 기존 파일 구조 유지 금지: 불필요한 패키지 추가 금지
CLAUDE.md가 강력한 이유: "React + Tailwind 써", "컴포넌트는 components 폴더에 넣어"처럼 매번 반복하는 규칙을 CLAUDE.md에 한 번 저장하면, 그 후엔 대화에서 꺼낼 필요가 없습니다. 대화 이력이 아니라 별도 파일로 관리되지만, CLAUDE.md 자체는 매 요청마다 입력 토큰으로 소비되므로, 내용이 길수록 기본 비용이 높아집니다. .
컨텍스트 친화적 요청 쓰는 법
요청 자체를 컨텍스트 친화적으로 쓰면 Claude가 불필요한 추측 없이 바로 작업에 들어갑니다. 아래 4가지 요소를 갖추면 됩니다.
수정 범위: @src/components/AttendanceList.jsx 파일만
건드리면 안 되는 것: localStorage 저장 로직, 전체 레이아웃
참고 파일: @src/hooks/useAttendance.js (상태 관리 위치 확인용)
@AttendanceList.jsx 각 항목 옆에 삭제 버튼 추가해줘. localStorage 로직과 레이아웃은 건드리지 말고, 버튼 클릭 시 해당 항목만 제거.
긴 로그와 에러 출력 다루는 법
실제로 토큰을 가장 많이 잡아먹는 건 에러 로그 전문, 빌드 출력, 파일 전체 코드 붙여넣기입니다. 이 세 원칙을 지키세요.
[300줄짜리 파일 전체]
"이게 왜 안 되죠?"
TypeError: Cannot read properties of undefined (reading 'map')파일:
@AttendanceList.jsx 32~48줄"삭제 버튼 추가 후 목록 렌더링 시 위 에러 발생"
컨텍스트 정리 체크리스트
막힐 때마다, 또는 새로운 작업을 시작하기 전에 이 체크리스트를 확인하세요.
- 지금 목표가 한 줄로 요약되는가
- 참조하는 파일이 꼭 필요한 것만 남아 있는가
- 오래된 요구사항이 현재 요청과 충돌하지 않는가
- 반복 규칙은 CLAUDE.md로 옮겼는가
- 작업 주제가 바뀌었다면 /clear 또는 새 대화를 시작했는가
- 응답이 이상하다면 /cost로 현재 토큰 부담을 확인했는가
변경사항 저장 & 배포
AI가 파일을 수정할 수 있는 환경에서는 Git이 필수입니다. AI가 이상하게 고쳐도 이전 상태로 되돌릴 수 있어야 합니다.
꼭 기억하세요: AI에게 파일 수정을 요청하기 전에 반드시 git add . && git commit -m "수정 전 저장"을 해두세요. 그래야 AI가 이상하게 고쳐도 되돌릴 수 있습니다.
Git 기본 흐름
# 처음 한 번만: Git 저장소 초기화 + 이름/이메일 설정 git config --global user.name "내이름" git config --global user.email "내이메일@example.com" git init git add . git commit -m "initial commit" # GitHub 저장소 연결 후 Push git remote add origin https://github.com/내계정/내저장소.git git branch -M main git push -u origin main # 이후 수정할 때마다 git add . git commit -m "기능 추가: 중복 이름 방지" git push # → Vercel이 자동으로 재배포합니다
이상하게 바뀌었을 때 되돌리기
# 어떤 파일이 바뀌었는지 확인 git status # 커밋 목록 보기 git log --oneline # 특정 커밋으로 되돌아가기 git checkout 커밋ID
Vercel 배포 (처음 한 번)
-
1vercel.com → GitHub 계정으로 로그인
-
2Add New → Project → GitHub 저장소 Import
-
3설정 기본값 그대로 → Deploy 클릭
Vite 프로젝트는 자동 인식됩니다. 1~2분 후 배포 완료.
배포 후 수정 사이클: 코드 수정 → git commit + push → Vercel 자동 재배포. 이 흐름이 반복됩니다. 배포 전에 항상 npm run build로 먼저 빌드를 테스트하세요.
빠지기 쉬운 함정들
AI를 너무 믿는 것
"그럴듯한 코드"를 "정답 코드"로 착각하기 쉽습니다. 항상 실제로 실행하고 확인하세요.
한 번에 너무 많이
10가지 기능을 한꺼번에 요청하면 꼬입니다. MVP를 먼저, 확장은 그 다음.
이유를 묻지 않는 것
AI가 고쳐줬을 때 "왜 이렇게 했는지" 안 물어보면 기초가 약해집니다. 항상 이유를 요청하세요.
Git 커밋을 안 하는 것
AI가 이상하게 고쳐도 되돌릴 수 있으려면 자주 커밋해야 합니다. 기능 하나 → 확인 → 커밋 순서로.
핵심 기억: Intermediate 바이브코딩은 "프로젝트를 AI와 함께 공동 제작하는 방식"에 가깝습니다. 생산성은 높아지지만, 방향 통제와 검토 책임은 항상 나에게 있습니다.