오류 재현 기록: ‘안 됩니다’를 재현 가능한 버그 보고로 바꾸기
11강. 오류 재현 기록: ‘안 됩니다’를 재현 가능한 버그 보고로 바꾸기
1. 이번 강의에서 해결할 문제
“실행이 안 돼요”만으로는 다른 사람도, 미래의 나도 문제를 다시 만들 수 없습니다. 오류가 발생한 조건과 첫 번째 실패 지점을 짧고 정확하게 남기는 형식이 필요합니다.
2. 학습 목표
3. 핵심 개념
좋은 재현 기록에는 환경 → 사전 조건 → 최소 절차 → 기대 결과 → 실제 결과 → 증거가 있습니다. 여러 오류가 이어져도 가장 먼저 나온 오류부터 확인합니다. 전체 화면 캡처만 남기기보다 검색 가능한 오류 원문과 실행 명령을 함께 기록합니다.
최소 사례를 비교해 보면 차이가 분명합니다.
- 부족한 기록: “테스트가 안 됩니다.”
- 재현 가능한 기록: “Node 버전, 프로젝트 상태,
npm.cmd test실행, 기대 종료 코드 0, 실제 첫 오류와 종료 코드 1”
첫 문장은 다른 사람이 무엇을 실행해야 할지 알 수 없지만 두 번째는 같은 조건을 만들고 결과를 비교할 수 있습니다. 관찰한 사실과 “아마 캐시 문제” 같은 원인 가설도 분리합니다.
재현에 필요하지 않은 개인정보, 토큰, 절대 사용자 경로는 지우거나 <사용자>처럼 바꿉니다.
4. 단계별 실습
Markdown · 파일 경로: docs/bugs/001-score-test-failure.md
시작 전 상태: 프로젝트 루트, Git 커밋 또는 변경 상태, 런타임 버전과 실패 명령을 기록합니다. 실제 토큰·사용자명·개인 절대 경로는 문서와 로그에서 제거합니다.
# 점수 테스트 실패
## 환경
- OS: Windows 11
- Node.js: `node --version` 결과 기록
- 프로젝트: `D:\Projects\productivity-lab`
## 사전 조건
- 프로젝트 루트에서 의존성 설치가 끝난 상태
## 재현 절차
1. PowerShell에서 프로젝트 루트로 이동한다.
2. `npm.cmd test`를 실행한다.
3. `adds 10 points` 테스트를 확인한다.
## 기대 결과
- 모든 테스트가 통과하고 종료 코드가 0이다.
## 실제 결과
- `Expected 10, received 1` 메시지와 함께 종료 코드가 1이다.
## 증거
- `logs/test-failure.txt`의 첫 오류 참조
- 토큰, 사용자명, 개인 경로는 제거함
PowerShell · 실행 위치: D:\Projects\productivity-lab
New-Item -ItemType Directory -Force .\logs | Out-Null
npm.cmd test 2>&1 | Tee-Object -FilePath .\logs\test-failure.txt
$LASTEXITCODE
예상 결과: 화면과 logs/test-failure.txt에 같은 첫 오류가 남고 실패한 명령의 $LASTEXITCODE는 보통 0이 아닌 값입니다. 다른 터미널에서도 같은 절차로 같은 첫 오류와 종료 코드가 관찰돼야 합니다.
5. 도구와 설정이 동작하는 이유
2>&1은 오류 출력도 일반 출력 흐름에 합치고, Tee-Object는 화면에 보여 주면서 파일에도 저장합니다. 실행 명령과 종료 코드를 함께 남기면 “어떤 명령이 실패했는가”를 다시 검증할 수 있습니다.
기록 흐름은 환경 고정 → 최소 명령 실행 → 첫 오류와 종료 코드 수집 → 민감 정보 제거 → 새 터미널 재현입니다. 수정 후에도 같은 절차를 사용해야 “다른 입력에서 우연히 성공”한 경우와 해결을 구분할 수 있습니다.
6. 자주 하는 실수와 해결법
7. 직접 실습
8. 이해 점검 질문 3개
9. 핵심 요약
10. 다음 강의 연결
실패를 같은 조건에서 반복할 수 있는 증거로 바꿨습니다. 다음 강의에서는 이 재현 조건을 자동 테스트의 입력과 기대 결과로 옮깁니다.
오류 재현 기록: ‘안 됩니다’를 재현 가능한 버그 보고로 바꾸기 미니 퀴즈
선택 즉시 정답과 해설을 확인할 수 있습니다. 결과는 이 브라우저에만 저장됩니다.
학습을 마쳤나요?
직접 실습과 점검 질문까지 확인한 뒤 완료로 표시하세요.