피드로 돌아가기
Why PDF generation breaks in production (and why localhost lies)
Dev.toDev.to
Infrastructure

Chromium 기반 PDF 생성의 인프라 복잡도 제거를 통한 시스템 안정성 확보

Why PDF generation breaks in production (and why localhost lies)

Johin Johny2026년 6월 16일2intermediate

Context

HTML-to-PDF 변환 시 브라우저 렌더러를 거치는 구조적 특성으로 인해 메모리 스파이크와 프로세스 관리 부담이 가중되는 한계 발생. 단순 라이브러리 호출이 아닌 브라우저 자동화 시스템 운영에 따른 인프라 유지보수 비용 증가 및 보안 취약점 노출 위험 상존.

Technical Solution

  • Browser Automation 의존성을 제거하여 메모리 누수 및 프로세스 좀비화 문제 원천 차단
  • HTML 렌더링과 PDF 생성 단계를 분리하여 CSS Page Break 및 폰트 렌더링 불일치 해결
  • 서버리스 기반의 외부 API 서비스(PDFPipe) 채택을 통한 Worker 관리 및 Queue 설계 부담 제거
  • 격리된 실행 환경 구축을 통한 사용자 입력 콘텐츠의 내부 네트워크 접근 및 파일 시스템 접근 차단
  • 인프라 관리 포인트 제거를 통해 비즈니스 로직 집중 환경 조성

- PDF 생성 시 브라우저 프로세스 생명주기 관리 방안 검토 - 대량 문서 생성 요청에 대비한 Queue 및 Worker 기반의 비동기 처리 설계 적용 - 렌더링 엔진의 샌드박스 설정을 통한 SSR-based SSR/PDF 생성 시 보안 취약점 점검 - Print CSS 최적화를 통한 페이지 분할 및 헤더/푸터 렌더링 정밀도 검증

원문 읽기