검색
← 모듈 로드맵

참고문헌 검증기 3주차 검수 사례

발행 출처 gpters.org · Aha

클로드 코드사례준전문가

나중에 보기좋아요
공유 · 인쇄
후기댓글

소개

자동 시험 29개를 모두 통과한 내 서비스를 실제 글로 써 보고, 만든 AI가 아닌 다른 모델에게 검수를 맡겼더니 문제가 31건 더 나왔다. 사람 검수에서 10건, 다른 모델(Codex)의 독립 검수에서 20건, 완료 기준 재실행에서 1건이다.

참고문헌 검증기 는 AI가 써 준 글의 참고문헌을 확인하는 웹 페이지다. 글을 붙여 넣으면 참고문헌마다 세 가지를 본다.

  1. 존재 여부 : 그 논문이 실제로 있는지 (Crossref·OpenAlex·KCI 조회)
  2. 서지 정보 : 저자·연도·학술지·제목이 맞는지, 틀렸다면 올바른 값은 무엇인지
  3. 주장 뒷받침 : 그 논문이 인용된 문장을 정말 뒷받침하는지 (내 Claude API 키로 판단)

2주차에 첫 버전을 만들었다. 그때도 완료 기준 29개를 다 통과했는데, 실제 내 글을 넣자 3건 중 2건이 엉뚱한 논문을 '있음'으로 판정했다. 자동 시험이 통과해도 실제로 쓸 수 있는지는 모른다는 걸 그때 배웠다.

그래서 3주차 목표를 만든 사람이 검사하지 않는다 로 잡았다. 스터디 발표 자료의 논지 그대로다. 구체적으로는 세 겹으로 검수하기로 했다.

  • 기계 검수 : 완료 기준 29개를 다시 전부 돌린다
  • 사람 검수 : 내가 실제로 쓰는 글 3개를 넣어 본다
  • 독립 검수 : 코드를 만든 Claude가 아니라 다른 회사 모델(Codex)에게 기준표와 코드만 주고 판정을 받는다

진행 방법

Claude Code가 코드를 만들고 고쳤고, 검사는 세 단계로 나눠 매번 다른 눈이 맡았다. 한 단계에서 문제가 나오면 고치고, 완료 기준 29개를 다시 돌린 뒤 다음 단계로 넘어갔다.

1단계에서 고친 뒤 29개 기준이 내내 통과하는 동안, 사람과 다른 모델이 기준표 밖에서 문제 30건을 더 찾았다.

사용한 도구

도구역할
Claude Code (Opus 5.5)코드를 만들고 고치는 쪽. 완료를 스스로 선언할 권한은 없다
gatekit완료 기준 29개(spec/05-gate.md)를 내가 승인하면 해시가 박힌다. 기준이나 디자인 명세를 고치면 승인이 자동으로 풀린다
Codex CLI 0.163.0독립 검수자. 다른 회사 모델이고, 대화 기록 없이 기준표·요구사항·커밋만 본다. 코드는 고치지 않고 읽고 실행만 한다
Zotero내려받은 .ris 파일을 가져와 서지 정보가 제 칸에 들어가는지 사람이 확인

1단계 — 기계 검수: 완료 기준 29개 다시 돌리기

29개를 전부 돌렸더니 110초 만에 28개 통과 가 나왔다. 실패한 1개는 화면 테스트였다. 10/8에 "저자 이니셜만 다르면 표시하지 않기"로 규칙을 바꾸면서, 계산을 확인하는 테스트만 고치고 화면을 확인하는 테스트는 그대로 두었던 것이다. 그 뒤로 전체를 돌리지 않아 몰랐다.

이 테스트는 승인된 기준이라 AI가 임의로 고칠 수 없어서 내가 골랐다. "테스트를 새 규칙에 맞춘다"를 골랐는데, 나중에 Codex가 "처음 기획한 요구사항 문서에는 아직 옛 규칙이 적혀 있는데, 테스트만 바꿔서 통과시켰다" 고 지적했다. 규칙을 바꾸면 요구사항 문서부터 고쳐야 했던 것이다.

2단계 — 사람 검수: 실제 글 3개

역할이 다른 글 3개를 준비했다. 글1은 지난번에 틀렸던 영어 글, 글2는 한국어 논문을 인용한 글, 글3은 지어낸 참고문헌을 하나 섞은 글이다.

카드를 하나씩 보며 이상한 점을 말하면, Claude Code가 원인을 찾고 고쳤다. 모든 수정에는 내 글의 실제 문장으로 만든 시험을 붙였고, 그 시험이 고치기 전 코드에서는 실제로 실패하는지도 확인했다. 사람 검수에서 나온 문제는 10건이다.

