피드로 돌아가기
Dev.toBackend
원문 읽기
500라인의 TypeScript로 구현한 고효율 Factur-X 엔진
Factur-X EN 16931 from scratch: PDF/A-3 + CII XML in Node.js / TypeScript
AI 요약
Context
EU 및 프랑스의 전자 송장 규제 도입에 따른 기계 판독 가능 문서 생성 필요성 증대. 기존 상용 SDK의 고비용 구조와 방대한 XML 스키마 문서로 인한 구현 진입 장벽 존재.
Technical Solution
- PDF/A-3 내부에 CII XML을 첨부하는 Hybrid 구조 설계를 통한 인간 가독성과 기계 판독성 동시 확보
- EN 16931 표준의 복잡한 식별자를 인간 중심의 인터페이스로 추상화하여 데이터 모델 단순화
- VAT Category 및 Unit Code의 엄격한 매핑을 통한 세무 감사 수준의 Semantic 정합성 유지
- Line-item 기반의 자동 합산 로직을 구축하여 헤더 총액과 상세 내역 간의 정밀한 데이터 일치 구현
- pdf-lib 라이브러리 기반의 Zero-dependency 지향 설계를 통한 런타임 오버헤드 최소화
Key Takeaway
복잡한 표준 스펙의 핵심은 도구의 성능보다 도메인 모델의 정확한 추상화와 데이터 정합성 검증에 있음.
실천 포인트
- EU B2B 송장 발행 시 EN 16931 표준 준수 여부 및 Factur-X 프로파일(BASIC 등) 적정성 검토 - XML 데이터와 PDF 시각 정보 간의 데이터 불일치를 방지하는 Single Source of Truth 기반의 생성 파이프라인 구축 - 국가별 VAT 세율 및 세무 카테고리(S, E, AE 등)의 매핑 테이블 정밀 설계