Development Build 설정 — QA 빌드에 뭘 켜고 뭘 끄나
Unity의 Development Build와 관련 옵션을 QA 빌드에 맞게 설정하는 방법, 그리고 출시 후보 빌드에서도 확인해야 할 진단 정보를 정리합니다.
- unity
- build
- profiler
Unity 개발·QA 현장에서 부딪힌 문제와 해결 기록.
Unity의 Development Build와 관련 옵션을 QA 빌드에 맞게 설정하는 방법, 그리고 출시 후보 빌드에서도 확인해야 할 진단 정보를 정리합니다.
빌드를 넘기는 순간 리포트 품질이 결정됩니다. 빌드 식별자, 변경 요약, 알려진 이슈, 로그 회수 경로까지 — 파일과 함께 보내야 할 맥락을 정리합니다.
스택트레이스는 어디서 죽었는지만 말합니다. logMessageReceived 훅, quitting 이벤트의 한계, 워치독 프로세스, 주기적 스냅샷까지 — 왜 그 상태였는지를 남기는 네 가지 방법과 각각의 대가를 정리합니다.
작업관리자에 보이는 UnityCrashHandler64.exe의 정체와 Windows 크래시 산출물 위치, 삭제 전 확인할 점을 개발자 관점에서 정리합니다.
정상 동작 중 남는 로그와 크래시가 발생했을 때만 생성되는 산출물은 다릅니다. Windows crash 폴더, macOS 시스템 리포트, Android logcat, iOS 크래시 로그까지 QA에게 요청할 수 있는 형태로 정리합니다.
Sentry 같은 에러 모니터링과 QA 버그 캡처는 기본 목적이 다릅니다. 예외 없이 발생하는 게임 버그를 어떻게 남기고 전달할지 구분합니다.
Jev 자동 플레이에서 게임 결함, 에이전트 판단 오류, 테스트 하네스 오류를 구분하려면 실행 전체를 어떻게 기록하고 검토해야 할까요?
Jev 자동 플레이에서 쌓이는 리포트를 심각도·재현 가능성·증거 품질로 나누어 살피고, 점수와 사람 검토의 경계를 생각합니다.
Jev로 게임 플레이 결정을 자동화할 때, 게임별 이상 조건과 Rekon 코드 트리거를 연결해 직전 영상·로그·상태를 증거로 남기는 방법을 정리합니다.
Unity Recorder 와 OBS 리플레이 버퍼 조합으로 어디까지 버틸 수 있는지, 그리고 어느 시점부터 자동화 도입이 이득인지 계산합니다.
Unity Cloud Diagnostics 가 Unity 6.2+ 내장 Diagnostics 로 전환되는 지금, 무엇을 그대로 쓸 수 있고 무엇을 새로 채워야 하는지 정리합니다.
Unity 프로젝트에서 버그를 캡처하고 보고하는 도구를 카테고리별로 비교합니다. 빌드에서 도는지, 사후 캡처가 되는지, 영상이 있는지, 게임 상태와 시간축이 맞는지가 갈림길입니다.
환경·세션·순간·재현 단서 네 갈래로 나눈 게임 상태 분류, 비용 대비 가치 순위, 담으면 안 되는 것, 직렬화할 때 걸리는 함정까지 정리합니다.
Unity 버그 리포터가 수집한 데이터를 어디로 전송할지 네 가지 경로를 용량·인증 난도·검색성·유지비 기준으로 비교합니다.
Unity 공식 User Reporting 패키지가 리포트에 실제로 담는 것, 담지 않는 것, 그리고 Cloud Diagnostics가 Unity 6.2+ 내장 Diagnostics로 전환되는 흐름까지 확인된 사실만 정리합니다.
트리거·수집·전송·식별 네 가지 결정과 난도 곡선, 흔히 밟는 함정까지 — 버그 리포터를 직접 만들 때 지도로 쓰는 글.
OS 별 Editor.log·Player.log 경로, -logFile 옵션, Android logcat 과 iOS 로그 추출 방법. QA 에게 로그 받는 절차를 한 번에 정리합니다.
에디터에서 완벽하던 로그 수집이 빌드에서 다르게 동작하는 이유. 스택트레이스 설정, IL2CPP 심볼과 스트리핑, dev build 전용 API, Debug.Log 의 비용까지.
로그 수집기가 GC 스파이크를 만들면 본말전도입니다. struct 엔트리, 고정 배열, 통제 가능한 할당과 불가능한 할당의 구분까지.
logMessageReceived와 Threaded의 정확한 차이, 콜백 안에서 터지는 UnityException, 재귀 로깅, 구독 해제 누락까지 — 로그 후킹에서 실제로 밟는 함정들.
QA·버그 리포트 목적의 게임플레이 녹화 방법을 비교합니다. 에디터 전용인지, 상시 녹화가 가능한지, 게임 데이터와 동기화되는지가 갈림길입니다.
Profiler 없는 QA 머신에서 성능 문제의 증거를 남기는 법. ProfilerRecorder로 상시 경량 수집하고, 스파이크 순간을 영상과 같은 시간축에 놓습니다.
해상도 테스트, Profiler 읽는 법, FrameTimingManager로 CPU/GPU 시간 분리까지. 체감을 계측 데이터로 바꾸는 실전 절차입니다.
CPU 바운드, GPU 바운드, GC 스파이크, 로딩 히치. 프레임 드랍은 원인 분류가 먼저입니다 — 분류마다 최적화 방향이 정반대이기 때문입니다.
재현율을 높이는 버그 리포트 템플릿. 각 필드가 왜 필요한지, 어떤 티켓이 재현 불가로 닫히는지까지 함께 다룹니다.
로그 링 버퍼 후킹, 게임 상태 스냅샷, 파일로 남기기까지 — Unity 프로젝트에 붙이는 최소 코드와 스레드 주의점.
결정적 리플레이·상태 스냅샷·롤링 버퍼를 비교하고, 게임 클라이언트에 가장 무난하게 붙는 롤링 버퍼가 어떻게 동작하는지 정리합니다.
재현이 실패하는 세 가지 원인과, 버그 티켓에 무엇이 남아야 하는지. 수동 기록이 구조적으로 늦을 수밖에 없는 이유까지 다룹니다.