피드로 돌아가기
Dev.toInfrastructure
원문 읽기
인프라 복잡성을 제거한 Unified PDF Conversion API 설계
Generating PDFs shouldn't be this hard in 2026
AI 요약
Context
PDF 생성 시 wkhtmltopdf의 현대적 CSS 미지원과 Puppeteer의 과도한 리소스 소비 및 인프라 관리 비용 발생. LibreOffice headless 도입 시 발생하는 메모리 누수와 느린 Startup time으로 인한 운영 효율 저하 해결 필요.
Technical Solution
- Chrome pool 기반 Puppeteer 구조를 통한 CSS3, Flexbox, Grid 및 JavaScript 완전 지원 환경 구축
- LibreOffice headless를 통합하여 DOCX, XLSX, PPTX 등 다양한 Office 포맷의 PDF 변환 로직 구현
- ImageMagick 도입을 통한 다양한 이미지 포맷의 PDF 표준화 변환 프로세스 설계
- binary, base64, url 등 다양한 Response type 제공으로 Integration 패턴별 어댑터 제거
- 파일 보안 강화를 위해 변환 후 1시간 뒤 데이터를 자동 삭제하는 휘발성 저장소 정책 적용
- Credit 기반 과금 체계 대신 예측 가능한 Flat pricing 모델을 통한 사용자 경험 최적화
실천 포인트
- 현대적 웹 표준 PDF 생성이 필요할 경우 WebKit 기반 도구 대신 Headless Chrome 기반 솔루션 검토 - Headless Chrome 운영 시 --no-sandbox 플래그 설정 및 컨테이너 전용 Base image 선택 여부 확인 - Office 문서 변환 시 LibreOffice의 Memory leak 가능성을 고려한 주기적 프로세스 재시작 전략 수립 - API 설계 시 클라이언트의 워크플로우(JSON/Stream)에 맞춘 다양한 Response format 제공 고려