상세 정보
초록불인데 날짜를 며칠 옮기니 깨졌다. 코드에 심어진 시한폭탄을 찾는 법.
만료·주기·유효기간을 다루는 기능을 만들고 테스트를 붙였습니다. 전부 통과했습니다.
그런데 날짜를 며칠 뒤로 옮겨서 같은 테스트를 돌려 보니 깨졌습니다.
즉 그 테스트는 오늘에만 통과하고 있었습니다.
오늘은 초록불이고, 며칠 뒤에 아무 예고 없이 실패합니다.
더 나쁜 경우는 테스트가 아니라 기능 자체가 그날 잘못 동작하는 것입니다.
이 글은 그 시한폭탄을 찾는 방법에 대한 기록입니다.
방법은 단순합니다 — 오늘 날짜를 옮겨 가며 전체를 돌린다.
단순하지만, 이걸 하지 않으면 며칠 뒤에 조용히 무너지는 것을 알 방법이 없습니다.
이런 분께 도움이 됩니다.
· 만료·주기·유효기간·N일째 같은 것을 다루는 코드를 쓰는 분
· "왜 갑자기 안 되지?"를 몇 달에 한 번씩 겪는 분
· 자동화를 걸어 두고 몇 주 뒤에 확인하는 분
· AI에게 코드를 맡기는데 그게 몇 달 뒤에도 도는지 확인하고 싶은 분
이 글에 담긴 것
· 시한폭탄은 어떻게 생기나
· 제가 실제로 겪은 것들
· 방법 — 날짜를 옮겨 가며 전부 돌린다
· 언제 돌리나
· 함께 걸리는 것들
· 어떻게 시작하나
· 정리
테스트가 오늘에만 통과하고 있었다
가격
12,000원