docs(TechLog): 얇은 Case 열 편과 Question 셋을 저장소 실물로 채운다

SSOT 를 저장소에서 확인해 더 보강하고 그것으로 다시 썼다.

  §7.2   참조 검사 SQL 을 문자열로 조립하는 실제 코드 — 컴파일러가 표 이름도
         컬럼 이름도 보지 않는다는 것이 그 모양에서 드러난다
  §11.2  section-heading-rank 가 미디어 쿼리 값을 먼저 걷어내는 이유(테스트 주석)
  §16.1  질문 삭제는 참조가 둘뿐이라 같은 문제가 덜하다는 대조

Case 열 편과 Question 셋을 다시 썼다. Question 은 사실·가정·미지수·제약을 갈라
채우고 선택지마다 무엇을 감수하는지 적었다 — 오류 코드를 나누면 계약과 반입한 두
저장소가 함께 움직인다는 것처럼.

SSOT 62,643 → 68,319 자. 검사 넷 전부 통과한다.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
DongHyeonka
2026-09-07 19:18:37 +09:00
co-authored by Claude Opus 5
parent 6917ce2420
commit fd221353a3
15 changed files with 162 additions and 50 deletions
@@ -64,6 +64,8 @@ tech-log-frontend : fd73bc8 · fe6b56a
> 화면 테스트는 `test:unit` 이 아니라 `test:tech-log` 가 돌린다. 그것을 돌리지 않아 위 두 결함과, 의도한 변경에 고정돼 있던 단언들이 **23건 빨간 채로 여러 커밋을 지나갔다.**
두 명령이 보는 디렉터리가 다르다. 단위 테스트 명령은 단위 테스트 디렉터리를, 화면 테스트 명령은 기능별 테스트 디렉터리를 돈다. 넷을 돌리고 「전부 통과」라고 읽으면 다섯 번째가 빠진다.
23건이 한 종류가 아니었다는 것이 문제를 키웠다. 일부는 실제 결함을 잡은 것이고 일부는 의도한 변경에 단언이 고정돼 있던 것이다. 둘을 구분하려면 그 명령을 돌려 하나씩 봐야 하는데, 돌리지 않으니 둘 다 그대로 남았다.
## 게이트 기준값을 빠뜨렸다
@@ -85,6 +87,12 @@ tech-log-frontend : fd73bc8 · fe6b56a
> **가드는 CI 에 묶여야 의미가 있습니다.** 사람이 기억해서 돌리는 가드는 절반만 존재합니다.
## 명령이 많으면 「다 돌렸다」가 흐려진다
이 저장소의 프론트엔드는 검사 명령이 수십 개다. 타입 검사만 여섯 개의 tsconfig 를 돌고, 테스트도 단위·컴포넌트·통합·기능별로 나뉜다.
명령을 나눈 이유는 각각 다른 대상을 보기 때문이고 그 자체는 맞다. 대신 「배포 전에 무엇을 돌리는가」를 목록으로 고정하지 않으면 그중 일부만 돌고도 전부 돌린 것으로 읽힌다.
## 확인하지 못한 것
다섯 명령을 CI 에 묶는 작업은 하지 않았다. 지금 남은 것은 메모리와 배포 전 검증 목록이고, 그 목록을 읽는 것도 사람이다.