Skip to content
isdnetworks
Go back

검토를 돌 때마다 결과를 적었다

같은 코드를 여러 번 돌아가며 봤는데 세 번째 회차에서 첫 회차와 같은 것을 다시 찾았다.

Table of contents

Open Table of contents

증상 — 볼 때마다 처음부터 봤다

회차별로 무엇을 봤는지 순서대로 돌아봤다.

1회차   설정 파일 훑음. 하드코딩된 값 몇 개 발견
2회차   쿼리 훑음. 인덱스 없는 조회 발견
3회차   설정 파일 다시 훑음. 같은 하드코딩 발견  ←

1회차에서 config/db.php 의 하드코딩을 찾고도 고치지도 적지도 않고 넘어갔다.

3회차에 같은 자리를 다시 찾고 나서야 이거 전에 봤는데가 떠올랐다. 기억에 의존하면 며칠만 지나도 어디까지 봤는지가 흐려진다.

조치 — 회차마다 적었다

그래서 회차마다 날짜와 본 영역과 찾은 것을 적기 시작했다.

[1회차] 2019-04-20 설정
  ( ) config/db.php 에 운영 주소 하드코딩 (13행)
  ( ) config/app.php 에 API 키 (41행)  ← 급함
  (x) 로그 경로가 상대 경로 (fixed 2019-04-20)

[2회차] 2019-04-23 쿼리
  ( ) orders.channel_order_no 인덱스 없음
  (x) N+1 조회 3곳 (fixed 2019-04-23)
  확인함: 슬로우 쿼리 로그에 다른 문제 없음

[3회차] 2019-04-27 배포·운영
  ( ) 배포 후 확인 절차 없음
  확인함: 설정 파일은 1회차에서 봤음. 남은 것 2건

확인함 을 적으니 다시 안 봤고 orders.channel_order_no 처럼 남은 것도 목록으로 보인다.

찾은 것만 적으면 확인했는데 문제가 없던 자리가 빠져 다음 회차에 또 보게 된다. 결국 검토 기록의 절반은 다음에 볼 것을 줄이기 위한 것이었다.

대응 — 안 본 영역 목록

무엇을 봤는지만 적으면 아직 안 본 것이 무엇인지 모른다.

[아직 안 본 것]
  프런트엔드 코드
  배치 스크립트 (crontab 에 있는 것)
  시험 코드

프런트엔드배치 스크립트시험 코드 가 남아 있었다.

이것을 안 적던 전에는 대충 다 본 것 같다는 느낌으로 끝났다. 배치 스크립트 쪽은 세 회차 동안 한 번도 안 열린 채로 남아 있었다.

판단 기준 — 찾은 것의 성격

찾은 것을 성격에 따라 넷으로 나눴다.

급함     지금 고쳐야 한다 (보안·데이터 손실)
중간     이번 주에
낮음     시간 날 때
안 함    확인했지만 고치지 않기로 함 (이유 적음)

안 함 이라는 칸이 필요했는데 안 고치기로 한 것을 안 적으면 다음 회차에 또 찾는다.

(안 함) legacy/order/list.php 의 중복 코드
        이유: 3개월 뒤 삭제 예정. 지금 고칠 이유 없음

이유를 함께 적어야 같은 것을 다시 논의하지 않는다.

검증 — 무엇으로 확인했는지

고쳤다고 적어 놓고 실제로는 확인을 안 한 것이 있었다.

(x) N+1 조회 3곳 (fixed 2019-04-23)
    확인: 쿼리 로그에서 412 → 3 (2019-04-24)

쿼리 로그 에서 무엇을 보고 확인했는지까지 적었다.

고쳤다는 말과 확인했다는 말은 다른데 한 건은 고쳤다고 적었으나 확인해 보니 한 곳이 남아 있었다.

사전 준비 — 다음 회차와 한 문서

다음 회차에 무엇을 볼지도 미리 정해 뒀다.

[4회차 예정] 배치 스크립트
  crontab 에 있는 것 전부 열거
  각각 무엇을 하는지, 실패하면 어떻게 되는지
  로그를 남기는지

범위를 안 정하면 눈에 띄는 것부터 보다가 흩어진다.

회차마다 새 문서를 만들면 앞의 것을 안 보게 되므로 한 문서에 계속 붙였다.

[코드 점검] 2019-04 ~
  현재 상태: 4회차 중 3회차 완료
  남은 지적: 급함 1, 중간 4, 낮음 8
  안 본 영역: 프런트엔드, 시험 코드

문서 위쪽의 현재 상태 한 줄만 봐도 어디까지 왔는지 안다.

그 아래에는 회차별 기록이 순서대로 쌓이고 검토가 여러 회차로 나뉘는 순간부터 회차 사이를 잇는 이 기록이 필요했다.

정리


Share this post on:

Previous Post
다른 층에 있던 고칠 자리
Next Post
마지막으로 보낸 값의 보관