클라우드 스토리지 및 협업 플랫폼과 문서 뷰어 SDK 통합
← Back to Blog6 min read

클라우드 스토리지 및 협업 플랫폼과 문서 뷰어 SDK 통합

클라우드 스토리지 및 협업 플랫폼과 문서 뷰어 SDK 통합
클라우드 스토리지 및 협업 플랫폼과 문서 뷰어 SDK 통합
클라우드 스토리지와 협업 플랫폼에 문서 뷰어 SDK를 통합하면 .NET 애플리케이션에서 바로 원활하고 안전하며 검색 가능한 문서 경험을 제공할 수 있습니다. Doconut—.NET 백엔드를 위한 범용 문서 뷰어—를 사용하면 PDF, Office 파일, CAD 도면 및 이미지를 네이티브하게 렌더링하고, OCR 기반 검색을 추가하며, 실시간 주석을 활성화하고, 인쇄를 제어할 수 있습니다. 모든 데이터는 선택한 클라우드 또는 온프레미스 환경 내부에 보관됩니다. 이 가이드는 시니어 개발자와 소프트웨어 아키텍트에게 Doconut을 Azure Blob, Amazon S3 또는 Google Cloud Storage에 연결하고, Microsoft Teams, SharePoint 또는 맞춤형 React 기반 작업 공간과 같은 협업 포털을 통해 뷰어를 노출하는 방법을 보여줍니다.


현대 .NET 앱에서 클라우드‑네이티브 문서 보기의 중요성

단일 .NET 코어로 구현되는 크로스‑플랫폼 일관성

기업들은 데스크톱 전용 문서 도구에서 벗어나 Windows에서도 실행되는 웹‑퍼스트 경험을 채택하고 있습니다. Doconut의 서버‑사이드 렌더링 엔진은 .NET 6 이상에서 동작하므로 기본 OS와 관계없이 동일한 픽셀‑정밀 출력을 보장합니다. 뷰어가 스트림을 사용하기 때문에 어떤 클라우드 버킷에서든 파일을 가져와 바로 Doconut 뷰어 컴포넌트에 전달하고, 렌더링된 페이지나 썸네일을 클라이언트에 반환하면서 디스크에 파일을 저장할 필요가 없습니다.

지연 시간 및 대역폭 감소

문서가 Azure Blob Storage에 저장되어 있을 때, 첫 페이지를 보기 위해 전체 파일을 클라이언트로 다운로드하면 불필요한 지연이 발생합니다. Doconut은 온‑디맨드 썸네일 생성을 지원하므로 먼저 저해상도 미리보기를 요청하고, 사용자가 스크롤할 때만 전체 페이지 렌더링을 가져올 수 있습니다. 이 패턴은 수백 메가바이트에 달할 수 있는 대형 CAD 도면(DWG, DXF)에서 특히 유용합니다.

보안‑우선 처리

무거운 작업은 모두 서버에서 수행됩니다. Doconut의 server‑side processing 기능을 사용하면 기밀 PDF, 법률 계약서 또는 의료 기록을 프라이빗 VNet이나 기업 방화벽 뒤에 보관할 수 있습니다. 서드‑파티 SaaS를 호출하지 않으며, 뷰어는 브라우저‑사이드 엔진에 원본 바이트를 스트리밍하지 않고 이미지 타일이나 HTML 조각만 전달합니다.


Doconut을 인기 클라우드 스토리지 서비스에 연결하기

일반적인 통합 접근 방식

  1. 문서 스트림 얻기 – 선택한 클라우드 제공업체(Azure Blob, Amazon S3, Google Cloud Storage)의 SDK를 사용해 파일을 Stream 객체로 다운로드합니다.
  2. 스트림을 Doconut에 전달 – Doconut 뷰어는 스트림과 선택적 렌더링 옵션을 함께 받습니다. 이를 통해 웹 서버에 임시 파일을 만들 필요가 없습니다.
  3. 뷰어 토큰 생성 – Doconut은 현재 세션에 대한 문서를 고유하게 식별하는 토큰을 반환합니다. 이 토큰은 JSON 형태로 프론트‑엔드에 전달되어 이후 페이지‑렌더링이나 주석 요청에 사용됩니다.
  4. 필요 시 페이지 렌더링 – 프론트‑엔드는 토큰과 원하는 페이지 번호를 포함해 Doconut 엔드포인트를 호출하고, Doconut은 이미지 또는 HTML 조각을 스트리밍합니다.

