AI & VIBE CODING

AI 활용 · 바이브코딩 노트

AI 에이전트에게 어떻게 지시해야 의도대로 한 번에 구현할까?

컨텍스트 윈도우, MCP, RAG 등 AI 필수 개념부터 지시문 4요소 템플릿, 에러 루프 탈출법, 범위 잠금 등 실전 바이브코딩 노하우

AI 활용 · 바이브코딩 아트워크
AI-1컨텍스트 · 규칙컨텍스트 · 환각 · Rules

AI 동작 원리 — 컨텍스트 윈도우 · 환각 방어 · 영구 규칙 파일

How LLMs Work, Context Window, Hallucinations & Project Rules
한 줄 요약 · CORE RULE

AI는 머릿속 의도를 읽는 도구가 아니라, 현재 컨텍스트 윈도우(작업 책상)에 올라온 문서만 보고 다음 토큰을 추론하는 엔진이다.

대화가 길어질수록 앞에서 정한 제약을 잊거나 없는 함수명을 만들어내는 현상은 모델의 구조적 특성에서 비롯된다. 작동 원리와 작업 책상 용량 한계를 기준으로 세션을 관리하면 결과물 품질이 일정하게 유지된다.

01 · 핵심 원리 정리

1

LLM 추론 특성과 3가지 태생적 한계

거대언어모델(LLM)은 주어진 문맥 뒤에 이어질 확률이 가장 높은 토큰 조각을 순차적으로 생성한다. 아래 세 가지 특성을 전제로 작업을 설계한다.

  • 지식 기준 시점(Knowledge Cutoff): 모델 구축 이후 바뀐 최신 라이브러리 문법은 모를 수 있으므로 패키지 버전이나 공식 문서 근거를 직접 건네준다.
  • 비결정성(Non-determinism): 같은 요청도 매번 조금씩 다르게 작성하므로 반드시 지켜야 할 기준은 수치와 규칙 파일로 고정한다.
  • 그럴듯함 편향(환각): 확실하지 않은 내용도 그럴듯하게 이어 쓰려는 성향이 있으므로 실제 파일 열람과 빌드 확인을 필수로 묶는다.
2

컨텍스트 윈도우(Context Window) = 유한한 작업 책상

한 번의 응답을 생성할 때 동시에 참조할 수 있는 최대 토큰 용량이다. 내가 친 질문뿐 아니라 시스템 프롬프트, 규칙 파일, 읽어들인 코드, 이전 대화와 에러 로그가 모두 이 공간을 차지한다.

컨텍스트 사용량 = 시스템 지시 + 규칙 파일 + 읽은 파일 본문 + 누적 대화 + 명령 실행 로그
  • 책상이 80% 이상 차면 초기에 적어 둔 제약 조건이 희미해지는 중간 망각(Lost in the Middle) 현상이 나타난다.
  • 독립된 기능 하나가 마무리되면 대화를 압축(`/compact`)하거나 **새 세션(New Chat)**을 열어 깨끗한 상태에서 다음 작업을 이어간다.
3

영구 프로젝트 규칙 파일 (CLAUDE.md · AGENTS.md · .cursor/rules)

매번 반복하는 기본 원칙을 프로젝트 루트 규칙 파일에 적어 두면 새 대화를 열 때마다 자동으로 먼저 반영된다.

  • 포함할 내용(50~120줄 압축): 기술 스택·버전, 타입체크·빌드 명령어, 폴더 구조, 디자인 토큰 경로, 절대 금지 규칙(`.env` 수정 금지, 무분별한 패키지 추가 금지 등).
  • 제외할 내용: 일회성 작업 메모나 수천 줄짜리 장황한 문서(매 턴 컨텍스트만 낭비하고 핵심 규칙이 묻힌다).

02 · 기준 수치 · 비교표

