.NET에서 자체 호스팅 문서 뷰어 구축 – 단계별 가이드
2026. 9. 25.

.NET에서 자체 호스팅 문서 뷰어 구축 – 단계별 가이드

Doconut SDK를 사용하여 .NET 앱에 빠르고 안전한 자체 호스팅 문서 뷰어를 삽입하고 외부 서비스 없이 PDF, Office, CAD 미리보기를 제공하는 방법을 배웁니다.

.NET 애플리케이션 내부에서 자체 호스팅, 번개처럼 빠른 문서 뷰어를 사용할 수 있습니다

이 가이드를 끝까지 따라가면 PDF, Office 파일, CAD 도면 및 수십 가지 다른 형식을 브라우저에서 직접 열 수 있으며, 1초 미만의 로드 시간, 외부 SaaS 호출 없이, 보안에 대한 완전한 제어를 제공합니다.


사전 요구 사항

필요한 항목중요한 이유
.NET 6 이상 (SDK는 .NET 6+을 대상으로 함)Online Document Viewer SDK와의 호환성을 보장합니다
애플리케이션을 실행할 수 있는 Windows 또는 Linux 서버 (온프레미스 또는 프라이빗 클라우드)자체 호스팅은 뷰어가 자체 인프라 내에 존재해야 함을 의미합니다
Online Document Viewer NuGet 피드에 대한 접근 (https://doconut.com)SDK는 NuGet 패키지 형태로 배포됩니다
ASP.NET Core 및 프론트엔드 JavaScript에 대한 기본 지식서명된 URL을 반환하는 엔드포인트를 노출하고 브라우저에서 뷰어를 실행합니다
소스 파일을 위한 저장 위치 (파일 시스템, Blob 스토리지 등)뷰어는 로컬 또는 네트워크 경로에서 파일을 렌더링하므로 서버 프로세스가 파일에 접근할 수 있어야 합니다

이 항목 중 하나라도 누락되면 첫 번째 코드 라인이 실행되기 전에 빌드가 중단됩니다.


Online Document Viewer SDK 설치

Visual Studio 또는 선호하는 IDE에서 솔루션을 열고 NuGet 관리자를 통해 공식 SDK를 추가합니다:

dotnet add package Doconut.NET8

패키지에는 렌더링 엔진, 포맷 변환기 및 생성된 페이지를 제공하는 가벼운 HTTP 레이어가 포함되어 있습니다. SDK가 애플리케이션에 컴파일되므로 런타임에 외부 서비스와 통신하지 않습니다.

패키지가 복원된 후 Program.cs(또는 이전 템플릿의 경우 Startup.cs)에 SDK 서비스를 등록합니다. 이 등록은 렌더링 파이프라인을 ASP.NET Core DI 컨테이너에 주입하여 컨트롤러에서 사용할 수 있게 합니다.


필요한 형식에 대한 렌더링 파이프라인 구성

뷰어는 기본적으로 50개 이상의 형식을 지원하며, 포함되는 형식은 다음과 같습니다:

  • PDF, DOC, DOCX, ODT, RTF
  • XLS, XLSX, CSV, ODS
  • PPT, PPTX, ODP
  • DWG, DXF, DGN (CAD)
  • PSD, SVG, TIFF, WEBP, ICO
  • EML, MSG, EPUB, MOBI, MPP, VSD

요청이 들어오면 SDK가 파일 유형을 판단하고 적절한 변환기를 선택합니다. 최상의 성능을 위해 요청 기간 동안 렌더링된 페이지를 메모리에 저장하는 내장 캐싱 레이어를 활성화하십시오; 이것이 “번개처럼 빠른 – 최적화된 성능과 1초 미만 로딩을 제공하는 즉시 문서 렌더링” 경험을 제공하는 이유입니다.

컨트롤러에서 SDK의 렌더링 메서드(예: RenderAsync)를 호출하고 소스 파일의 절대 경로를 전달합니다. 이 메서드는 캔버스 기반 뷰어를 포함하는 HTML 조각을 반환합니다. 렌더링이 서버에서 이루어지기 때문에 클라이언트는 표시 준비가 된 마크업만 받으며, 무거운 클라이언트 측 처리를 없앨 수 있습니다.


토큰 기반 URL 및 선택적 제한으로 뷰어 보안 강화

데이터 주권 및 GDPR 준수는 온프레미스 배포 시 흔히 고려되는 사항입니다. SDK는 ASP.NET Core 인증 시스템과 통합되어 특정 문서에 대한 일회성 접근을 허용하는 서명된 토큰을 생성할 수 있게 합니다.

일반적인 흐름:

  1. 프론트엔드가 문서 식별자를 제공하여 API에 미리보기 토큰을 요청합니다.
  2. API가 사용자의 권한을 검증하고 파일 경로와 만료 타임스탬프를 인코딩한 JWT 형식 토큰을 생성하여 반환합니다.
  3. 프론트엔드가 토큰을 뷰어 URL에 추가합니다(예: /viewer?token=…). SDK는 각 요청마다 토큰을 검증하고 변조되었거나 만료된 토큰을 거부합니다.

사용자가 문서를 다운로드하거나 인쇄하지 못하도록 하려면 SDK가 제공하는 렌더링 옵션을 설정하여 해당 동작을 비활성화하십시오. 뷰어의 JavaScript 레이어가 다운로드 버튼을 숨기고 인쇄 단축키를 차단하며 오른쪽 클릭 컨텍스트 메뉴를 차단합니다.


모든 것이 정상 작동하는지 확인하기

  1. 뷰어를 호스팅하는 페이지로 이동합니다.
  2. 문서는 1초 이내에 표시되며 스크롤바, 확대/축소 컨트롤 및 검색 상자가 포함됩니다.
  3. 다운로드를 비활성화하도록 뷰어를 설정한 경우 “Download” 버튼이 숨겨져야 합니다.
  4. 해당 제한이 활성화된 경우 문서에서 오른쪽 클릭을 해도 브라우저 컨텍스트 메뉴가 열리지 않아야 합니다.
  5. 토큰이 만료된 후(기본값은 5분) 페이지를 새로 고치면 “401 Unauthorized” 오류가 반환되어 토큰 검증이 활성화된 것을 확인할 수 있습니다.

이러한 검사 중 하나라도 실패하면 해당 단계로 돌아가세요: SDK 등록 누락, 토큰 생성 오류, 또는 보안 플래그 누락 등.