워크플로가 스트림만을 사용하기 때문에 Azure 코드를 Amazon S3 또는 Google Cloud Storage용 코드로 교체할 때는 스트림을 생성하는 클라우드‑SDK 호출만 바꾸면 되며, Doconut 파이프라인의 나머지는 동일하게 동작합니다.

멀티‑테넌트 스토리지 처리

SaaS DMS에서는 테넌트마다 별도의 버킷이나 프리픽스가 존재할 수 있습니다. Doconut이 스트림을 사용하므로 런타임에 올바른 버킷을 결정하고 문서를 열며, 토큰을 현재 사용자의 클레임에 맞게 스코핑할 수 있습니다. Doconut의 내부 캐시(IDistributedCache)는 Redis 또는 Azure Cache for Redis와 연동해 동일 페이지에 대한 반복 요청이 메모리에서 처리되도록 할 수 있습니다.


협업 워크플로에서 실시간 주석 및 OCR 활성화

Annotation Plugin: 정적 뷰어를 리뷰 허브로 전환

Doconut은 Annotation Plugin을 제공하여 사용자가 텍스트를 강조하거나 스티키 노트를 추가하고, 자유형 도형을 그릴 수 있게 합니다. 문서를 연 뒤 뷰어에서 주석 관리자를 가져와 주석 객체를 추가·수정하고, 주석 상태를 XML 형태로 저장합니다. XML을 문서 레코드와 함께 보관하면 버전 관리된 리뷰 히스토리를 만들 수 있으며, 이후 열 때 XML을 로드해 정확히 동일한 시각적 상태를 복원합니다.

스캔된 PDF에 대한 OCR‑기반 검색

스캔된 계약서, 영수증 또는 의료 이미지와 같이 이미지 전용 PDF가 많이 존재합니다. Doconut의 Search Plugin은 뷰어 설정에서 활성화하면 서버에서 자동으로 OCR을 수행합니다. OCR 엔진이 서버‑사이드 스택에 존재하므로 추출된 텍스트가 보호된 환경을 벗어나지 않습니다. OCR이 완료되면 검색 API를 호출해 일치하는 페이지 번호와 바운딩 박스를 반환받아 UI에서 강조 표시할 수 있습니다. 서버에서 OCR이 실행되므로 Azure Cognitive Search, Elasticsearch 등任意의 검색 서비스에 추출 텍스트를 색인해 전체 저장소에 대한 즉시 전체 텍스트 검색을 제공할 수 있습니다.

공유 토큰을 통한 협업

Teams나 SharePoint와 통합할 때는 일반적으로 문서 ID, 사용자 권한 및 타임스탬프를 인코딩한 단시간 유효 토큰을 생성합니다. OpenDocument 호출에서 반환된 Doconut 토큰 문자열을 JWT로 감싸거나 캐시 엔트리로 저장하면, 다른 사용자가 공유 링크를 클릭했을 때 동일 토큰을 사용해 뷰어를 재구성하고 모든 사용자가 주석 및 OCR 레이어를 공유할 수 있습니다.


Doconut을 이용한 안전한 서버‑사이드 변환 및 인쇄 제어

많은 기업이 Word, Excel, CAD 파일을 PDF로 변환해 보관하거나 “승인된 경우에만 인쇄” 정책을 적용해야 합니다. Doconut의 Converter Plugin은 Microsoft Office나 서드‑파티 서비스를 필요로 하지 않고 이러한 시나리오를 처리합니다. 서버에서 변환 API를 호출해 소스 파일 경로(또는 스트림)와 원하는 출력 형식을 전달하면 변환이 백엔드에서 완전히 수행되어 PDF가 생성됩니다.

PDF가 생성되면 뷰어 UI에서 Controlled Printing을 바로 활성화할 수 있습니다. Doconut은 특정 문서 토큰에 대한 인쇄 권한을 설정하는 메서드를 제공하며, 사용자가 인쇄 버튼을 클릭하면 Doconut이 플래그를 확인하고 인쇄 가능한 이미지 스트림을 반환하거나 “인쇄가 비활성화되었습니다”라는 친절한 메시지를 반환합니다. 이를 통해 브라우저 인쇄 대화 상자를 차단하는 맞춤 JavaScript이 필요 없게 됩니다.

