Memex-KB의 핵심: 일관된 파일명 규칙과 규칙 기반 자동 분류
이 문서는 한글 중심의 지식 관리를 위한 Denote 규칙을 설명합니다.
timestamp--한글-제목__태그1_태그2.md
- timestamp:
YYYYMMDDTHHMMSS(대문자 T 필수!) - 한글-제목: 한글로 의미 명확하게 (하이픈으로 구분)
- 태그들: 영어 소문자 (언더스코어로 구분)
# 입력
title: "API 설계 가이드"
tags: ["백엔드", "api", "가이드"]
# 출력
20250913T150000--api-설계-가이드__backend_api_guide.md| 특성 | 설명 |
|---|---|
| 시간 기반 정렬 | 파일 탐색기에서 자동 정렬 |
| 인간 친화적 | 한글 제목 유지 (검색 쉬움) |
| 명확한 태그 | 언더스코어로 구분, 프로그래밍으로 파싱 가능 |
| 파싱 가능 | 메타데이터 자동 추출 |
파일: scripts/denote_namer.py
from denote_namer import DenoteNamer
namer = DenoteNamer()
filename = namer.generate_filename(
title="문서 제목",
tags=["tag1", "tag2"]
)
# → 20250913T150000--문서-제목__tag1_tag2.mdLLM 없이 토큰 비용 0원으로 자동 분류
파일: config/categories.yaml
categories:
architecture:
name: "시스템 설계"
keywords: ["설계", "아키텍처", "구조"]
patterns: ["^시스템.*설계"]
file_hints: ["architecture", "design"]
development:
name: "개발 가이드"
keywords: ["개발", "API", "코드"]
patterns: [".*가이드$"]
file_hints: ["dev", "api"]
operations:
name: "운영 문서"
keywords: ["운영", "배포", "모니터링"]
patterns: [".*운영.*"]
file_hints: ["ops", "deploy"]
products:
name: "제품별 문서"
keywords: ["제품", "서비스", "기능"]
file_hints: ["product", "service"]
classification:
min_score: 30 # 최소 매칭 점수
weights:
title_keyword: 10 # 제목에 키워드 있을 때
title_pattern: 15 # 제목이 패턴에 매칭될 때
content_keyword: 5 # 본문에 키워드 있을 때
file_hint: 20 # 파일명에 힌트 있을 때- 키워드 매칭: 제목/본문에서 키워드 검색
- 패턴 매칭: 정규식으로 제목 패턴 확인
- 파일 힌트: 파일명에서 힌트 추출
- 점수 계산: 가중치 합산
- 최고 점수 선택: 가장 높은 점수의 카테고리로 분류
파일: scripts/categorizer.py
from categorizer import DocumentCategorizer
categorizer = DocumentCategorizer()
category, score, all_scores = categorizer.categorize(
title="API 설계 가이드",
content="이 문서는 REST API 설계 원칙을 설명합니다..."
)
# → category: "development", score: 45| LLM 기반 분류 | 규칙 기반 분류 |
|---|---|
| 토큰 비용 발생 | 비용 0원 |
| 결과 비결정적 | 재현 가능 |
| API 의존성 | 오프라인 동작 |
| 블랙박스 | 투명한 YAML 설정 |
docs/
├── architecture/ # 시스템 설계
├── development/ # 개발 가이드
├── operations/ # 운영 문서
├── products/ # 제품별 문서
└── _uncategorized/ # 미분류 (수동 검토 필요)
min_score (기본 30) 이하면 _uncategorized/에 저장
→ 수동 검토 후 적절한 카테고리로 이동하거나, categories.yaml에 규칙 추가
- 검색 용이성: 파일 탐색기에서 바로 내용 파악
- 문맥 보존: 영어 번역 시 뉘앙스 손실 방지
- Org-mode 호환: Emacs Denote와 완벽 호환
- 파싱 안정성: 한글 태그는 정규식 처리 복잡
- 검색 통합: 기존 도구들과 호환
- 국제화 대비: 영어 태그로 글로벌 검색 가능
# 좋은 예
20250913T150000--api-설계-가이드__backend_api_guide.md
# 피해야 할 예
20250913T150000--api-design-guide__백엔드_api_가이드.md
Emacs Denote 패키지와 완벽 호환됩니다.
;; Denote 설정 예시
(setq denote-directory "~/memex-kb/docs")
(setq denote-file-type 'markdown-yaml)변환된 문서를 Emacs에서 바로 편집하고, Denote의 링크/백링크 기능 활용 가능
← README.md로 돌아가기