몇 시간 동안 현실을 의심하게 만든 버그

발행: (2026년 2월 5일 오전 11:30 GMT+9)
4 min read
원문: Dev.to

Source: Dev.to

Background

모든 것이 정상적으로 작동했다.

돌이켜 보면, 그게 바로 문제였다.

나는 막 작은 백엔드 변경을 배포했다. 거의 생각조차 안 할 정도로 사소한 변경. 테스트는 통과했고, 로컬 환경은 초록색이었다. 우리 모두가 항상 한다고 가장하는 그 추가 수동 검증까지도 해봤다.

Symptoms

몇 시간 뒤, 프로덕션이… 이상하게 동작하기 시작했다. 깨진 건 아니고, 다운된 것도 아니다. 그냥 뭔가 어긋난 느낌이다.

몇몇 요청은 실패했고, 다른 요청은 성공했다. 페이지를 새로 고치면 결과가 바뀌었다. 어느 순간 나는 내가 내 정신을 부하 테스트하고 있는 건 아닌가 싶을 정도였다.

첫 번째 생각은 데이터였다. 그 다음은 트래픽, 그 다음은 타이밍. 그리고 어쩌면 자바스크립트 신들에게 화를 냈는지도 모른다.

Investigation

로그를 추가했다. 엄청 많은 로그를. 나중에 지우겠다고 맹세하는 그 종류의 로그. 눈에 띄는 문제는 나타나지 않았다.

그때 나는 작지만 매우 짜증나는 것을 발견했다. 하나의 설정값이 프로덕션에서는 undefined였지만 내 머신에서는 정상이었다. 나는 그것을 인정하고 싶지 않을 정도로 오래 바라보았다.

내가 환경 변수가 어디서든 동일하다고 가정했었다. 실제로는 그렇지 않았다. 로컬에서는 오래된 설정 파일이 조용히 나를 구해주고 있었고, 프로덕션에서는 그 변수가 아예 존재하지 않아 내 코드가 혼란에 빠졌다.

Root Cause

누락된 환경 변수 때문에 코드가 예측할 수 없게 동작했다.

Resolution

그 사실을 알게 된 뒤, 해결책은 거의 지루할 정도였다: 검증을 추가하고, 기본값을 설정한 뒤 다시 배포했다.

Takeaway

진짜 버그는 코드가 아니라, 환경이 예의 바르고 일관되게 동작한다는 내 가정이었다.

그 이후로 버그가 무작위처럼 느껴질 때마다 나는 간단한 질문부터 시작한다: “아마도 동일하지 않을 가능성이 높은, ‘당연히 같은’ 것으로 내가 가정하고 있는 것은 무엇인가?” 이것이 시간을 절약해준다. 그리고 약간의 품위를 되찾게 해준다.

Back to Blog

관련 글

더 보기 »