AI 환각(Hallucination) 주요 유형과 방어 기준표
환각 유형증상발생 원인방어 기준
없는 패키지·API 호출존재하지 않는 npm 패키지나 구버전 함수를 import 해 에러 발생유사 라이브러리 패턴을 확률적으로 합성`package.json` 선행 확인 강제 및 신규 패키지 추가 전 승인 요청
안 읽은 경로·변수 추측프로젝트에 없는 파일 경로나 임의의 CSS 변수명 사용실제 파일을 열지 않고 일반적 관례로 추측수정 전 관련 파일을 먼저 `read` 도구로 열람하도록 지정
요구 범위 임의 확장버튼 색만 바꾸랬는데 주변 레이아웃과 문구까지 변경빈틈 있는 지시를 자의적으로 보완지시문 끝에 '지정 파일 및 범위 외 수정 절대 금지' 명시
미확인 완료 보고타입 에러나 화면 깨짐이 남았는데 완료했다고 응답빌드·렌더링 확인 없이 코드 편집만으로 종료`tsc --noEmit` 통과 여부와 실제 확인 결과를 함께 보고하도록 지정
작업 상황별 컨텍스트(세션) 관리 기준표
현재 상황권장 방식이유
방금 만든 컴포넌트의 수치·색상만 미세 조정할 때현재 세션 그대로 유지직전에 읽은 파일 맥락이 살아 있어 바로 수정 가능
헤더 작업을 끝내고 전혀 다른 페이지 작업으로 넘어갈 때새 세션(New Chat) 시작이전 작업 코드가 새 작업 추론에 섞이는 혼선 차단
큰 작업 중 대화가 20턴 이상 길어지고 로그가 쌓였을 때`/compact` 요약 또는 진행 상황을 문서에 적고 새 세션 전환결정사항만 남기고 시행착오 로그를 비워 추론 품질 회복

03 · 자주 꼬이는 패턴 vs 권장 기준

피할 패턴한 채팅창에서 기획, 스타일 수정, 디버깅을 100턴 넘게 계속 이어감

초반의 실패 코드와 에러 로그가 누적되어 뒤로 갈수록 정확도가 급격히 떨어진다.

권장 기준

기능 1개 완료 = Git 커밋 1회 = 새 대화창 시작 패턴으로 작업 단위를 끊는다.

피할 패턴규칙 파일에 온갖 일반적인 설명을 다 넣어 1,000줄 이상으로 만듦

분량이 너무 길면 정작 프로젝트에서 꼭 지켜야 할 핵심 제약 몇 줄이 희석된다.

권장 기준

폴더 구조, 실행 명령어, 금지 사항 위주로 한눈에 들어오게 압축해 유지한다.

04 · AI-1 점검 체크리스트 (브라우저 저장)

AI-2명세 · 프롬프트4요소 명세 · Plan Mode

정확한 지시 구조 — 명세 4요소 · 계획 우선 · 수치 피드백

4-Element Specification, Plan-First Workflow & Precision Feedback
한 줄 요약 · CORE RULE

좋은 프롬프트는 특별한 주문이 아니라 목표 · 참고 파일 · 금지 범위 · 완료 기준 네 가지를 빠짐없이 적는 명세다.

'알아서 깔끔하게 만들어줘'처럼 빈칸이 많은 지시는 레이아웃, 색상, 예외 상태, 수정 파일 범위를 전부 추측에 맡기게 되어 재작업 횟수를 늘린다. 처음에 4가지 기준선만 잡아 주면 한 번에 의도한 결과에 수렴한다.

01 · 핵심 원리 정리

1

지시문 4요소 공식 (Goal · Context · Constraints · Done)

새 기능을 추가하거나 화면을 개편할 때 아래 네 항목을 채워 전달하면 불필요한 재수정이 크게 줄어든다.

