습관 로그

문제 시작 전에 읽는다. 다음 문제에서도 재발하면 진짜 습관, 한 번 나오고 재발 없으면 삭제. 짧게 유지.

  • 사용처 판단은 스펙의 테스트 코드까지 보고 한다 — 내 구현만 보고 “이 클래스는 여기서만 쓰잖아?”라고 판단하지 않기 (Lab10: 내포 클래스 예측 실패, 테스트 코드의 import가 전제를 깼음)
  • 일어날 수 없는 상황을 방어하는 코드를 쓰지 않는다 — “이 상황을 만들 수 있는 코드가 존재하는가?”를 먼저 묻고, 답이 ‘없음’이면 방어 대신 assert로 가정을 명시 (Lab10: null check가 fall-through 버그를 만들고, clamp가 불변식을 가림 — 한 문제에서 2회)
  • 결정은 이유와 함께 일지에 적고 나서 코드로 옮긴다 — 기록 안 된 결정이 하필 구멍이 됨 (Lab10: GUEST 센티널을 일지 없이 도입 → 실제 사용자와 충돌)
  • 수량 정의·범위 가정은 경계값 0과 1에 직접 대입해 검산한다 (Lab10: 만료 카운트 1과 0에서 각각 한 번씩 실패 / Assignment4: “음수가 아니다”를 > 0으로 옮겨 0×0 캔버스를 assert가 거부 — 재발, 진짜 습관 확정)
  • 스펙 문장의 핵심 명사를 구현이 실제로 충족하는지 술어로 바꿔 확인한다 — “실제 데이터 형이 일치하는지 검증”을 코드값 비교로 때웠다가 빌드봇에서 실패 (Lab10: ResultValidator H01~H05)