A
7/10/2026

ASP.NET에 플러그인 없는 문서 뷰어를 삽입하는 방법

.NET 엔지니어가 Doconut App의 보안된 플러그인 없는 문서 뷰어를 ASP.NET Core, MVC 또는 WebForms 프로젝트에 삽입해야 할 때 단계별 가이드.

예—몇 분만에 보안된 플러그인 없는 온라인 파일 뷰어를 모든 ASP.NET Core, MVC, 또는 WebForms 애플리케이션에 삽입할 수 있으며, Doconut App이 모든 복잡한 작업을 처리합니다.
계약서, 도면, 디자인 자산 등을 제공하는 기업은 기업 보안 정책을 준수하고 모든 브라우저에서 동작하며 사용자가 서드파티 플러그인을 설치하도록 강요하지 않는 뷰어가 필요합니다. Doconut App은 바로 그 해결책을 제공합니다: PDF, Office, CAD 및 50개 이상의 다른 형식을 지원하는 브라우저 기반 뷰어로, AES‑256 암호화, SSL 전용 업로드, 완전 맞춤형 UI를 제공합니다. 이 글에서는 파일 업로드 보안부터 뷰어 렌더링까지 전체 워크플로우를 단계별로 안내하므로, 렌더링 엔진을 처음부터 구현하지 않고도 기업 수준의 솔루션을 손쉽게 배포할 수 있습니다.


1. .NET 웹 앱에서 보안 및 플러그인 없는 렌더링이 중요한 이유

현대 기업은 모든 문서를 잠재적인 데이터 유출 위험으로 간주합니다. ActiveX, Flash 또는 네이티브 클라이언트에 의존하는 뷰어를 삽입하면 다음과 같은 세 가지 위험이 발생합니다:

위험.NET 애플리케이션에 미치는 영향Doconut App이 해결하는 방법
플러그인 의존성사용자가 브라우저 플러그인을 설치하거나 활성화해야 하며, 이로 인해 지원 티켓과 컴플라이언스 문제가 발생합니다.Doconut은 HTML5/Canvas만으로 동작하므로 플러그인 제로입니다.
암호화되지 않은 전송파일이 HTTP를 통해 전송되거나 평문으로 저장되어 GDPR, HIPAA 등 내부 정책을 위반합니다.모든 업로드는 SSL을 통해 이루어지고 AES‑256 암호화된 상태로 저장됩니다.
제어되지 않은 수명 주기파일이 서버에 남아 있어 침해 표면이 확대됩니다.Doconut은 뷰어 종료 후 파일을 자동 삭제하여 보관 기간을 최소화합니다.

뷰어가 자바스크립트 컴포넌트 형태로 Doconut의 보안 렌더링 서비스와 통신하기 때문에 .NET 스택을 깨끗하게 유지할 수 있습니다—추가 네이티브 라이브러리, 서드파티 바이너리, 추가 컴플라이언스 감사가 필요 없습니다.

2. .NET 프로젝트 준비 – ASP.NET Core, MVC, 및 WebForms를 위한 최소 설정

ASP.NET Core, MVC 5, 또는 WebForms를 사용하든 준비 단계는 동일합니다:

  1. Doconut 스크립트 번들 추가
    Doconut은 CDN에 경량 뷰어 스크립트를 호스팅합니다. 레이아웃 페이지(예: _Layout.cshtml 또는 Site.Master)에 다음 라인을 추가합니다:

    <script src="https://doconut.app/viewer.min.js"></script>
    
  2. 플레이스홀더 요소 생성
    뷰어는 지정한 <div> 안에 캔버스를 삽입합니다. Razor 예시:

    <div id="docViewer" style="width:100%; height:800px;"></div>
    

    WebForms에서는 runat="server" 속성을 가진 <asp:Panel>을 만들고 ID="docViewer"를 지정합니다.

  3. Doconut CSS 참조 (선택 사항)
    기본 툴바와 테마를 사용하려면 CSS 파일을 포함합니다:

    <link rel="stylesheet" href="https://doconut.app/viewer.min.css" />
    

이것이 필요한 정적 자산 전부입니다. 나머지 작업은 서버‑사이드 코드(업로드, 암호화, 토큰 생성)와 아주 작은 클라이언트‑사이드 초기화 스크립트에서 이루어집니다.

3. 보안 업로드 엔드포인트 구축 – AES‑256, SSL, 및 자동 삭제

뷰어는 파일 시스템에 직접 접근하지 않습니다. 대신 임시 암호화 저장소에 문서를 업로드하고 Doconut이 필요할 때 읽어옵니다. 아래는 ASP.NET Core에 대한 고수준 단계이며, MVC와 WebForms에도 동일하게 적용됩니다.

