클로드코드 잘 쓰고 있나? AI에게 채점시켰더니 60점 만점에 29점

미리 3줄로 보면
  • 무엇을 했나: 「내가 클로드코드를 잘 쓰고 있나」를 AI에게 물었습니다. 채점 기준까지 AI가 정하게 했습니다
  • 결과: 6개 축 중 넷이 4점 이하. 만드는 쪽은 9점인데, 굴리는 쪽이 2~4점이었습니다
  • 그래서: 처방 다섯 개를 받았습니다. 전부 30분 안에 되는 것들이고, 아래에 하나씩 풀어 뒀습니다
창을 여러 개 띄워놓고 어디서 무슨 작업을 했는지 헷갈려 하는 딱따구리 캐릭터
창을 여러 개 띄워놓고 어디서 무슨 작업을 했는지 헷갈려 하는 딱따구리 캐릭터 (AI 생성 삽화)

혹시 이런 상황인가요?

약 1년전 바이브코딩 초기에 전 GUI 환경(코덱스, 클로드코드 데스크탑 앱)에서만 작업했고, 이후에 git bash → PowerShell 기본 터미널 CLI 환경에서 작업했습니다. 그러다 최근엔 VS Code 안에 터미널을 둘로 쪼개 클로드코드를 띄우고, 파워쉘 창을 더 열고, 데스크탑 앱까지 켜두면서 여러 작업을 동시에 진행하고 있습니다. 그런데 창이 4~5개가 되니까 ‘골치’가 아파집니다. ‘아까 그 파일 고친 게 왼쪽이었나 오른쪽이었나.‘

더 불안한 건 따로 있습니다. 몇 달을 써도 내가 이 도구를 제대로 쓰고 있는 건가에 답이 안 나옵니다. 잘 쓴다는 증거도, 못 쓴다는 증거도 없죠.

저는 수학 과외에 쓸 도구를 만들려고 바이브코딩을 시작했습니다. 학습리포트 생성기에서 오답 관리, 성장 그래프로 늘면서 프로젝트의 크기, 진행 프로젝트의 개수도 그만큼 늘었죠. 그러다 깨달았습니다. 학생 실력은 분석하면서, 정작 제 실력은 객관적으로 평가해 볼 생각을 못해본거죠.

창 네 개를 사람이 직접 오가며 작업을 나누고 결과를 모으는 구조를 화살표로 나타낸 개념도
창 네 개를 사람이 직접 오가며 작업을 나누고 결과를 모으는 구조를 화살표로 나타낸 개념도

그래서 AI에게 채점을 맡겼습니다

기준이 없으면 만들면 됩니다. 저는 기준까지 AI에게 만들라고 시켰습니다. 실제로 이렇게 물었습니다.

내가 클로드코드를 ‘잘’ 사용하고 있는건지 모르겠어. 잘 사용한다는 기준을 너가 설정하고, 아래 내가 작업하는 방식을 참고해서 내가 클로드코드를 ‘잘’ 사용하는지 점검해줘. 아부 없이, 거짓 없이, 뼈때리는 간결한 문장으로 분석 결과를 보여줘.

그 아래에 제 작업 방식을 적어 붙였습니다. 창을 네 개 쓴다는 것, 파일탐색기 대신 윈도우 폴더를 여러 개 띄운다는 것까지요.

신경 쓴 건 둘입니다. 기준을 제가 주지 않은 것 — 제가 정하면 제가 잘하는 것만 기준이 되니까요. 그리고 “아부 없이”를 명시한 것. 이 한마디가 없으면 AI는 좋은 말부터 합니다.

뜻밖이었던 건 AI가 답부터 하지 않았다는 점입니다. 시키지도 않았는데 제 설정 파일과 대화 기록을 직접 열어보고 “근거부터 봤습니다”로 시작하더군요.

6축 채점표 — 60점 만점에 29점

AI가 세운 기준은 6개 축이었고, 제 점수는 이렇게 나왔습니다.

#축질문점수
1반복의 자산화두 번 한 일이 훅·스킬·문서가 되는가9/10
2검증 루프성공 기준이 사람 눈이 아니라 코드인가7/10
3위임의 폭병렬 작업을 에이전트가 지는가, 사람이 지는가4/10
4컨텍스트 위생세션을 짧게 끊는가3/10
5마찰 제거권한·도구 설정이 길을 막지 않는가4/10
6상태 가시성“지금 어디까지”를 화면이 말해주는가2/10
이 점수는 측정치가 아닙니다

