Files
PM_test/문서 뷰어(미리보기) 확장자별 지원 사양 및 기술 사유 분석.md
2026-06-19 17:58:47 +09:00

6.8 KiB

문서 뷰어(미리보기) 확장자별 지원 사양 및 기술 사유 분석

본 문서는 본 프로젝트의 문서 미리보기 시스템에서 지원 가능한 파일 확장자 목록과 구현 방식, 그리고 일부 포맷이 미리보기가 불가능하거나 제한적인 기술적 사유를 체계적으로 정리한 기술 문서입니다.


1. 지원 가능한 확장자 및 뷰잉 방식 (Supported Formats)

시스템에서 감지 및 렌더링이 가능한 확장자는 크게 (1) 웹 브라우저 직접 렌더링 방식, (2) 서버 측 PDF 변환 폴백 방식, (3) 전문 뷰어 연동 방식으로 분류됩니다.

1.1 문서 및 도면 파일 (Document & CAD)

확장자 브라우저 직접 뷰잉 방식 서버 PDF 변환 뷰잉 미리보기 지원 상태 및 특이사항
pdf 자체 PDF.js 뷰어로 즉시 출력 (변환 불필요) [상시 지원] 표준 문서 포맷으로 100% 원본 렌더링 지원
hwp, hwpx hwp.js 라이브러리로 직접 뷰잉 LibreOffice PDF 변환본 로드 [상시 지원] 직접 뷰잉 도중 레이아웃 겹침 발생 시 상단 "PDF로 보기" 버튼을 눌러 원본 고정밀 보기 지원
docx docx-preview 라이브러리로 직접 뷰잉 OfficeToPDF PDF 변환본 로드 [상시 지원] 직접 뷰잉 도중 서식 누락 발생 시 상단 "PDF로 보기" 버튼을 눌러 원본 고정밀 보기 지원
xlsx, xls, xlsm Luckysheet/LuckyExcel로 시트 뷰잉 OfficeToPDF PDF 변환본 로드 [상시 지원] 직접 시트 뷰잉 시 도형(Shapes)이 안 보일 때 상단 "PDF로 보기" 버튼을 눌러 원본 고정밀 보기 지원
doc 직접 뷰잉 불가 (이진 포맷 한계) OfficeToPDF PDF 변환본 로드 [상시 지원] 백엔드에서 PDF로 즉시 자동 변환하여 고해상도 미리보기 화면을 출력함
ppt, pptx 직접 뷰잉 불가 (웹 파서 미비) OfficeToPDF PDF 변환본 로드 [상시 지원] 백엔드에서 PDF로 즉시 자동 변환하여 고해상도 미리보기 화면을 출력함
dwg, dxf 직접 뷰잉 불가 (CAD 도면 엔진 필요) DwgToPdfSwigConverter 로드 [상시 지원] 백엔드에서 PDF로 즉시 자동 변환하여 고해상도 미리보기 화면을 출력함
grm 직접 뷰잉 불가 서버 PDF 변환본 로드 [상시 지원] 백엔드에서 PDF로 즉시 자동 변환하여 고해상도 미리보기 화면을 출력함

1.2 미디어 및 기타 포맷 (Media & Others)