인쇄 활동 감사

인쇄 요청이 Doconut 미들웨어를 거치므로 ASP.NET Core 로깅 파이프라인에 연결해 누가 언제 무엇을 인쇄했는지 캡처할 수 있습니다. 감사 항목을 SQL 테이블에 저장하거나 SIEM 시스템으로 전달해 컴플라이언스 보고에 활용하면, 법률 기술이나 의료 솔루션처럼 모든 문서 접근이 추적되어야 하는 경우에 필수적입니다.


크로스‑플랫폼 환경에서 확장성과 성능을 위한 모범 사례

  1. 분산 캐시 활용 – Doconut의 내부 페이지‑타일 캐시는 Redis, Azure Cache 또는 任意 IDistributedCache 구현으로 백업할 수 있습니다. 캐시 키에 문서 버전 해시를 포함해 변환 후 오래된 이미지가 제공되지 않도록 합니다.
  2. 대량 변환을 위한 백그라운드 작업 – 대규모 아카이브를 온보딩할 때는 Hangfire 또는 Azure Functions로 변환 작업을 큐에 넣습니다. Doconut 뷰어 클래스는 IHostedService 워커와 호환되며, 스트림을 받아 토큰을 반환하므로 HTTP 컨텍스트가 필요 없습니다.
  3. 디바이스별 이미지 해상도 조정 – 모바일은 낮은 ImageResolution(150‑200 DPI)이 적합하고, 데스크톱 워크스테이션은 CAD 디테일을 위해 300 DPI를 요청할 수 있습니다. 사용자‑에이전트 문자열이나 클라이언트‑사이드 설정을 기반으로 해상도를 동적으로 조정합니다.
  4. 주석 지연 로딩 활성화 – 주석 XML을 별도 테이블에 저장하고 사용자가 주석 패널을 열 때만 로드하면 초기 페이로드가 감소하고 첫 페이지 렌더링 속도가 빨라집니다.
  5. 메모리 사용량 모니터링 – 고해상도 CAD 페이지 렌더링은 메모리를 많이 소모합니다. 프로덕션에서는 .NET GC를 서버 모드(<gcServer enabled="true"/>)로 설정하고, 실행 시간이 과도한 렌더링 작업을 방지하기 위해 적절한 타임아웃을 지정합니다.
  6. 정적 자산에 CDN 적용 – 뷰어의 JavaScript와 CSS 번들은 정적 파일이므로 Azure CDN, CloudFront 또는 Cloudflare를 통해 제공하면 전 세계 팀이 초기 페이지 로드 시간을 수 밀리초 단위로 단축할 수 있습니다.

위 가이드를 따르면 대륙을 초월한 수천 명의 동시 사용자를 지원하면서 첫 페이지 지연 시간을 200 ms 이하로 유지할 수 있습니다. 이는 많은 엔터프라이즈 포털이 목표로 하는 벤치마크입니다.


Doconut 무료 체험으로 빠르게 시작하기

Doconut을 평가하는 가장 빠른 방법은 공식 사이트에서 무료 체험을 다운로드하고, NuGet 패키지를 새 ASP.NET Core 프로젝트에 추가한 뒤 빠른 시작 가이드를 따르는 것입니다. 몇 분 안에 Azure Blob에서 문서를 가져오고, 주석을 활성화하며, OCR 기반 검색을 수행하고, 안전한 서버‑사이드 변환을 수행하는 기능적인 뷰어를 구현할 수 있습니다. 단계별 안내는 Doconut 문서를 참고하고 오늘 바로 클라우드‑네이티브 문서 경험을 구축해 보세요.

문서 워크플로를 혁신할 준비가 되셨나요? 지금 Doconut 무료 체험에 등록하고 .NET 애플리케이션 어디에서든 안전하고 검색 가능하며 협업 가능한 문서 경험을 손쉽게 제공하는 방법을 확인해 보세요.

#document viewer#.NET#cloud integration#collaboration#OCR#문서 뷰어#클라우드 통합#협업