013 — 한글 서식 export 라이브러리 선택
Tier: B · 상태: ADR 0012 Accepted
안건
ADR 0011 Phase 1 S1 착수 pre-req. 한글 서식 export 구현 시 hwp-js · docx-templates · pdfmake 중 선택.
R1 의견
P5 개발자 (docx-templates 추천)
7축 비교 (제출 가능성·한글워드 편집·CF 렌더·번들·폰트·유지보수·비용) 전 영역 우세.
- hwp-js: OSS 정체 3년, DOM 의존 · CF 불가 · 1.2MB · 6~8 eng-day
- docx-templates: .docx 표준 · CF Node pure JS · 280KB · 2.5 eng-day · 활성 유지보수
- pdfmake: 편집 불가 (변호사 재작업) · 폰트 700KB+
4 PR 계획 제시 (render · Server Action · UI · 템플릿 업로드).
P1 변호사 (docx-only 거부 — 중대 반박)
- 전자소송 최종 = PDF 변환이나 작성 단계 95%+ 는 hwp
- docx → 한글 → hwp 경로: 표 정렬·세로쓰기·루비·줄간격 파손. 10~20분 재작업 + 재판장 "서식 미비" 지적 사례 존재
- PDF 편집 불가: "편집 흔적 있는 PDF" 는 법원이 진정성 의심. 변호사는 항상 hwp 원본 보관
- docx-only = 파일럿 2주 내 이탈 리스크. 최소 요구 "hwp 또는 hwpx 네이티브 생성". docx+PDF 동시도 마지노선
충돌 핵심
- P5: 기술 합리성 (docx-templates 최적)
- P1: 실무 현실 (hwp 없이 사용 불가)
R3 수렴 — 2단 배포 전략
S1 초 (4~5M)
docx-templates 기반 구현 (P5 원안 PR 1~3, 약 8.5 eng-day)
- Cloud Function
renderDocxTemplate+functions/src/docgen/render.ts - Server Action
generate-docx.ts(weight 1,docGeneration킬 스위치 재사용) - UI
DocTemplatePicker+DocxPreviewDialog - PR 4 (관리자 템플릿 업로드) 는 선택
명시 경고 UI: "현재 .docx 전용입니다. 한글 서식 네이티브 지원은 S2 (7~10M) 에 추가 예정" — 파일럿에게 솔직 고지
S1 말S2 초 (68M)
한글 네이티브 경로 별도 회의 (tier=B) + 구현. 재조사 대상:
| 대안 | 환경 | 위험 |
|---|---|---|
| libhwp (Python) | 별도 Cloud Run 컨테이너 | 인프라 추가 |
| officejs-hwp | 브라우저 전용 | 서버 렌더 불가 |
| hwp-js fork | 직접 유지보수 | 장기 부담 |
| LibreOffice headless 변환 | docker + soffice | 성능 · 폰트 embedding |
| 상용 변환 API (한컴 API 등) | SaaS | 비용 · 데이터 주권 |
선택 기준 (S1 종료 시점 데이터 기반):
- 파일럿 서식 깨짐 리포트 빈도
- 변호사 체감 만족도 (월 1회 정기)
- 서식 복잡도 (표·세로쓰기·이미지 인장)
Minority Report
P1 변호사 (중대 이견)
"S1 에 docx-only 로 배포하면 파일럿 이탈 위험. 한글 네이티브를 S1 에 묶어 병행 릴리스 해야 안전." 처리: 다음 조건으로 위험 완화:
- 파일럿에게 사전 고지 — "S2 hwp 추가 확약" + 데이터 제공 요청
- S1 개시 1개월 내 파일럿 3명 docx 생성 실측 리포트 수집
- 서식 깨짐 2건+ 발생 시 S2 한글 네이티브 scope 확대 (외부 API 포함 재검토)
- 파일럿 이탈 실제 발생 시 S2 앞당김 + S3 일정 축소
P5 개발자 (부분 반대)
"hwp-js fork 는 재검토. 2022 마지막 커밋 이후 maintained fork 있는지 S2 회의 전 조사." 처리: S2 회의 안건에 포함.
후속 (파생 안건)
- tier=B 한글 네이티브 경로 (S1 종료 시점 · libhwp/fork/외부 API 비교) — 본 ADR 의 S2 전제 회의
- tier=C DocxPreviewDialog 카피 — "hwp 지원 S2 예정" 문구 UI 반영
- Firestore
dailyDocxGenerationStats— 파일럿 텔레메트리 수집 스키마