개별적으로는 그다지 크지 않았던 사건이 중요한 순간에 결합해서 큰 장애를 만들 수 있다.
지난주부터 프로모션 배포 기간을 마치고 정식 서비스에 돌입했다. 프로모션 기간 동안 가입해 준 회원에 대해서만 안내 문구를 띄워야했다. 프로모션 조건의 회원 데이터를 만들어서 실제 테스트를 진행했다.
작성중인 e2e 테스트가 있었는데, 프로모션 회원 조건을 e2e 테스트 상에서 설정해주기가 힘들었고, 백도어로 모킹하자니 번거로워서 넘어갔었다.
프로모션 회원에 대한 안내 모달이 여러 차례 수정되야하는 경우가 생겼는데, 여기서 문제가 생겼다. 처음 배포는 아무런 문제가 없었으나, 2, 3차 수정이 가해지자, 안내 문구를 표시하는 모달에서 장애가 발생했다.
컴파일 타임에는 잡히지 않는 버그가 런타임에서 발생한 것이다.
돌이켜보면 connecting dot 처럼 모든 원인이 이어져 있었다.
각각만 놓고 보면 어느 정도 대처가 가능했을 문제점들이 중요한 순간에 결합하여 장애를 만든것이다.
사소한 흠결이나 무질서를 발견하면 해야할 일은 그 즉시 가장 적은 비용으로 그것을 해결하는 것이다. 그렇지 않으면 그것은 가장 중요한 순간에 가장 흥미로운 방식으로 다른 무질서와 결합하여 다시 찾아올 것이다.