데이터 모델

6. 토픽과 페이지 타입 — 두 직교 축

6.1 왜 직교 축인가

태그 한 축으로만 분류하면, 카파시 인터뷰카파시 LLM Wiki 가이드 가 같은 karpathy 태그를 받습니다. 그러면 인터뷰만 보고 싶다 거나 가이드만 한 번에 갱신하고 싶다 같은 작업이 안 풀립니다.

v3 는 두 축을 분리합니다:

  • 토픽무엇에 관한 글인가 (카파시, notemesh-v3, OKR)
  • 페이지 타입어떤 형식의 글인가 (인터뷰, 가이드, 결정 노트, 회의록)

이 둘의 곱집합이 페이지 묶음의 좌표입니다. karpathy × 인터뷰karpathy × 가이드 는 다른 칸에 있고, karpathy × 가이드llm-wiki × 가이드 는 같은 가이드 형식을 공유합니다.

6.2 토픽 트리

토픽은 평탄한 리스트에 parentId 로 트리 구조를 만들어 둡니다. UI 는 /app/catalog 에서 트리로 보여줍니다. 깊이 제한은 없지만 실용적으로는 2–3 단이 깔끔합니다:

인물/
  엔지니어/
    karpathy
    rich-hickey
프로젝트/
  notemesh-v3
  side-bot
학습/
  ai-engineering/
    rag
    mcp

6.3 페이지 타입 카탈로그

페이지 타입은 트리가 아닌 평탄한 리스트입니다. 사용자가 자기 흐름에 맞게 만듭니다. 자주 쓰이는 타입 예:

  • 회의록 — 누가, 언제, 무엇을, 결정 사항
  • 결정 노트 — 옵션, 평가, 선택, 6 주 후 회고 칸
  • 학습 정리 — 새로 배운 것 한 가지
  • READING_NOTE — 읽은 자료의 인용 + 자기 메모
  • 코드 스니펫 — 재사용 가능한 짧은 코드 블록

6.4 AI 의 분류 흐름

AI 가 페이지를 만들 때마다:

  1. list_topics_cataloglist_page_types기존 카탈로그를 먼저 봅니다.
  2. 적합한 게 있으면 그걸 씁니다.
  3. 없으면 제안 — "새 토픽 karpathy 를 만들어도 될까요?" — 그리고 사용자가 명시 승인할 때만 create_topic / create_page_type 를 호출합니다.
  4. 카탈로그가 사용자 통제 하에 자라기 때문에, 비슷한 토픽이 근소차로 두 개 생기는 경우가 거의 없습니다.