SharePoint 페이지 Markdown 내보내기

Microsoft 365를 쓰는 팀은 수년치 조직 지식을 SharePoint에 쌓아 둡니다. 회의 노트, 프로젝트 위키, 엔지니어링 문서, 인사 정책까지 전부 그곳에 쌓입니다. 그런데 그 내용을 다른 곳으로 — 정적 사이트나 AI 지식 베이스, Markdown 중심 문서 시스템으로 — 옮기려 하면, SharePoint에는 내보내기 버튼이 없습니다.

이 가이드는 SharePoint 페이지에서 깔끔한 Markdown을 꺼내는 현실적인 방법을 다룹니다.

왜 SharePoint를 Markdown으로 내보내야 할까요?

  • SharePoint에서 이사 — Notion이나 Confluence, Git 기반 문서 저장소, 요즘의 정적 사이트로
  • 사내 AI 지식 베이스 구축 — Claude나 ChatGPT Enterprise, Microsoft Copilot 위의 RAG 시스템에 깔끔한 조각을 넣기 위해
  • 폐기되는 사이트 아카이브 — Microsoft 365 테넌트를 정리하거나 라이선스를 낮추기 전에
  • 내부 문서의 외부 공개 — 사내 지식을 공개 문서 사이트로 바꾸기
  • 팀을 넘나드는 이동성 — Markdown은 어떤 도구에서도, 언제까지나 읽힙니다

방법 1: Minibase Chrome 확장 프로그램 (페이지 하나씩)

Minibase는 SharePoint 페이지를 클릭 한 번으로 깔끔한 Markdown으로 바꿉니다.

Minibase가 SharePoint에서 담아내는 것:

  • 페이지 제목, 생성일, 작성자, 마지막 수정 타임스탬프
  • 제목 구조가 유지된 페이지 본문
  • 인라인 이미지를 Markdown 참조로
  • Markdown 표로 렌더링된 표
  • 삽입된 문서를 Markdown URL 링크로
  • 웹 파트: 텍스트 블록, 빠른 링크, 뉴스, 목록을 펼친 콘텐츠로 추출

Minibase가 걷어내는 것:

  • 사이트 탐색, 왼쪽 창, 리본
  • 댓글과 @ 멘션 패널 (댓글 자체는 문서 하단에 남습니다)
  • 추천 페이지 안내와 관리자 전용 배지

언제 알맞은 도구인가: 페이지 1~20개를 내보낼 때, 브라우저 세션으로만 접근할 수 있는 콘텐츠를 다룰 때, 가벼운 일회성 변환일 때.

방법 2: Microsoft Graph API

사이트 전체나 문서 라이브러리 전체를 대량으로 내보내려면 Microsoft Graph API가 정석입니다.

일반적인 흐름:

  1. Sites.Read.AllFiles.Read.All 권한으로 Azure AD 앱을 등록합니다
  2. 클라이언트 자격 증명이나 디바이스 코드 방식으로 액세스 토큰을 받습니다
  3. /sites/{site-id}/pages를 호출해 페이지 목록을 가져옵니다
  4. 페이지마다 /sites/{site-id}/pages/{page-id}를 호출해 콘텐츠 모델을 가져옵니다
  5. canvasLayout 구조를 순회하며 Markdown으로 출력합니다

장점: 규모를 감당하고, 스크립트로 짤 수 있으며, 사람 없이 돌고, 구조화된 메타데이터를 보존합니다.

단점: Azure AD 설정이 필요하고, 규모가 커지면 제한이 걸리며, 개발자가 필요합니다.

오픈소스 도우미: PnP PowerShellGet-PnPPage는 후처리해서 Markdown으로 만들 수 있는 페이지 객체를 돌려줍니다. Python을 쓰는 팀에는 Office365 Python SDK가 비슷한 역할을 합니다.

방법 3: PowerShell + PnP.PowerShell

