+ 자료 한계를 밝히면서 모든 요구를 구체적으로 다뤘다.
- 체크리스트와 질문이 지나치게 길어 집중도가 낮다.
변경이 많을 때 어디부터 볼지 정합니다. 위험한 파일을 먼저 올립니다.
| 분류 | 개발 › 코딩 |
|---|---|
| 태그 | 검토분석개발자 |
Plan how to review this pull request. Produce: 1. **Read order**, with a time budget for each group: - Line by line — auth, money, permissions, data deletion, migrations, anything touching external state - Careful — business logic, error paths, concurrency - Skim — tests, generated code, formatting, renames - Skip — vendored, lockfiles 2. For each file in the first group, what specifically to check. 3. **Scope check** — changes that do not belong to what the PR description says it does. Unrelated changes hidden in a large diff are how things slip through. 4. Questions to ask the author before reviewing, so the review is not spent inferring intent. 5. What the tests appear not to cover, based on what changed. 6. Whether this should have been several PRs, and where the split lines are. *Say this even if it is too late — it changes what the author does next time.* Rules: - *Do not attempt a full line-by-line review of everything.* A review that runs out of attention halfway is worse than one that budgets it. - Judge risk by what the code touches, not by how many lines changed. A three-line permission change outranks a 500-line refactor. - Where the file list alone is not enough to judge, say what you would need to see.
파일 40개짜리 PR을 위에서부터 보면 중요한 걸 놓친다. 이 프롬프트는 위험도로 파일을 줄 세우고, 대충 봐도 되는 것과 한 줄씩 봐야 하는 것을 가른다.
ChatGPT가 불확실성을 명시하며 요구사항을 가장 충실히 충족했다. Gemini는 실용적이나 일부 추정이 앞섰고, [C]는 답변이 없다.
+ 자료 한계를 밝히면서 모든 요구를 구체적으로 다뤘다.
- 체크리스트와 질문이 지나치게 길어 집중도가 낮다.
+ 핵심 위험 영역과 PR 분할선을 명확히 짚었다.
- 파일명 부족을 충분히 유보하지 않고 일부를 추정했다.
| 기준 | ChatGPT | Gemini | 앞선 모델 |
|---|---|---|---|
| 지시 준수 | 10 | 8 | ChatGPT +25% |
| 정확성 | 9 | 7 | ChatGPT +29% |
| 구체성 | 10 | 9 | ChatGPT +11% |
| 구성·가독성 | 9 | 9 | 동점 |
| 분량 적정성 | 6 | 7 | Gemini +17% |
gpt-5.6-sol가 모델 이름을 가린 채 1~10점으로 채점했습니다 (2026-09-24). 측정값이 아니라 AI 심사 결과입니다.
같은 입력을 세 모델에 넣어 받은 답을 그대로 옮겼습니다. 각 CLI(에이전트 하네스)에서 실행했습니다. ChatGPT·Claude 앱이나 웹에서는 답이 다를 수 있습니다.
변경 파일 목록·규모: 총 37개 파일 변경, +1,842 / -603줄. src/payments/* (8개 파일), src/api/webhooks/* (5개 파일), src/components/checkout/* (12개 파일), tests/* (7개 파일), package.json, migrations/0023_add_refund_table.sql PR 설명: 결제 모듈에 토스페이먼츠 부분환불 기능을 추가합니다. 기존 KG이니시스 연동 코드는 건드리지 않았고, 체크아웃 페이지에 환불 요청 버튼을 추가했습니다. 위험한 영역: 환불 금액 계산 로직(부분환불 누적 합산), 관리자 두 명이 동시에 같은 주문을 환불 처리할 때의 동시성, 토스페이먼츠 웹훅 서명 검증 로직
현재 제공된 목록만으로는 정확한 파일명과 변경 위치를 알 수 없으므로, 아래는 경로 기준의 리뷰 계획입니다. 실제 리뷰 전에는 PR diff와 각 파일명을 확인해야 합니다.
위험도가 가장 높은 순서입니다.
migrations/0023_add_refund_table.sql — 10분 src/payments/* 8개 — 30~40분 src/api/webhooks/* 5개 — 25~30분 src/components/checkout/* 중 환불 요청을 생성하거나 API를 호출하는 파일 — 5~10분특히 다음을 확인합니다.
src/components/checkout/* 나머지 파일src/payments/*의 표시용·어댑터 보조 코드src/api/webhooks/*의 응답 포맷, 로깅, 공통 에러 처리tests/* 7개테스트는 실행 결과만 보지 말고, 이번 변경의 위험을 실제로 검증하는 assertion인지 확인합니다.
단, package.json은 완전히 건너뛰지 않고 3~5분 확인합니다.
정확한 파일명이 없으므로 현재는 각 경로의 모든 파일을 개별 검토 대상으로 잡습니다.
migrations/0023_add_refund_table.sqlsrc/payments/* 8개각 파일에서 다음을 확인합니다.
결제금액 - 기존 환불액 계산이 원자적으로 수행되는가src/api/webhooks/* 5개src/components/checkout/*PR 설명은 “토스페이먼츠 부분환불 추가”와 “체크아웃 페이지 환불 요청 버튼”입니다. 따라서 다음은 범위 내일 가능성이 높습니다.
다음은 범위 밖일 가능성이 있으므로 diff에서 별도 확인해야 합니다.
특히 37개 파일, 1,842줄이면 “기존 KG 연동은 건드리지 않았다”는 설명과 실제 diff가 일치하는지 먼저 확인해야 합니다. 파일 목록만으로는 공용 모듈을 통한 간접 변경 여부를 판단할 수 없으므로, 실제 diff와 import 그래프가 필요합니다.
현재 테스트 파일의 내용이 없으므로 확정할 수는 없지만, 반드시 테스트 존재 여부를 확인할 영역은 다음과 같습니다.
그렇습니다. 현재 범위는 최소 세 개의 관심사가 섞여 있습니다.
데이터 모델·마이그레이션 PR
migrations/0023_add_refund_table.sql결제 도메인·토스 연동 PR
src/payments/*웹훅·UI PR
src/api/webhooks/*src/components/checkout/*가능하다면 테스트도 각 PR에 함께 넣되, 토스 sandbox 통합 테스트는 별도 통합 테스트 PR 또는 별도 커밋으로 분리하는 편이 좋습니다.
지금 분리하기 어렵다면 이번 리뷰에서는 최소한 리뷰 순서를 위 세 경계로 나누고, 각 경계 사이의 계약—환불 상태 전이, 멱등성 키, 금액 단위, 웹훅 의미—를 명시적으로 문서화해야 합니다. 다음번에는 기능 구현, 외부 결제 연동, 관리자/UI 변경을 한 PR에 함께 넣지 않는 것이 좋습니다.
| 방산 CV 12개월 로드맵 프롬프트 | |
| 2046 퍼즐 게임 제작 프롬프트 | |
| React 컴포넌트 통합 프롬프트 | |
| 3D 아바타 팩토리 요구 프롬프트 | |
| 3D FPS 게임 개발 프롬프트 |