Series: 설계까지 다 거치고도, 실행해봐야 보였다
설계 문서와 계획서를 다 거쳐도, 실행해봐야만 보이는 버그들을 다룬 6편의 기록. 테스트가 구조적으로 못 잡는 레이스 컨디션, 병합 판단을 빼자 오히려 분할이 살아난 것, 레이스를 막는 대신 없애버린 선택, 죽어있던 Link & Enrich 기능, 되돌리기 버그가 세 겹으로 숨어 있던 것, 자정을 넘길 때만 걸리는 레이스까지.
-
설계까지 다 거치고도, 실행해봐야 보였다 1편 — 테스트가 원천적으로 못 잡는 자리에 버그를 심어놓고 있었다
5편을 쓰고 나서 같은 스크린샷을 다시 보다가, 흐릿하게 렌더링되는 링크를 하나 더 발견했다. 원인을 찾아 고치고 태스크 리뷰까지 통과했는데, 최종 리뷰가 진짜 레이스 컨디션을 잡아냈다 — 그것도 테스트가 구조적으로 절대 재현할 수 없는 방식으로 숨어 있던 버그였다.
-
설계까지 다 거치고도, 실행해봐야 보였다 2편 — 병합을 빼자, 분할이 살아났다
요약만 하고 분할은 거의 안 되는 것 같다는 관찰에서 시작했다. 배치 크기를 의심했는데, 더 깊이 파보니 진짜 원인은 따로 있었다 — ingest가 한 번에 너무 많은 판단을 하고 있었다. 그리고 그 발견이 속도·비용 설계까지 이어졌다.
-
설계까지 다 거치고도, 실행해봐야 보였다 3편 — 레이스를 막을 방법이 아니라, 없앨 이유를 찾았다
청크를 병렬로 요청하는 설계까지만 해두고 미뤄뒀던 구현을 다시 열었다. 그런데 설계 문서와 계획서를 다 거치고도, 진짜 버그는 실행이 되어서야 보였다.
-
설계까지 다 거치고도, 실행해봐야 보였다 4편 — 없는 줄도 몰랐던 안전망을 찾아냈다
웨이브 병렬화를 배포한 뒤, 그 유명한 다니엘라 아모데이 예시가 여전히 쪼개지지 않았다. 원인을 찾다가 내 첫 실측 자체가 틀렸다는 걸 발견했고, 있는 줄 알았던 기능이 사실 없었다는 것도 알게 됐다.
-
설계까지 다 거치고도, 실행해봐야 보였다 5편 — 되돌리기 버튼 하나에, 버그가 세 겹으로 숨어 있었다
이미 실행된 태그 병합을 되돌리는 버튼을 만들었다. 내가 직접 브리프에 적어준 구현 방법에 버그가 있다는 걸 태스크 리뷰가 잡았고, 그 여파로 계획 문서가 낡아버린 걸 다음 단계를 준비하다가 스스로 알아챘다. 그리고 두 태스크가 전부 리뷰를 통과한 뒤에도, 전체를 다시 훑는 마지막 리뷰가 버그 두 개를 더 찾아냈다.