6개 축과 각 점수는 AI의 주관적 채점입니다. 아래 나오는 파일 개수·용량·횟수는 실제로 잰 값이지만, 그걸 “9점”이나 “3점”으로 환산한 건 AI의 판단입니다. 두 가지를 섞어 읽지 않는 게 좋습니다.

숫자보다 모양이 중요합니다. 만드는 쪽은 상급, 굴리는 쪽은 낙제입니다.

1번 축이 9점인 건 제 폴더에 훅 스크립트 7개, 스킬 3개, 검수용 에이전트 2개, 86줄짜리 규칙 파일이 실제로 있어서입니다. 짐작이 아니라 AI가 열어서 센 개수죠.

훅(hook)

클로드코드가 특정 시점(세션 종료 등)에 자동 실행하는 스크립트입니다. 저는 세션이 끝날 때마다 그날 작업을 개발일지로 남기는 데 씁니다.

6번 축이 2점인 이유는 허무할 만큼 단순했습니다. 화면 어디에도 지금 상태가 안 적혀 있다는 것. 어느 프로젝트인지, 어느 브랜치인지, 대화가 얼마나 찼는지가 전부 제 머릿속에만 있었습니다.

뼈 때리는 세 줄

AI가 요약한 진단은 이랬습니다. 셋 다 제 파일과 설정을 근거로 댔습니다.

첫째, 세션을 안 끊는다 — 이게 1번 문제다.
제 대화 기록 파일 7개 중 4개가 34MB, 30MB, 29MB, 18MB였습니다. 보통 작업 하나는 수백 KB에서 몇 MB라고 하죠. 며칠씩 끌고 다니면 요약해 압축하는 기능이 대신 돌기 때문에, AI는 요약본으로 일하고 저는 스크롤로 찾게 됩니다. 세션이 헷갈린다는 건 창이 4개라서가 아니라 세션 하나가 3만 줄이라서라는 겁니다.

둘째, 오케스트레이터를 사람이 하고 있다.
터미널 2 + 파워쉘 1 + 데스크탑 앱 1. 네 세션의 라우터이자 통합자가 저였던 겁니다. 클로드코드는 그 일을 하라고 서브에이전트와 백그라운드 작업을 주는데, 저는 동시 실행 설정까지 켜놓고 정작 병렬은 손으로 돌리고 있었죠. 창을 늘려 병렬화하는 건 위임이 아니라 자기 착취라는 문장에서 잠깐 멈췄습니다.

셋째, 권한 설정이 고장난 채 방치돼 있다.
매번 물어보는 게 귀찮아 허용해둔 규칙들이 한 번도 안 먹고 있었을 거라는 지적입니다. 처방 3번에서 자세히 다루겠습니다.

처방 다섯 — 전부 30분 안에

여기부터가 가장 가져갈 만한 부분입니다. AI가 효과 순으로 다섯 개를 줬습니다.

1. 상태줄(statusline)을 단다

2점짜리 축을 한 번에 올립니다. 화면 맨 아래에 프로젝트·브랜치·모델·컨텍스트 비율이 늘 떠 있으면 “여기가 어디 세션이더라”가 사라집니다. 제가 한 건 statusline 달아줘 두 마디였고, 만드는 건 AI가 했습니다.

클로드코드 화면 아래쪽에 프로젝트명·세션 구분자·브랜치·모델·컨텍스트 사용률 게이지가 한 줄로 표시된 상태줄
클로드코드 화면 아래쪽에 프로젝트명·세션 구분자·브랜치·모델·컨텍스트 사용률 게이지가 한 줄로 표시된 상태줄

같은 프로젝트를 창 두 개로 열어도 세션 구분자 다섯 글자가 다릅니다. 다는 과정에서 AI가 두 번 틀렸는데, 그 이야기는 다음 편에서 다루겠습니다.

2. /clear를 습관으로 만든다

작업이 끝나면 끊는다는 겁니다. AI가 준 신호는 「PR 머지 = /clear」였고 저는 그대로 따르기로 했습니다. 다만 얼마나 자주 끊을지는 감으로 정할 일이 아닙니다. 판정 기준은 컴팩션 횟수예요.