① 목표(무엇을·왜) + ② 맥락(참고할 기준 파일·토큰) + ③ 제약(수치·금지 범위) + ④ 완료 조건(확인 기준)
  • 목표(Goal): 만들 기능과 목적을 한 문장으로 정의.
  • 맥락(Context): 기존 스타일과 패턴이 담긴 파일 경로(예: `src/app/globals.css`)를 지정해 먼저 읽게 함.
  • 제약(Constraints): 8pt 여백 수치, 반응형 폭, 지정 파일 외 수정 금지, 외부 패키지 추가 금지 등 경계선 명시.
  • 완료 조건(Done): 5대 상태 포함 여부, 모바일 375px 정상 표시, `tsc --noEmit` 무오류 통과 등 기준 제시.
2

다중 파일 작업 순서: 계획 먼저 → 확인 → 구현 (Plan Mode)

파일 여러 개가 얽힌 작업을 곧바로 코드부터 고치게 하면 방향이 어긋났을 때 되돌리기 번거롭다. 코드 수정 전에 계획부터 짧게 확인하는 2단계가 가장 빠르다.

  • 1단계(계획 요청): `'아직 코드는 수정하지 말고, 관련 파일을 읽은 뒤 수정 대상 파일 목록과 구현 방향부터 정리해 줘.'`
  • 2단계(조정 후 실행): 계획에서 어긋난 부분(예: 새 라우트 대신 탭으로 분리)을 바로잡은 뒤 실제 수정을 진행.
  • 역질문 유도 문구: `'모호하거나 결정이 필요한 지점이 있으면 추측해서 구현하지 말고 먼저 질문해 줘.'`
3

수정 피드백 요령: 유지할 부분 잠그기 + 관찰 수치로 지시

'뭔가 답답해 보인다'처럼 인상만 말하면 이미 마음에 들던 색상과 서체 크기까지 한꺼번에 바뀌어 버린다.

  • 유지 대상 선언: `'현재 카드 컬러와 타이포 크기는 그대로 유지하고,'`처럼 보존할 영역을 먼저 잠근다.
  • 수치 중심 변경: `'카드 내부 패딩만 16px → 24px로 넓히고 카드 간 gap을 12px → 20px으로 조정해 줘.'`

02 · 기준 수치 · 비교표

지시문 4요소 누락 시 자주 발생하는 문제와 보완 문구
누락 요소불완전한 지시 예발생하는 문제보완 문구 예시
맥락(기준 파일) 누락'북마크 섹션 하나 추가해 줘'기존 CSS 토큰을 무시하고 이질적인 색상·폰트로 새 박스를 생성'`globals.css`의 `--bg-card`, `--border` 토큰과 기존 `.lab-card` 규칙을 그대로 재사용해 줘'
제약(금지선) 누락'상단 탭 바 다듬어 줘'탭 바 외에 헤더 로고나 푸터 여백까지 임의로 함께 변경'`ThemePageClient.tsx`의 탭 영역과 관련 CSS만 수정하고 다른 섹션은 건드리지 마'
수치 기준 누락'모바일 반응형 처리해 줘'모바일에서도 3열을 억지로 유지해 글자가 세로로 찌그러짐'`768px` 이하에서는 1열 스택으로 전환하고 터치 버튼 높이는 `44px` 이상 확보해 줘'
완료 조건 누락'검색 필터 넣어 줘'정상 검색만 되고 결과 0건일 때 화면이 비어 버림'결과 0건일 때 초기화 버튼이 있는 Empty State와 `Esc` 초기화까지 포함해 줘'

03 · 자주 꼬이는 패턴 vs 권장 기준

피할 패턴한 번의 요청에 '로그인 + 결제 + 대시보드 + 설정 페이지 전부 만들어줘'라고 묶어서 전달함

범위가 넓어질수록 개별 화면의 예외 처리와 디테일이 얕아진다.

권장 기준

① 데이터 구조 → ② 기본 화면 → ③ 상호작용·예외 처리 순으로 단위를 쪼개 하나씩 확정한다.

피할 패턴긴 텍스트 데이터 수십 개와 UI 렌더링 코드를 한 파일 안에 섞어서 작성함

문구 한 줄만 고칠 때도 긴 컴포넌트 파일을 통째로 건드려야 해서 수정이 느리고 위험해진다.

