클로드가 작성한 나의 클로드 사용 현황
요즘에 나는 클로드를 어떻게 쓰고 있는가
배경
Ruby on Rails와 Airflow를 주로 다루는 개발자입니다. Claude Code를 도입한 이후 코드 작성보다 “Claude가 내 코드베이스를 얼마나 잘 이해하고 있는가”를 관리하는 데 더 많은 시간을 씁니다. 이 글은 그 관리 방식을 정리한 것입니다.
내 클로드 사용에서의 장단점
장점
- 초기 세팅만 잘 해두면 세션마다 같은 설명을 반복하지 않아도 됩니다. 컨텍스트를 주입하는 비용이 거의 0에 수렴합니다.
- PostToolUse 훅으로 lint·테스트가 저장 즉시 자동 실행되어, CI 전에 Claude가 스스로 걸러냅니다.
- Stop 훅 완료 알림 덕분에 Claude가 돌아가는 동안 다른 일을 할 수 있습니다. 대기 시간이 낭비되지 않습니다.
- 피드백이 메모리에 누적되어 Claude의 코드 스타일이 점점 내 스타일에 가까워집니다.
- Haiku/Sonnet 모델 분리로 단순 작업의 비용을 줄입니다.
- 위험 명령어 deny + bypassPermissions 조합으로 작업 흐름이 끊기지 않으면서도 최소한의 안전장치가 있습니다.
단점
- CLAUDE.md, rules/, memory/ 파일이 또 다른 유지보수 대상이 됩니다. 코드베이스가 바뀌어도 문서가 따라가지 못하면 오래된 규칙이 Claude를 오히려 잘못 인도합니다.
- bypassPermissions는 양날의 검입니다. deny 리스트에 없는 예상치 못한 명령어가 확인 없이 실행될 수 있습니다.
- 세팅 비용이 높습니다. 프로젝트가 바뀌거나 팀원이 도입하려 할 때 진입 장벽이 됩니다.
- Claude 의존도가 높아지면서 직접 하던 흐름 감각이 무뎌질 수 있고, Claude가 틀렸을 때 그냥 넘어가게 될 위험이 있습니다.
1. 프로젝트 컨텍스트 문서화
CLAUDE.local.md — 아키텍처 맵
Rails 프로젝트에는 각 서브 프로젝트별로 주요 서비스 클래스와 역할을, Airflow 프로젝트에는 DAG 디렉토리 구조와 공통 유틸리티 위치를 적어둡니다. Claude가 파일을 찾거나 어디에 코드를 추가해야 할지 스스로 판단할 수 있게 됩니다.
팀에 공유하지 않는 개인 설정이므로 .gitignore에 추가된 CLAUDE.local.md에 씁니다.
.claude/rules/ — 규칙 파일
paths 필드로 특정 경로의 파일을 수정할 때만 로딩되는 규칙을 만들 수 있습니다. Claude가 관련 없는 규칙을 노이즈로 받지 않도록 범위를 좁힙니다.
적용한 규칙 파일들:
rules/testing.md— 테스트 작성 시 지켜야 할 패턴 (시간 고정 방법, 픽스처 위치 등)rules/migration.md— DB 마이그레이션 실행 순서, 버전 네이밍 규칙rules/dag.md— Airflow DAG 개발 패턴, SSH 연결 방식rules/git.md— 커밋 포맷, 브랜치 네이밍, PR 작성 방식 (전역 적용)rules/rubocop.md— 자주 걸리는 lint 규칙 (전역 적용)
전역으로 항상 로딩되는 규칙과 경로 범위가 지정된 규칙을 분리해서 관리합니다.
2. Hooks — 저장 시 자동 게이팅
Claude Code의 훅을 이용해 파일 저장 즉시 검사를 실행합니다. CI가 돌기 전에 Claude가 스스로 걸러내는 구조입니다. Claude가 코드를 작성하고 → lint 통과 확인 → 테스트 통과 확인 → 다음 작업으로 넘어가는 흐름이 자동화됩니다.
| 트리거 | 동작 |
|---|---|
.rb 파일 저장 | Rubocop 즉시 실행, offense 있으면 바로 수정 |
app/**/*.rb 수정 | 대응 테스트 파일 sync 알림 |
spec/**/*_test.rb 수정 | 테스트 자동 실행 |
| Claude 응답 완료 (Stop) | macOS 알림 + 효과음 |
마지막 항목이 개인적으로 가장 유용합니다. Claude가 돌아가는 동안 다른 일을 하다가 완료 알림 소리가 나면 돌아오면 됩니다. 알림 제목에는 프로젝트명과 현재 브랜치가, 본문에는 수정된 파일명(최대 3개)이 표시됩니다.
3. 권한 설정 — 위험 명령어만 차단합니다
Claude Code는 기본적으로 민감한 작업마다 허가를 물어봅니다. 명확히 위험한 명령어만 deny 리스트로 막고, 나머지는 모두 자동 승인합니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
{
"permissions": {
"deny": [
"Bash(rm -rf*)",
"Bash(sudo rm*)",
"Bash(DROP TABLE*)",
"Bash(DROP DATABASE*)",
"Bash(truncate *)",
"Bash(git branch -D*)",
"Bash(git clean -f*)"
],
"defaultMode": "bypassPermissions"
}
}
rm -rf, DROP TABLE, 강제 브랜치 삭제처럼 돌이킬 수 없는 명령어만 선별해서 막습니다. 그 외엔 Claude가 알아서 실행합니다. 매번 허가 팝업에 응답하는 번거로움 없이 작업 흐름이 끊기지 않습니다.
4. 메모리 시스템 — 피드백 누적
Claude Code는 대화가 끝나면 컨텍스트를 잃습니다. 이를 보완하기 위해 .claude/memory/ 디렉토리에 피드백을 파일로 기록합니다.
1
2
3
4
5
~/.claude/projects/{project-path}/memory/
MEMORY.md ← 인덱스 (대화 시작 시 자동 로딩)
feedback_xxx.md
feedback_yyy.md
...
각 피드백 파일에는 규칙과 함께 Why(이유)와 How to apply(적용 기준)를 함께 적어둡니다. 이유를 알아야 Claude가 엣지 케이스에서도 올바르게 판단할 수 있습니다.
1
2
3
4
5
6
7
8
---
name: rubocop 훅 결과 확인
---
.rb 파일을 저장한 후 rubocop 훅 출력을 반드시 확인한다.
**Why:** bundle exec rubocop은 Gemfile에 없어 실패. 같은 실수가 반복됨.
**How to apply:** rubocop 실행 시 bundle exec 없이 rubocop 단독으로 사용.
피드백은 글로벌(~/.claude/CLAUDE.md)과 프로젝트별로 분리해서 관리합니다. 한 번 교정하면 다음 세션에 같은 말을 반복하지 않아도 됩니다.
5. 워크플로우 도구
Plannotator
플랜을 텍스트로 읽는 대신 인터랙티브하게 어노테이션할 수 있는 플러그인입니다. 구현 전 계획을 시각적으로 검토하고, PR 코드 리뷰에도 활용합니다.
/wrap — 세션 마무리 루틴
세션이 끝날 때 TODO.local.md와 CLAUDE.local.md 업데이트 여부를 Claude가 검토합니다. 작업 맥락이 다음 세션에 이어지도록 합니다.
/sync-test — 테스트 파일 동기화
앱 파일을 수정할 때 대응하는 테스트 파일을 찾아 함께 수정하고 테스트를 실행합니다.
체인 PR + 1PR 1commit
- 개발 단위 하나 = 커밋 1개 = PR 1개
- 스크립트로 체인 브랜치 rebase 및 PR 생성을 관리합니다
- 의존성 있는 작업을 순서대로 쌓아올리고 각각 독립적으로 리뷰할 수 있습니다
6. 모델 분리 — 작업에 맞는 모델 사용
Claude Code는 서브에이전트를 spawn할 때 모델을 지정할 수 있습니다.
- Sonnet (기본) — 복잡한 기능 개발, 설계 판단
- Haiku (서브에이전트) — TODO 조회·수정 같은 단순 파일 작업
간단한 작업은 Haiku 서브에이전트에 위임해서 비용을 줄입니다. 어떤 모델이 처리하는지 신경 쓰지 않아도 됩니다.
7. TODO 관리
코드 내 TODO 주석 대신 .claude/TODO.local.md 단일 파일로 관리합니다.
- Claude는 이 파일만 읽고 답변합니다 (코드 grep 안 함)
- 완료 처리는 사용자가 명시적으로 선언할 때만 이루어집니다
- 섹션: Pending / Done
정리
| 레이어 | 도구 | 효과 |
|---|---|---|
| 컨텍스트 | CLAUDE.local.md, rules/ | 세션마다 재설명 불필요 |
| 자동화 | Hooks (PostToolUse, Stop) | 저장 즉시 lint·테스트, 완료 알림 |
| 피드백 누적 | Memory 시스템 | 교정이 다음 세션에 이어짐 |
| 권한 | bypassPermissions + deny | 흐름 끊김 없이 안전하게 |
| 워크플로우 | Plannotator, /wrap, 체인 PR | 계획·마무리·PR 관리 |
| 비용 | 모델 분리 (Sonnet/Haiku) | 단순 작업은 Haiku |
| TODO | TODO.local.md | 단일 파일, 명시적 관리 |
