2장 · 저자 검증 기록
서로 독립된 빈 폴더에서 2회 실행 · 2회 모두 자동 검사 전항목 통과 TOP 20 영화명·관객수·매출액 2회 모두 전건 일치 · 1장 확인 목록 7/7 유지 · 최종 확인 2026-08-29
실제로 만들어봤습니다
책에 인쇄된 요청문만으로 기준 자료와 자동 검사가 만들어지는지 확인했습니다.
- 요청문은 책 2장에 나오는 문장을 글자까지 그대로 썼습니다.
- 빈 폴더에서 1장 도착점을 먼저 다시 만든 뒤 같은 세션에서 2장을 이어 붙였습니다. 2장은 확인할 대상이 있어야 성립하기 때문입니다.
- 책에 없는 추가 지시를 보태지 않았습니다.
- 서로 독립된 빈 폴더 2개에서 각각 새 세션으로 돌렸습니다.
2장의 완료 기준은 네 가지입니다. 두 실행 모두 네 가지 전부 통과했습니다.
| 확인 항목 | 실행 2회 | |
|---|---|---|
| 1 | 작업 당시 데이터가 기준 자료로 남았다 (source/kobis-2024-source.xlsx) | 통과 |
| 2 | 보고서를 기준 자료와 대조하는 자동 검사가 만들어졌다 | 통과 |
| 3 | 자동 검사에 실패한 항목이 없다 | 통과 |
| 4 | 1장 확인 목록 7개가 여전히 통과한다 | 통과 |
4번이 이 장의 숨은 기준입니다. 새 작업이 앞 장의 결과를 깨뜨리지 않았는지 확인합니다.
완성된 결과를 공개합니다
2장을 끝낸 상태의 프로젝트
chapters/ch02/source/movie-report/
| 파일 | 무엇인가 |
|---|---|
| build_movie_report.py | movie-report-2024.xlsx를 만드는 코드 |
| source/kobis-2024-source.xlsx | 보고서를 만들 때 사용한 KOBIS 데이터를 작업 당시 상태로 남긴 기준 자료 |
| tests/test_movie_report.py | 완료 조건 일곱 가지를 확인하는 자동 검사 8개 |
| tests/conftest.py | 보고서와 기준 자료를 열어주는 준비 코드 |
세 파일 모두 위 실행에서 Claude Code가 실제로 작성한 것 그대로입니다. 이 폴더만 빈 폴더에 복사해 단독으로 돌려, 보고서가 만들어지고 자동 검사 8개가 모두 통과하는 것까지 확인했습니다. 독자가 받는 코드가 그 자체로 동작합니다.
검사 코드는 실행마다 다르게 생깁니다
이 코드를 여러분의 보고서에 그대로 걸면 돌아가지 않습니다. 그것이 정상입니다.
보고서는 실행마다 시트 이름과 표가 시작하는 위치가 다르므로, 2장의 검사도 각자의 보고서에 맞춰 만들어집니다. 검사가 보고서와 같은 폴더에 사는 이유가 이것입니다.
기준은 코드 모양이 이 Source와 같은지가 아닙니다. 여러분이 정한 완료 조건이 모두 검사에 들어 있고 실패한 항목이 없으면 제대로 만들어진 것입니다.
자동 검사도 해봤습니다
두 실행이 각각 만든 검사를 각자의 보고서에 돌렸고, 두 번 모두 전항목 통과했습니다.
| 항목 | 수 |
|---|---|
| 2장 Source에서 돌린 Test | 8개 |
| 2장에서 새로 추가된 Test | 8개 |
자동 검사는 이 장에서 처음 생깁니다. 그래서 두 수치가 같습니다.
돌린 검사 코드는 2장 Source 안에 있습니다.
| 파일 | 무엇을 확인하는가 | 검사 |
|---|---|---|
| tests/test_movie_report.py | TOP 20 구조, 기준 자료와 영화명·관객수·매출액 일치, 출처와 조회 기준 연도, 요약 관객수 합계 | 8개 |
| tests/conftest.py | 보고서와 기준 자료를 열어 검사에 넘겨주는 준비 코드 | 0개 |
| 실행 | 검사 항목 | 결과 | 기준 자료와 TOP 20 대조 | 1장 확인 목록 |
|---|---|---|---|---|
| 1 | 8개 | 8/8 통과 | 20/20 일치 | 7/7 통과 |
| 2 | 7개 | 7/7 통과 | 20/20 일치 | 7/7 통과 |
검사 항목의 개수는 실행마다 다릅니다. 요청한 완료 조건 일곱 가지는 같은데 Claude가 그것을 몇 개의 항목으로 나누는지가 달라집니다. 두 실행 모두 요청한 조건은 빠짐없이 들어 있었습니다.
실행 2는 요청하지 않은 일까지 했습니다. 검사가 실제로 값의 차이를 잡아내는지 스스로 확인한 뒤 결과를 보고했습니다. 오류를 놓치는 검사는 통과해도 의미가 없기 때문입니다.
저자도 같은 것을 직접 확인했습니다. 보고서를 만드는 코드에서 1위 관객수를 5명 줄여 다시 만든 뒤 검사를 돌렸더니, 기준 자료 대조 검사가 실패하며 어느 순위의 어떤 값이 얼마나 다른지 그대로 출력했습니다.
1위 관객수: 보고서=11913720, 기준자료=11913725
1 failed, 7 passed통과만 하는 검사가 아니라 틀렸을 때 실패하는 검사입니다.
공식 자료와 비교했습니다
검사가 통과하는 것과 숫자가 맞는 것은 다른 문제입니다. 그래서 KOBIS 공식통계에 따로 조회해 보관한 기준 자료와 대조했고, 두 실행 모두 20편의 영화명·관객수·매출액이 전부 일치했습니다.
| 항목 | 값 |
|---|---|
| 1위 파묘 | 11,913,725명 / 115,148,478,414원 |
| TOP 20 관객수 합계 | 78,454,312명 |
| TOP 20 매출액 합계 | 756,816,908,335원 |
이 숫자는 저희 주장이 아니라 공개된 공식 기록입니다. 2026-08-29에 조회한 결과이고, 페이지에 표기된 최종 기준년월은 2026/07이었습니다.
https://www.kobis.or.kr/kobis/business/stat/offc/findYearlyBoxOfficeList.do
직접 확인해볼 수 있습니다
책의 2장을 그대로 따라 하시면 됩니다. 요청문은 chapters/ch02/prompts.md에 책에 나오는 순서대로 있습니다.
2장 Source를 받아 그대로 돌려볼 수도 있습니다.
python3 build_movie_report.py
python3 -m pytest tests/ -v2장 작업이 1장 결과를 깨뜨리지 않았는지는 1장의 검사 코드를 그대로 돌려 확인할 수 있습니다.
python3 verification/chapter-01/artifacts/check7.py <경로>/movie-report-2024.xlsx시트 이름과 열 번호를 알지 못하는 검사이므로 보고서 배치가 저자와 달라도 그대로 돌아갑니다.
여러분이 만든 검사가 제대로 된 것인지 확인하고 싶으면 Claude에게 물어보면 됩니다.
방금 만든 자동 검사에 내가 정한 완료 조건이 모두 들어 있는지 확인해줘.
빠진 조건이 있으면 알려주고, 검사를 통과했다고 미리 말하지 마.저자가 확인할 때 실제로 돌린 파일도 함께 공개합니다.
| 파일 | 무엇인가 |
|---|---|
| artifacts/check-result.json | 2회 실행의 검사 결과와 측정 조건 |
이런 한계가 있습니다
- KOBIS 공식통계는 월마감으로 갱신됩니다. 위 숫자는 2026-08-29 조회 결과이므로 지금 다시 조회하면 보정된 값이 나올 수 있습니다. 이 장이 기준 자료를 따로 남기는 이유가 이것입니다. 보고서는 작업 당시의 기준 자료와 대조합니다.
- 검사 항목의 개수는 실행마다 다릅니다. 2회 실행에서 8개와 7개가 나왔습니다. 정한 조건이 모두 들어 있고 실패한 항목이 없으면 정상입니다.
- 검사는 각자의 보고서에 맞춰 만들어집니다. 다른 사람의 검사를 내 보고서에 걸면 시트 이름이나 표 위치를 찾지 못해 실패합니다. 두 실행이 만든 기준 자료도 시트 이름이 서로 달랐습니다. 어긋난 것은 구조뿐이고 숫자가 다른 경우는 한 건도 없었습니다.