권장 기준

데이터는 `src/data/*.ts`로 분리하고 컴포넌트는 렌더링만 담당하게 구조를 나눈다.

04 · AI-2 점검 체크리스트 (브라우저 저장)

AI-3에이전트 · MCP · 검증에이전트 · MCP · 5단계 검증

에이전트 루프 · 도구 연결(MCP) · 근거 고정(RAG) · 자가 검증

Agentic Loop, MCP Tools, Grounding with RAG & Self-Verification
한 줄 요약 · CORE RULE

단순 질의응답 챗봇과 달리 에이전트는 파일 조사 → 수정 → 빌드·브라우저 확인 → 재수정 루프를 직접 수행한다.

파일 탐색, 터미널 타입체크, 브라우저 렌더링 확인이 가능한 에이전트 환경에서는 근거 문서 지정과 검증 조건만 정확히 걸어 두어도 반복 검수 시간을 크게 아낄 수 있다.

01 · 핵심 원리 정리

1

챗봇 vs 에이전트(Agent)의 5단계 실행 루프

챗봇이 텍스트 답변 한 번으로 끝난다면, 에이전트는 목표 기준을 충족할 때까지 도구를 호출하며 피드백 루프를 돈다.

1. 목표 수신 → 2. 코드베이스 조사·계획 → 3. 파일 편집·명령 실행 → 4. 결과·에러 관찰 → 5. 교정 후 보고
  • 파일 열람·검색·타입체크처럼 안전한 조회 작업은 자율 실행에 맡기고, 파일 삭제·패키지 설치·외부 배포처럼 되돌리기 어려운 작업은 사전 승인을 거치게 둔다.
2

MCP(Model Context Protocol)와 근거 고정(RAG) 핵심 개념

**MCP**가 외부 도구와 연결하는 표준 포트라면, **RAG**는 추측 대신 참고할 실제 근거 문서를 먼저 쥐여주는 방식이다.

  • MCP: 브라우저 제어(Playwright), 디자인 시안(Figma), 저장소(GitHub), 데이터베이스 등을 표준 규격으로 연결해 실제 상태를 읽고 검증하게 해준다.
  • 실무형 수동 RAG(근거 파일 고정): 작업 지시 시 `@globals.css`, `@src/data/labData.ts`처럼 기준이 되는 실제 파일을 먼저 읽히고 그 구조와 토큰만 따르도록 못 박는다.
3

미확인 완료 보고를 막는 자가 검증(Self-Verification) 5단계

'잘 되는지 확인해 줘'라고만 적으면 코드만 눈으로 훑고 끝내기 쉽다. 구체적인 검증 명령과 확인 항목을 명시한다.

  • 1단계 · 타입·문법 검사: `npx tsc --noEmit` 또는 빌드가 에러 0건(Exit 0)으로 통과하는지 확인.
  • 2단계 · 로직·데이터 무결성 확인: 연결된 ID나 필터 조건이 누락 없이 매칭되는지 확인.
  • 3단계 · 실제 라우트 응답 확인: 로컬 서버에서 대상 경로 `200 OK` 및 핵심 텍스트 렌더링 확인.
  • 4단계 · 반응형 폭 확인: 데스크톱(1280px)과 모바일(375px) 양쪽에서 레이아웃 깨짐 확인.
  • 5단계 · 콘솔 에러 확인 및 직접 확인하지 못한 항목은 `'미확인'`으로 구분 표기.

02 · 기준 수치 · 비교표

AI 코딩 도구 유형별 특징과 용도 비교표
도구 유형대표 도구적합한 용도한계점
웹 채팅형ChatGPT, Claude 웹, Gemini아이디어 정리, 개념 비교, 문안 다듬기로컬 프로젝트 파일 전체 열람 및 빌드 실행 불가
화면 프로토타이핑형v0, Bolt, Lovable단일 화면·초기 UI 시안을 즉시 생성해 미리보기기존 프로젝트 구조와 정밀하게 병합할 때 제어 한계
IDE 통합 에디터형Cursor, Windsurf, VS Code 확장변경점(Diff)을 줄 단위로 대조하며 세밀하게 편집다수 파일 동시 변경 시 범위 검토 필요
자율 에이전트·CLI형Claude Code, Antigravity, Codex CLI전체 코드 탐색, 터미널 검증, 다단계 작업 자율 수행범위 잠금(Scope Lock)과 Git 커밋 관리가 필수