Microsoft 커뮤니티가 관리하는 이 PowerShell 모듈은 SharePoint 관리자들의 기본 선택입니다. 기본적인 내보내기 루프는 이렇습니다.

Connect-PnPOnline -Url https://tenant.sharepoint.com/sites/YourSite -Interactive
$pages = Get-PnPClientSidePage
foreach ($page in $pages) {
  $html = (Get-PnPPage -Identity $page.Name).LayoutWebpartsContent
  # $html을 변환기(pandoc, turndown 등)에 넘깁니다
  $html | Out-File "$($page.Name).html"
}

그다음 각 HTML 파일을 Pandoc이나 Turndown으로 Markdown으로 바꿉니다.

빛을 발할 때: 관리자 권한이 있는 테넌트에서의 대량 내보내기, 이사 프로젝트.

방법 4: SharePoint Online “PDF로 내보내기” + OCR

최후의 수단입니다. 모든 페이지를 PDF로 인쇄한 뒤 그 PDF를 OCR로 Markdown으로 만드는 방법인데, 권하지 않습니다. 구조와 표 배치, 링크의 충실도를 전부 잃습니다. 시간을 낭비하지 마시라고 적어 둡니다.

OneNote는 어떨까요?

OneNote는 형제 같은 문제지만 답은 다릅니다.

  • 가장 좋은 길: OneNote 웹 앱(onenote.com)을 열고 페이지마다 Minibase를 쓰세요. 페이지를 깔끔한 Markdown으로 담아냅니다
  • 대안: Microsoft Graph API의 /me/onenote/pages 엔드포인트가 페이지 내용을 HTML로 돌려주니, 그것을 Markdown으로 변환하세요
  • 피할 것: OneNote의 기본 “PDF로 인쇄” — SharePoint와 똑같이 구조를 잃습니다

SharePoint 특유의 문제 다루기

알아 둘 만한 함정이 몇 가지 있습니다.

  • 웹 파트는 임의의 콘텐츠를 품을 수 있습니다. 뉴스 회전 배너, 이벤트, 빠른 링크 같은 것들이죠. Minibase는 이것을 평범한 Markdown으로 펼치고, Graph API는 여러분이 원하는 대로 렌더링할 수 있는 구조화된 JSON을 줍니다.
  • 모던 페이지와 클래식 페이지는 HTML이 크게 다릅니다. Minibase는 자동으로 구분하지만, 스크립트는 페이지 유형에 따라 분기해야 합니다.
  • 권한은 사용자를 따라다닙니다. 이사를 위해 내보내는 중이라면 사이트 소유자 권한이 있는지 확인하세요. 일반 구성원에게는 감춰진 영역이 있을 수 있습니다.
  • 큰 이미지가 base64로 본문에 박히는 경우가 있습니다. Minibase는 URL로 연결된 참조를 주니, 스크립트 내보내기에서 파일 크기 문제가 생기면 base64를 걷어내세요.

대부분의 팀을 위한 현실적인 선택

  • 페이지 1~20개: Minibase 확장 프로그램. 무료에서도 무제한 저장이 되고, Plus(월 $5.99)는 AI 템플릿과 저장 기록, 영상 전사를 열어 줍니다.
  • 페이지 20~500개: PnP PowerShell + Pandoc 변환. 스크립트를 하나 만들어 한 번 돌리세요.
  • 페이지 500개 이상: 제대로 된 수집 파이프라인을 갖춘 Graph API를, 일정을 걸어서.
  • 지금 당장 그 내용을 Claude나 ChatGPT에 넣고 싶다면: Minibase — 내보낸 결과가 이미 LLM 컨텍스트 창에 맞춰져 있습니다.

SharePoint의 콘텐츠는 애초에 그곳에 갇혀 있을 이유가 없었습니다. 이동 가능한 형식은 Markdown입니다. 규모에 맞는 방법을 고르세요.

Continue reading

더 스마트하게 저장할 준비가 되셨나요?

클릭 한 번으로 모든 웹페이지를 Markdown으로 변환하세요.

Chrome에 추가