🎯 바쁘시면 이것만 읽어도 돼요
코드를 고쳐주는 대신 질문만 던지는 소크라테스식 리뷰를 클로드코드에 깔고 제 프로젝트 두 개에 돌려봤어요
"백업 있겠지 / 막아놨겠지 / 자동으로 돌고 있겠지" — 세 믿음이 전부 틀렸거나 한 번도 확인 안 한 것이더라고요
그중 제일 섬뜩했던 건, 막아둔 줄 알았던 데이터 보호장치가 사실은 조용히 통과하고 있던 거였어요
👀 이런 분들께 도움돼요
클로드코드한테 "리뷰해줘" 하면 매번 칭찬만 받아서 시시했던 분
자동화나 백업을 만들어두고 "잘 돌고 있겠지" 하고 안 들여다본 분
AI가 만든 안전장치를 그냥 믿고 쓰고 있는 분
코드 실력보다 "내가 뭘 안 보고 있는지"가 더 불안한 분
😮 Before: "리뷰해줘" 하면 늘 칭찬만 돌아왔어요
그동안 클로드코드한테 코드 리뷰를 시키면 잘된 점 먼저 짚고 사소한 개선점 몇 개 주는 식이라, 듣고 나면 기분은 좋은데 남는 게 없었어요. 제가 만들어둔 백업 스크립트나 데이터 보호 훅도 "한 번 만들어놨으니 알아서 잘 막겠지" 하고 그냥 믿고 있었고요.
✨ After: 답을 안 주고 질문만 던지니까 제 가정이 드러났어요
이번 GPTers 클로드코드 스터디에서 스터디장님이 공유해주신 링크 중에 소크라테스식 코드 리뷰(rysweet/amplihack의 socratic-review)가 있었어요. 그날 여러 링크를 한꺼번에 받았는데, 그중 에 제 작업이랑 제일 잘 맞을 것 같아서 먼저 골라본 게 이거였고요. 코드를 고쳐주는 게 아니라 파인만 기법처럼 "이건 왜 이렇게 했어요?", "이게 실패하면 어떻게 돼요?" 하고 질문만던지는 방식이에요. 답을 제가 직접 말하게 되니까, 평소엔 "당연히 되겠지" 하고 넘어가던 가정들이 입 밖으로 나오면서 다 드러나더라고요.
🛠️ 소크라테스 리뷰가 하는 것
설치는 스킬 파일(SKILL.md)이랑 에이전트 하나 받아오면 끝이에요. 쓰는 건 이렇게 돼요.
/socratic-review <파일경로> # 기본 7~10문항 /socratic-review <파일경로> --depth=quick # 빠르게 4~5문항 /socratic-review <폴더경로> --depth=deep # 보안·핵심 코드 15~20문항
코드를 고쳐주진 않아요. 대신 그 코드가 기대는 가정, 실패하는 길목, 안 해본 검증을 질문으로 캐물어요
"이 안전장치, 실제로 뭔가 막은 적 있어요? 로그는 열어본 적 있고요?" 같은 질문이 날아와요
제가 "그건 ~겠지"라고 답하는 순간, 그게 검증 한 번 안 해본 믿음이라는 게 바로 티가 나요
🔨 과정: "~겠지"를 하나씩 직접 열어본 하루
1️⃣ 지적이 아니라 질문이라 빠져나갈 수가 없었어요
처음엔 가볍게 데이터 보호 훅 하나를 quick(4문항)으로 걸었어요. 그런데 첫 질문부터 "이 우회 차단은 코드가 막는 거예요, 아니면 사람을 믿는 거예요?"였어요. 답하다 보니 제 안전장치가 사실은 "클로드를 믿는 장치"였다는 걸 제 입으로 말하게 되더라고요. 지적이었으면 "아 네" 하고 넘겼을 텐데, 질문이라 제가 답을 만들어야 했고 그 과정에서 빈틈이 보였어요.
2️⃣ "백업 있겠지"가 제일 먼저 무너졌어요
리뷰가 "이거 삭제되면 어디서 복구해요?"라고 물었어요. 저는 "깃에 커밋돼 있겠지" 했는데, 막상 따져보니 깃엔 코드만 있고 실제 데이터는 전부 DB에만 있더라고요. 게다가 무료 플랜이라 자동 백업도 없었어요. "되돌릴 수 없어요"라는 경고가 문자 그대로 사실이었던 거죠.
바로 백업 스크립트를 만들어서 첫 백업을 떴는데, 결과가 딱 1000건으로 떨어져서 이상했어요. 알고 보니 DB가 한 번에 1000행까지만 주는 거였고, 페이지를 넘겨가며 받게 고치니까 실제로는 1648건이더라고요. 하마터면 잘린 백업을 "백업했다"고 믿을 뻔했어요.
3️⃣ 😲 하이라이트: 막아둔 줄 알았던 문이 조용히 열려 있었어요
제일 섬뜩했던 건 이거예요. 저한텐 분류해둔 데이터(종결/진행중 같은)를 일괄로 바꾸거나 지우는 걸 막는 보호 훅이 있어요. 예전에 테스트하다가 분류를 통째로 리셋한 사고가 있어서, 그 뒤에 직접 만들어 깔아둔 거였어요. 당연히 "이상한 명령 오면 막겠지" 하고 믿고 있었고요.
그런데 리뷰가 물었어요. "입력이 깨져서 그게 위험한 명령인지 아닌지 판단을 못 하면, 그땐 막아요 통과시켜요?"
코드를 열어보고 등골이 서늘했어요. 입력 파싱이 실패하면 except: sys.exit(0) — 즉 막는 게 아니라 그냥 통과였어요. 그것도 아무 알림 없이 조용히요. 막는 장치인 줄 알았는데, 정작 그 훅이 위험한지 아닌지 판단을 못 하는 순간엔 오히려 문을 열어주고 있던 거예요.
한 방 더 맞았어요. 리뷰가 "그 훅이 지금까지 실제로 뭔가 막은 적은 있어요? 차단 로그(blocked.log) 열어본 적 있어요?" 하고 물었는데, 저는 한 번도 열어본 적이 없었어요. 막힌 적이 있는지조차 모르면서 "잘 막고 있겠지" 했던 거죠.
그 자리에서 fail-open을 fail-closed로 뒤집었어요. 이제 입력이 깨지면 일단 막고, 왜 막혔는지 이유를 띄워요. "조용히 통과"가 아니라 "보이게 차단"으로요.
4️⃣ "돌고 있겠지"도 — 6일간 죽어 있던 자동화
마지막은 매일 자동으로 도는 줄 알았던 동기화 작업이었어요. 리뷰가 "마지막으로 그게 성공한 걸 눈으로 본 게 언제예요?"라고 물었는데, 답을 못 했어요. 로그를 까보니 6일째 매번 조용히 실패 중이었어요. 맥의 권한 정책 때문에 그 실행 방식이 특정 폴더에 아예 접근을 못 하고 있었던 거예요. 실행은 되는데 일은 0건, 에러도 안 띄우는 최악의 무음 실패였어요.
실행 방식을 권한이 있는 쪽으로 옮기고, 그날 낮에 실제로 도는지 눈으로 확인하고 나서야 마음이 놓였어요.
📊 결과
제가 믿고 있던 것
실제로는
조치한 것
백업 되어 있겠지
깃엔 코드만, DB 데이터는 없음 + 무료라 자동 백업 없음
백업 스크립트 2개 신설, 매일 자동 실행
보호 훅이 막아주겠지
입력 깨지면 조용히 통과(fail-open)
차단+알림(fail-closed)으로 전환
자동 동기화 돌고 있겠지
6일간 무음 실패
권한 있는 실행 방식으로 이전·확인
백업은 다 떠졌겠지
1000행에서 잘려 있던 버그
페이지 넘겨 받게 수정(1000→1648건)
리뷰 자체는 한 파일에 quick 4문항, 5~10분이면 끝났는데 나온 게 이만큼이었어요.
💡 효과적이었던 것
질문이라 빠져나갈 데가 없어요. 지적은 "네 고칠게요"로 끝나는데, 질문은 제가 답을 만들어야 해서 가정이 드러나요
"지금 확인 가능한 건 바로 열어본다" 규칙이 컸어요. 로그 열어본 적 있냐는 질문에 말로 넘기지 않고 그 자리에서 파일을 열었더니 사고가 보였어요
리뷰 기록을 한곳에 모아두니, 다음에 또 "~겠지"가 나올 때 패턴이 보여요
⚠️ 이런 건 아쉬웠어요
질문이 날카로운 만큼 답하는 사람이 솔직해야 효과가 나요. "잘 돼요"로 대충 답하면 그냥 넘어가요. 결국 자기 검증을 대신 해주진 않아요
quick(4문항)은 가벼운 대신 깊이가 얕아요. 핵심 코드는 deep으로 가야 하는데 그만큼 답할 게 많아져서, 처음엔 quick으로 감 잡는 걸 추천해요
📋 따라하려면
소크라테스 리뷰 스킬을 받아 클로드코드에 깔아요 (SKILL.md + 에이전트 1개)
제일 안 들여다본 안전장치부터 골라요 — 백업, 보호 훅, 자동 실행 같은 것
/socratic-review <파일> --depth=quick로 가볍게 시작해요"~겠지"라는 답이 나오면 멈추고, 그 자리에서 직접 열어 확인해요 (로그, 실행 기록, 백업 파일 행 수)
고친 내용이랑 드러난 가정을 한 폴더에 날짜별로 기록해둬요
내 다음 목표
남은 프로젝트들의 자동 실행·백업도 같은 질문을 돌려서 "본 적 있는지" 전부 확인하기
새 안전장치는 만들 때부터 "실패하면 막아요 통과해요?"를 먼저 정하고 시작하기
리뷰 기록이 쌓이면, 제가 반복하는 "~겠지" 유형이 뭔지 한 번 정리해보기
끝으로, 이 도구를 짚어주신 스터디장 님께 감사드립니다. 혼자였으면 이런 게 있는 줄도 몰라서 안 깔았을 텐데, 링크 하나가 제 프로젝트 구멍 네 개를 막아줬네요. 받은 링크는 일단 깔아보고 제 코드에 직접 들이대볼 만하더라고요. 마지막까지 유종의 미를 거두게 해주셔서 감사했습니다~~