03 · 자주 꼬이는 패턴 vs 권장 기준

피할 패턴최신 외부 API를 붙일 때 공식 문서 예시 없이 기억에만 의존해 코드를 짜게 함

구버전 엔드포인트나 바뀐 옵션명을 사용해 불필요한 인증·호출 오류가 반복된다.

권장 기준

공식 문서의 요청·응답 예시를 함께 전달하거나 프로젝트 내 기준 파일을 먼저 읽힌다.

피할 패턴삭제 명령이나 원격 반영 명령까지 확인 없이 자동 실행되게 둠

경로 착오 한 번으로 작업 파일이나 설정이 유실될 수 있다.

권장 기준

파괴적 명령(`rm`, `reset --hard`, 외부 배포, DB 변경)은 직접 확인 후 실행한다.

04 · AI-3 점검 체크리스트 (브라우저 저장)

AI-4디버깅 · 안전장치3회 정지 · Scope Lock · Git

디버깅 · 범위 잠금(Scope Lock) · Git 세이브포인트 · 보안 기준

Error Loop Escape, Scope Lock, Git Checkpoints & Security Rules
한 줄 요약 · CORE RULE

같은 에러가 3번 반복되면 즉시 수정을 멈추고 원인부터 좁히며, 정상 동작 코드는 Git 커밋과 범위 잠금으로 보호한다.

작은 버그 하나를 잡으려다 에러 핑퐁이 길어지면 원래 잘 돌던 옆 화면까지 망가지기 쉽다. 정확한 에러 단서 전달법, 3회 루프 정지 규칙, Git 복구 지점, 기본 보안 수칙이 가장 확실한 안전장치다.

01 · 핵심 원리 정리

1

에러 단서 전달 공식과 '3회 실패 시 즉시 정지' 규칙

'안 돼, 다시 고쳐줘'만 반복하면 임시방편 코드 위에 또 임시방편이 겹쳐 구조가 꼬인다. 개발자 도구(F12 → Console / Network)의 원문 단서를 전달하고, **같은 에러가 3번 연속 안 풀리면 코드 수정부터 멈춘다.**

버그 단서 3요소 = ① 재현 동작 + ② 기대 결과 vs 실제 증상 + ③ 콘솔 에러 원문(파일:줄번호) 또는 HTTP 상태 코드
  • 3회 루프 탈출 순서: ① 코드 수정 즉시 중지 → ② 지금까지 실패한 시도와 원인 가설 3가지 정리 → ③ 가장 유력한 지점 1곳에 로그만 찍어 원인 확정 → ④ 꼬인 코드는 마지막 정상 Git 커밋으로 되돌린 뒤 깔끔하게 재적용.
2

연쇄 깨짐을 막는 수정 범위 잠금 (Scope Lock)

오른쪽 여백을 고쳤더니 왼쪽 메뉴가 틀어지는 현상은 수정 허용 범위가 열려 있을 때 생긴다. 허용 파일과 금지 파일을 명시해 변경 반경을 가둔다.

  • 허용 파일 지정(Whitelist): `'이번 수정은 오직 `src/components/Header.tsx` 파일 안에서만 진행해.'`
  • 금지 파일 잠금(Blacklist): `'공통 레이아웃(`layout.tsx`), 라우팅 구조, `package.json`은 절대 수정하지 마.'`
  • 최소 변경(Minimal Diff): 파일 전체 재작성 대신 필요한 줄만 정밀하게 고치도록 제한한다.
3

Git 세이브포인트 습관과 필수 보안 3원칙

