재현 조건 정리·이진 탐색·근본 원인 추적으로 버그 디버깅 절차 정립결
버그를 처음 마주했을 때 제일 먼저 하는 것은 재현 조건을 정확히 파악하는 것입니다. '가끔 튕긴다'는 보고보다 '특정 아이템을 사용한 직후 3초 안에 튕긴다'는 조건이 확정될 때 디버깅이 시작됩니다. 재현이 안 되는 버그는 고치기 어렵고, 고쳤는지도 알기 어렵습니다.
조건이 잡히면 이진 탐색 방식으로 범위를 좁힙니다. 전체 코드를 살피는 대신, 원인이 A 구간에 있는지 B 구간에 있는지를 로그로 확인하면서 반씩 줄여나갑니다. 범위를 좁히는 속도가 디버깅 시간 전체를 결정하는 경우가 많습니다.
표면 원인을 찾아도 거기서 한 단계 더 들어가는 습관을 들이려고 합니다. '이 함수가 null을 반환했다'에서 끝나지 않고 '왜 null이 들어왔는지'까지 추적하면, 같은 패턴의 버그가 다른 곳에서 반복되는 것을 막을 수 있습니다. 재발 방지가 디버깅의 마지막 단계라고 생각합니다.