품질 검증
Part 1: 코드 품질 체크리스트
완전성 체크리스트 (7/7 필수)
code
☐ 모든 import/include/using 문 포함 ☐ 타입 정의 포함 (구조체, 열거형 등) ☐ 필수 설정 파일 언급 또는 제공 ☐ 환경 변수/설정 요구사항 명시 ☐ 의존성 버전 명시 (프로젝트의 의존성 관리 파일) ☐ 빌드/실행 명령어 제공 ☐ 예상 출력/결과 언급
안정성 체크리스트 (5/5 필수)
code
☐ 에러 처리 (언어별 관용구) ☐ null/nil/nullptr 체크 ☐ 배열/슬라이스/버퍼 경계 검사 ☐ 입력 검증 (타입, 범위, 형식) ☐ 타임아웃 설정 (네트워크/I/O 작업 시)
Part 2: 완료 검증 프로세스
황금률
"증거 없이 완료를 주장하지 말 것"
5단계 검증
| 단계 | 행동 | 확인 |
|---|---|---|
| 1. 식별 | 주장을 증명할 명령어 파악 | ☐ |
| 2. 실행 | 해당 명령어 실행 (새로 실행) | ☐ |
| 3. 읽기 | 전체 출력 + 종료 코드 확인 | ☐ |
| 4. 검증 | 출력이 주장을 뒷받침하는지 확인 | ☐ |
| 5. 주장 | 증거와 함께만 주장 | ☐ |
금지 표현
다음 표현 사용 시 검증 미완료:
- •"완료되었을 것 같다"
- •"아마 작동할 거야"
- •"좋아 보인다"
- •"문제없을 것이다"
주장별 검증 명령어
| 주장 | 검증 명령어 |
|---|---|
| 테스트 통과 | npm test, pytest, go test |
| 빌드 성공 | npm run build, cargo build |
| 린트 정상 | eslint ., golangci-lint run |
| 타입 체크 | tsc --noEmit, mypy . |
Part 3: 코드 리뷰 시 확인
필수 확인 항목
- •
에러 처리
- •모든 실패 가능 경로에 에러 처리
- •의미 있는 에러 메시지 (디버깅 가능)
- •에러 전파 vs 처리 전략 명확
- •
입력 검증
- •외부 입력 (네트워크 패킷, API 파라미터)
- •타입 + 범위 + 형식 검증
- •악의적 입력 방어
- •
리소스 관리
- •연결/핸들/파일 해제
- •메모리 해제 (C/C++)
- •타이머/고루틴/태스크 정리
- •
경계 조건
- •빈 컬렉션
- •null/nil/nullptr
- •정수 오버플로우
- •최대/최소값 경계
최종 체크리스트
code
코드 작성 완료 시: ☐ 완전성 7/7 충족? ☐ 안정성 5/5 충족? ☐ 테스트 실행하고 결과 확인? ☐ 빌드 실행하고 결과 확인? ☐ 증거와 함께 완료 주장?