서버 측 워크플로우

  1. 업로드된 파일 수신 – 표준 IFormFile(WebForms에서는 HttpPostedFile)을 사용해 클라이언트로부터 문서를 받습니다.
  2. AES‑256으로 파일 암호화 – 스트림을 영구 저장하기 전에 System.Security.Cryptography.Aes와 같은 검증된 라이브러리로 암호화합니다. 암호화된 블롭은 Azure Blob Storage(서버‑사이드 암호화 활성화) 또는 SSE‑AES256이 적용된 S3 버킷에 저장합니다.
  3. 단기간 유효한 서명된 주소 생성 – 몇 분(예: 5분) 동안만 유효한 HTTPS 주소를 만들고, Doconut이 검증할 수 있는 암호 토큰을 포함합니다. 대부분의 클라우드 스토리지 제공자는 “프리‑사인드 주소” 기능을 제공합니다.
  4. 클라이언트에 서명된 주소 반환 – JSON 형태의 응답에 주소를 담아 전송합니다. 클라이언트는 이 주소를 Doconut 뷰어에 전달합니다.
  5. 자동 삭제 스케줄링 – 서명된 주소가 만료된 후 백그라운드 작업(Hangfire, Azure Functions 등)으로 암호화된 블롭을 삭제하여 파일이 서버에 남지 않도록 보장합니다.

MVC / WebForms 등가물

  • MVC – 동일 로직을 일반 컨트롤러 액션에 넣고 JsonResult를 반환합니다.
  • WebForms.ashx 핸들러 또는 페이지 메서드에서 Request.Files[0]을 받아 암호화, 프리‑사인드 주소 생성, JSON 응답을 작성합니다.

라우팅 구문만 다를 뿐 보안 워크플로우는 동일합니다.

4. Doconut 뷰어 렌더링 – 주소에서 브라우저 캔버스로

클라이언트가 서명된 주소를 받으면 단일 자바스크립트 호출로 뷰어를 실행할 수 있습니다. Doconut SDK는 스트리밍, 렌더링, UI 상호작용을 자동으로 처리합니다.

<script>
    // `response.viewerUrl`에 업로드 엔드포인트가 반환한 서명된 주소가 들어 있다고 가정
    function launchViewer(viewerUrl) {
        // 전역 객체 `DoconutViewer`를 사용해 Doconut 뷰어 초기화
        DoconutViewer.init({
            containerId: "docViewer",   // 앞서 만든 <div>
            fileUrl: viewerUrl,          // 암호화된 파일에 대한 서명된 HTTPS 주소
            toolbar: true,               // 기본 툴바 표시
            theme: "light"              // 선택적 테마
        });
    }

    // 예시: 업로드 성공 후 호출
    fetch("/api/document/upload", {
        method: "POST",
        body: myFormData,
        credentials: "include"
    })
    .then(r => r.json())
    .then(data => launchViewer(data.viewerUrl));
</script>

왜 모든 .NET 환경에서 동작하는가

  • ASP.NET Core Razor – 스크립트가 업로드 폼을 포함한 뷰에 그대로 존재하므로 흐름이 매끄럽습니다.
  • MVC@section Scripts에 동일 코드를 삽입하고, 컨트롤러가 반환한 JSON을 $.ajax가 소비하도록 하면 됩니다.
  • WebFormsClientScript.RegisterStartupScript로 업로드 완료 후 스크립트를 등록하고, 동일 방식으로 launchViewer를 호출합니다.

Doconut은 서명된 주소에서 직접 문서를 스트리밍하므로 서버는 업로드 단계 이후 파일을 전혀 다루지 않습니다. PDF, Word, CAD 등 제품 사양에 명시된 모든 형식을 추가 서버‑사이드 변환 없이 렌더링합니다.

5. 브랜드에 맞게 뷰어 맞춤화 – 온라인 파일 뷰어 세부 조정

기업은 뷰어가 포털의 네이티브 구성 요소처럼 보이길 원합니다. Doconut App의 완전 맞춤형 UI를 통해 다음을 구현할 수 있습니다:

맞춤 옵션.NET에서 적용 방법
툴바 레이아웃toolbar: false 로 기본 툴바를 숨기고, zoomIn(), print() 등 뷰어 자바스크립트 API를 호출하는 자체 버튼을 만들 수 있습니다.
색상 스키마theme: "dark" 로 다크 모드를 적용하거나, 기본 클래스들을 오버라이드하는 커스텀 CSS 파일을 제공하면 됩니다.
언어 및 접근성컨테이너에 lang 속성을 지정하면 Doconut이 이를 따릅니다; accessibility 옵션을 통해 ARIA 레이블을 추가할 수도 있습니다.
이벤트 훅onPageChange, onError, onDownload 같은 콜백을 사용해 기존 텔레메트리 파이프라인에 사용량 데이터를 로깅할 수 있습니다.

