비교 및 배포 가이드
어떤 패키지가 필요한지 확실하지 않으신가요? 아래의 인터랙티브 마법사를 사용하거나, 배포 시나리오와 의사결정 매트릭스를 참고하여 최적의 설정을 찾아보세요.
완벽한 설정 찾기
프로젝트 유형
설정 생성
설정 생성기
패키지와 옵션을 선택하여 바로 사용할 수 있는 구성 파일을 생성합니다.
composer require yeeefang/tcpdf-next배포 시나리오
호스팅 환경마다 지원하는 기능이 다릅니다. 각 환경에 가장 적합한 구성은 다음과 같습니다:
공유 호스팅
제한된 PHP 접근, 셸 없음. Core만 사용 가능. Chrome/RoadRunner 불가.
VPS (PHP-FPM)
전체 서버 제어. Chrome 설치로 HTML→PDF 지원. 대부분의 앱에 적합.
VPS + RoadRunner
RoadRunner상주 워커로 콜드 스타트 제거. 처리량 3-7배 향상.
전용 서버
완전한 리소스. Pro 기능(PAdES, PDF/A-4, HSM)에 적합.
전용 서버 + RoadRunner
RoadRunner최대 처리량. 4 워커로 9,000+ docs/s.
Kubernetes / Docker
RoadRunner수평 확장. RoadRunner를 워커 프로세스로 사용. 프로덕션 등급.
성능: 표준 PHP-FPM vs RoadRunner
RoadRunner는 PHP 애플리케이션을 영구 워커로 메모리에 유지하여 콜드 스타트를 제거하고 처리량을 대폭 향상시킵니다.
표준 PHP-FPM vs RoadRunner
▲ 높을수록 좋음PHP 8.5.3 + OPcache + JIT · Docker 4 CPUs / 16 GB · i9-13900K · 20회 중앙값
RoadRunner 사용 시기
높은 처리량(분당 수백 개의 PDF)이나 낮은 지연 시간(서브밀리초 응답 시간)이 필요한 경우 RoadRunner를 권장합니다. 요청당 소수의 PDF를 생성하는 일반적인 웹 애플리케이션에서는 표준 PHP-FPM으로 충분합니다.
사용 사례 의사결정 매트릭스
특정 사용 사례에 어떤 패키지를 설치해야 할까요?
| 사용 사례 | |||||||
|---|---|---|---|---|---|---|---|
| 인보이스 및 보고서 생성 | ✅ | ⚪ | ⚪ | ⚪ | ⚪ | ⚪ | — |
| 전자상거래 (HTML→PDF) | ✅ | ✅ | ⚪ | ⚪ | ⚪ | ⚪ | — |
| 접근성 문서 (PDF/UA) | ✅ | — | ✅ | ⚪ | ⚪ | ⚪ | — |
| 디지털 서명 (PAdES) | ✅ | — | ✅ | ⚪ | ⚪ | ⚪ | — |
| 레거시 TCPDF 마이그레이션 | ✅ | ⚪ | — | ⚪ | ⚪ | ⚪ | ✅ |
| 고처리량 API | ✅ | ⚪ | ⚪ | ✅ | ✅ | ⚪ | — |
| 아카이브 규정 준수 (PDF/A-4) | ✅ | — | ✅ | ⚪ | ⚪ | ⚪ | — |
| 바코드 중심 문서 | ✅ | — | ⚪ | ⚪ | ⚪ | ⚪ | — |
패키지 호환성
대부분의 패키지는 원활하게 함께 사용할 수 있지만, 한 가지 예외가 있습니다:
| 조합 | 호환 | 비고 |
|---|---|---|
| Core + 모든 패키지 | 예 | Core는 항상 필수입니다 |
| Artisan + 모든 프레임워크 | 예 | Chrome CDP는 모든 프레임워크에서 작동합니다 |
| Pro + Laravel/Symfony/CI | 예 | 모든 프레임워크에서 전체 엔터프라이즈 기능 사용 가능 |
| Pro + Adaptation | 아니오 | Adaptation은 레거시 TCPDF API를 래핑합니다. Pro는 최신 TCPDF-Next API를 확장합니다. 둘 중 하나를 선택하세요. |
| Adaptation + 프레임워크 | 예 | Adaptation을 사용하여 프레임워크 내에서 레거시 코드를 마이그레이션 |
CJK 및 폰트 고려사항
내장된 Basic 14 폰트(Helvetica, Times, Courier 등)는 라틴 문자만 지원합니다. 문서에 중국어, 일본어 또는 한국어 텍스트가 필요한 경우, 다음 사항을 준수해야 합니다:
- TrueType 폰트 임베드 —
setFont()에 필요한 문자 세트를 지원하는 TTF 폰트를 사용합니다 - 폰트 경로 설정 —
TCPDF_FONTS_DIR환경 변수를 설정하거나 설정 API를 사용합니다 - 파일 크기 고려 — CJK 폰트는 일반적으로 개당 5~15 MB입니다. 폰트 서브세팅을 사용하여 PDF 크기를 줄이세요
// 예제: CJK 폰트 사용
$pdf = Document::createStandalone()
->addPage()
->setFont('/path/to/NotoSansCJK-Regular.ttf', '', 12)
->cell(0, 10, '你好世界 こんにちは 안녕하세요');권장 CJK 폰트
- Noto Sans CJK — Google의 오픈소스 CJK 폰트 패밀리(무료)
- Source Han Sans — Adobe의 동등 제품(무료)
- 두 폰트 모두 단일 폰트 파일에서 간체 중국어, 번체 중국어, 일본어, 한국어를 지원합니다.
공유 호스팅 제한사항
공유 호스팅에서는 일반적으로 다음을 수행할 수 없습니다:
- Chrome/Chromium 설치(Artisan 패키지 사용 불가)
- 장시간 실행 프로세스 구동(RoadRunner 사용 불가)
- PHP 확장 설치(제공된 것으로 제한)
공유 호스팅 권장 설정:
composer require yeeefang/tcpdf-next기본적인 HTML에서 PDF로의 변환에는 Core만 사용하고 내장 HTML 파서를 활용하세요. 픽셀 단위로 정확한 HTML 렌더링이 필요한 경우 VPS로의 업그레이드를 고려하세요.
다음 단계
- 시작하기 — 설치하고 첫 번째 PDF 만들기
- 설치 가이드 — 모든 패키지의 상세 설치 안내
- 벤치마크 — 전체 성능 비교 데이터
- TCPDF에서 마이그레이션 — 단계별 마이그레이션 가이드