Claude Code로 실제 개발하는 전체 흐름을 마스터합시다Master the complete development process with Claude Code
위험한 변경 전에 Claude가 읽기 전용 모드로 코드베이스를 탐색하고 계획을 세운 뒤, 사용자 승인을 받고 나서 실행합니다.Before risky changes, Claude explores the codebase in read-only mode, drafts a plan, and only executes after your approval.
복잡한 기능을 구현하거나 대규모 리팩토링을 앞뒀을 때, Claude가 먼저 파일을 읽고 의존성을 파악한 뒤 계획을 제시합니다.
여러분은 그 계획을 검토하고 승인한 뒤에야 실제 코드 수정이 시작됩니다. 실수를 예방하는 가장 효과적인 방법입니다.
When implementing complex features or large-scale refactoring, Claude first reads the files, understands dependencies, and presents a plan.
You review that plan, and actual code modifications only begin after your approval. It's the most effective way to prevent mistakes.
Shift+Tab 두 번 누르기
첫 번째: Auto-Accept Mode
두 번째: Plan Mode
터미널 하단에 ⏸ plan mode on 표시됨Press Shift+Tab twice
First: Auto-Accept Mode
Second: Plan Mode
Terminal shows ⏸ plan mode on
Claude를 Plan Mode로 시작하려면:To start Claude in Plan Mode:
.claude/settings.json에 추가:Add to .claude/settings.json:
Shift+Tab 두 번으로 Plan Mode를 켜고, 구현하고 싶은 기능을 설명합니다.Enable Plan Mode with Shift+Tab twice, then describe the feature you want to implement.
이 단계에서 Claude는 파일을 수정하지 않습니다. 코드베이스를 탐색하고, 의존성을 파악하며, 영향 범위를 분석합니다.At this stage, Claude does not modify files. It explores the codebase, understands dependencies, and analyzes the scope of impact.
Claude가 단계별 실행 계획을 제시하고, 필요한 경우 추가 요구사항을 질문합니다. Ctrl+G를 누르면 계획을 텍스트 편집기에서 직접 수정할 수 있습니다.Claude presents a step-by-step execution plan and asks clarifying questions if needed. Press Ctrl+G to edit the plan directly in a text editor.
계획을 확인하고 승인하면, Claude가 Plan Mode를 해제하고 실제 코드 수정을 시작합니다.Once you review and approve the plan, Claude exits Plan Mode and begins actual code modifications.
Claude Code는 파일을 수정하기 전에 자동으로 스냅샷을 찍습니다. 잘못된 변경은 언제든 Esc+Esc로 되돌릴 수 있습니다.Claude Code automatically takes snapshots before modifying files. Any incorrect change can be undone at any time with Esc+Esc.
게임에서 보스 전 자동 저장이 되듯, Claude Code도 편집 전에 파일 상태를 저장합니다.
이 체크포인트는 Git과 별도로 작동합니다. Git 커밋을 하지 않았어도 Claude의 각 작업 단위별로 스냅샷이 생성됩니다.
Just as games auto-save before a boss fight, Claude Code saves file states before editing.
These checkpoints operate independently of Git. Snapshots are created per Claude action unit, even without Git commits.
Claude가 파일을 수정하는 도중 또는 직후에 Esc를 두 번 누르면, 해당 작업 이전 상태로 파일이 복원됩니다.During or right after Claude modifies files, press Esc twice to restore files to the state before that action.
체크포인팅은 Claude Code 내부 기능입니다. Git revert/reset과 병행 사용하면 더욱 안전합니다.Checkpointing is a Claude Code internal feature. Using it alongside Git revert/reset provides even more safety.
이전 대화를 이어서 계속하거나, 세션을 포크해서 다른 방향으로 실험할 수 있습니다.You can continue previous conversations, or fork a session to experiment in a different direction.
현재 디렉토리에서 가장 최근 대화를 자동으로 이어서 시작합니다.Automatically continues the most recent conversation in the current directory.
대화형 선택기를 열거나, 세션 이름으로 바로 재개합니다.Open an interactive picker or resume directly by session name.
원본 세션을 유지하면서, 다른 방향으로 실험할 수 있는 새 분기를 만듭니다.Creates a new branch to experiment in a different direction while keeping the original session intact.
| 단축키Shortcut | 동작Action |
|---|---|
↑ / ↓ | 세션 간 이동Navigate sessions |
Enter | 선택한 세션 재개Resume selected session |
P | 세션 내용 미리보기Preview session content |
R | 세션 이름 변경Rename session |
/ | 세션 검색 필터Search/filter sessions |
B | 현재 git 브랜치 세션만 표시Show only current git branch sessions |
Esc | 선택기 종료Close picker |
여러 기능을 동시에 개발할 때, Git Worktree를 사용하면 각 Claude 세션이 독립된 작업 디렉토리에서 충돌 없이 실행됩니다.When developing multiple features simultaneously, Git Worktrees allow each Claude session to run in an independent working directory without conflicts.
Git Worktree는 동일한 저장소 히스토리와 원격 연결을 공유하면서, 각각 자신의 파일과 브랜치를 가진 별도의 작업 디렉토리를 만듭니다.
한 Worktree에서 기능을 개발하는 동안, 다른 Worktree에서 버그를 수정할 수 있고, 두 Claude 세션은 서로 방해하지 않습니다.
Git Worktrees share the same repository history and remote connections, but create separate working directories, each with its own files and branch.
While developing a feature in one Worktree, you can fix bugs in another, and the two Claude sessions don't interfere with each other.
세션 종료 시 Claude가 자동으로 처리합니다:Claude handles this automatically when the session ends:
.gitignore에 추가하여 worktree 내용이 주 저장소에 추적되지 않도록 합니다:Add to .gitignore so worktree contents are not tracked in the main repository:
npm install, 가상환경 설정 등 프로젝트의 표준 설정 과정을 따르세요.Practical use: Each new worktree may need development environment initialization. Follow the project's standard setup process: npm install, virtual environment setup, etc.
Claude가 응답 전에 더 깊이 추론하도록 설정할 수 있습니다. 복잡한 아키텍처 결정, 어려운 버그, 트레이드오프 분석에 탁월합니다.You can configure Claude to reason more deeply before responding. Excellent for complex architecture decisions, difficult bugs, and trade-off analysis.
Extended Thinking은 Claude가 응답하기 전에 내부적으로 더 많이 추론하는 시간을 줍니다.
기본적으로 활성화되어 있으며, ultrathink 키워드를 프롬프트에 포함하면 해당 턴의 추론 깊이를 최고 수준으로 높일 수 있습니다.
Extended Thinking gives Claude more time to reason internally before responding.
It is enabled by default, and including the ultrathink keyword in your prompt maximizes reasoning depth for that turn.
| 방법Method | 설명Description |
|---|---|
| ultrathink 키워드keyword | 프롬프트에 포함 시 해당 턴의 추론 깊이를 최고(high)로 설정. 설정은 영구적으로 변경되지 않음When included in a prompt, sets reasoning depth to maximum (high) for that turn. Setting is not permanently changed. |
| Option+T / Alt+T | 현재 세션에서 Extended Thinking 켜기/끄기 토글Toggle Extended Thinking on/off for the current session |
| /config 에서 토글toggle | 모든 프로젝트에 기본값 설정 (alwaysThinkingEnabled로 저장됨)Set default for all projects (saved as alwaysThinkingEnabled) |
| Ctrl+O | Claude의 내부 추론 과정 보기 (자세한 모드 토글)View Claude's internal reasoning process (toggle verbose mode) |
Claude Code에는 특정 작업을 위한 내장 Skill 명령어가 있습니다. 기능 구현 후 코드 정리, 대규모 병렬 변경 작업에 활용하세요.Claude Code has built-in Skill commands for specific tasks. Use them for code cleanup after implementation and large-scale parallel changes.
기능 구현이 끝난 뒤 자동으로 코드를 정리합니다. 불필요한 복잡성 제거, 가독성 향상, 중복 코드 통합을 수행합니다.Automatically cleans up code after feature implementation. Removes unnecessary complexity, improves readability, and consolidates duplicate code.
여러 파일에 걸친 대규모 변경을 병렬로 처리합니다. 전체 코드베이스의 패턴 교체, 일괄 마이그레이션 등에 활용합니다.Handles large-scale changes across multiple files in parallel. Use for pattern replacement across the entire codebase, bulk migrations, etc.
/simplify로 정리 → 테스트 실행 → 커밋. 이 패턴을 습관화하면 항상 깔끔한 코드를 유지할 수 있습니다.Workflow integration: Implement feature → clean up with /simplify → run tests → commit. Making this pattern a habit keeps your code consistently clean.
Claude Code는 Git을 네이티브로 이해합니다. 커밋, 브랜치, PR까지 — 대화만으로 Git 워크플로우 전체를 다룰 수 있습니다.Claude Code understands Git natively. Commits, branches, PRs — you can handle the entire Git workflow through conversation.
회사에 새로 온 인턴에게 "이 기능 만들고, 브랜치 따서, 커밋하고, PR 올려줘"라고 하면 보통 몇 시간이 걸립니다.
Claude Code는 그 인턴이 Git 10년차 시니어인 셈입니다.
코드 변경사항을 분석해서 의미 있는 커밋 메시지를 작성하고, 브랜치 이름을 규칙에 맞게 만들고, PR 설명까지 자동으로 생성합니다.
여러분은 "해줘"라고 말하기만 하면 됩니다.
Telling a new intern "implement this feature, create a branch, commit, and open a PR" usually takes hours.
Claude Code is like that intern being a 10-year Git veteran.
It analyzes code changes to write meaningful commit messages, creates branch names following conventions, and auto-generates PR descriptions.
You just say "do it."
변경사항을 분석해서 Conventional Commits 형식의 커밋 메시지를 자동 생성합니다. "feat:", "fix:", "refactor:" 등 컨벤션을 완벽히 지킵니다.Analyzes changes and auto-generates commit messages in Conventional Commits format. Perfectly follows conventions like "feat:", "fix:", "refactor:", etc.
기능별 브랜치 생성, 체크아웃, 머지까지 대화로 처리합니다. "로그인 기능 브랜치 만들어줘"라고 하면 feature/login을 생성합니다.Handles branch creation, checkout, and merge through conversation. Saying "create a branch for the login feature" creates feature/login.
변경사항을 요약하고, 리뷰어가 이해하기 쉬운 PR 설명을 자동으로 작성합니다. 테스트 계획, 스크린샷 섹션까지 포함합니다.Summarizes changes and auto-writes PR descriptions easy for reviewers to understand. Includes test plans and screenshot sections.
실제 개발에서 가장 많이 쓰는 6단계 흐름을 Claude Code로 진행하는 방법입니다.Here's how to run the 6-step flow most commonly used in real development with Claude Code.
새 기능 작업의 시작점입니다. Claude에게 브랜치 생성을 요청합니다.The starting point for new feature work. Request Claude to create a branch.
실제 코드를 작성합니다. 구체적으로 요구사항을 전달하세요.Write the actual code. Pass requirements concretely.
구현한 기능에 대한 테스트를 작성합니다.Write tests for the implemented feature.
변경사항을 의미 단위로 나눠서 커밋합니다. 리뷰어가 이해하기 쉬워집니다.Commit changes in meaningful units. This makes it easier for reviewers to understand.
PR을 만들고 리뷰어를 위한 설명을 자동으로 작성합니다.Create the PR and automatically write a description for reviewers.
리뷰 피드백을 받아 수정하고, 최종 머지합니다.Address review feedback, make modifications, and finalize the merge.
Claude Code를 CLI 파이프라인에 연결하면 PR 리뷰를 자동화할 수 있습니다. 사람 리뷰 전에 기본 검토를 끝내세요.Connecting Claude Code to a CLI pipeline allows you to automate PR reviews. Finish the basic review before human review.
에러가 발생했을 때 Claude Code와 함께 체계적으로 디버깅하는 패턴입니다.Patterns for systematic debugging with Claude Code when errors occur.
에러 로그, 스택 트레이스, 재현 조건을 Claude에게 전달합니다.Pass error logs, stack traces, and reproduction conditions to Claude.
Claude가 관련 코드를 읽고, 에러 원인을 추론합니다.Claude reads related code and infers the cause of the error.
가능한 원인을 우선순위별로 정리하고 가장 유력한 원인을 특정합니다.Organizes possible causes by priority and identifies the most likely cause.
코드를 수정하고, 사이드 이펙트가 없는지 확인합니다.Modifies the code and checks for side effects.
테스트를 실행하고, 버그가 재현되지 않는지 확인합니다.Runs tests and confirms the bug is no longer reproducible.
리팩토링은 "동작은 바꾸지 않으면서 코드 구조를 개선하는 것"입니다. Claude Code와 함께하면 안전하게 할 수 있습니다.Refactoring is "improving code structure without changing behavior." With Claude Code, you can do it safely.
리팩토링 전에 기존 테스트가 모두 통과하는지 확인합니다. 테스트가 없다면 먼저 작성합니다.Before refactoring, verify all existing tests pass. If there are no tests, write them first.
구체적인 리팩토링 방향을 지정하고 Claude에게 실행을 맡깁니다.Specify the concrete refactoring direction and let Claude execute it.
리팩토링 후 모든 테스트가 여전히 통과하는지 확인합니다.After refactoring, verify all tests still pass.
실제 개발 현장에서 흔히 만나는 3가지 시나리오를 수동 vs Claude Code로 비교합니다.Comparing 3 scenarios commonly encountered in real development: Manual vs Claude Code.
실전 워크플로우에서 자주 나오는 질문들Common questions about real-world workflows
git revert로 안전하게 되돌릴 수 있습니다. "방금 커밋 되돌려줘"라고 말하면 Claude가 revert 커밋을 생성합니다. git reset --hard는 이력이 사라지므로, Claude도 기본적으로 revert를 권장합니다.Claude always requests user confirmation before committing. If a commit has already been made, you can safely revert it with git revert. Saying "revert that last commit" will have Claude create a revert commit. Since git reset --hard loses history, Claude recommends revert by default.
git push --force에 대해 매우 신중합니다. 특히 main/master 브랜치에 대한 force push는 경고를 표시하고, 정말 필요한지 재확인합니다. feature 브랜치에서 rebase 후 force push가 필요한 경우에는 --force-with-lease를 사용해서 다른 사람의 커밋을 덮어쓰지 않도록 보호합니다.Claude is very cautious about git push --force. Especially for force pushes to main/master branches, it shows warnings and reconfirms if it's really necessary. When force pushing after a rebase on a feature branch, it uses --force-with-lease to protect against overwriting others' commits.
CLAUDE.md 파일을 각 패키지별로 배치하면 패키지별 규칙을 적용할 수 있습니다. 예를 들어, packages/web/CLAUDE.md에는 프론트엔드 규칙을, packages/api/CLAUDE.md에는 백엔드 규칙을 적을 수 있습니다. 커밋할 때도 패키지별로 분리해서 커밋하도록 요청할 수 있습니다.Yes, Claude Code understands monorepos well. Placing CLAUDE.md files per package allows package-specific rules. For example, packages/web/CLAUDE.md for frontend rules and packages/api/CLAUDE.md for backend rules. You can also request commits separated by package.
CLAUDE.md에 PR 형식을 정의해두면 매번 일관된 형식으로 생성됩니다.The default structure of PR descriptions generated by Claude is as follows:CLAUDE.md ensures consistent format every time.
Plan Mode = Shift+Tab 두 번 → 계획 확인 → 승인 후 실행
체크포인팅 = Esc+Esc로 즉시 되돌리기 (Git 없이도)
세션 관리 = --continue / --resume / --fork-session
병렬 작업 = Git Worktree로 독립 세션 실행
깊은 추론 = ultrathink 키워드로 추론 깊이 최대화
코드 정리 = /simplify (구현 후) / /batch (대규모 변경)
Plan Mode = Shift+Tab twice → Review plan → Execute after approval
Checkpointing = Instant undo with Esc+Esc (even without Git)
Session Mgmt = --continue / --resume / --fork-session
Parallel Work = Run independent sessions with Git Worktrees
Deep Reasoning = Maximize reasoning depth with ultrathink keyword
Code Cleanup = /simplify (after implementation) / /batch (large-scale changes)
핵심은 하나입니다 —
"Claude에게 맥락을 충분히 주고, 검증은 항상 하자"
The key is one thing —
"Give Claude sufficient context, and always verify"