무엇이 다른가요?
둘의 차이는 "더 긴 프롬프트"나 "더 어려운 언어"가 아닙니다. 목표 자체가 다릅니다.
Intermediate — 기능 완성
앱이 동작하게 만드는 것. AI와 함께 기능을 구현하고, 버그를 고치고, 배포하는 것이 목표입니다.
Advanced — 시스템 품질
앱이 올바르게, 안전하게, 확장 가능하게 동작하게 만드는 것. 성능, 보안, 아키텍처, 자동화 테스트가 목표입니다.
핵심 전환: Intermediate에서는 "AI야, 이 기능 만들어줘"가 핵심이었다면, Advanced에서는 "AI야, 이 시스템을 더 좋게 만들어줘"가 핵심입니다. AI를 단순 구현 도구가 아니라 AI 오케스트레이터로 활용합니다.
CLAUDE.md — AI의 장기 기억
Claude Code는 세션이 바뀌면 이전 대화를 기억하지 못합니다. CLAUDE.md는 이 문제를 해결하는 파일입니다. 프로젝트 루트에 두면 Claude가 매 세션마다 자동으로 읽어 컨텍스트를 복원합니다.
단순한 README가 아닙니다. Claude에게 "이 프로젝트에서 어떻게 일해야 하는지"를 알려주는 작업 지침서입니다.
프로젝트 규칙
코딩 컨벤션, 금지사항, 폴더 구조 설명을 적어두면 매번 설명할 필요가 없습니다.
컨텍스트 유지
현재 진행 중인 작업, 결정 이유, 주의해야 할 엣지케이스를 기록합니다.
팀 공유
Git에 커밋하면 팀원 모두가 같은 Claude 설정으로 작업할 수 있습니다.
반복 제거
"TypeScript 써줘", "한국어로 답해줘" 같은 매번 하는 지시를 자동화합니다.
CLAUDE.md 기본 구조
# 프로젝트 개요 출석 관리 웹앱. React + TypeScript + Vite. Supabase를 DB로 사용. Vercel에 배포. # 코딩 규칙 - 모든 컴포넌트는 TypeScript 타입을 명시할 것 - CSS는 Tailwind만 사용 (styled-components 금지) - 함수명은 camelCase, 컴포넌트명은 PascalCase - 커밋 메시지는 한국어로 작성 # 폴더 구조 src/components/ — 재사용 가능한 UI 컴포넌트 src/pages/ — 라우트별 페이지 src/hooks/ — 커스텀 훅 src/lib/ — Supabase 클라이언트, 유틸 # 현재 작업 중 출석 통계 페이지 구현 중. /stats 라우트. 아직 모바일 레이아웃 미완성. # 주의사항 - Supabase API 키는 .env.local에만 있음. 절대 커밋 금지. - StudentList 컴포넌트는 리팩토링 예정이므로 건드리지 말 것
CLAUDE.md 작성 팁
- 처음에는 짧게 시작하세요. 나중에 Claude에게 "이 내용 CLAUDE.md에 추가해줘"라고 하면 됩니다.
- "하지 말 것" 목록이 "해야 할 것"보다 더 중요합니다. 실수 패턴을 기록하세요.
- 기술 스택뿐만 아니라 비즈니스 맥락도 적으세요. "이 앱은 학원 원장님이 쓴다"는 정보가 UI 결정을 바꿉니다.
- 세션마다
claude "CLAUDE.md 읽고 현재 상태 파악해줘"로 시작하면 바로 이어서 작업할 수 있습니다.
팁: Claude에게 "지금까지 우리가 결정한 것들을 CLAUDE.md 형식으로 정리해줘"라고 하면 자동으로 초안을 만들어줍니다. 세션 끝에 이 습관을 들이면 컨텍스트 손실이 크게 줄어듭니다.
Plugin — Claude Code에 도구 붙이기
Claude Code의 플러그인은 Claude가 사용할 수 있는 도구(Tool)를 추가하는 방법입니다. 기본 Claude Code는 파일 읽기·쓰기, 터미널 실행이 가능합니다. 플러그인을 통해 여기에 새로운 능력을 붙일 수 있습니다.
플러그인 설정 방법
Claude Code 플러그인은 .claude/settings.json 또는 CLAUDE.md의 tools 섹션으로 관리합니다. 가장 간단한 방법은 Claude에게 직접 설정을 요청하는 것입니다.
Claude Code에게:
이 프로젝트에서 package.json의 스크립트를 자동으로 실행하는 도구를 추가해줘.
npm run dev, npm run build, npm run test를 별도 명령 없이 바로 실행할 수 있게.
설정 방법이랑 실제 설정 파일도 만들어줘.
플러그인 활용 흐름
주의: 플러그인에 터미널 명령 실행 권한을 주면 편리하지만, 어떤 명령이 실행될지 항상 확인하세요. 실수로 파일 삭제나 API 호출이 일어날 수 있습니다. 처음엔 --dangerously-skip-permissions 없이 시작하세요.
Skill — 반복 작업을 슬래시 명령으로
스킬(Skill)은 자주 쓰는 복잡한 프롬프트나 작업 흐름을 슬래시 명령으로 만들어두는 기능입니다. /commit, /review, /deploy처럼 자신만의 명령어를 정의할 수 있습니다.
스킬이 해결하는 문제
같은 작업을 할 때마다 긴 프롬프트를 타이핑하고 있다면 스킬이 필요합니다.
스킬 파일 만들기
스킬은 .claude/skills/ 폴더 안에 마크다운 파일로 만듭니다. 파일명이 곧 슬래시 명령어가 됩니다.
--- description: 변경사항을 분석하고 커밋 메시지를 작성한 뒤 커밋합니다 --- ## 작업 순서 1. `git diff --staged`로 스테이징된 변경사항을 확인하세요 2. 변경의 목적을 파악하세요 (기능 추가 / 버그 수정 / 리팩토링 / 문서) 3. 한국어로 커밋 메시지를 작성하세요: `유형: 간결한 설명` 4. `git commit -m "메시지"`를 실행하세요 5. 커밋 성공 여부를 확인하세요 ## 커밋 유형 - feat: 새로운 기능 - fix: 버그 수정 - refactor: 리팩토링 - docs: 문서 수정 - style: 스타일만 변경
스킬 호출 방법
# Claude Code 세션 안에서 슬래시로 호출 > /commit # 인자 전달도 가능 > /review --focus security # 스킬 목록 확인 > /help
추천 시작 스킬 3가지: /commit (커밋 자동화) → /review (PR 전 셀프 리뷰) → /deploy (빌드 + Vercel 배포). 이 세 가지만 있어도 반복 작업의 70%가 줄어듭니다.
MCP — Claude를 외부 세계와 연결
MCP(Model Context Protocol)는 Claude가 외부 서비스와 실시간으로 통신하게 해주는 표준 프로토콜입니다. 파일 시스템, 데이터베이스, GitHub, Figma, Slack 같은 도구를 Claude Code에 직접 붙일 수 있습니다.
일반 플러그인이 Claude의 동작을 확장한다면, MCP는 외부 시스템과의 양방향 통신 채널을 만들어줍니다.
GitHub MCP
이슈 읽기, PR 생성, 코드 리뷰 댓글 달기를 Claude가 직접 수행합니다.
Database MCP
Supabase·PostgreSQL에 Claude가 직접 쿼리해 데이터를 읽고 스키마를 파악합니다.
Figma MCP
디자인 파일을 읽어 컴포넌트 스펙을 파악하고 코드를 자동 생성합니다.
Search MCP
웹 검색, 문서 검색 결과를 컨텍스트로 넣어 최신 정보 기반 작업을 합니다.
MCP 서버 설정 방법
MCP 서버는 claude mcp add 명령으로 등록합니다. 이후 Claude Code가 자동으로 인식합니다.
# GitHub MCP 서버 추가 claude mcp add github \ --env GITHUB_TOKEN=ghp_your_token_here # Supabase MCP 서버 추가 claude mcp add @supabase/mcp-server-supabase \ --env SUPABASE_URL=https://xxx.supabase.co \ --env SUPABASE_KEY=your_anon_key # 등록된 MCP 목록 확인 claude mcp list
MCP를 활용한 실제 작업 흐름
GitHub MCP로 이번 주 머지된 PR 목록을 가져와줘.
각 PR의 변경 파일 수와 주요 내용을 요약하고,
다음 스프린트에 영향을 줄 수 있는 항목을 따로 표시해줘.
MCP vs 플러그인: 플러그인은 Claude의 행동(어떻게 작업하는가)을 바꾸고, MCP는 Claude의 접근 범위(무엇에 접근할 수 있는가)를 넓힙니다. 두 가지를 함께 쓰면 가장 강력합니다.
Sub-agent — 작업을 나눠서 동시에
서브에이전트는 메인 Claude가 별도의 Claude 인스턴스를 생성해 특정 작업을 위임하는 기능입니다. 큰 작업을 잘게 나눠 여러 에이전트가 동시에 처리하면 속도와 품질이 모두 올라갑니다.
서브에이전트가 필요한 상황
대규모 리팩토링
파일 A는 에이전트 1이, 파일 B는 에이전트 2가 동시에 리팩토링합니다.
조사 + 구현 분리
한 에이전트가 레퍼런스를 조사하는 동안 다른 에이전트가 코드를 작성합니다.
테스트 자동화
기능 구현 에이전트와 테스트 작성 에이전트가 병렬로 작동합니다.
컨텍스트 보호
메인 컨텍스트를 오염시키지 않고 독립된 서브태스크를 처리합니다.
서브에이전트 실행 흐름
서브에이전트 활용 프롬프트
이 프로젝트의 모든 컴포넌트를 리팩토링해야 해.
병렬 서브에이전트를 사용해서 각 컴포넌트를 동시에 처리해줘.
기준: TypeScript 타입 명시, 불필요한 상태 제거, 재사용 가능한 훅 분리.
각 에이전트가 완료되면 결과를 요약해서 알려줘.
# 메인 에이전트가 서브에이전트를 생성 Agent({ description: "StudentList 컴포넌트 리팩토링", prompt: "src/components/StudentList.tsx를 TypeScript 타입 완성 및 훅 분리" }) Agent({ description: "AttendanceTable 컴포넌트 리팩토링", prompt: "src/components/AttendanceTable.tsx를 TypeScript 타입 완성 및 훅 분리" }) # 두 에이전트가 동시에 실행됨
주의: 서브에이전트는 각각 독립된 컨텍스트로 시작합니다. 메인 에이전트와의 대화 히스토리를 모릅니다. 프롬프트에 필요한 모든 정보를 명시적으로 전달하세요. "앞에서 말한 것처럼"은 통하지 않습니다.
Agent Team — 에이전트가 팀을 이루다
에이전트팀은 여러 전문화된 에이전트가 역할 분담을 하며 협력하는 구조입니다. 단순 병렬(서브에이전트)과 달리, 에이전트팀은 각 에이전트가 서로의 결과를 받아 연속적으로 작업합니다. 복잡한 소프트웨어 개발 파이프라인을 자동화하는 가장 강력한 방법입니다.
역할 분담 예시 — 기능 개발 파이프라인
에이전트팀 운영 방식
역할 명확화
각 에이전트의 책임 범위를 겹치지 않게 설계하세요. 역할이 모호하면 중복 작업이 발생합니다.
인터페이스 정의
에이전트 간 전달되는 정보의 형식을 표준화하세요. JSON 스키마나 마크다운 템플릿을 사용합니다.
실패 처리
한 에이전트가 실패했을 때의 처리 방법을 미리 정의하세요. 재시도·대체·종료 중 선택합니다.
에이전트팀 실전 프롬프트
새 기능: 출석 통계 대시보드를 구현해야 해.
다음 에이전트팀을 구성해서 작업해줘:
1. 설계 에이전트 — 컴포넌트 구조와 데이터 흐름 설계
2. 구현 에이전트 — 설계 기반으로 실제 코드 작성
3. 테스트 에이전트 — 구현 완료 후 테스트 코드 작성
각 에이전트는 이전 에이전트의 결과를 전달받아 시작하고,
완료 후 다음 에이전트에게 결과를 전달해줘.
어디까지 자동화할 수 있나
- 이슈 생성 → 코드 구현 → 테스트 작성 → PR 생성까지 원클릭 자동화
- 버그 리포트 수신 → 원인 분석 → 수정 코드 작성 → 검증까지 무인 처리
- 정기 코드 품질 점검 → 개선 PR 자동 생성 (크론 스케줄로 실행)
- 여러 서비스에 동시 배포 (스테이징 → QA → 프로덕션 순차 배포)
현실적인 조언: 에이전트팀은 강력하지만 설계 난이도도 높습니다. 처음부터 복잡하게 시작하지 마세요. CLAUDE.md → 스킬 → 서브에이전트 순서로 익히고, 에이전트팀은 그 다음에 도전하세요. 복잡한 자동화는 단순한 도구들이 잘 동작할 때 비로소 빛납니다.
AI로 단위 테스트 작성하기
Advanced의 핵심은 "앱이 동작한다"에서 "앱이 올바르게 동작한다"로 이동하는 것입니다. AI는 테스트 코드 작성을 매우 잘 합니다. 기능을 만든 직후 테스트를 바로 요청하는 습관을 들이세요.
왜 테스트인가?
기능을 추가할 때마다 기존 기능이 깨지지 않았는지 자동으로 검증합니다. AI가 수정한 코드가 실제로 올바른지 확인하는 가장 확실한 방법입니다.
AI가 잘하는 테스트
함수 단위 테스트, 엣지케이스 생성, 경계값 테스트. "이 함수의 모든 엣지케이스 테스트 작성해줘"가 가장 효과적인 요청입니다.
테스트 작성 요청 흐름
아래 함수의 단위 테스트를 Vitest로 작성해줘.
포함해야 할 것:
1. 정상 동작 케이스 (happy path)
2. 빈 값·null 입력 처리
3. 경계값 (예: 빈 배열, 최댓값)
4. 예외가 발생해야 하는 케이스
함수 코드: [코드 붙여넣기]
팁: /test-gen 스킬을 만들어두면 테스트 생성이 슬래시 한 번으로 끝납니다. 스킬 섹션(03)에서 배운 내용을 테스트 자동화에 적용해보세요.
AI와 함께 아키텍처 개선하기
코드가 동작하는 것과 코드가 좋은 것은 다릅니다. AI는 코드 리팩토링과 아키텍처 개선에 탁월합니다. "동작하는 코드"를 "유지보수 가능한 코드"로 만드는 방법을 배워봅니다.
단일 책임 원칙 (SRP)
하나의 함수·컴포넌트는 하나의 역할만. AI에게 "이 컴포넌트가 너무 많은 일을 하고 있어, 분리해줘"라고 요청하세요.
컴포넌트 분리 (MVC)
데이터(Model), 화면(View), 로직(Controller)을 분리합니다. AI에게 "이 파일을 MVC 패턴으로 리팩토링해줘"라고 요청하세요.
보안 리뷰
AI에게 "이 코드의 보안 취약점을 찾아줘"를 주기적으로 요청하세요. XSS, SQL 인젝션, 환경변수 노출 등을 자동으로 점검합니다.
성능 최적화
"이 컴포넌트에서 불필요한 리렌더링이 있는지 확인해줘"처럼 성능 분석을 AI에게 요청할 수 있습니다.
아래 코드를 SOLID 원칙 관점에서 리뷰해줘.
특히 확인해줘:
1. 단일 책임 원칙 위반 여부 (너무 많은 역할을 하는 함수)
2. 재사용 가능한 컴포넌트로 분리할 수 있는 부분
3. 보안 취약점 (환경변수, API 키 노출, XSS 위험)
리뷰 후 개선된 버전의 코드도 작성해줘.
코드: [코드 붙여넣기]
주의: 아키텍처 리팩토링은 기능을 바꾸지 않으면서 구조를 개선하는 작업입니다. 리팩토링 전후에 반드시 테스트를 실행해서 기능이 그대로인지 확인하세요. Git 커밋도 잊지 마세요.
Claude Code 마스터 로드맵
6가지 기능을 순서대로 익히면 개발 방식이 단계적으로 달라집니다.
컨텍스트 설계
CLAUDE.md로 AI가 프로젝트를 기억하게 만들어 반복 설명을 제거합니다.
도구 확장
플러그인으로 Claude의 능력을 프로젝트 특화 도구로 확장합니다.
작업 자동화
스킬로 반복 프롬프트를 슬래시 명령어로 만들어 워크플로우를 단축합니다.
외부 연결
MCP로 GitHub, DB, Figma 같은 외부 시스템과 Claude를 직접 연결합니다.
병렬 처리
서브에이전트로 큰 작업을 분할해 동시에 처리하고 속도를 높입니다.
팀 구성
에이전트팀으로 전체 개발 파이프라인을 자동화해 결과물의 품질을 높입니다.
마지막으로: 이 모든 기능은 결국 "Claude와 더 잘 협력하는 방법"입니다. 도구를 쓰는 것이 목적이 아니라, 더 좋은 소프트웨어를 더 빠르게 만드는 것이 목적입니다. 지금 당장 CLAUDE.md 하나부터 만들어보세요.