Files
document-haness/docs/TechLog/tech-log-studio/an-axis-inside-a-topic/concept/concept-topic-variant-and-record-variant.md
T
DongHyeonkaandClaude Opus 5 0650d91def docs(TechLog): 설명 뒤에 붙은 평가·예고·되풀이를 걷어낸다
rewriting-technical-prose-naturally 를 서브에이전트 셋으로 나눠 56편에 적용했다.
ai-tells.md 의 첫 절대로 다른 표현으로 바꾸는 대신 문장을 통째로 지웠다.

  설명한 것의 중요성을 다시 평가하는 꼬리   19
  이미 설명한 것을 추상어로 되풀이           19
  독자에게 읽는 법을 지시하거나 오해를 가정   9
  자료가 뒷받침하지 않는 덧붙인 이득          4

문서군 전체의 문형 편중도 풀었다 — 함께 27→7(한 묶음), 그대로 22→12(두 묶음),
하게 된다 1→0. 한 편에서 세 번 반복되던 「같은 병이 ~에서도 났다」와 두 기록에
같은 문장으로 있던 세 쌍을 갈랐다.

계약 제목 「여덟 자리」가 본문의 「여덟 곳」과 어긋나 있었다. 제목이 spatial-metaphor
규칙에도 걸리므로 계약과 기록을 함께 「여덟 곳」으로 맞췄다.

검사 넷 전부 통과한다 — check_prose 56편 error 0 · check_body PASS ·
check_evidence --repo 문제 없음 · verify-tech-log-tree error 0 warn 0.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-07 16:03:16 +09:00

4.1 KiB

kind, slug, title, topic, topicName, project, status, basisVersion, assets, evidence, sourceRevision, source
kind slug title topic topicName project status basisVersion assets evidence sourceRevision source
CONCEPT topic-variant-and-record-variant 축은 주제가 이름을 정하고, 기록은 종류와 아이디의 쌍으로 축에 걸린다 an-axis-inside-a-topic 주제 안의 축 TechLog 게시 전 tech-log-backend 2026-09-01 의 축 스키마 · record_variant 에 외래키 없음 · studio_validation 과 publication 이 쓰는 방식을 따름
key file
topic-variant-model ../../../final/assets/diagrams/topic-variant-model/topic-variant-model.svg
../../../final/evidence/raw/db/topic-variant-rows.txt
../../../final/evidence/raw/db/record-variant-links.txt
tech-log@2026-09-02
final/document.md#§14.1

축은 주제가 이름을 정하고, 기록은 종류와 아이디의 쌍으로 축에 걸린다

주제 안의 축은 세 테이블로 표현된다. 주제가 축의 이름을 스스로 정하고, 축의 값들이 따로 있고, 어느 기록이 어느 축에 걸리는지를 종류와 아이디의 쌍으로 적는다. 기록이 종류마다 다른 테이블에 살기 때문에 그 쌍에 외래키를 걸지 못한다.

관계

  • 주제를 넷으로 쪼개지 않고 주제 안에 축을 하나 뒀다 이 구조를 만든 결정이다.
  • 축 링크가 자기 자신을 가리켰고, 고친 뒤에는 백엔드를 먼저 배포했다 이 구조 위에 축 화면을 만든 사건이다.
  • 홈의 비교 구역이 세 번 바뀌었다 이 구조가 화면에서 어떻게 쓰이는지가 그 기록에 있다.

본문

세 테이블

topic (주제)
  ├─ variant_label   축의 이름 — 주제마다 다르다
  │                  인증 경계 → 「구조」 / 조회 성능 → 「조회 전략」
  └─ topic_variant   축의 값들 (SPA, Mediator, BFF, Forward-Auth)
       └─ record_variant   어느 기록이 어느 축에 걸리는지 (kind, id) 쌍

:::evidence key="topic-variant-model" alt="topic·topic_variant·record_variant 가 이어지고 record_variant 가 세 테이블을 가리키는 구조도" caption=" " zoom="true" :::

축 이름은 주제가 정한다

내부 이름은 축으로 고정하고, 화면에 보이는 이름은 주제가 자기 칸에 적는다. 인증 경계 주제는 「구조」, 조회 성능 주제는 「조회 전략」이다.

기록은 여러 축에 걸린다

한 기록이 여러 축에 걸릴 수 있다. PKCE 는 SPA 와 BFF 양쪽에 관계된다.

아무 축에도 걸리지 않은 기록은 그 주제의 공통 기록으로 읽는다. 「공통」이라는 축을 따로 만들지 않는다.

외래키가 없다

record_variant 는 외래키를 갖지 않는다. 기록이 종류마다 다른 테이블에 살기 때문이다 — 문서·열린 질문·프로젝트 결정이 각각 다른 테이블이다. 종류와 아이디의 쌍으로만 가리킨다.

검증 상태와 게시 기록이 이미 같은 방식으로 기록을 가리키고 있었다.

사람이 쓰는 칸

주제의 논지, 축의 요약과 결론은 기록을 합쳐 자동으로 나오는 글이 아니다. 특히 결론은 비교표가 읽는 칸이라 기록의 요약 첫 줄을 잘라 쓰면 안 된다.

같은 구조가 다르게 보일 때

두 주제가 같은 구조를 쓰는데 축에 걸린 기록 수가 달라 다르게 보인다.

oauth-oidc-auth-boundary   축 이름 「구조」    축 4개
  spa           ← CASE 1 + REFERENCE 3                 (기록 4)
  mediator      ← CASE 1 + QUESTION 2 + REFERENCE 2    (기록 5)
  bff           ← CASE 1 + QUESTION 3 + REFERENCE 1    (기록 5)
  forward-auth  ← CASE 1 + QUESTION 1 + REFERENCE 1    (기록 3)
  공통 기록: CONCEPT 1 + 결정 2 + REFERENCE 2

jpa-feed-query-performance  축 이름 「조회 전략」  축 3개
  derived-query      ← CASE 1
  fetch-join         ← CASE 1
  fetch-join-paging  ← CASE 1

축마다 기록이 하나씩이고 축 제목을 그 기록 제목과 비슷하게 적으면 「문서가 그대로 나온다」로 보인다.