AI와 함께 일하며 복리처럼 쌓아 성장하는 법
9 hours ago
1
- AI와의 협업에서 컨텍스트 제공, 취향 설정, 검증 자동화, 위임 확대, 피드백 루프라는 다섯 가지 원칙을 체계적으로 정리한 실무 가이드
- 모든 작업 산출물(코드, 문서, 분석, 결정)이 다음 세션의 컨텍스트로 누적되고, 교정 사항이 설정에 반영되어 미래 오류를 줄이는 복리 구조
- CLAUDE.md, 스킬 파일, 가이드 등을 활용해 모델의 행동과 워크플로를 코드처럼 관리하는 구체적 방법 제시
- 병렬 세션 운영, 모델 간 상호 검증, 원격 제어 등으로 작업 처리량을 확장하는 위임 전략 포함
- 이 원칙들은 AI뿐 아니라 인간 팀 협업에도 동일하게 적용 가능한 범용적 프레임워크
컨텍스트를 인프라로 구축
- 모든 코드를 ~/src에, 지식 작업을 ~/vault(projects/, notes/, kb/ 등)에 정리하면, 모델이 grep이나 glob으로 컨텍스트를 검색하기 쉬워짐
- 조직의 컨텍스트(Slack, Drive, Mail 등)를 MCP(Model Context Protocol) 로 모델에 연결 가능
- 프로젝트별 INDEX.md를 유지하며, 각 항목에 URL, 담당자, 내용 설명을 주석으로 기록
- 단순 URL 목록은 모델이 모든 링크를 열어봐야 하므로, 주석을 달아두면 컨텍스트 낭비를 방지
- 새 세션마다 모델은 백지 상태에서 시작하므로, 프로젝트별 CLAUDE.md를 신입 온보딩 문서처럼 작성해야 함
- 약어 용어집, 프로젝트 코드네임, 동명이인 구분 등을 포함
- INDEX.md → TODOS.md → 특정 주제 노트 순으로 읽기 순서를 지정
- 메모리 레이어를 두 가지로 분리 운영
- ~/vault: 프로젝트 상태, 산출물, 도메인 지식 등 사실 정보(facts) 저장
- ~/.claude(CLAUDE.md, skills/, guides/): 선호도, 워크플로, 개인 취향 등 설정(configuration) 저장
취향을 설정으로 인코딩
-
~/.claude/CLAUDE.md 활용
- 모든 세션 시작 시 Claude가 읽는 행동 계약서 역할
- 직접적으로 말하기, 동의하지 않을 때 반박하기, 불확실할 때 솔직히 말하기, 실패 시 근본 원인 조사 후 재시도, 작업 범위 밖 리포맷 금지 등 행동 규칙 포함
- 새로운 시스템이나 도메인의 핵심 용어가 나오면 1~2문장으로 설명하는 teaching 섹션도 설정 가능
-
디렉터리별 스코프 구분
- 글로벌(~/.claude/CLAUDE.md): 행동, 장기 목표, 학습 선호 등 모든 곳에 적용되는 설정
- 레포 루트: 린팅, 네이밍, PR 컨벤션 등 레포별 규칙
- 프로젝트 디렉터리: 디렉터리 구조, 도메인 지식 등 프로젝트 특화 컨텍스트
- Claude Code는 하위 디렉터리에서 시작하면 트리를 올라가며 각 CLAUDE.md를 로딩
-
CLAUDE.md가 길어질 때의 분리 전략
- 긴 CLAUDE.md는 매 세션마다 전체를 로딩하는 컨텍스트 세금이 됨
- @import 대신, CLAUDE.md에 "관련 시 읽기" 형태로 가이드 파일 경로만 명시하여 지연 로딩(lazy loading) 구현
- 예: 문서 작성 시 ~/.claude/guides/writing.md, 평가 작업 시 ~/.claude/guides/evals.md 등
-
주 1회 이상 반복 작업은 스킬로 전환
- 스킬은 이름, 트리거, 절차를 담은 마크다운 워크플로 파일
- /polish: 아티팩트 diff를 보고, 메트릭이 있으면 eval 실행, 브라우저 렌더링이면 Chrome으로 확인, 아니면 코드 실행 후 출력/에러 확인 → 반복 후 PR 초안 작성
- /write: 아웃라인 인터뷰 → 리서치 서브에이전트 생성 → 초안 작성 → 적대적 비평가로 피드백 → 반복
- /daily: 캘린더, Slack, PR, 전일 로그를 읽고 오늘의 우선순위 작성
- SKILL.md는 워크플로와 라우팅에 집중하고, 템플릿·스크립트 등 지식은 별도 파일로 분리하여 필요 시에만 로딩
-
스킬 부트스트래핑 방법
- 작업을 한 번 대화형으로 수행한 뒤, 모델에게 스킬로 만들어 달라고 요청
- 동일하거나 유사한 작업에 스킬을 실행하고, 출력 교정은 같은 세션 내에서 수행
- 모델에게 교정과 피드백을 바탕으로 스킬을 업데이트하도록 요청
- 원하는 출력의 예시를 제공하여 패턴(코드 구조, 문서 구조와 톤)을 추출하도록 할 수도 있음
-
트랜스크립트를 통한 스킬 개선
- 첫 버전은 원본 세션에 과적합(overfit) 되는 것이 정상
- SKILL.md를 직접 편집하지 말고, 세션 내에서 교정하여 before-and-after 쌍이 트랜스크립트에 축적되도록 함
- 출력이 만족스러우면 모델에게 피드백을 스킬에 병합하도록 요청 → 수 라운드 후 스킬이 수렴
-
모든 작업에 이 컨텍스트가 필요한 것은 아님
- 브레인스토밍, 탐색, 초안 작업에는 심플 모드(CLAUDE_CODE_SIMPLE=1 claude) 사용
- CLAUDE.md는 로딩되지만 에이전트 하네스(훅, 스킬, 도구 루프)는 비활성화 → 모델과 더 가깝게 사고 가능
자율성을 위한 검증
-
검증을 왼쪽으로 이동(shift left)
- 검증을 사다리 구조로 구성: 아래쪽은 저렴하고 결정적, 위쪽은 비용이 높고 판단이 필요
- 가장 아래 단계: 모델이 수정한 파일에 ruff format, ruff check --fix를 실행하는 post-edit 훅 → 결정적이며 토큰 비용 없음
- 상위 단계: 테스트, eval, LLM 리뷰 등
-
모델이 스스로 작업을 검증할 수 있도록 구성
- 시스템이 메트릭을 생산하면 모델이 eval을 직접 실행하여 최적화
- 브라우저 렌더링 출력이면 Claude in Chrome으로 검사
- Docker 이미지 빌드 시 에러를 읽고 Dockerfile을 수정 후 재빌드
- 대시보드 구축 시 툴팁 렌더링, 라벨 겹침, 수치와 내러티브 일치 여부를 Chrome에서 확인
-
장시간 작업에는 모델이 모델을 감시
- 긴 세션은 오류가 누적되며 드리프트 발생 가능
- 해결책: 두 번째 세션을 프레시 컨텍스트로 실행하여 원본 스펙과 1차 세션의 최근 턴을 비교
- tmux 두 패널 구성: 하나는 1차 개발, 하나는 페어 프로그래머
- 공유 파일에 초기 지시와 후속 프롬프트를 추가하며, 페어 프로그래머가 주기적으로 확인
- 실행 드리프트(execution drift): 모델이 작업을 올바르게 수행하는지 — 에러 무시, 잘못된 메트릭 보고, 스펙 이탈 등 전술적 점검 → 자주 확인
- 방향 드리프트(direction drift): 모델이 올바른 작업을 하고 있는지 — 원래 의도를 오해하고 잘못된 것을 만드는 전략적 문제 → 가끔 확인
위임을 통한 확장
-
점점 더 큰 작업 단위를 위임
- 짧은 작업과 빠른 피드백의 페어 프로그래밍 방식은 빠른 반복, 탐색적 분석, 프로토타이핑에 적합
- 더 강력한 모델에게는 의도, 제약 조건, 성공 기준을 사전에 설명하고 모델이 end-to-end로 실행하도록 위임해야 함
- 검증할 수 없는 것은 위임할 수 없으므로, 성공 기준과 메트릭 정의가 선행 필요
- 예시: "eval 스위트별 격리 컨테이너를 빌드하고 스모크 테스트 → 전체 실행 → 메트릭과 트랜스크립트 로깅 → 서브에이전트로 정확성 확인 → n회 반복으로 신뢰 구간 산출 → 리포트 생성 후 Slack으로 결과 전송"
-
병렬 세션 운영과 병목 파악
- 큰 작업 위임으로 동시에 3~6개 세션 병렬 실행 가능
- 병목이 "작업 수행"에서 "명확한 스펙 작성과 빠른 출력 리뷰" 로 이동 — 중간 단계가 비어가는 구조
- 병렬 세션이 같은 레포를 공유할 경우, git worktrees를 사용하여 각 세션이 독립적 체크아웃 확보
-
세션 관찰 용이성 확보
- stop hook: 세션 완료 시 사운드 재생 (macOS에서 afplay로 Glass.aiff 재생)
- tmux 윈도우 타이틀: 상태 이모지(⏳ 작업 중, 🟢 완료)와 Haiku가 생성한 짧은 레이블로 각 패널 식별
- Claude Code 상태 줄: 컨텍스트 사용량과 현재 모드 표시
-
AFK 중에도 체크인 가능
- Claude Code의 /remote-control 기능으로, 이동 중 Claude 앱의 코드 탭에서 실행 상태를 확인하고 막힌 세션에 추가 컨텍스트나 새 지시를 제공 가능
- 세션이 몇 시간 동안 유휴 상태로 방치되는 것을 방지하되, 긴급한 경우에만 사용
피드백 루프 닫기
-
공개적으로 작업하여 컨텍스트를 풍부하게 유지
- 공유 문서, 레포, 채널에서 작업하면 모델을 포함한 모든 팀원이 컨텍스트를 활용 가능
- 간단한 테스트: "새 팀원이 공유된 컨텍스트만으로 지난주 내 작업을 재현할 수 있는가?" — 그렇지 않다면 중요한 컨텍스트가 머릿속에만 있는 것
- CLAUDE.md에 실질적 작업 완료 시 워크로그 채널에 짧은 업데이트와 아티팩트 링크를 자동 게시하도록 지시
-
트랜스크립트를 마이닝하여 설정 업데이트
- 과거 세션 트랜스크립트를 모델에게 읽히면 갭을 발견 가능
- 약 2,500개의 과거 사용자 턴을 스캔한 결과, 상당 비율이 "can you also…", "did you check…", "still wrong" 등의 표현을 포함
- 이는 모델이 자발적으로 했어야 할 작업이거나, 검증 단계가 누락/오작동한 것을 시사
- 교정은 세션 내에서 수행하여 트랜스크립트를 다음 CLAUDE.md나 스킬 업데이트의 입력 데이터로 활용
-
주기적으로 리팩터링과 정리
- 설정이 늘어나면 서로 겹치거나 충돌 가능
- 모델이 규칙을 무시하면 다른 규칙과 모순 때문일 수 있으므로, 각 규칙이나 선호도는 정확히 한 곳에만 존재하도록 리팩터링(중요 지시는 메인 CLAUDE.md에 반복 가능)
- 흩어진 디렉터리별 settings.json을 ~/.claude로 통합 정리
결론
- 구체적인 설정은 모델이 발전하면서 바뀔 수 있지만, 좋은 컨텍스트 제공, 취향 인코딩, 저비용 검증, 더 많은 위임, 피드백 루프 닫기라는 원칙은 유효
- 이 과정은 결국 협업자를 피드백 한 번에 하나씩 훈련시키는 것이며, 인간 팀과의 협업에도 동일하게 적용 가능
- 개인 도구에 국한되지 않고, 에이전트 하네스 설계, 팀 규범 설정, 조직 인프라 구축에도 같은 원칙 적용 가능
-
Homepage
-
Tech blog
- AI와 함께 일하며 복리처럼 쌓아 성장하는 법