혼자 작업할 때도 Git은 언제든 1초 만에 돌아갈 수 있는 가장 확실한 세이브 슬롯이다. 배포 전에는 비밀키 노출 여부도 함께 점검한다.

  • 세이브 습관: 기능 하나가 정상 작동할 때마다 `git add . && git commit -m '메시지'`로 저장 지점을 남긴다.
  • 보안 1 · 비밀키 분리: API 키·DB 비밀번호는 프론트엔드 코드나 `NEXT_PUBLIC_` 변수에 넣지 않고 서버 전용 `.env`에만 두며 `.gitignore`로 커밋을 막는다.
  • 보안 2 · 서버 검증 필수: 화면에서 버튼을 숨긴 것만으로 권한이 막히지 않으므로 서버에서 권한·입력값을 다시 검증한다.
  • 보안 3 · XSS 차단: 외부 입력값을 여과 없이 `dangerouslySetInnerHTML`이나 `innerHTML`에 넣지 않는다.

02 · 기준 수치 · 비교표

네트워크 탭(F12 → Network) 주요 HTTP 상태 코드 판독표
상태 코드의미원인 위치전달할 핵심 단서
200 / 201정상 응답통신 성공 → 화면 미갱신 시 프론트엔드 상태·렌더링 문제'응답은 200이고 데이터도 오는데 화면 상태가 갱신되지 않음'
400 Bad Request요청 형식 오류프론트엔드가 보낸 필수 값 누락 또는 타입 불일치Network 탭의 Request Payload와 서버 에러 응답 본문
401 / 403인증 필요 / 권한 없음로그인 세션 만료(401) 또는 접근 권한 부족(403)요청 헤더의 토큰·쿠키 포함 여부 확인
404 Not Found경로 없음API URL 오타 또는 존재하지 않는 라우트 호출호출한 요청 URL과 실제 라우트 파일 경로 대조
429 Too Many Requests호출 한도 초과외부 API 분당 제한 초과 또는 무한 `useEffect` 재호출컴포넌트 무한 재렌더링·반복 호출 여부 점검
500 Internal Error서버 내부 오류백엔드 예외 발생, DB 연결 실패, `.env` 누락서버 터미널 콘솔에 찍힌 스택 트레이스 원문
작업 복구용 Git 핵심 명령어 5선
용도명령어설명
변경된 파일 목록 확인git status수정된 파일·새로 생성된 파일 한눈에 확인
정확한 코드 변경 줄 비교git diff의도하지 않은 삭제·변경이 섞였는지 대조
정상 작동 상태 저장git add . && git commit -m "메시지"언제든 되돌아올 수 있는 복구 지점 생성
방금 꼬인 미저장 수정 취소git restore .마지막 커밋 이후 망가진 수정사항 일괄 되돌리기
별도 가지에서 안전하게 실험git switch -c feat/test원본(main)은 보존한 채 큰 구조 변경 실험

03 · 자주 꼬이는 패턴 vs 권장 기준

피할 패턴에러 내용은 없이 '아까 한 거 에러 나는데 다시 해봐'만 반복 입력함

원인 단서 없이 추측 수정이 누적되어 멀쩡하던 코드까지 함께 깨진다.

권장 기준

콘솔 에러 첫 줄과 파일·줄번호를 복사해 전달하고, 3회 실패 시 원인 진단부터 요청한다.

피할 패턴테스트용으로 코드 안에 API 키(`sk-...`)를 직접 적고 저장소에 커밋함

키가 이력에 남으면 유출 시 과금 사고나 데이터 탈취로 직결된다.

권장 기준

민감 키는 처음부터 `.env.local`에만 분리하고 첫 커밋 전 `.gitignore`를 확인한다.

04 · AI-4 점검 체크리스트 (브라우저 저장)

AI 활용 · 바이브코딩 활용 예제 & 프롬프트 사전

바로 복사해 쓸 수 있는 지시문 카드와 조합 도구는 활용 예제 탭에 모아 두었습니다.