#내가 본 것원인
1이선정과 신혜원(2008)을 뒷사람만 잡음한국어 'A과 B(연도)' 형식을 모름
2교원교육 논문이 '불확실'제목, 학술지 20(4)처럼 쉼표로 이어 학술지까지 제목으로 읽음
3같은 논문이 여전히 '불확실'가정교육 전공↔가정교육전공 띄어쓰기 한 칸 차이
4안도희·김유리(2015)가 '불확실'PDF 복사로 역 량처럼 끊긴 글자로 KCI 검색 0건
5실제 있는 Choe & Yoon(2013)을 '찾을 수 없음'영어로 적은 한국 논문은 KCI를 아예 조회하지 않음
6Baer(2016)을 'DOI가 다른 논문'원문 제목이 겹쳐 적혀 있었는데 다른 논문으로 단정
7백인순(2000) 학위논문이 왜 '불확실'인지 안내 없음조회할 데이터베이스가 없음 (안내 문구 추가)
8Baer 카드에 '학술지 틀림'책 속 장 In 편집자 (Ed.), 책 (Vol. 151, pp. 9–20)을 통째로 학술지로 읽음
9Zotero에 권·호·쪽이 비어 있음내려받기 파일에 그 칸이 없었음
10영어 학술지 이름을 '틀림'으로'Korean Society for Creativity Education'은 창의력교육연구의 영어 이름

5번이 가장 심각했다. 멀쩡한 인용을 없다고 하면 연구자가 지워 버릴 수 있다. 내가 찾아 올린 논문은 공저자와 학술지가 다른 다른 논문이었고, AI가 KCI에서 진짜 논문(최인수·윤지윤, 창의력교육연구 13(2))을 찾아냈다. 원문 PDF로 맞는지 내가 확인했다.

한국의 특성과 직업을 바탕으로 한 한국 창의적 인재의 영향력 지식
한국의 특성과 직업을 바탕으로 한 한국 창의적 인재의 영향력 지식

한국의 특성과 직업을 바탕으로 한 한국 창의적 인재의 영향력 지식

한중일 양국의 창의적 인물과 창의적 인성에 대한 암묵적 지식 비교 연구라는 제목의 책 표지
한중일 양국의 창의적 인물과 창의적 인성에 대한 암묵적 지식 비교 연구라는 제목의 책 표지

한중일 양국의 창의적 인물과 창의적 인성에 대한 암묵적 지식 비교 연구라는 제목의 책 표지

고친 뒤 같은 글을 다시 넣었다. 글2에서는 덤으로 원문 참고문헌의 실제 오류도 찾았다. 이선정·신혜원(2008)의 학술지는 '교원교육'이 아니라 '한국가정과교육학회지'였다.

마지막으로 .ris를 Zotero에 가져왔다. 처음에는 권·호·쪽이 비었고, 고친 뒤에는 채워졌다.

항목 목록을 보여주는 웹페이지의 스크린샷
항목 목록을 보여주는 웹페이지의 스크린샷

3단계 — 독립 검수: 다른 모델(Codex)

코드를 만든 Claude 대화창이 검사하면 대부분 통과가 나온다. 그래서 Codex를 터미널에서 codex exec로 따로 돌렸다. Claude의 의견이나 오늘 대화는 주지 않았고, 아래 지시서와 저장소만 주었다. Codex는 기준 29개를 직접 실행하고, 코드를 읽고, 문제를 직접 재현해서 보고했다.

실행 명령(코드를 고칠 수 없게 샌드박스에서, 실제 학술 DB 조회를 위해 네트워크는 허용):

코드
codex exec -C ~/projects/my-app -s workspace-write \
  -c sandbox_workspace_write.network_access=true \
  -o codex-report.md - < codex-verify-prompt.md

지시서 전문(1차):

코드
너는 이 저장소(참고문헌 검증기, Next.js)의 **독립 검수자**다. 코드를 만든 쪽이 아니다. 만든 쪽의 의견은 받지 않았다. 판정은 네가 직접 실행하고 읽은 증거로만 한다.

검수 대상: 현재 커밋 757934a (작업 트리 깨끗함).

## 규칙
- **소스 코드·시험·명세 파일을 고치지 마라.** 시험 실행이 만드는 산출물(test-results/, spec/design/build-*.png, spec/checks/out/, .next/)만 생겨도 된다.
- `.env` 파일은 **열거나 출력하지 마라** (API 키가 들어 있다). 개발 서버가 알아서 읽는다.
- 3000번 포트를 쓰는 명령은 **한 번에 하나만** 실행하라 (동시에 돌리면 EADDRINUSE 로 실패한다 — 그건 코드 결함이 아니다).
- 외부 네트워크가 막혀 실행할 수 없는 기준은 통과로 올려 적지 말고 `unverified` 와 이유 한 줄로 남겨라.

## 할 일
1. `spec/05-gate.md` 를 읽어라. 완료 기준 29개(`gatekit-criterion` 블록)와 "완료로 보지 않는 조건"이 있다. 각 기준의 argv 를 **직접 실행**하고 expect(종료 코드, stdout 조건, artifacts 존재)로 판정하라.
   - "검사한 대상이 0개", "skipped", 시간 초과는 통과가 아니다.
2. `spec/01-prd.md` 의 수용 기준과 `spec/05-gate.md` 를 비교해서 **기준표의 빈칸**(PRD 에 있는데 어떤 기준도 확인하지 않는 동작)을 찾아라.
3. 마지막 커밋의 변경(`git show 757934a`)을 읽고 **정확성 문제**를 찾아라. 구체적인 입력 → 잘못된 결과로 재현되는 것만 보고하라. 가능하면 `npx --no-install tsx -e '...'` 로 직접 재현해 보라 (외부 API 호출 없이).