이 모든 설정은 앞서 보여준 자바스크립트 객체에 포함시키면 되며, 뷰어가 완전히 클라이언트에 존재하므로 서버 부하가 전혀 증가하지 않습니다—.NET 백엔드는 인증, 암호화, 비즈니스 로직에만 집중하면 됩니다.

6. 성능 및 확장성 – 빠른 사용자 경험 유지

고 트래픽 포털에 뷰어를 삽입하면 로드 시간동시 렌더링 두 가지 실질적인 고민이 생깁니다. Doconut App은 기본적으로 이를 해결하지만, .NET 특화 팁으로 성능 여유를 더 확보할 수 있습니다.

고민Doconut의 기본 장점추가 .NET 팁
초기 다운로드뷰어 스크립트는 gzip 압축 시 약 150 KB정적 파일 압축(app.UseResponseCompression()) 및 캐싱(Cache‑Control: public, max‑age=31536000) 활성화
파일 스트리밍Doconut은 HTTP Range 요청을 활용해 필요한 페이지만 스트리밍암호화 블롭을 지역 CDN(Azure Front Door, Amazon CloudFront)으로 배포해 지연 시간 최소화
동시 사용자렌더링은 클라이언트에서 수행, 서버는 파일을 한 번만 제공업로드 엔드포인트IApplicationRateLimiter로 스로틀링 적용, 스파이크 방어
메모리 사용량서버‑사이드 PDF 변환 라이브러리가 없어 ASP.NET 프로세스가 가볍게 유지무거운 백그라운드 작업이 필요하면 업로드 서비스를 별도 마이크로서비스로 분리

위 가이드를 따르면 기존 .NET 웹 계층을 크게 확장하지 않고도 수천 명의 동시 뷰어를 원활히 지원할 수 있습니다.

핵심 요약

  • Doconut App은 플러그인 없는 100 % 보안 뷰어를 제공하며 ASP.NET Core, MVC, WebForms와 완벽히 호환됩니다.
  • 업로드는 SSL 전용, AES‑256 암호화된 저장소에 보관되며 서명된 주소가 만료되면 자동 삭제됩니다.
  • 통합에 필요한 것은 CDN 스크립트, <div> 컨테이너, 서명된 주소를 반환하는 작은 서버‑사이드 엔드포인트뿐입니다.
  • PDF, Office, CAD, 50개 이상 이미지 형식을 지원하므로 서버‑사이드 변환이 전혀 필요 없습니다.
  • UI는 완전 맞춤형으로 기업 브랜딩에 맞게 조정 가능하며, CAD 파일을 위한 줌, 측정, 레이어 도구도 기본 제공됩니다.
  • 성능은 클라이언트 측에서 처리되며, .NET 개발자는 정적 파일 압축 및 CDN 캐싱 정도만 신경 쓰면 됩니다.
  • 전체 워크플로우(보안 업로드 → 클라이언트‑사이드 렌더링)는 기존 .NET 인증·인가 파이프라인에 자연스럽게 녹아듭니다.

자주 묻는 질문

Q1: Doconut을 사용하려면 NuGet 패키지를 설치해야 하나요?
A: 필요 없습니다. 뷰어는 Doconut CDN에서 제공되는 클라이언트‑사이드 자바스크립트 번들 형태로 제공됩니다. 서버에서는 파일 업로드, 암호화, 토큰 생성에 필요한 일반적인 ASP.NET 미들웨어만 있으면 됩니다.

Q2: Doconut은 파일을 어떻게 삭제하나요?
A: Doconut은 짧은 유효 기간을 가진 서명된 주소를 생성합니다. 주소가 만료된 후 백그라운드 정리 작업이 암호화된 블롭을 삭제하므로, 문서가 불필요하게 장기간 보관되지 않아 엄격한 데이터 보존 정책을 만족합니다.

Q3: 뷰어에서 인쇄하거나 내보내기가 가능한가요?
A: 가능합니다. Doconut 기본 툴바에는 원본 품질과 레이아웃을 유지한 채 인쇄 및 내보내기 옵션이 포함되어 있습니다.


보안되고 플러그인 없는 문서 뷰어를 .NET 애플리케이션에 삽입할 준비가 되셨나요? 오늘 바로 Doconut App을 시작해 PDF, Office, CAD 및 수십 가지 형식을 안전하고 즉시 제공하세요.