컨텍스트와 컴팩션

컨텍스트는 AI가 지금 들고 있는 대화 내용이고 담을 수 있는 양에 상한이 있습니다. 넘칠 것 같으면 지난 대화를 요약해 압축하는데, 이걸 컴팩션이라고 합니다. 뼈대는 남지만 “그때 왜 그렇게 결정했는지”가 사라집니다.

내 세션은 명령 한 줄로 확인됩니다. 최근 기록에서 압축 흔적을 세는 건데, 파일 안쪽 형식이라 작성 시점(2026년 9월) 기준입니다.

$f = Get-ChildItem "$HOME\.claude\projects\*\*.jsonl" | Sort-Object LastWriteTime -Descending | Select-Object -First 1
(Select-String -Path $f -Pattern '"subtype":"compact_boundary"' -SimpleMatch).Count

Git Bash나 WSL이면 이 한 줄입니다.

grep -c '"subtype":"compact_boundary"' "$(ls -t ~/.claude/projects/*/*.jsonl | head -1)"

0이면 건강입니다. 한 번이라도 돌았다면 그 지점이 원래 끊었어야 할 자리라는 뜻이지, 몇 번인지가 등급은 아닙니다.

찾는 문자열을 줄여 쓰면 안 됩니다

따옴표를 뺀 짧은 형태로 세면 그 단어를 대화 중에 언급하기만 해도 같이 세어집니다. 두 형태를 나란히 돌려보게 했더니, 압축이 없던 세션에서 짧은 쪽은 수십 건, 온전한 형태는 0을 뱉었습니다.

3. 권한 설정을 고친다 — /fewer-permission-prompts

제 설정 파일에 이런 규칙이 있었습니다.

"allow": [
  "Bash(git add *)",
  "Bash(git commit *)"
]

AI는 권한 문법이 Bash(git add *)가 아니라 Bash(git add:*) 여야 한다고 했습니다. 콜론 하나 차이죠. 그 말이 맞다면 허용해뒀다고 믿는 규칙이 한 번도 적용된 적 없는 채로 매번 확인 창을 눌러온 셈입니다.

이 대목은 아직 가설입니다

나중에 찾아보니 두 형태가 다 유효한 문법으로 나옵니다 — 콜론형은 앞자리 매칭, 공백형은 와일드카드 매칭입니다. 그러니 이 지적 자체가 틀렸을 수 있습니다. 확정된 사실로 옮기지 마세요. 다만 아래 처방은 어느 쪽이든 무해합니다.

한 줄이 더 있었습니다. 한 번 쓰고 만 긴 명령어가 통째로 영구 허용 목록에 박혀 있더군요. “항상 허용”을 잘못 눌러 쌓인 찌꺼기죠.

손으로 고치지 말고 스킬에게 시키라는 게 처방입니다.

  • 이렇게 씁니다 — /fewer-permission-prompts 한 줄이면 됩니다. 내장이라 설치할 건 없습니다(작성 시점 기준).
  • 이런걸 해줍니다 — 내 대화 기록을 훑어 자주 쓰는 읽기 전용 명령을 찾아, 우선순위를 매겨 .claude/settings.json에 문법이 맞는 허용 목록으로 깔아줍니다. 추측이 아니라 실제 사용 이력에서 뽑습니다.
  • 안 해주는 것 — 읽기 전용 위주라 git commit 처럼 바꾸는 명령은 열어주지 않습니다. 찌꺼기 항목도 파일이 열린 김에 눈으로 지우면 됩니다.

정직하게 적자면 저는 아직 안 돌렸습니다. 순서상 상태줄이 먼저였거든요.

4. VS Code 워크스페이스 하나로 묶는다

제가 “파일탐색기를 못 쓴다”고 적었더니 AI가 원인을 짚었습니다. 폴더들이 서로 다른 드라이브에 흩어져 있어서였습니다. 코드는 C: 레포에, 개발일지와 초안은 D:의 다른 폴더에 있거든요. VS Code 탐색기는 열어둔 폴더 하나만 보여줍니다.

VS Code 탐색기에 레포 폴더 하나만 보이는 상태
VS Code 탐색기에 레포 폴더 하나만 보이는 상태

