series 를 지웠더니 이전·다음 글이 사라졌다 (빌드는 통과)
타입체크·빌드·화면 확인 전부 초록불인데 기능 하나가 조용히 없어져 있었다. 왜 아무 검사도 못 잡았나.
빌드가 통과했고 타입체크도 통과했고 화면도 직접 열어봤다. 그런데 기능 하나가 없어져 있었다.
블로그에서 연재를 접기로 했다. 글 12편을 묶고 있던 series 라는 표시를 지우고, 그 글들을 카테고리로 흩는 작업이다. 파일 82개의 앞부분에서 그 한 줄을 지웠다.
그리고 검사를 돌렸다.
타입체크 통과
빌드 통과 (정적 페이지 33개 생성)
화면 홈·카테고리·글 상세 다 정상
전부 초록불이라 커밋했다.
한 시간쯤 뒤, 별개의 작업으로 화면 디자인을 손보다가 코드를 읽게 됐다. 글 아래에 「이전 글 / 다음 글」 카드를 그리는 부분이었다. 그 카드에 값을 주는 함수의 첫 줄이 이랬다.
이웃을 찾는 함수:
이 글에 series 가 없으면 → 이전도 다음도 없음(null)으로 답한다
...
연재 표시를 지운 순간, 모든 글에서 이전·다음이 사라진 상태였다.
돌릴 검사가 없었다
처음엔 「내가 검사를 덜 돌렸나」로 봤다. 그런데 다시 봐도 돌릴 검사가 없었다.
- 타입체크가 못 잡는다 — 함수는 정직하게
null을 돌려준다. 타입도 맞다.null을 「아직 값이 없음」으로 쓰기로 한 건 내 쪽이고, 그건 정상 경로다 - 빌드가 못 잡는다 — 카드를 안 그릴 뿐 페이지는 멀쩡히 만들어진다
- 화면으로도 못 잡는다 — 없어진 걸 알려면 원래 있었다는 걸 기억하고 있어야 한다. 글 맨 아래까지 내려가서 「어? 여기 카드 있지 않았나」를 떠올려야 한다
여기서 두 가지가 갈렸다.
- 에러가 나는 고장 — 빨간 줄이 뜬다. 그날 안에 고친다
- 기능이 없어지는 고장 — 아무 신호가 없다. 없어진 자리를 다시 볼 이유가 생길 때까지 아무도 모른다
이번엔 그 이유가 우연히 생겼다. 디자인을 손보느라 그 파일을 열지 않았다면 몇 주는 갔을 것이다.
뭘 바꿨나
이웃을 찾는 기준을 연재에서 카테고리로 옮겼다. 연재가 없어도 같은 칸의 앞뒤 글을 찾는다.
그리고 순서를 하나 바꿨다. 어떤 값을 걷어낼 때는, 그 값을 읽는 자리를 먼저 세는 것이 검사보다 빠르다. 검색 한 번이면 나온다.
series 를 읽는 자리를 찾는다 → 7군데
그중 「없으면 그만둔다」로 시작하는 곳 → 1군데 ← 여기가 사라질 기능이다
지우기 전에 했으면 30초였다. 지운 뒤에 우연히 찾았으니 운이었다.
남은 생각
같은 날 비슷한 걸 다섯 개 더 만났다. 표가 나흘째 글자로 나가고 있었고, 글 4편이 홈에서만 사라져 있었고, 주소에 날짜가 두 번 들어가고 있었다.
공통점은 하나다. 전부 초록불이었다.
그래서 요즘은 「성공했다」는 신호를 볼 때 한 번 더 묻는다. 이 검사는 무엇이 있는지를 본 것인가, 무엇이 없어졌는지를 본 것인가. 대부분의 검사는 앞쪽만 본다. 뒤쪽을 보는 검사는 대개 사람 눈뿐이고, 사람 눈은 없어진 것을 잘 못 본다.