Post

클로드가 작성한 나의 클로드 사용 현황

요즘에 나는 클로드를 어떻게 쓰고 있는가

클로드가 작성한 나의 클로드 사용 현황

클로드 사용 현황 간만에 써본 나노바나나

배경

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.mdCLAUDE.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
TODOTODO.local.md단일 파일, 명시적 관리

This post is licensed under CC BY 4.0 by the author.