본문 바로가기
Projects (개인)

AutoDoc Tree

Links

2025~Present. 업로드/작성 문서를 자동으로 가상 폴더 트리로 정리하고, 사용자 피드백으로 개인화되는 멀티테넌트 문서 자동 정리 서비스.
(업데이트 기준: 2026-03)

Tech Stack

  • Kotlin
  • Spring Boot
  • React (TypeScript)
  • PostgreSQL
  • OpenSearch (BM25 + Vector Hybrid/RRF)
  • Redis
  • S3/MinIO
  • Outbox + Worker
  • Micrometer + Prometheus + Grafana
  • Apache Tika
  • Multi-tenant Architecture (Workspace = Tenant)
  • Ollama (Embedding/LLM, optional)
  • Reranker API / Structure Worker (optional)

Overview

문서를 업로드/작성하면 의미 기반으로 자동 분류해 2-depth 가상 트리 스냅샷을 생성하는 문서 자동 정리 서비스
사용자 수정(이동/이름변경/락/설명 수용) + 질문 응답(Active Learning)을 학습 신호로 반영해 워크스페이스별 분류 품질이 점진적으로 개선되는 구조

Architecture

API/BFF 계층과 비동기 Worker 계층을 분리하고 Outbox 이벤트로 ingest, embedding, indexing, tree generation을 연결
Workspace 스코프를 API/DB/OpenSearch/Redis/Object Storage 전 구간에 강제하고 fail-closed 정책으로 멀티테넌트 안전성 보장
스냅샷은 ACTIVE/RECOMMENDED 모델을 사용하며, rebuild debounce/coalesce + node lock으로 구조 흔들림 최소화
검색은 workspace 필터 강제 하에 BM25 + kNN Hybrid(RRF)로 동작

Data Flow

Upload/Write → (Attachment presign/complete) → Parse(Tika) → Section/Chunk → Embedding(문서/요약/섹션) → OpenSearch Indexing → Tree Snapshot Build
User Feedback(move/rename/lock/explain-accept) + Questions + Admin Rules → 신호 적재 → 다음 리빌드 시 정책/가중치 반영

Ops

stage-level idempotency key (workspace_id, document_id, stage, input_hash, model_version) + retry/backoff + DLQ + replay로 재처리 안정성 확보
trace_id/request_id 전파, stage 성공률/지연/트리 품질 메트릭 기반 운영 가시성 강화
민감정보(문서 본문/추출 텍스트/청크 원문/presigned URL) 로그 금지 및 마스킹 정책 적용
관리자 기능: tree policy, debug(neighbors/docs/clusters/rebuilds), rules, question control/analytics, job retry

Architecture Diagram

diagram rendering...