Skip to content

feat: PDF·HWP 문서 미리보기 API 구현 - #187

Merged
hywznn merged 6 commits into
mainfrom
feat/186-document-preview
Aug 16, 2026
Merged

feat: PDF·HWP 문서 미리보기 API 구현#187
hywznn merged 6 commits into
mainfrom
feat/186-document-preview

Conversation

@hywznn

@hywznn hywznn commented Aug 15, 2026

Copy link
Copy Markdown
Member

왜 필요한가요?

Refs #186

HR이 문서를 내려받기 전에 브라우저에서 확인할 수 있도록 Server 미리보기 경로를 추가합니다. 기존 /content는 첨부 다운로드만 제공하고, HWP·HWPX는 브라우저가 직접 표시할 수 없어 PDF 변환 연결이 필요했습니다.

무엇이 바뀌나요?

  • GET /api/v1/files/{fileId}/preview
  • PDF·JPG·PNG·WEBP는 권한 확인 후 inline 반환
  • HWP·HWPX는 AI POST /api/v1/documents/convert를 호출해 PDF 반환
  • File Port와 AI Integration Adapter를 분리
  • AI 비활성·장애 503, 손상 문서 422, 미지원 형식 415
  • 타 사업장 파일은 404
  • Cache-Control: no-store, X-Content-Type-Options: nosniff
  • 원본 파일·다운로드 API·DB는 변경하지 않으며 Flyway Migration 없음

설정·문서

  • AI_DOCUMENT_CONVERSION_ENDPOINT
  • AI_DOCUMENT_CONVERSION_TIMEOUT (기본 60초)
  • docs/file-preview.md

검증

  • 최신 main 반영
  • Server CI 성공
  • API·DB 문서 빌드 성공
  • PDF inline 응답과 보안 헤더
  • HWP·HWPX multipart 계약과 PDF signature 검증
  • AI 비활성 503, 손상 문서 422, 미지원 형식 415
  • 타 사업장 파일 404
  • 미리보기 관련 단위·통합 테스트
  • Renewal 통합 테스트 클래스 재실행 성공

병합 판단과 남은 범위

Server의 권한·HTTP·timeout·응답 크기·안전한 오류 계약은 병합 가능한 상태입니다. PDF·이미지는 즉시 사용할 수 있습니다.

다만 실제 LibreOffice Smoke Test에서 HWP는 깨진 60페이지 PDF가 생성됐고 HWPX 3종은 변환에 실패했습니다. 따라서 Server API는 병합하되 HWP/HWPX Client 활성화와 기능 완료 처리는 보류합니다. AI 렌더링 보완과 동일 fixture Smoke Test 통과 여부는 #186에서 계속 관리합니다.

@hywznn

hywznn commented Aug 16, 2026

Copy link
Copy Markdown
Member Author

AI 후속 작업 PR #54에서 변환 엔진을 rhwp v0.7.19 native PDF exporter로 교체했습니다.

이 PR이 사용하는 실제 Server Fixture 4종을 AI 브랜치와 linux/amd64 Docker 이미지에서 다시 실행한 결과 모두 통과했습니다.

  • employment-contract-template.hwp: 2페이지
  • employment-contract-template.hwpx: 2페이지
  • employment-extension-template.hwpx: 2페이지
  • integrated-application-template.hwpx: 1페이지

AI PR: fowoco/ai#54

AI PR 병합 후 Server의 실제 HTTP 미리보기 API로 한 번 더 왕복 검증한 뒤 #186의 blocked 상태를 해제하면 됩니다. 현재 Server 코드는 변경하지 않았습니다.

@hywznn
hywznn merged commit b0bb2bf into main Aug 16, 2026
4 checks passed
@hywznn
hywznn deleted the feat/186-document-preview branch August 16, 2026 15:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant