클로드 공식 문서에서 제시하는 가이드를 포함해, 회사에서 클로드 코드로 실제 개발하며 느낀 팁들을 정리해보려 한다. 어떻게 보면 지엽적일 수 있고, 경험에 기반한 내용이라고 볼 수 있을 것 같다.
1. 표준 활용하기 — Rules, Skills, Memory, Reference
Claude Code의 가장 큰 강점 중 하나는 프로젝트의 컨텍스트를 체계적으로 관리할 수 있다는 점이다. 공식 문서에서도 "Claude Code는 단순 챗봇이 아니라 에이전트"라고 강조하는데, 에이전트가 제대로 동작하려면 프로젝트에 대한 충분한 맥락이 필요하다.
CLAUDE.md — 프로젝트의 DNA
CLAUDE.md는 Claude Code가 세션을 시작할 때마다 자동으로 읽어오는 프로젝트 메모리다. 코딩 컨벤션, 기술 스택, 주요 디렉터리 구조, 빌드·테스트 명령어 등을 담아두면 매번 같은 설명을 반복하지 않아도 된다.
계층 구조도 활용하면 좋다. 프로젝트 루트에는 전체 프로젝트 가이드를 두고, 하위 디렉터리(예: /src/api/)에는 해당 모듈에 특화된 CLAUDE.md를 배치하면 Claude가 해당 디렉터리의 파일을 읽을 때 자동으로 해당 컨텍스트를 로드한다.
project-root/
├── CLAUDE.md # 프로젝트 전체 가이드 (항상 로드)
├── CLAUDE.local.md # 개인 설정 (gitignore 대상)
├── src/
│ └── api/
│ └── CLAUDE.md # API 모듈 전용 가이드 (on-demand 로드)
└── .claude/
├── settings.json # hooks, permissions 등
├── skills/ # 스킬 정의
├── agents/ # 서브에이전트 정의
└── rules/ # 모듈형 규칙
Rules — 경로 기반 스코핑이 가능한 규칙
.claude/rules/*.md 파일에 주제별 규칙을 분리해두면, frontmatter의 path 설정으로 특정 경로에서만 적용되게 할 수 있다. 예를 들어 "테스트 파일에서는 항상 given-when-then 패턴을 사용한다" 같은 규칙을 /src/test/ 하위에서만 적용하는 식이다.
Skills — 자연어로 호출되는 재사용 가능한 워크플로우
Skills는 슬래시 커맨드와 달리 자연어로 트리거된다. Claude가 description을 기반으로 시맨틱 매칭을 해서 적절한 스킬을 자동으로 선택한다. Git 커밋 메시지 작성, PR 리뷰, 코드 리팩터링 같은 반복적인 워크플로우를 스킬로 정의해두면 매번 프롬프트를 작성할 필요가 없다.
Reference — @ import 활용
# CLAUDE.md
프로젝트 개요는 @README.md 참고.
사용 가능한 npm 명령어는 @package.json 참고.
Git 워크플로우는 @docs/git-instructions.md 를 따를 것.
팀의 코딩 가이드, API 스펙 문서, 아키텍처 결정 기록(ADR) 등을 직접 참조하게 만들면, CLAUDE.md 자체를 비대하게 만들지 않으면서도 풍부한 컨텍스트를 제공할 수 있다.
2. 용도에 맞게 스킬 최적화하기 — 컨텍스트 예산 관리
스킬을 만들다 보면 "이것저것 다 넣고 싶은" 유혹에 빠지기 쉽다. 하지만 스킬 문서가 길어지면 실질적인 성능 저하로 이어진다. Claude Code의 가장 중요한 리소스는 컨텍스트 윈도우이기 때문이다.
가장 쉽게 스킬 최적화하려면 스킬을 만들어놓고 "용도에 맞게 references 분리하고 스킬 최적화해줘" 라고 하면 알아서 클로드가 스킬 파일에 불필요한 내용을 최적화해준다.
왜 스킬 최적화가 중요한가
공식 문서에서도 이렇게 말한다 — "LLM 성능은 컨텍스트가 채워질수록 저하된다." 스킬의 description만으로도 컨텍스트 예산(전체 컨텍스트의 약 2%)을 소모하는데, 20,000 토큰 이상의 MCP를 사용하면 실제 작업에 사용할 수 있는 컨텍스트가 크게 줄어든다.
Progressive Disclosure 원칙
스킬 설계에서 가장 중요한 개념은 Progressive Disclosure(점진적 공개)다. 처음부터 모든 정보를 쏟아붓지 않고, Claude가 판단하기에 충분한 최소한의 정보만 먼저 보여주고, 실행 단계에서 점차 세부 정보를 로드하는 방식이다.
.claude/skills/testing-patterns/
├── SKILL.md # 핵심 가이드만 (~500줄 이하)
├── references/
│ ├── integration-test-examples.md
│ └── mock-patterns.md
└── scripts/
└── generate-test.sh
SKILL.md에는 트리거 조건과 핵심 패턴만 간결하게 적고, 상세한 예시와 참조 자료는 references/ 하위에 별도 파일로 분리한다. Claude는 필요할 때만 이 파일들을 읽어온다.
실전 팁
- SKILL.md는 500줄 이하로 유지한다. 이를 넘기면 스킬 자체가 컨텍스트를 압도한다.
- description을 트리거 키워드로 풍부하게 작성한다. Claude는 description의 시맨틱 매칭으로 스킬을 선택하므로, 사용자가 실제로 입력할 법한 키워드를 포함시킨다.
- 복잡한 범용 슬래시 커맨드는 안티패턴이다. "타이핑하면 거의 뭐든 유용한 결과가 나오는 게 핵심이다. 긴 복잡한 커스텀 슬래시 커맨드 리스트가 있다면, 그건 안티패턴을 만든 것이다."라는 피드백이 있을 정도로, 커맨드를 과도하게 만드는 것보다 CLAUDE.md에 충분한 컨텍스트를 담아두고 Claude가 스스로 판단하게 하는 편이 더 효과적이다.
3. 메모리에 저장하기 — " 지금 작업한 내용 메모리에 저장해둬 "
Claude Opus 4.6 출시와 함께 Auto Memory 기능이 출시되었다.
세션을 재시작하게 되면 클로드는 다시 기존 컨텍스트를 찾기 어렵거나 많은 토큰을 소비한다.
Claude Code에는 CLAUDE.md(내가 작성하는 지시사항) 외에 Auto Memory(Claude가 스스로 작성하는 학습 노트)라는 기능이 있다. 세션 중 발견한 패턴, 프로젝트 규칙, 디버깅 인사이트 등을 Claude가 자동으로 기록하고 다음 세션에서 참조한다.
어떻게 동작하는가
각 프로젝트별로 ~/.claude/projects/<project>/memory/ 경로에 메모리가 저장된다. 핵심 인덱스인 MEMORY.md의 처음 200줄은 매 세션 시작 시 시스템 프롬프트에 자동 로드되고, 나머지 상세 내용은 별도 토픽 파일로 분리되어 필요할 때만 읽어온다.
~/.claude/projects/<project>/memory/
├── MEMORY.md # 간결한 인덱스 (매 세션 자동 로드, 200줄 제한)
├── debugging.md # 디버깅 패턴 메모
├── api-conventions.md # API 설계 결정 사항
└── performance-tips.md # 성능 최적화 노하우
세션 중 중요한 패턴을 발견하거나, 삽질 끝에 해결책을 찾았을 때, Claude에게 직접 "이 내용 메모리에 기록해줘"라고 요청할 수 있다. 예를 들어:
- "지금까지 작업했던 컨텍스트 메모리에 기록해둬"
- "우리 프로젝트에서 Redis 캐시 직렬화할 때 Jackson의 PolymorphicTypeValidator를 꼭 설정해야 한다는 거 메모리에 기록해둬"
- "이 서비스에서 CORS 설정은 Spring Security 필터 체인보다 먼저 등록해야 한다는 거 기억해둬"
이런 식으로 한 번 삽질한 내용을 기록해두면, 다음 세션에서 같은 실수를 반복하지 않게 된다. /memory 명령어로 파일 선택 UI를 열어서 직접 편집할 수도 있다.
주의사항
Auto Memory는 점진적으로 롤아웃 중이다. 만약 아직 활성화되지 않았다면 환경 변수 CLAUDE_CODE_DISABLE_AUTO_MEMORY=0으로 옵트인할 수 있다. 그리고 MEMORY.md는 200줄을 넘기지 않도록 간결하게 유지하는 것이 중요하다 — 상세 내용은 항상 별도 토픽 파일로 분리하자.
4. /insights로 사용 패턴 분석 및 최적화하기
Claude Code v2.1에 도입된 /insights 명령어는 최근 30일간의 세션 트랜스크립트를 분석해서 인터랙티브 HTML 리포트를 생성해준다. 사용 통계뿐 아니라 "뭐가 잘 되고 있는지", "어디서 시간을 낭비하고 있는지", "구체적으로 어떻게 개선할 수 있는지"까지 알려준다.
사용법
Claude Code에서 /insights를 입력하면 끝이다. 분석에 몇 분 정도 소요되고, ~/.claude/usage-data/report.html에 결과가 저장된다.
리포트에서 확인할 수 있는 것들
- 사용 통계: 메시지 수, 세션 수, 도구 사용 빈도, 피크 시간대
- What's Working: 효과적으로 활용하고 있는 패턴과 워크플로우
- What's Hindering: 생산성을 저해하는 병목 지점과 반복되는 실수 패턴
- Quick Wins: 바로 적용 가능한 개선 제안 (copy-paste 가능한 CLAUDE.md 규칙 포함)
- Ambitious Workflows: 더 나은 모델/기능을 활용한 고급 워크플로우 제안
왜 유용한가
실제로 /insights를 사용해 본 개발자들의 공통적인 반응은 "내가 AI를 어떻게 사용하고 있는지 스스로 인지하지 못했다"는 것이다. 마치 잘 훈련된 매니저에게 피드백을 받는 것과 비슷한 경험이라는 평가도 있다.
특히 유용한 부분은 마찰 패턴(friction patterns) 분석이다. 내가 반복적으로 범하는 실수를 구체적인 예시와 함께 지적해주고, 이를 방지하기 위한 CLAUDE.md 규칙까지 제안해준다. 예를 들어 "컨텍스트 윈도우 초과로 인한 세션 중단이 잦다"는 분석 결과가 나오면, /clear를 더 자주 사용하거나 Task 에이전트로 작업을 분산하라는 구체적인 제안이 따라온다.
실전 팁
- /insights 리포트에서 제안하는 CLAUDE.md 규칙은 바로 복사해서 적용해보자. 실제로 이 피드백을 반영한 후 워크플로우 개선 효과를 크게 본 사례가 많다.
- 주기적으로(예: 2주에 한 번) /insights를 실행해서 사용 패턴의 변화를 추적하면 좋다.
- 최근 작업에 가중치가 더 크게 반영되는 경향이 있으므로, 다양한 시점에 실행해보면 다른 인사이트를 얻을 수 있다.
5. Claude HUD 플러그인으로 세션 모니터링하기
AI 에이전트와 협업할 때 가장 큰 불편함 중 하나는 "블랙박스" 문제다. Claude가 지금 뭘 하고 있는지, 컨텍스트 윈도우가 얼마나 찼는지, 서브에이전트가 어떤 상태인지 터미널만 보면 알기 어렵다. Claude HUD는 이 문제를 정면으로 해결해주는 플러그인이다.
Claude HUD가 보여주는 것
입력창 바로 아래에 항상 표시되는 HUD로, 별도 창이나 tmux 설정 없이 바로 확인할 수 있다.
[Opus | Max] │ my-project git:(main*) Context █████░░░░░ 45% │ Usage ██░░░░░░░░ 25% (1h 30m / 5h)
◐ Edit: auth.ts | ✓ Read ×3 | ✓ Grep ×2
◐ explore [haiku]: Finding auth code (2m 15s)
▸ Fix authentication bug (2/5)
- Line 1: 모델, 프로젝트 경로, git 브랜치, 컨텍스트 사용률(초록→노랑→빨강), 사용량 제한
- Line 2: 현재 실행 중인 도구 활동 (Edit, Read, Grep 등)
- Line 3: 서브에이전트 상태 (어떤 모델로, 무슨 작업을, 얼마나 하고 있는지)
- Line 4: Todo 진행 상황
왜 필요한가
컨텍스트 윈도우 관리가 핵심이다. 공식 문서에서도 "컨텍스트 윈도우는 가장 중요한 리소스"라고 강조한다. 시각적 지표 없이는 컨텍스트가 꽉 찼는지 인지하지 못하다가 갑자기 응답 품질이 떨어지는 경험을 하게 된다. HUD의 컨텍스트 바가 빨간색으로 변하기 전에 /clear 하거나 새 세션을 시작하면 이 문제를 예방할 수 있다.
멀티 에이전트 워크플로우에서 특히 유용하다. Task 에이전트를 활용해 병렬 작업을 수행할 때, 각 에이전트가 어떤 상태인지 한눈에 파악할 수 있다. "이 에이전트는 2분째 뭘 하고 있는 거지?" 같은 상황을 즉시 감지할 수 있다.
설치
Claude Code 인스턴스 내에서 세 줄이면 된다.
# 마켓플레이스에 등록
/plugin marketplace add jarrodwatts/claude-hud
# 플러그인 설치
/plugin install claude-hud
# 설정 셋업
/claude-hud:setup
설치 즉시 HUD가 나타나며, 재시작 필요 없다. 약 300ms 간격으로 업데이트되며, Claude Code의 네이티브 토큰 데이터를 사용하므로 추정치가 아닌 정확한 수치를 보여준다.
'AI' 카테고리의 다른 글
| [Claude Code] Excalidraw MCP 설정하기 (0) | 2026.02.25 |
|---|---|
| [Claude Code] Remote Control — 터미널 세션을 폰에서 이어가기 (0) | 2026.02.25 |
| [Claude Code] jira / confluence Atlassian MCP 설정하기 (0) | 2026.02.16 |