- 최근 몇 달 동안 다양한 LLM 프로그래밍 에이전트를 실험한 결과 Claude Code가 가장 만족스러운 도구였음
- Claude Code 덕분에 약 12개의 프로그램과 프로젝트를 단기간에 작성했으며, 평소라면 시간 문제로 시작하지 않았을 작업들도 가능해졌음
- 성공적인 활용을 위해서는 명확한 사양서 작성, 프로젝트 구조·빌드·린트 실행법이 담긴 문서 제공, AI 스스로의 코드 리뷰 요청, 그리고 개인화된 글로벌 에이전트 가이드 운용이 핵심
- AI가 작성한 코드는 종종 부정확하거나 비효율적일 수 있으므로, 모든 코드와 테스트 케이스를 반드시 직접 검토하고, 부족한 테스트는 직접 추가하거나 AI에 작성 요청 후 재검토함
- 부록으로 공개한 글로벌 에이전트 가이드에는 단계적 구현 계획, 테스트 주도 개발, 단순성·명확성·실용성 중심의 철학, 품질 기준, 문제 해결 프로세스 등 세부 개발 지침 포함
Claude Code 활용 경험 및 효과
- 최근 수개월 동안 다양한 LLM 프로그래밍 에이전트를 실험했고, 특히 Claude Code 사용 경험이 가장 우수했음
- 문제가 전혀 없는 것은 아니지만, 짧은 시간 내 12개 이상의 프로그램 및 프로젝트를 완성할 수 있었음
- Claude Code 없이 같은 기간에 이 모든 작업을 수행하는 것은 불가능에 가까웠을 것임
- 많은 작업은 시간 소요 문제로 시도조차 하지 않았을 프로젝트였음
Claude Code 활용 전략
- 명확한 사양서 작성
- 프로젝트 시작 전 요구사항과 맥락을 명확히 문서화해 에이전트에게 제공
- 이를 통해 코드 작성 방향과 범위를 분명히 함
- 프로젝트 구조 문서화
- 빌드, 린트, 테스트 실행 방법을 포함한 문서를 마련
- 에이전트가 코드베이스를 더 효과적으로 탐색하고 작업 가능
- 에이전트 코드 리뷰 요청
- Claude Code에게 생성한 코드를 직접 리뷰하게 하여 예상치 못한 개선점이나 버그를 발견
- 개인 글로벌 가이드 활용
- 문제 해결 접근, TDD 적용, 단순성·명확성 유지, 시도 횟수 제한(3회) 등 개인 규칙을 담은
~/.claude/CLAUDE.md를 통해 일관된 개발 프로세스 유지
- 문제 해결 접근, TDD 적용, 단순성·명확성 유지, 시도 횟수 제한(3회) 등 개인 규칙을 담은
LLM 작성 코드 검증
- AI 생성 코드는 종종 논리적 오류, 성능 저하, 불완전한 테스트 등의 문제가 있음
- 작성자는 모든 코드를 수동으로 검토하고 동작을 확인
- 누락된 테스트 케이스를 직접 추가
- 또는 AI에 작성 요청 후 코드·테스트를 다시 검토
- 프로페셔널 환경에서는 PR에 자신의 이름이 들어가는 이상, 최종 품질 책임은 본인에게 있다고 강조
개인 “글로벌” 에이전트 가이드 주요 내용
해당 가이드는 ~/.claude/CLAUDE.md 파일로 관리함
-
철학과 핵심 원칙
- 점진적 진행: 작은 단위로 변경, 항상 컴파일과 테스트 통과
- 기존 코드 학습: 구현 전 코드 패턴 분석 및 계획 수립
- 실용성 우선: 프로젝트 상황에 맞춘 유연한 접근
- 명확성 우선: 읽기 쉽고 의도가 분명한 코드, 불필요한 트릭 회피
-
단순성 정의
- 함수·클래스는 단일 책임
- 조기 추상화 지양
- 복잡성 줄이고 설명 필요 없는 코드 지향
-
작업 프로세스
- 1. 기획 및 단계 설정:
- 복잡한 작업은 3~5단계로 나눠
IMPLEMENTATION_PLAN.md에 기록 - 단계별 목표, 성공 기준, 테스트 케이스, 진행 상태 명시
- 복잡한 작업은 3~5단계로 나눠
- 2. 구현 흐름:
- 이해 → 테스트 작성(빨강) → 최소 구현(초록) → 리팩토링 → 커밋
- 3. 3회 시도 제한 후 재평가:
- 실패 시 시도 내역과 오류, 원인 기록
- 대안 탐색(2~3가지 접근)
- 근본적인 설계·문제 분해 재검토
- 다른 패턴·기능 시도
- 1. 기획 및 단계 설정:
-
기술 표준
- 구성(Composition) 우선, 의존성 주입 활용
- 인터페이스 사용, 테스트 용이성 확보
- 명시적 데이터 흐름
- TDD 권장, 테스트 비활성화 금지
-
코드 품질 규칙
- 모든 커밋은 컴파일 성공, 테스트 통과, 신규 기능 테스트 포함, 코드 스타일 준수
- 커밋 전 포매터·린터 실행, 변경사항 셀프 리뷰, "왜"를 설명하는 커밋 메시지 작성
-
오류 처리
- 빠른 실패와 구체적 메시지
- 디버깅에 필요한 컨텍스트 제공
- 적절한 레벨에서 예외 처리, 예외 은폐 금지
-
의사결정 기준
- 1. 테스트 용이성
- 2. 6개월 후에도 이해 가능한 가독성
- 3. 프로젝트 패턴과의 일관성
- 4. 단순함
- 5. 변경 용이성
-
프로젝트 통합
- 유사 기능 3개 이상 분석
- 기존 패턴·라이브러리 재사용
- 동일한 테스트 유틸리티 사용
- 새 도구 도입 시 강력한 이유 필요
-
품질 게이트
- 모든 테스트 통과
- 프로젝트 규칙 준수
- 린터 경고 없음
- 커밋 메시지 명확
- 구현이 계획과 일치
- TODO에 이슈 번호 포함
-
테스트 지침
- 구현이 아닌 동작 중심 테스트
- 가능하면 테스트당 하나의 단언
- 시나리오를 설명하는 명확한 이름
- 기존 테스트 유틸리티 재사용
- 테스트는 결정론적이어야 함
-
절대 금지
--no-verify로 훅 우회- 테스트 비활성화
- 컴파일 안 되는 코드 커밋
- 검증 없는 추측
-
반드시 수행
- 점진적 커밋
- 문서 지속 업데이트
- 기존 구현에서 학습
- 3회 실패 후 접근 재평가
Claude Code로 제작한 오픈소스 프로젝트
- HTML/XML 인식 리버스 프록시 (cdzombak/xrp)
- VS Code Solarized 테마(라이트/다크) (cdzombak/dzsolarized-vscode)
- Flickr 포토스트림 RSS 생성기 (cdzombak/flickr-rss)
- Lychee 사진 라이브러리 메타데이터 툴 (cdzombak/lychee-meta-tool)
- macOS 스크린락 상태 MQTT 보고 (cdzombak/macos-screenlock-mqtt)
- Lychee Bird Buddy 사진 제목 자동 설정 (cdzombak/lychee-birb-title)
- 로컬 LLM 기반 사진 자동 분류 (cdzombak/lychee-ai-organizer)
- macOS용 소프트웨어 일괄 설치 자동화 (cdzombak/mac-install)
- RSS 서비스 프로젝트 (cdzombak/rss.church)
- Flickr 사진 전체/선택적 내보내기 및 메타데이터 보존 (cdzombak/flickr-exporter)
- 정적 HTML 갤러리 생성기 (cdzombak/gallerygen)