다섯째, 경계 값과 예외 상황은 없을 것이라고 넘겼을 때입니다. 빈 값(null), 0, 최댓값, 월말, 윤년. 이런 경계 조건은 대부분의 정상 테스트를 통과합니다. 그래서 더 위험합니다.
여섯째, 외부 시스템이 항상 정상일 것이라고 믿었을 때입니다. 네트워크 지연, 타임아웃, 부분 실패, 재시도. 이런 상황을 고려하지 않은 로직은 에러 없이 잘못된 상태로 빠질 수 있습니다.
일곱째, 날짜, 시간, 금액처럼 정밀도가 중요한 데이터를 다룰 때입니다. 타임존 변환, 윤년, 월말 처리에서 날짜가 하루씩 밀리고, 부동소수점 연산이 틀어지게 됩니다. 에러는 나지 않지만 결과가 다르게 나옵니다.
용이의 분배 로직은 이 중에서도 ‘상태는 확인 후 변하지 않는다’, ‘실행 흐름은 우리가 생각한 순서대로 진행된다’라는 전제가 깨지면서 문제가 발생한 사례였습니다.