Unity C# 기초집LESSON 23
디버깅·로그·성능 점검
난이도초급
예상 시간45분
선수지식22강 피드백
23강. 디버깅·로그·성능 점검
1. 이번 강의에서 해결할 문제
"가끔 점수가 두 번 오른다" 또는 "적이 많으면 느리다"는 설명만으로는 고칠 수 없습니다. 재현 조건, 관찰 정보와 측정값을 남겨 원인을 좁힙니다.
2. 학습 목표
3. 핵심 개념
디버깅은 재현 → 관찰 → 가설 → 한 번에 한 변경 → 재검증 순서입니다. 성능 수치는 PC 사양, Unity 세부 버전, Game View 해상도와 Scene 구성에 따라 달라지므로 절대 숫자보다 같은 조건 전후를 비교합니다.
4. 단계별 실습
C# · 파일 경로: Assets/DeliverySorter/Scripts/Diagnostics/RequiredReference.cs
RequiredReference.cs
using UnityEngine;
public static class RequiredReference
{
public static bool Check(Object value, string fieldName, Object context)
{
if (value != null) return true;
Debug.LogError($"Required reference is missing: {fieldName}", context);
return false;
}
}
진단 로그 예시 · SortZone
SortZone.cs
Debug.Log(
$"Sort resolved package={package.Type.Id}, zone={acceptedType.Id}, correct={correct}",
package);
Unity Editor 점검
- Inspector에서 HUD 텍스트 하나를 비우고 오류의 첫 사용자 코드 줄과 객체 컨텍스트를 찾습니다.
- Physics 2D 디버그 도구로 Package와 Zone Collider가 겹치는지 확인합니다.
- Profiler의 CPU Usage와 Memory를 기록하고 0.15초 생성 간격에서 Instantiate/Destroy 버전과 Pool 버전을 비교합니다.
- Deep Profile은 측정 자체의 비용이 크므로 필요한 짧은 구간에서만 사용합니다.
측정 기록 · 파일 경로: Docs/PerformanceCheck.md
Docs/PerformanceCheck.md
# Performance check
- Unity version / PC / Game View resolution:
- Scenario: 60 seconds, spawn interval 0.15s
- Before: active count, CPU frame time, GC Alloc
- After pool: active count, CPU frame time, GC Alloc
- Conclusion: keep or remove pool, with reason
5. 코드가 동작하는 이유
오류 로그에 필드명과 context 객체를 함께 주면 Console에서 문제 GameObject를 바로 선택할 수 있습니다. 동일한 장면과 생성 조건을 유지한 전후 비교는 Pool이 실제 병목을 줄였는지 판단하게 합니다.
6. 자주 하는 실수와 해결법
7. 직접 실습
8. 이해 점검 질문 3개
9. 핵심 요약
MINI QUIZ
0 / 2디버깅·로그·성능 점검 미니 퀴즈
선택 즉시 정답과 해설을 확인할 수 있습니다. 결과는 이 브라우저에만 저장됩니다.
LESSON STATUS
23강. 디버깅·로그·성능 점검 미완료 상태학습을 마쳤나요?
직접 실습과 점검 질문까지 확인한 뒤 완료로 표시하세요.