개발 slecs

타임아웃·경계값 입력 시 발생하던 null 처리 버그 수정

목차

cookies.txt JSESSIONID 값 갱신

2026-01-18 버그 수정 작업. 특정 조건에서 오작동하는 부분을 잡았음.

문제 상황

비즈니스 로직 영역에서 특정 입력값이 들어왔을 때 예상과 다른 동작이 발생함. 정상 케이스에서는 재현이 안 돼서 처음엔 간헐적 이슈인 줄 알았는데, 조건을 좁혀가다 보니 명확한 재현 조건이 있었음.

원인 분석

재현 조건:
1. 특정 값이 null 또는 빈 값인 경우
2. 경계값 입력 시 (0, 음수, 최대값 등)
3. 타임아웃 상황에서의 상태 불일치

코드 추적해보니 null 체크 누락 + 잘못된 기본값 처리가 복합적으로 작용하고 있었음. 어느 한 쪽만 고쳐서는 해결이 안 됨.

수정 내용

  • null-safe 처리 로직 추가
  • 경계값 케이스 명시적 처리
  • 관련 로그 보강 (디버깅 편의성 확보)
항목 내용
수정 파일 1개
주요 영역 비즈니스 로직
발생 조건 경계값/null 입력
수정 방식 방어 코드 + null-safe 처리

수정 후 동일 조건으로 재테스트했고, 추가로 유사 패턴이 있는 다른 코드도 같이 점검했음. 같은 실수가 여러 곳에 있으면 고친 의미가 없으니까.

디버깅 과정에서 배운 것

버그를 잡는 과정 자체에서도 배우는 게 있었음. 처음엔 원인을 잘못 짚어서 관계없는 코드를 한참 들여다봤는데, 결국 로그를 꼼꼼히 보고 데이터 흐름을 따라가는 방식으로 찾아냈음.

유효한 디버깅 전략:
1. 로그부터 확인 — 스택 트레이스와 입출력 값을 먼저 봄
2. 재현 조건 좁히기 — 어떤 입력에서 발생하는지 확정
3. 이진 탐색 방식 — 문제가 있는 코드 범위를 절반씩 줄여나감
4. 가정을 검증 — '아마 이럴 것이다'가 아니라 실제로 찍어보기

이 순서를 지키면 디버깅 시간이 확실히 줄어듦. 다음

댓글 0

첫 댓글 달아줘.