임시에는 만료 조건을 같은 자리에 적는다 — 안 적으면 영구가 된다

임시 값·임시 코드·검사를 끄는 플래그를 넣을 때는, 같은 자리에 왜 임시인지와 무엇을 확인하면 걷을지를 함께 적는다.

이럴 때

"일단", "임시로", "나중에 치우자"가 나올 때. 상수를 하드코딩하거나, mock 을 깔거나, 검사를 끄는 플래그를 붙이거나, 구·신 경로를 한동안 병행할 때. "나중에 기억하겠지" 하고 조건 없이 커밋하고 싶어질 때가 적을 때다.

이렇게

  • 한 줄에 세 가지를 담는다. 임시라는 선언, 왜 임시인지(무엇을 못 해서), 걷는 조건.
  • 주석을 달 수 없는 파일이면 README 나 설정 주석에 자리를 만든다.
  • skip·off 처럼 검사를 끄는 플래그도 임시다. 넣는 순간 같은 세 가지를 적는다.

멈출 신호·예외

그 조건을 읽을 사람이 "몇 달 뒤의 누군가"라면 주석으로는 부족하다. 이슈·알람·타이머처럼 스스로 알려 주는 곳으로 옮긴다.

설명

임시는 이유를 잃는 순간 영구가 된다. 조건 없이 들어간 임시 값은 나중에 본 사람에게 "이상한 설정"으로 보이고, 이상하다는 것만으로는 아무도 걷지 못한다. 반대로 응급조치 옆에 "이건 설계가 아니다, 무엇을 재고 나서 올려라"를 적어 둔 코드는 몇 달 뒤 감사에서 아직 안 갚은 빚으로 정확히 분류됐다.

다만 적는 것만으로는 모자랄 때가 있다. 주석은 누군가 그 파일을 열어야 작동하고, 여는 시점은 우연이다. 경고 문장을 헤더에 적어 두고도 그 문장을 실행할 장치가 없어 장애가 길어진 일이 있었다.

반례

없다. 다만 이 원칙의 한계는 분명하다. "적으면 된다"로는 모자라고 "적은 것이 읽히는가"까지 물어야 한다.

판별법

"이 조건을 누가 언제 읽나?"

답둘 곳
다음에 이 파일을 열 때같은 자리의 주석
몇 달 뒤 누군가가이슈·알람·타이머

"임시로"라고 쓰는 순간이 한 줄을 더 쓸 때다.