Claude Code를 효과적으로 사용하기 위해 가장 먼저 필요한 것은 기술적인 스킬이 아니라 사고방식의 전환입니다. 우리는 더 이상 혼자 코드를 작성하는 개발자가 아닙니다. 우리는 AI라는 강력한 파트너와 함께 일하는 에이전틱 개발자(Agentic Developer)입니다.
해커톤 우승자 ykdojo는 성공적인 AI 협업의 핵심이 "큰 문제를 잘게 쪼개는 능력"에 있다고 반복해서 강조합니다. 이는 전통적인 소프트웨어 엔지니어링에서도 중요한 원칙이지만, AI와 협업할 때 더욱 결정적인 역할을 합니다. AI는 명확하고 구체적인 지시를 받았을 때 가장 뛰어난 성능을 발휘하기 때문입니다.
잘못된 접근 방식:
"로그인 페이지를 만들어줘."
이런 막연한 요청은 AI에게 너무 많은 결정권을 주어, 여러분이 원하지 않는 방향으로 갈 가능성이 높습니다.
에이전틱 개발자의 접근 방식:
ykdojo는 자신만의 음성 전사 시스템을 만들 때 이 원칙을 적용했습니다. 처음부터 "음성 전사 앱을 만들어줘"라고 하지 않고, 다음과 같이 작업을 분해했습니다.
이렇게 하나씩 완성하고 검증한 후 다음 단계로 넘어가는 방식으로, 복잡한 시스템을 안정적으로 구축할 수 있었습니다.
직접 경로 (실패 확률 높음): A → B
단계적 경로 (성공 확률 높음): A → A1 → A2 → A3 → B
각 단계에서 검증하고, 문제가 있으면 그 단계만 수정하면 되므로 디버깅이 훨씬 쉽습니다.
Claude Code는 두 가지 작업 방식을 제공합니다. 상황에 따라 적절한 모드를 선택하는 것은 생산성을 극대화하는 중요한 기술입니다.
Shift+Tab 을 두 번 누르면 계획 모드로 진입합니다. 이 모드에서 Claude는:
하지만 여러분이 승인하기 전까지는 아무것도 편집하지 않습니다. 이는 "두 번 생각하고, 한 번 실행하라(Think twice, execute once)"는 철학을 구현한 것입니다.
Ado의 조언:
"저는 90%의 시간 동안 계획 모드를 기본으로 사용합니다. 최신 버전에서는 계획을 거부할 때 피드백을 제공할 수 있어, 반복 작업이 더 빠릅니다."
계획 모드를 사용해야 할 때:
claude --dangerously-skip-permissions 플래그로 실행하면, Claude는 모든 작업에 대해 자동으로 승인합니다. 이름에 "dangerously"가 들어간 이유가 있습니다.
욜로 모드를 사용해야 할 때:
⚠️ 경고: 욜로 모드는 호스트 시스템에서 직접 사용하지 마세요. ykdojo는 이를 "보호되지 않은 성관계"에 비유하며, 반드시 컨테이너 안에서 사용할 것을 권장합니다.
AI와의 협업에서 가장 중요한 자원은 컨텍스트(Context)입니다. Claude Code는 최대 200,000 토큰에 달하는 방대한 컨텍스트 윈도우를 가지고 있지만, 이는 무한하지 않습니다.
ykdojo의 비유: "AI 컨텍스트는 우유와 같다"
"신선하고, 압축된 상태를 유지하는 것이 핵심입니다. 오래된 우유는 상하듯이, 오래된 컨텍스트는 AI의 성능을 저하시킵니다."
컨텍스트는 AI의 '작업 기억(Working Memory)'과 같습니다. 이 공간이 시스템 프롬프트, 코드 파일, 대화 기록 등으로 가득 차면, AI는 초기의 중요한 지시를 잊어버리는 컨텍스트 드리프트(Context Drift) 현상을 겪게 됩니다. 한 연구에 따르면, 여러 주제를 한 대화에서 섞으면 성능이 39%까지 저하될 수 있습니다.
하나의 대화(터미널 세션)에서는 하나의 명확한 목표에만 집중하세요. 로그인 기능을 구현하다가 갑자기 "아, 그리고 대시보드 UI도 개선해줘"라고 하면 컨텍스트가 오염됩니다. 대신 새로운 터미널 탭을 열어 별도의 대화를 시작하세요.
대화가 길어지면, 다음 에이전트를 위해 HANDOFF.md 파일을 작성하도록 지시하고 /clear로 새롭게 시작하세요.
ykdojo의 실제 프롬프트:
Put the rest of the plan in the system-prompt-extraction folder as HANDOFF.md. Explain what you have tried,
what worked, what didn't work, so that the next agent with fresh context is able to just load that file and nothing
else to get started on this task and finish it up.
Claude는 다음과 같은 내용을 포함한 HANDOFF.md를 생성합니다:
# System Prompt Slimming - Handoff Document
## Goal
Reduce Claude Code's system prompt by ~45% (currently at 11%, need ~34% more).
## Current Progress
### What's Been Done
- Removed verbose examples from tool descriptions
- Shortened permission explanations
- Consolidated redundant instructions
### What Worked
- Regex-based pattern matching for finding repetitive text
- Testing each change individually before committing
### What Didn't Work
- Removing safety warnings (caused unexpected behavior)
- Over-aggressive minification (broke JSON parsing)
## Next Steps
1. Target the MCP server descriptions (estimated 2k tokens)
2. Simplify the hooks documentation
3. Test thoroughly after each change
/context 명령어를 사용하면 무엇이 컨텍스트를 차지하는지 정확히 볼 수 있습니다:
이 정보를 바탕으로 불필요한 MCP를 비활성화하거나, 사용하지 않는 스킬을 언로드할 수 있습니다.
Claude Code는 컨텍스트가 가득 차면 자동으로 압축합니다. 하지만 ykdojo는 /config를 통해 자동 압축을 끄고 수동으로 관리하는 것을 선호합니다. 이유는:
ykdojo는 Claude Code 사용을 "거대한 빙산을 탐험하는 것"에 비유합니다. 때로는 멀리서 전체를 조망하고(Vibe Coding), 때로는 깊이 잠수하여 세부 사항을 파악해야 합니다(Deep Dive).
전체 구조와 흐름만 파악하고, 개별 코드 라인은 신경 쓰지 않습니다. 이 레벨은 다음 상황에 적합합니다:
파일 구조, 함수, 개별 코드 라인, 심지어 의존성까지 꼼꼼히 검토합니다. 이 레벨은 다음 상황에 필요합니다:
ykdojo의 조언:
"어떤 사람들은 Vibe Coding이 나쁘다고 말하지만, 때로는 완전히 괜찮습니다. 핵심은 상황에 맞는 추상화 수준을 선택하는 것입니다. 이진법적 사고가 아닙니다."
실전 예시:
새로운 기능을 추가할 때:
ykdojo는 Claude Code를 사용하면서 "미지의 영역에서 더 용감해졌다"고 고백합니다. 이는 AI와의 협업이 단순히 생산성 향상을 넘어, 개발자의 자신감과 학습 능력까지 확장시킨다는 것을 보여줍니다.
실제 사례 1: React 전문가가 아니었지만
ykdojo는 Daft에서 일하면서 프론트엔드 코드에 문제를 발견했습니다. React 전문가가 아니었지만, Claude Code와 함께 문제를 반복적으로 탐구하며 결국 해결했습니다.
실제 사례 2: Rust를 처음 다뤘지만
Python과 Rust가 섞인 복잡한 문제를 해결해야 했습니다. Rust를 한 번도 다뤄본 적이 없었지만, Claude Code에게 질문하며 코드베이스를 탐색하고, 여러 해결책을 시도하며, 결국 우아한 솔루션을 찾아냈습니다.
반복적 문제 해결의 과정:
ykdojo의 교훈:
"미지의 세계에서도, Claude Code와 함께라면 여러분이 생각하는 것보다 훨씬 많은 것을 할 수 있습니다. 핵심은 속도를 제어하고, 올바른 질문을 하며, 반복적으로 접근하는 것입니다."