## 보고 형식 (한국어, 마크다운)
### 1. 기준별 판정 — 기준 id | 판정(ok / warn / fail / unverified) | 증거
### 2. 기준표의 빈칸
### 3. 코드에서 찾은 문제 — 파일:줄 | 입력 | 기대 | 실제 | 재현했는지
### 4. 한 줄 총평

2차·최종 검수에는 "직전 보고서의 지적이 해결됐는지 직접 재현해서 판정하라"를, 최종 검수에는 "실제 화면과 프로토타입을 1280px·360px에서 나란히 찍어 비교하라"를 더했다.

회차대상 커밋명령 29개Codex 판정직접 재현한 문제
1차757934a모두 통과승인 거부 (ok 27 / warn 1 / fail 1)7건 + 요구사항과 시험이 어긋남
2차1f2b0bb모두 통과승인 거부 (ok 28 / fail 1)6건, 그중 화면 안내 문구가 사실과 다름
최종87ee122모두 통과승인 거부 (ok 27 / warn 1 / fail 1)7건, 그중 디자인 적용 회귀 3건

세 번 모두 명령 29개는 통과했다. 그런데도 Codex는 매번 승인을 거부했다. 기준표가 보지 않는 곳에서 문제를 찾았기 때문이다. 대표적인 것 세 가지:

  • 요구사항과 시험의 어긋남 : 1단계에서 내가 고른 "시험을 새 규칙에 맞춘다"는 요구사항 문서(PRD)와 반대였다. 규칙을 바꾸면서 요구사항을 고치지 않았던 것이다. Codex는 이걸 "시험 범위를 좁혀서 통과시킨 경우"로 판정했다.
  • 화면 안내가 사실과 다름 : "PDF는 브라우저 밖으로 나가지 않습니다"라고 쓰여 있었는데, 실제로는 판단할 때 PDF 본문이 Claude API로 갔다. 문구를 고치자 다음 검수에서 "필요한 문단만"이라는 새 문구도 사실과 다르다고 잡혔고, 결국 실제로 관련 문단 5개만 보내도록 고쳤다.
  • 디자인 적용 회귀 : 새 디자인을 입힌 뒤 API 키 대화상자가 흰 바탕에 흰 글자가 됐다. 29개 기준도, 내 눈 확인도 대화상자는 열어 보지 않아서 놓쳤다.

결과와 배운 점

최종 상태는 완료 기준 29/29(94초), 단위 시험 150개 통과, 사람 검수 통과다. Codex 검수는 3차까지 받고 지적을 반영했다. 다만 3차 지적을 고친 뒤의 독립 재검수는 하지 않았다.

숫자로 본 결과

검수찾은 문제처리
기계 (완료 기준 29개)1건시험 수정, 나중에 요구사항도 수정
사람 (실제 글 3개 + Zotero)10건모두 수정. 학위논문은 조회할 곳이 없어 안내 문구로 처리
독립 (Codex 3회)20건 (같은 지적 1건이 두 번 나옴)19건 수정, 1건은 한계로 기록

검수하는 동안 새 디자인(어두운 틀·흰 종이·주황 포인트·명조 숫자)도 적용했다. 디자인 명세가 바뀌어 승인이 풀렸고, 내가 바뀐 내용을 읽고 다시 승인했다.

시행착오

  • 규칙을 바꾸고 일부 시험만 돌렸다. 오늘에서야 완료 기준 하나가 깨져 있는 걸 알게 되었다.
  • 규칙을 바꾸고 요구사항은 안 고쳤다. 내가 고른 시험 수정을 Codex가 "범위를 좁혀 통과시킨 것"으로 판정했다.
  • 화면 안내 문구가 두 번 연속 사실과 달랐다. 문구를 고치면 동작도 그 문구대로인지 확인해야 한다.
  • 디자인을 바꾼 뒤 대화상자를 열어 보지 않았다. 흰 바탕에 흰 글자를 Codex가 찾았다.
  • Codex가 두 번 실행조차 안 됐다. 한 번은 로그인 만료(codex login으로 해결), 한 번은 설치된 Codex가 설정된 모델보다 오래돼서였다(npm install -g @openai/codex@latest로 해결).
  • 명령 29개는 세 번 다 통과했는데 세 번 다 승인 거부였다. "검사기가 돌았다"와 "확인했다"는 다르다.

도움 받은 글 (옵션)

로미오 스터디장님 gatekit과 gatebound

출처

  • 원문: https://www.gpters.org/nocode/post/reference-verifier-week-3-lfvmxVzHbnjzrDg (2026-10-17 · Aha)

자료 변경 기록을 불러오는 중입니다.

다음 자료를 불러오는 중입니다.

후기

아직 후기가 없습니다

직접 적용한 결과와 주의할 점을 공유하는 공간입니다.

로그인하고 후기 쓰기

참고 자료 · 도구와 릴리스 노트

댓글