Skip to content

로드맵 ​

M1 — 사전 코어 (엑셀 탈출) · 구현됨 ​

DB 스키마, 표기 정규화, 자체 계정 인증, API Key, 용어 CRUD API, 목록·상세·편집 UI, surface 기반 검색 + pg_trgm, 등록 시 중복 경고, 엑셀 임포트(dry-run), 프로덕션 Docker 구성, 백업·복구 스크립트, OpenAPI 스펙.

이 시점에 기존 엑셀·컨플루언스를 옮기고 실사용을 시작할 수 있다. 가장 먼저 놓는 이유가 이것이다. 실제 데이터가 들어와야 이후 기능의 튜닝이 가능하다.

M2 — 검증 엔진 + 연동 · 진행 중 ​

packages/engine의 문서 검증 코어, POST /validate, POST /validate/batch, GET /lexicon, 미등록 후보 수집, /check 화면, 후보 등록·무시 API는 구현됐다. CI 연동과 실제 사내 문서 기반 후보 노이즈 튜닝은 남아 있다.

AI-Lint 연동이 여기서 완성된다.

검증 파이프라인 ​

  1. 세그먼트 분리 — 마크다운의 코드블록·인라인 코드·URL·이미지 경로·프론트매터를 먼저 제외한다. 안 그러면 sensor_gain_reg, getExposureTime 같은 식별자가 전부 미등록 후보로 쏟아진다. 제외 구간은 span만 기억하고 이후 단계에서 건너뛴다.

  2. 사전 매칭 — Aho-Corasick 자동자. 표기가 수만 개여도 문서를 한 번만 훑는다. 최장일치 우선이라 "Auto Exposure"가 있으면 "Exposure"를 따로 잡지 않는다.

  3. 경계 판정 — 한국어는 매칭 뒤에 조사(은/는/이/가/을/를/의/에/에서/으로/로/와/과/도/ 만/부터/까지 등)가 붙으면 경계로 인정하고, 이미지센서티브처럼 조사가 아니면 거부한다. 영어는 단어 경계와 CamelCase 분해로 처리한다.

  4. 규칙 적용

    ruleseverity동작
    forbiddenerror금지어. 대체 표현 제시
    deprecatederror폐기어. replaced_by 제시
    non_standardwarningalias/discouraged 매칭 → canonical 자동 교정 가능
    ambiguouswarning같은 표기가 여러 Term에 → domain별 후보 나열
    unregisteredinfo미등록 후보
  5. 미등록 후보 추출 — 대문자 2~6자 연속(AWB, MIPI), 숫자 포함 제품코드형 (IMX999), Title Case 다단어구, 한글은 반복 빈도 임계를 넘는 명사구. 무시 목록을 함께 둔다. 없으면 몇 주 안에 리포트가 노이즈로 덮여 아무도 안 본다.

span은 원본 좌표를 끝까지 유지한다. 세그먼트 제외로 오프셋이 밀리면 AI-Lint의 인라인 표시와 자동 수정이 어긋난다.

왜 사전 스냅샷을 배포하나 ​

GET /lexicon(ETag / If-None-Match)이 CI가 제대로 돌기 위한 핵심이다. 레포 전체를 매 커밋마다 서버로 올려 검증하는 것은 느리고, 사내 문서 본문이 계속 네트워크를 타는 것도 바람직하지 않다. AI-Lint가 사전 스냅샷만 받아 로컬 캐시하고 packages/engine으로 자기 자리에서 검증하면 네트워크 왕복이 커밋당 한 번, 사전이 안 바뀌었으면 304로 끝난다.

같은 엔진 코드가 서버와 클라이언트 양쪽에서 도니 결과는 동일하다. 응답에 lexiconVersion(스냅샷 해시)을 실어 CI 실패 시 당시 사전을 재현할 수 있게 한다. 목표는 10만자 문서 100ms 이내.

LLM은 기본 off ​

llm: true일 때만 미등록 후보 상위 N개를 "도메인 전문용어 / 일반어 / 오타"로 3분류한다. 사내망이므로 OpenAI 호환 엔드포인트 URL을 설정으로 받아 로컬 LLM 서버를 붙인다. CI 경로는 항상 규칙 기반만 타므로 빌드가 LLM 가용성에 묶이지 않는다.

M3 — 위키 완성도 · 기반 구현됨 ​

용어와 분리된 /w/ 위키 공간, 초안·공개·보관 상태, 용어 연결, Markdown 렌더링, 리비전 스냅샷과 공개 위키 전용 RAG 색인이 구현됐다. /g/는 용어 상세를 유지하고, 기존 /w/<용어> 링크는 자동으로 /g/<용어>로 이동한다. CodeMirror 6 분할 프리뷰, 이미지 첨부, Mermaid·수식, 위키 링크, 역참조와 나란히 보는 diff UI는 후속 범위다.

아래 Mermaid는 구현된 기능의 배경이며, 위키 본문 검증은 후속 계획이다.

  • mermaid를 지원하는 이유 — 센서 도메인은 블록도와 타이밍 다이어그램이 계속 나오는데 이미지로 붙이면 수정이 안 된다. mermaid 코드블록은 텍스트라 diff에 잡히고 이력 추적이 되며 이미지 업로드 부담도 줄인다.
  • 위키 본문 자체를 검증한다 — 저장 시 본문에 검증 엔진을 돌려 비표준 표기와 금지어를 인라인 표시한다. 용어집을 관리하는 사람들이 정작 용어집 본문에서 제각각 표기를 쓰는 상황을 막는다. 저장을 막지는 않고 경고만 띄운다.

리스크 ​

리스크대응
미등록 후보 노이즈 — 임계값이 낮으면 리포트가 쓰레기로 덮여 아무도 안 본다M2에서 실제 사내 문서로 튜닝, 무시 목록 필수 동반
한국어 경계 오탐골든 픽스처로 회귀 관리
엑셀 데이터 품질dry-run 리포트로 흡수
정규화 함수 불일치로 인한 조용한 매칭 실패engine 단일 소유 + db 통합 테스트로 상시 검증

보류 항목 ​

  • 추가 SSO(LDAP/SAML) 연동 — OIDC/OAuth 2.0 외 방식은 실제 사내 인프라 정보 확보 후. users.external_id 컬럼이 그 자리다.
  • 컨플루언스 직접 임포트 — M1은 엑셀/CSV만. 컨플루언스는 export 후 변환으로 우회.
  • docx 등 마크다운 외 포맷 검증 — M2는 markdown/plaintext만.

원본 문서 ​

설계 스펙과 구현 계획은 저장소에 그대로 있다.

사내망 온프레미스 배포를 전제로 만든 Apache-2.0 프로젝트입니다.