비즈니스 애플리케이션에 문서 뷰잉을 추가하는 것은 PDF를 iframe에 넣는 것보다 복잡합니다. Office 파일, CAD 도면, 이메일 파일 및 이미지는 각각 다른 렌더링 기능이 필요하며, 애플리케이션은 여전히 인증, 저장, 권한 부여 및 보존을 제어해야 합니다.
Doconut은 웹 애플리케이션에 문서 렌더링 및 상호 작용을 임베드하도록 설계된 .NET 문서 뷰어 SDK입니다. 검증되지 않은 소스 코드 레시피를 제시하는 대신, 이 가이드는 팀이 내릴 통합 결정들을 설명하고 일반적으로 SDK와 함께 사용되는 표준 .NET 구성 요소들을 식별합니다.

왜 임베드 뷰어는 파일 다운로드와 다른가
다운로드 엔드포인트는 원본 파일을 전송하고 뷰잉 경험을 애플리케이션 외부 소프트웨어에 맡깁니다. 임베드 뷰어는 사용자를 제품 내부에 머물게 하며 탐색, 검색, 검토 및 기타 활성화된 기능을 위한 일관된 장소를 제공할 수 있습니다.
렌더링 레이어를 직접 구축하는 것은 각 포맷마다 고유한 규칙이 있기 때문에 어렵습니다:
- PDF 파일은 임베드 폰트, 주석, 양식 및 매우 큰 페이지 집합을 포함할 수 있습니다.
- Word, Excel, PowerPoint 파일은 레이아웃 및 폰트 처리를 신중히 해야 합니다.
- CAD 도면은 정확한 스케일링, 레이어 및 상세 줌이 필요합니다.
- 이메일 및 이미지 포맷은 첨부 파일, 메타데이터, 색상 및 해상도 문제를 도입합니다.
전용 SDK를 사용하면 애플리케이션 팀이 모든 지원 포맷에 대한 별도 렌더러를 유지 관리하는 대신 접근 제어, 워크플로 및 사용자 경험에 집중할 수 있습니다.
단계 1: 필요한 포맷 및 기능 확인
사용자가 여는 파일을 실제로 조사하십시오. 필수 포맷과 가끔 사용하는 포맷을 구분하고, 테스트용 대표 샘플을 기록합니다.
체크리스트 예시:
- PDF 및 XPS 문서
- 워드 프로세싱 문서
- 스프레드시트
- 프레젠테이션
- CAD 도면
- 이메일 파일
- 일반 이미지 포맷
그 다음 각 워크플로에 중요한 기능을 식별합니다. 뷰잉, 텍스트 검색, 주석, 인쇄 및 변환은 서로 다른 기능이며 Doconut 구성 요소 또는 라이선스가 필요할 수 있습니다.
포맷이나 기능을 확정하기 전에 검증된 Doconut 뷰어 페이지를 검토하십시오. 제품 기능은 변할 수 있으므로, 고객이 실제로 사용하는 문서에 대한 최종 권한은 수용 테스트가 가져야 합니다.
단계 2: 문서가 애플리케이션에 들어오는 위치 선택
ASP.NET 애플리케이션은 여러 제어된 소스에서 문서를 받을 수 있습니다:
- ASP.NET Core
IFormFile로 처리되는 업로드 - 보호된 파일 위치
- 데이터베이스 또는 문서 관리 저장소
- 서버가 접근하는 객체 스토리지
Stream을 반환하는 내부 서비스
뷰잉 워크플로는 서버가 인증한 문서 참조를 사용해야 합니다. 저장소 자격 증명, 무제한 파일 경로 또는 영구적인 공개 URL을 클라이언트 마크업에 포함하지 마십시오.
사용자가 파일을 업로드하면 렌더링 전에 검증하십시오. 파일 크기, 확장자, 파일 서명 및 비즈니스별 제한을 확인합니다. 원본 파일명을 경로로 신뢰하지 말고 서버가 생성한 식별자를 저장하십시오.
단계 3: 인증 및 권한 부여 정의
애플리케이션—뷰어 UI가 아니라—이 문서를 열 수 있는 사람을 결정해야 합니다.
ASP.NET Core에서는 인증 미들웨어, [Authorize] 특성, 정책, 클레임 및 리소스 기반 권한 부여와 같은 표준 메커니즘을 사용해 뷰잉 세션을 시작하는 엔드포인트를 보호할 수 있습니다. 권한 부여 결정에는 현재 사용자와 요청된 문서가 모두 포함되어야 합니다.
보안 요청 흐름 예시:
- 사용자가 애플리케이션 수준 식별자를 사용해 문서를 요청합니다.
- 서버가 사용자를 인증합니다.
- 서버가 사용자가 해당 문서에 접근할 수 있는지 확인합니다.
- 서버가 보호된 저장소 위치를 확인합니다.
- 뷰어는 해당 권한 세션에 필요한 정보만 받습니다.
툴바 버튼을 숨기는 것이 권한 제어라고 가정하지 마십시오. 다운로드 또는 인쇄 컨트롤이 표시되지 않더라도 서버 측 접근 검사는 여전히 필요합니다.
단계 4: 공식 통합 리소스를 통해 Doconut 추가
Doconut이 제공하는 최신 패키지와 설정 지침을 사용하십시오. 검증된 Doconut 다운로드 페이지에서 NuGet 통합 리소스, 문서, 예제 및 데모에 접근할 수 있습니다.
설정은 다음에 따라 달라질 수 있습니다:
- 사용 중인 ASP.NET 또는 .NET 애플리케이션 유형
- 선택한 Doconut 제품 및 플러그인
- Doconut 버전
- 라이선스
- 활성화할 문서 포맷 및 기능
- Windows 서버 구성
설치된 릴리스와 일치하는 문서를 따르십시오. 네임스페이스, 구성, 자산 경로 및 API는 버전마다 변경될 수 있으므로 무관한 블로그 글의 초기화 스니펫을 복사하지 마십시오.
단계 5: 전용 뷰잉 경계 만들기
컨트롤러와 UI 컴포넌트 전역에 SDK 기능을 호출하기보다 작은 애플리케이션 서비스 뒤에 문서 뷰잉을 두십시오.
이 서비스가 담당할 내용:
- 권한이 부여된 문서 식별자 해결
- 필요 시 제어된
Stream으로 문서 열기 - 필요한 뷰잉 구성 제공
- 파일 및 스트림 리소스 해제
- 기술적 실패를 안전한 애플리케이션 오류로 변환
- 문서 내용을 로깅하지 않고 운영 메트릭 기록
이 경계는 업그레이드를 용이하게 하고 프레젠테이션 레이어에 저장소 세부 정보를 노출할 위험을 줄입니다. 또한 테스트에서 안전한 구현을 교체할 명확한 위치를 제공합니다.
단계 6: 뷰어 페이지 설계
뷰어는 충분한 공간을 확보해야 유용합니다. 좁은 카드에 주변 컨트롤이 많으면 대형 스프레드시트와 CAD 도면을 검사하기 어렵습니다.
페이지 설계 포인트:
- 안정적인 뷰어 높이
- 명확한 로딩, 빈 상태 및 오류 상태
- 간결한 문서 제목
- 키보드 접근 가능한 주변 컨트롤
- 중요한 뷰어 컨트롤을 숨기지 않는 레이아웃
- 상위 워크플로로 돌아가는 명시적 방법
긴 파일명, 대형 페이지 수, 넓은 스프레드시트, 상세 도면 및 렌더링 실패 문서로 테스트하십시오. 오류 상태는 서버 경로, 예외 트레이스 또는 저장소 URL을 노출해서는 안 됩니다.
단계 7: 파일 및 임시 데이터 관리
배포 전 보존 정책을 정의하십시오. 원본 파일, 임시 렌더링 데이터, 캐시, 내보내기, 주석 및 로그를 각각 별도로 고려합니다.
유용한 보호 조치:
- 제한된 권한을 가진 전용 임시 디렉터리
- 고유한 서버 생성 이름
- 성공 및 실패 세션 후 정리
- 방치된 임시 파일을 위한 예약 프로세스
- 저장소 할당량 및 모니터링
- 보안 정책에 따라 필요 시 암호화
정리 작업을 가시화하십시오. 삭제가 조용히 실패하면 임시 파일이 누적되어 운영 및 보안 문제가 됩니다.
단계 8: 프로덕션 보호 설정
문서 렌더링은 CPU, 메모리 및 임시 디스크 공간을 소모합니다. 명시적인 제한으로 애플리케이션을 보호하십시오:
- 최대 업로드 크기
- 최대 동시 렌더링 작업 수
- 요청 및 처리 시간 초과
- 비동기 렌더링 시 큐 제한
- 임시 저장소 할당량
- 헬스 체크 및 구조화된 오류 모니터링
대규모 또는 예측 불가능한 워크로드의 경우, 지연에 민감한 애플리케이션 프로세스와 렌더링을 분리하십시오. 작은 테스트 파일만이 아니라 실제 고객 문서로 측정하십시오.
단계 9: 전체 워크플로 테스트
성공적인 통합 테스트는 “첫 페이지가 나타났다”는 수준을 넘어야 합니다.
테스트 항목:
- 모든 필수 파일 포맷
- 작고 크며 다중 페이지 및 손상된 파일
- 비정형 폰트를 포함한 문서
- 워크플로가 지원하는 경우 비밀번호 보호 파일
- 권한이 있는 사용자와 없는 사용자
- 동시 뷰잉 세션
- 애플리케이션 재시작 및 중단된 요청
- 성공 및 실패 후 정리
- 선택한 제품 구성에 포함된 뷰어 기능
정제된 테스트 문서 컬렉션을 버전 관리하십시오. Doconut, .NET, Windows Server, 스토리지 인프라 또는 관련 종속성을 업그레이드할 때마다 재실행하십시오.
보안 체크리스트
릴리스 전 다음을 확인하십시오:
- 모든 뷰잉 요청에 적절한 인증이 요구되는지
- 특정 문서에 대한 권한이 확인되는지
- 사용자 입력이 무제한 서버 파일 경로가 되지 않는지
- 저장소 자격 증명이 클라이언트에 노출되지 않는지
- 업로드 제한 및 검증이 활성화되어 있는지
- 임시 파일에 제한된 접근 권한과 검증된 정리 정책이 있는지
- 로그에 문서 내용, 비밀 및 민감한 URL이 포함되지 않는지
- 사용자에게 표시되는 오류 메시지가 정제되어 있는지
- SDK와 애플리케이션 종속성이 업데이트 프로세스를 따르는지
뷰어 컨트롤은 비즈니스 워크플로를 지원하지만, 정보가 권한이 있는 사용자에게 표시되는 순간 모든 캡처 형태를 방지할 수는 없습니다. 접근 제어와 적절한 정보 보호 정책과 함께 사용하십시오.
Doconut이 차지하는 위치
Doconut은 .NET 애플리케이션 내부에 문서 뷰잉 기능을 제공하고, 애플리케이션은 신원 확인, 권한 부여, 파일 저장, 보존, 감사 및 주변 워크플로를 담당합니다.
이 책임 분리는 .NET 팀이 여러 렌더링 엔진을 처음부터 구축하지 않고도 비즈니스 문서를 지원할 실용적인 경로를 제공합니다. 또한 배포 버전에 맞는 공식 문서에 통합 세부 사항을 연결해 둡니다.
Doconut .NET 문서 뷰어 SDK를 살펴보고, 자체 문서로 평가하려면 공식 다운로드 및 문서 리소스를 활용하십시오.
결론
신뢰할 수 있는 임베드 문서 뷰어는 명확한 포맷 요구 사항과 안전한 서버 측 문서 흐름에서 시작됩니다. 입력을 검증하고, 모든 문서 요청에 권한을 부여하며, SDK 접근을 애플리케이션 서비스 뒤에 격리하고, 임시 파일 정리를 계획하고, 현실적인 파일로 테스트하십시오.
이러한 기반 위에 Doconut은 Windows 기반 .NET 웹 애플리케이션을 위한 뷰잉 레이어를 제공하고, 팀은 애플리케이션 아키텍처와 문서 수명 주기를 계속 제어할 수 있습니다.