본문으로 건너뛰기
게임 프로젝트 기초집LESSON 18

디버깅과 테스트: 재현 절차·로그·체크리스트로 문제 찾기

난이도초급 프로젝트
예상 시간60분
선수지식17강 Object Pool과 성능

18강. 디버깅과 테스트: 재현 절차·로그·체크리스트로 문제 찾기

1. 이번 강의에서 해결할 문제

“가끔 점수가 두 번 올라요”만으로는 조건을 찾기 어렵습니다. 실행 버전, Inspector 값, 입력 순서와 첫 오류를 기록하고 같은 체크리스트로 수정 전후를 비교합니다.

2. 학습 목표

3. 핵심 개념

Unity Console의 첫 오류와 Stack Trace에서 시작합니다. null은 필드 이름, GameObject와 Scene을 확인하고 Inspector 참조를 고칩니다. 로그는 상태 전환과 판정처럼 드문 사건에만 남기며 Update에서 매 프레임 출력하지 않습니다.

4. 단계별 실습

C# · GameFlowController.SetState에 개발 로그 추가

GameFlowController.cs
private void SetState(GameState next)
{
if (State == next) return;
Debug.Log($"Game state: {State} -> {next}", this);
State = next;
StateChanged?.Invoke(State);
}

문서 · 파일 경로: Assets/_Project/Docs/Bugs/001-double-score.md

001-double-score.md
# 중복 점수 재현
- Unity 버전과 Scene:
- Inspector 변경값:
- 절차: 택배를 겹친 두 Zone 경계로 이동
- 기대: 결과 이벤트 1회, 점수 1회 증가
- 실제:
- 첫 Console 메시지와 Stack Trace:
- 원인:
- 수정 후 검증:

PowerShell · 실행 위치: 프로젝트 루트

Get-Content .\ProjectSettings\ProjectVersion.txt
Get-ChildItem .\Assets\_Project\Docs\Bugs

예상 결과: 재현에 사용한 엔진 버전과 버그 문서가 보입니다.

테스트 작업: 일반 플레이, 0.1초 빠른 생성, 택배가 없는 상황, 목숨 0, 잘못된 Inspector 연결, 15분 플레이를 수행합니다. 각 결과와 Console 오류 수를 기록합니다.

5. 코드가 동작하는 이유

상태가 실제로 바뀔 때만 Context가 있는 로그를 남겨 어떤 GameFlow 인스턴스에서 전환했는지 알 수 있습니다. 동일 절차와 조건이 수정 전후 비교 기준을 만듭니다.

6. 자주 하는 실수와 해결법

7. 직접 실습

8. 이해 점검 질문 3개

9. 핵심 요약

MINI QUIZ

디버깅과 테스트: 재현 절차·로그·체크리스트로 문제 찾기 미니 퀴즈

선택 즉시 정답과 해설을 확인할 수 있습니다. 결과는 이 브라우저에만 저장됩니다.

0 / 2
  1. 문제 1“디버깅과 테스트: 재현 절차·로그·체크리스트로 문제 찾기”의 위험한 선택을 피하려면 어떤 원칙을 적용해야 하나요?
  2. 문제 2“디버깅과 테스트: 재현 절차·로그·체크리스트로 문제 찾기”에서 ‘null마다 Find로 임시 해결’ 문제가 생겼습니다. 가장 알맞은 진단 또는 대응은 무엇인가요?
LESSON STATUS

학습을 마쳤나요?

직접 실습과 점검 질문까지 확인한 뒤 완료로 표시하세요.

18강. 디버깅과 테스트: 재현 절차·로그·체크리스트로 문제 찾기 미완료 상태