버그와 문제 해결 기록: 오류·가설·수정·검증 과정을 남기기
11강. 버그와 문제 해결 기록: 오류·가설·수정·검증 과정을 남기기
1. 이번 강의에서 해결할 문제
“오류를 고쳤다”만 적으면 어떤 관찰과 판단을 거쳤는지 알 수 없습니다. 실제 문제 하나를 골라 누구나 반복할 수 있는 해결 기록으로 바꿉니다.
2. 학습 목표
3. 핵심 개념
문제 해결 기록은 환경 → 증상 → 최소 재현 → 관찰 → 가설 → 변경 → 같은 조건 재검증 → 남은 위험 순서입니다. 처음 가설이 틀렸다면 지우지 않고 왜 제외했는지 남깁니다.
“이벤트 버그를 고쳤다”는 결과만 있고 판단 과정이 없습니다. 반면 “재시작 횟수만큼 로그가 증가했다”는 관찰과 “구독 해제 누락”이라는 가설을 분리하면, 로그 수를 세어 가설을 기각하거나 지지할 수 있습니다.
| 구분 | 예시 | 증거로 확인 가능한가 |
|---|---|---|
| 증상 | 결과가 두 번 반영됨 | 화면·테스트로 확인 가능 |
| 관찰 | 재시작마다 핸들러 로그가 하나씩 증가 | 로그로 확인 가능 |
| 가설 | 비활성화 때 구독 해제가 빠짐 | 코드·추가 실험 필요 |
| 검증 | 같은 재현을 3회 실행해 한 번만 반영 | 수정 전후 비교 가능 |
4. 단계별 실습
문서 작업 · 산출물: <PROJECT_ROOT>/docs/bugs/001-example.md
시작 전 상태: 실제 실패를 같은 입력으로 한 번 재현하고 환경 버전, Git 상태, 실행 명령과 첫 오류를 기록합니다. 관련 없는 리팩터링은 보류합니다.
# BUG-001 빠른 재시작 뒤 결과가 두 번 반영됨
## 환경
- 검증 버전과 실행 방식: 실제 값 기록
## 재현 절차
1. 프로젝트를 시작한다.
2. 결과 직후 재시작을 빠르게 두 번 선택한다.
3. 첫 행동을 한 번 수행한다.
## 예상 / 실제
- 예상: 결과가 한 번 반영된다.
- 실제: 결과가 두 번 반영된다.
## 관찰과 가설
- 관찰: 재시작 횟수만큼 이벤트 로그가 늘어난다.
- 가설 A: 구독 해제가 없어 핸들러가 누적된다.
- 가설 B: 입력이 한 프레임에 두 번 전달된다.
## 수정
- 활성화 시 구독하고 비활성화 시 같은 핸들러를 해제했다.
## 검증
- T-04를 3회 반복: 모두 한 번만 반영됨
## 남은 위험
- 장시간 반복은 T-05에서 추가 확인한다.
코드 작업: 원인을 좁히는 데 필요한 최소 변경만 적용하고 관련 없는 리팩터링은 섞지 않습니다. 테스트 작업: 수정 전과 같은 절차를 다시 실행합니다.
완료 기준: 실제 문제 하나에 환경, 3단계 이상의 재현, 두 가설, 수정과 재검증 결과가 있습니다.
변경 전에는 재시작 횟수와 결과 반영 횟수가 함께 늘어야 가설을 검토할 근거가 됩니다. 수정 뒤에는 같은 빌드 방식·입력·반복 횟수로 T-04를 다시 실행하고, 정상 흐름과 빠른 재시작 흐름을 모두 비교합니다.
5. 작성 방식이 필요한 이유
결과보다 과정이 남으면 디버깅 능력과 판단 근거를 보여 줄 수 있습니다. 같은 증상이 돌아왔을 때도 처음부터 추측하지 않고 이전 증거를 재사용합니다.
6. 자주 하는 실수와 해결법
7. 직접 실습
8. 이해 점검 질문 3개
9. 핵심 요약
10. 다음 강의 연결
수정 결과뿐 아니라 판단과 검증 과정을 남겼습니다. 다음 강의에서는 해결하지 못한 제한과 다음 개선 우선순위를 숨기지 않고 정리합니다.
버그와 문제 해결 기록: 오류·가설·수정·검증 과정을 남기기 미니 퀴즈
선택 즉시 정답과 해설을 확인할 수 있습니다. 결과는 이 브라우저에만 저장됩니다.
학습을 마쳤나요?
직접 실습과 점검 질문까지 확인한 뒤 완료로 표시하세요.