해법은 멀티루트 워크스페이스입니다. 흩어진 폴더를 한 작업공간으로 묶으면 탐색기에 나란히 뜹니다. 드라이브가 달라도 됩니다.

  1. 폴더 하나를 평소대로 엽니다.
  2. 파일 → 작업 영역에 폴더 추가(Add Folder to Workspace)로 나머지를 하나씩 더합니다.
  3. 파일 → 다른 이름으로 작업 영역 저장(Save Workspace As)으로 저장합니다.
  4. 다음부터는 그 파일만 열면 폴더가 전부 함께 뜹니다.
같은 탐색기에 세 폴더가 나란히 뜬 상태
같은 탐색기에 세 폴더가 나란히 뜬 상태

저장된 제 파일입니다. 손으로 만들어 열어도 똑같이 동작합니다.

{
  "folders": [
    { "path": "log-to-contents" },
    { "path": "D:/AI/claude/L2C/devlog" },
    { "path": "D:/AI/claude/L2C/output" }
  ],
  "settings": {}
}

첫 줄만 상대경로인 건 이 파일을 그 폴더 바로 옆에 저장해서입니다. 덕분에 계정명이 안 들어가서 그대로 공유해도 됩니다.

제일 크게 달라진 건 탐색기가 아니라 검색이었어요. 한 번에 세 폴더를 훑습니다.

5. 창 넷을 둘로 줄인다

앞의 넷이 이걸 위한 준비입니다. 하나는 지금 하는 일, 하나는 관측이나 발행. 세 번째 일이 생기면 창을 늘리지 말고 서브에이전트나 백그라운드 작업으로 넘기라는 겁니다.

이 진단, 다른 프로젝트에도 맞을까

채점받은 건 프로젝트 하나였는데, 다른 프로젝트는 주로 터미널에서 작업하거든요. 그래서 되물었더니 AI가 답을 하다 말고 자기 앞 문장을 정정했습니다. 기록 파일이 크다는 건 컨텍스트가 터졌다는 뜻이 아니라 오래 살았다는 뜻이라고요.

파일 크기로 판정하면 오진에 이르고 컴팩션 횟수로 판정하면 정답에 이르는 두 경로를 비교한 도식
파일 크기로 판정하면 오진에 이르고 컴팩션 횟수로 판정하면 정답에 이르는 두 경로를 비교한 도식

컴팩션 횟수로 다시 재니 결론이 뒤집혔습니다. 터미널 프로젝트 중 둘은 0회였고 나머지도 두 번뿐이었습니다. 진짜 문제는 데스크탑 앱으로 쓰던 이 프로젝트였고, 세션 하나가 52일을 살았죠. 처방 2번의 기준이 MB가 아니라 컴팩션 횟수인 이유입니다.

같은 실수를 막는 체크리스트

  • 채점 기준을 내가 정하지 않는다. 내가 정하면 내가 잘하는 것만 기준이 된다
  • 답이 이상하면 납득될 때까지 되묻는다. 두 번째 되물음에서 결론이 뒤집혔다
  • /clear는 시계가 아니라 작업이 끝날 때 누른다
  • 허용 목록은 손대기 전에 스킬에게 먼저 시킨다

FAQ

Q. /clear를 누르면 한 작업이 날아가나요?
아니요. 기록은 파일로 남고 코드도 그대로입니다. AI가 들고 있던 대화 내용만 비웁니다.

Q. 제 환경에서도 해볼 수 있나요?
다음 편 끝에 복사해 쓸 진단 발주서 전문을 공개합니다. 7개 축짜리입니다.

한 줄 교훈

AI의 마지막 총평은 이랬습니다.

도구를 만드는 실력은 상위 5%인데, 도구를 쓰는 위생은 하위 30%입니다. 훅·스킬·크리틱 에이전트·워크플로우 문서까지 갖춘 사람이 정작 /clear를 안 누르고 창 4개를 손으로 스위칭하고 있습니다. 당신을 지치게 하는 건 Claude Code의 한계가 아니라 당신이 안 쓰고 있는 Claude Code의 절반입니다.

도구가 부족한 줄 알았는데 이미 있는 걸 안 켜고 있었던 겁니다. 채점 기준이 없으면 못한다는 사실 자체를 모릅니다. 학생한테는 그렇게 강조하면서 정작 저는 몇 달을 무채점이었네요.


다음 편에서 상태줄을 실제로 다는 과정과 7축 진단 발주서 전문을 공개합니다.

댓글 남기기