분류 확장자 브라우저 렌더링 방식 상세 설명
이미지 png, jpg, jpeg, webp, gif <img> 태그 렌더링 브라우저 표준 그래픽 렌더링 사용. 이미지 메타데이터가 파노라마(panorama)인 경우 별도의 3D 파노라마 뷰어(pannellum) 연동
동영상 mp4, mov, webm <video> 태그 렌더링 HTML5 표준 비디오 코덱 플레이어 사용
텍스트 txt, log, md <pre> 태그 렌더링 인코딩 감지 후 플레인 텍스트 렌더링 (마크다운은 스타일링 적용)
3D 모델 glb, gltf, obj, stl, fbx, 3dm Three.js 3D 뷰어 연동 WebGL 기반의 3D 객체 직접 렌더링 및 회전/스케일 제어 지원
공간 정보 gsim GSIM 전용 뷰어 웹앱 연동 별도 마운트된 GSIM 엔진 프레임 내부 렌더링
BIM 모델 ifc IFC 뷰어 전용 iframe 연동 web-ifc-three 기반의 BIM 모델링 구조 브라우저 직접 렌더링
기타 zip 폴더/파일 트리 렌더링 압축을 풀지 않고 내부 디렉토리 아키텍처를 JSON으로 트리 뷰잉
링크 url iframe 또는 새 창 이동 등록된 외부 URL 리다이렉트 처리
웹문서 html iframe 렌더링 HTML 샌드박스 프레임 내부 렌더링

2. 미리보기 미지원 확장자 및 기술 사유 (Unsupported Formats)

아래 확장자들은 미리보기가 불가능하며 오직 파일 다운로드만 지원됩니다. 그 구체적인 기술 사유는 다음과 같습니다.

파일 분류 대상 확장자 (예시) 미리보기 미지원 기술 사유
실행 파일 exe, msi, bat, sh, cmd, com * 보안 위험: 웹 브라우저 내에서 OS 실행 파일을 구동하는 것은 크로스 사이트 스크립팅(XSS) 및 악성코드 실행 방지를 위해 보안상 원천 차단됩니다.
* 플랫폼 독립성: 브라우저 샌드박스 환경에서는 로컬 머신의 커널에 직접 액세스하여 실행 프로그램을 실행할 수 없습니다.
압축 파일 rar, 7z, tar, gz, alz, egg * 압축 알고리즘 독점성: .zip을 제외한 .rar, .7z 등은 압축 및 해제 알고리즘이 브라우저 JavaScript 단에서 처리하기에 라이브러리가 매우 무겁거나, 유료 라이선스 제약(독점 포맷)이 있습니다.
* 성능 저하: 클라이언트 브라우저 메모리 상에서 기가바이트 단위의 대용량 압축 파일을 직접 해제하여 트리 구조를 빌드하는 것은 브라우저 탭 다운을 유발합니다.
데이터베이스 db, sqlite, mdb, sql, accdb * 연결 세션성: DB 파일은 전용 DBMS(엔진)가 백그라운드에서 구동되어 인덱스 쿼리를 수행해야 구조 열람이 가능합니다. 브라우저에서 바이너리 파일 그 자체를 텍스트나 그림처럼 단순 뷰잉하는 것은 논리적으로 불가능합니다.
오디오 파일 mp3, wav, ogg, flac, m4a * 기획적 요구 부재: 시스템이 문서 관리 및 3D 모델 협업 중심이므로 오디오 플레이어 탑재의 우선순위가 배제되어 있으며, 필요 시 브라우저 내장 플레이어로 다운로드 대체가 가능합니다.
소스 코드 java, py, cpp, cs, go, ts, js, css * 텍스트로 뷰잉 가능 여부: .txt와 동일하게 텍스트 에디터 방식으로 보여줄 수 있으나, 현재 시스템은 개발자용 IDE 환경이 아닌 일반 비즈니스 문서용이므로 코딩 확장자들은 다운로드 전용으로 제한됩니다.
대용량 원시 그래픽 psd, ai, eps, indd, tiff * 독점 그래픽 포맷: Adobe사 등의 전용 디자인 툴에서 쓰이는 포맷으로, 웹 표준 이미지 태그(<img>)가 인식하지 못하며, 클라이언트 단의 JS 파싱 라이브러리가 존재하지 않거나 극도로 불안정합니다.
폰트 파일 ttf, otf, woff, eot * 시스템 자원: 폰트 데이터는 글꼴 메타데이터의 모음이므로 독립적인 시각적 형태를 브라우저 캔버스 상에 프리뷰할 논리적 근거가 부재합니다.