수천 명의 개발자가 검증한 실전 중심의 가이드.
초급자부터 중급자까지, Claude Code의 잠재력을 100% 활용하세요.
생각 없이 바로 타이핑부터 시작하면, 결국 디버깅에 더 많은 시간을 쓰게 됩니다. 먼저 설계하고, 그 다음 코드를 작성하세요.
플랜 모드(Shift + Tab × 2)를 사용하면
Claude가 바로 코딩을 시작하지 않고, 먼저 계획을 세웁니다. 복잡한 작업일수록 효과가 큽니다.
Shift + Tab을 두 번 누르면 플랜 모드로 진입합니다.
5분간의 계획 수립이 몇 시간의 디버깅을 줄여줍니다.
기초 지식이 있어야 Claude를 효과적으로 활용할 수 있습니다. 다음 두 가지 방법을 추천합니다.
프로그래밍 기초를 조금씩 학습하세요. 기본기가 있어야 AI가 생성한 코드를 이해하고 검토할 수 있습니다.
ChatGPT나 Claude에게 만들고 싶은 것을 설명하고, 설계 방향에 대해 질문을 주고받으세요. 상호 대화가 중요합니다.
기능 개발 전에는 구조를 먼저 생각하고, 리팩토링 전에는 최종 결과를 머릿속에 그려보세요. 디버깅 요청 전에는 이미 파악한 정보를 정리해두세요.
핵심은 간단합니다. 생각을 먼저 정리하고 요청하면 Claude의 결과물이 확연히 달라집니다.
CLAUDE.md는 프로젝트 루트에 위치하는 마크다운 파일입니다. Claude는 마크다운 형식을 특히 잘 이해합니다.
Claude Code 세션을 시작할 때, Claude는 가장 먼저 CLAUDE.md 파일을 읽습니다. 여기에 쓴 지시사항이 프로젝트 전체의 작업 방식을 결정합니다.
쉽게 말해 매 대화 전에 읽는 프로젝트 안내서라고 생각하면 됩니다.
Claude는 한 번에 약 150~200개의 지시사항만 안정적으로 따를 수 있습니다. Claude Code의 시스템 프롬프트가 이미 약 50개를 차지하므로, CLAUDE.md가 길어지면 일부 지시사항이 무시될 수 있습니다.
"컴포넌트 폴더란 무엇인가" 같은 일반적인 설명은 필요 없습니다. 이 프로젝트에서만 중요한 것들, 예를 들어 특수한 빌드 명령어나 프로젝트 고유의 컨벤션을 작성하세요.
단순히 "~해줘"보다 "이런 이유로 ~해줘"가 훨씬 효과적입니다. Claude는 이유를 알면 예상치 못한 상황에서도 올바른 판단을 내릴 수 있습니다.
"TypeScript strict mode 사용"
"타입 관련 버그를 방지하기 위해 TypeScript strict mode 사용"
이유를 알려주면 Claude가 더 나은 판단을 내릴 수 있습니다.
작업 중 # 키를 누르면 Claude가 CLAUDE.md에 지시사항을 자동 추가합니다. 같은 실수를 두 번 고치게 되면, CLAUDE.md에 추가하세요. 시간이 지나면 프로젝트의 규칙을 담은 살아있는 문서가 됩니다.
단순한 지시보다 이유를 함께 제공하면, Claude의 결과가 훨씬 좋아집니다.
Claude는 200,000 토큰의 컨텍스트 윈도우를 가지고 있습니다. 하지만 중요한 점이 있습니다:
컨텍스트가 꽉 차기 훨씬 전부터, 약 20-40% 사용 시점부터 결과 품질이 떨어지기 시작합니다.
컨텍스트가 20-40%를 넘으면 출력 품질이 떨어집니다.
/compact 후에도 결과가 안 좋다면, 컨텍스트 과다가 원인일 수 있습니다.
보내는 메시지, 읽는 파일, 생성하는 코드 — 모두 컨텍스트에 쌓입니다. 품질이 한 번 떨어지기 시작하면, 컨텍스트가 많아질수록 더 나빠집니다.
하나의 기능이나 작업당 하나의 대화를 사용하세요. 인증 시스템을 만들고 같은 대화에서 데이터베이스를 리팩토링하면, 컨텍스트가 섞여 Claude가 혼란스러워집니다.
복잡한 작업이라면 Claude에게 계획과 진행 상황을 파일로 저장하게 하세요 (SCRATCHPAD.md, plan.md 등). 세션이 종료되어도 파일은 남으므로, 다음에 이어서 작업할 수 있습니다.
컨텍스트가 불어나면: 중요한 내용을 복사해두고, /compact로 요약하고, /clear로 전체를 지운 후, 중요한 것만 다시 붙여넣으세요.
깨끗한 컨텍스트로 시작하는 것이 오염된 컨텍스트와 씌우는 것보다 낫습니다.
대화가 산만해지거나 불필요한 컨텍스트가 많이 쌓이면, /clear하고 새로 시작하세요. CLAUDE.md는 그대로 유지되므로 프로젝트 컨텍스트는 잃지 않습니다.
Claude는 상태를 유지하지 않습니다(stateless). 모든 대화는 직접 제공한 정보 외에는 아무것도 모르는 상태로 시작합니다.
프레임워크나 도구를 배우는 데는 몇 주를 투자하면서, 정작 코드를 생성하는 AI와 소통하는 방법은 배우지 않는 경우가 많습니다.
프롬프트 엔지니어링은 거창한 기술이 아닙니다. 그냥 명확하게 소통하는 것입니다. 명확한 요청은 매번 더 나은 결과를 가져옵니다.
"인증 시스템 만들어줘"는 너무 모호합니다. Claude가 너무 많은 것을 마음대로 결정하게 됩니다.
✅ 구체적인 예시:
"User 모델을 사용해 이메일/비밀번호 인증을 만들고, 세션은 Redis에 24시간 만료로 저장하고, /api/protected 경로를 보호하는 미들웨어를 추가해줘."
Claude는 때로 과도하게 복잡한 구조를 만듭니다. 불필요한 파일 분리나 추상화를 피하려면 명시적으로 제약하세요.
💡 제약 조건 예시:
"간단하게 유지해줘. 요청하지 않은 추상화는 추가하지 마. 가능하면 한 파일로 해줘."
"이 코드는 모든 요청마다 실행되므로 빨라야 한다"고 하면 Claude가 성능 중심으로 접근합니다.
🎯 목적에 맞게:
"이건 나중에 버릴 프로토타입이야"라고 하면 Claude는 빠른 구현에 집중합니다. 명시하지 않은 제약은 Claude가 알 수 없습니다.
AI는 개발자를 대체하는 것이 아니라 속도를 높여주는 도구입니다. Claude도 실수를 합니다. 점점 나아지겠지만, 실수는 계속 있을 겁니다.
그래서 실수를 알아볼 수 있는 능력이 중요합니다. Claude가 생성한 코드는 항상 검토하세요.
결과가 안 좋다면, 모델 탓이 아닙니다. 프롬프트가 모호하기 때문입니다.
Claude는 충분히 똑똑합니다. 문제는 입력의 품질입니다.
모델 성능은 이미 충분히 좋습니다. 병목은 대부분 사람에게 있습니다: 프롬프트를 어떻게 구성하는지, 컨텍스트를 어떻게 제공하는지, 원하는 것을 얼마나 명확히 소통하는지.
해결책은 모델을 바꾸는 게 아니라, 다음을 개선하는 겁니다: