Notion 페이지를 Markdown으로 저장하는 방법 (toggle 펼침, database는 테이블로)

·

Notion의 기본 “Export as Markdown”은 zip을 열기 전까지는 진짜 탈출구처럼 보인다. toggle은 접혀 있다. 인라인 database는 깨진 HTML로 나온다. callout은 이모지를 잃는다. 파일명에는 UUID 접미사가 붙는다. 모든 내부 링크는 더 이상 존재하지 않는 경로를 가리킨다. 그리고 대부분의 서드파티 “Notion to Markdown” 도구는 렌더링된 HTML을 그대로 덤프할 뿐인데, 그게 더 나쁘다 --- 노트인 척 하는 <div> 수프가 손에 남는다.

이 가이드는 Notion 페이지를 깔끔한 Markdown으로 변환하는 모든 방법을 다룬다 --- 한 페이지부터 workspace 전체 마이그레이션까지.

왜 Notion 페이지를 Markdown으로 저장하는가?

Markdown은 Notion의 벽 밖에서도 살아남는 포맷이다:

  • Obsidian, Logseq 또는 평문 파일로 마이그레이션 --- 폴더 하나, 독점 Notion blocks 없음, 모든 것에 대한 전문 검색
  • LLM에 먹이기 --- Claude, ChatGPT, Gemini, 로컬 모델 모두 Markdown을 컨텍스트로 네이티브하게 읽는다
  • 벤더 락인 탈출 --- Notion의 블록 포맷은 그들 것이고 Markdown은 당신 것이다. 떠나기로 결정하는 날이 이게 중요해지는 날이다
  • AI 지식 베이스 구축 --- Claude Projects나 로컬 RAG 파이프라인을 깔끔한 Markdown 폴더에 가리키면 그냥 작동한다
  • 재구조화되기 전에 페이지 아카이브 --- workspace는 재정리되고, 페이지는 삭제된다. 당신의 노트는 동료의 봄 청소에 의존해서는 안 된다

2026년 Notion-to-Markdown 트래픽을 가장 많이 만드는 유스케이스는 마이그레이션이다: 2020년에 Notion에 세컨드 브레인을 만들었고 이제 진짜로 통제할 수 있는 포맷에 두고 싶어하는 사람들.

방법 1: Save (가장 빠름, 원클릭)

Save는 어떤 Notion 페이지든 원클릭으로 Markdown 파일로 바꾸는 Chrome 확장이다. 렌더링된 페이지를 읽고, 모든 toggle을 펼치고, database 행을 순회하며, 실제로 노트처럼 보이는 것을 만들어낸다 --- Notion의 block ID 덤프가 아니라.

작동 방식:

  1. Chrome에서 Notion 페이지를 연다 (workspace 페이지든 공개 링크든 모두 작동)
  2. 툴바의 Save 확장 아이콘을 클릭한다
  3. .md 파일이 즉시 다운로드된다 (연결되어 있다면 Save Vault로 들어간다)

얻게 되는 것:

  • toggle 완전 펼침 --- 모든 접힌 섹션이 열려 인라인화되므로 아무것도 숨겨지지 않는다
  • 인라인 database가 Markdown 테이블로 --- 컬럼은 헤더로, 행은 행으로, 속성은 읽을 수 있는 채로
  • 전체 페이지 database가 행의 테이블로 --- 모든 항목이 순회되고, 속성은 행 전체에 걸쳐 보존된다
  • callout이 스타일 있는 blockquote로 --- 이모지 아이콘이 인용의 앞에 남아 시각적 신호가 포맷을 살아 넘는다
  • 언어 식별자가 있는 코드 블록 --- ```python, ```ts, ```bash --- 다른 곳에 붙여넣는 순간 구문 강조가 작동한다
  • 링크된 페이지와 백링크 참조 --- 내부 링크는 관련 slug로의 Markdown 링크로 보존된다
  • 페이지 제목, 아이콘, 커버 --- frontmatter가 제목, 아이콘, 커버 이미지 URL을 잡아주어 메타데이터가 살아남는다

제거되는 것:

  • Notion의 사이드바, 빵부스러기, 상단 내비게이션 크롬
  • 오른쪽 코멘트 패널 (명시적으로 옵트인하지 않는 한)
  • “Share” 버튼, “Updates” 인디케이터, 기타 UI 부스러기
  • 빈 플레이스홀더 블록과 Notion의 기본 “Untitled” 잔재
  • 파일명의 UUID 접미사 --- Product-Roadmap-Q2-a1b2c3d4e5f6.md가 아니라 product-roadmap-q2.md를 얻는다

가장 적합한 경우: Notion workspace를 마이그레이션하는 사람, 기존 docs에서 AI 지식 베이스를 구축하는 사람, 또는 Notion의 export 큐를 띄우지 않고 한 페이지만 잡고 싶은 사람. 특히 toggle과 database를 많이 쓰는 페이지에 좋다 --- 정확히 Notion의 네이티브 export가 무너지는 지점이다.

출력 예시

toggle과 인라인 database가 있는 전형적인 Notion 제품 페이지를 저장하면 다음이 나온다:

---
title: "Product Roadmap Q2 2026"
icon: "🗺️"
cover: "https://www.notion.so/images/page-cover/woodcuts_1.jpg"
url: https://www.notion.so/Product-Roadmap-Q2-2026-a1b2c3d4e5f6
---

# Product Roadmap Q2 2026

## In Progress

### User Authentication Overhaul

- Migrate from JWT to session-based auth
- Add SSO support for enterprise customers
- Timeline: March 15 - April 30

> 💡 **Note:** This blocks the enterprise launch. Prioritize accordingly.

#### Implementation Details

The migration happens in three phases. Phase one ships the new session
store behind a feature flag. Phase two backfills existing JWTs into
sessions on next login. Phase three removes the JWT code path entirely.

```python
session = await create_session(user_id, ttl=86400)
response.set_cookie("sid", session.token, httponly=True)

Planned

API v2

EndpointStatusOwnerTarget
/usersSpec completeAliceApr 15
/billingIn reviewBobApr 22
/analyticsNot startedMay 06

그 파일은 Obsidian에 그대로 떨어뜨리면 작동하는 노트가 된다. Claude에 붙여넣으면 네이티브 export가 묻어버렸을 toggle 내용과 database 행을 포함한 완전한 컨텍스트를 모델에 준다.

## 방법 2: Notion의 네이티브 Markdown export

Notion은 페이지 메뉴에 "Export as Markdown & CSV" 내장 옵션을 제공한다.

**단계:**

1. 페이지를 열고 우상단의 `...` 메뉴를 클릭한다
2. **Export**를 선택하고, 포맷은 **Markdown & CSV**
3. zip을 기다리고 다운로드한 뒤 압축을 풀어, UUID 접미사가 붙은 파일들 사이에서 페이지를 찾는다

**이 접근법의 문제:**

- **toggle이 무로 붕괴** --- `▶ Toggle` 블록 안의 콘텐츠는 옛 코드 경로에서는 export에서 완전히 사라지거나, 대부분의 에디터가 렌더링하지 않는 비표준 `<details>` 블록으로 나온다
- **database가 별도 CSV 파일로 쪼개짐** --- 페이지 자체는 인라인 테이블을 잃고, `.md`와 형제 `.csv`를 손으로 다시 꿰매야 한다
- **파일명에 UUID 접미사** --- `My-Page-a1b2c3d4e5f6.md` --- 링크가 깨지고 어떤 파일 브라우저에서도 추하게 보인다
- **내부 링크가 UUID 경로를 가리킴** --- `[Other Page](Other-Page-b2c3d4e5f6a1.md)` --- 그래서 다시 쓰지 않는 한 전체 링크 그래프가 깨진다
- **callout이 스타일을 잃음** --- 이모지 아이콘은 버려지고, 블록은 평범한 문단이 된다
- **커버 이미지와 아이콘이 frontmatter에 없음** --- 실제로 원하는 메타데이터가 사라진다

텍스트만 있는 단일 페이지에는 쓸만하다. Notion의 더 풍부한 블록 타입을 쓰는 어떤 것에서도 무너진다 --- 즉 대부분의 실제 페이지에서.

## 방법 3: Notion API + 스크립트

완전한 제어가 필요하다면 공식 Notion API로 페이지를 가져와 직접 blocks를 Markdown으로 변환할 수 있다.

```bash
# Using notion-to-md (popular community library)
npm install notion-to-md @notionhq/client

# Set NOTION_TOKEN env var (integration token from notion.so/my-integrations)
node convert.js PAGE_ID > page.md

가장 적합한 경우: 스케줄된 export를 돌리는 엔지니어링 팀, Notion에서 docs 사이트로의 동기화 파이프라인을 구축하는 사람, 또는 각 블록 타입이 Markdown으로 어떻게 매핑되는지에 대한 프로그램적 제어가 필요한 사람.

이 접근법의 문제:

  • Notion integration을 만들고 페이지 접근권을 부여하고 토큰을 관리해야 한다
  • 변환 라이브러리 (예: notion-to-md)는 일반적인 blocks는 다루지만 새 것들에는 뒤처진다 --- synced blocks, AI blocks, 최근 추가는 자주 깨져서 나온다
  • database 속성 (formula, rollup, relation)은 API가 해결된 값이 아니라 원시 참조로 반환하기 때문에 커스텀 처리가 필요하다
  • 컨버터를 쓰고 유지보수하는 셈이고, 그건 진짜 소프트웨어다
  • 큰 workspace에서는 rate limit과 페이지네이션을 존중해야 한다

파이프라인을 구축한다면 맞는 방법. 한 페이지나 작은 마이그레이션에는 오버킬이다.

방법 4: 서드파티 마이그레이션 도구 (Loom, super.so 등)

Notion 마이그레이션을 구체적으로 노리는 작은 유료 도구 생태계가 있다 --- 일부는 특정 목적지(Obsidian, Roam)로 옮기는 데 집중하고, 다른 일부는 Notion 페이지를 웹에 게시한다(super.so, Potion).

가장 적합한 경우: 일회성 대량 마이그레이션을 하는 팀으로, 블록 타입의 long tail을 처리해줄 서비스를 원하고 workspace당 지불을 꺼리지 않는 경우.

Markdown 유스케이스에서의 문제:

  • 출력이 깔끔하고 휴대 가능한 Markdown이 아니라 특정 목적지(Obsidian 볼트, Roam 그래프)에 묶여 있는 경우가 많다
  • 대부분 workspace당 또는 페이지당 요금이 부과되는 유료 서비스다
  • 품질은 격하게 달라진다 --- 일부 도구는 후드 아래서 Notion export를 그냥 호출해서 그 모든 문제를 추가 단계와 함께 물려받는다
  • 큰 workspace에서는 작업을 배치 처리해서 처리 속도가 느리다
  • 일회성 마이그레이션용으로 설계됐지 “지금 이 페이지를 저장해” 같은 ad-hoc 사용용이 아니다

전체 workspace를 옮기는데 스크립트를 만지고 싶지 않다면, 이 중 하나를 평가해라. 깔끔한 한 페이지를 5초 안에 원한다면 잘못된 도구다.

어떤 방법을 써야 할까?

시나리오최선의 방법
Notion 페이지를 Claude나 ChatGPT에 붙여넣기Save --- 원클릭, toggle 펼쳐짐
한 페이지를 Obsidian으로 마이그레이션Save --- 깔끔한 파일명, 작동하는 링크
workspace에서 AI 지식 베이스 구축Save --- 페이지 전반에 일관된 Markdown
동료가 재정리하기 전에 페이지 아카이브Save --- 지금 보는 것을 그대로 잡음
전체 workspace를 일회성으로 대량 exportNotion 네이티브 export --- 청소 세금을 받아들이기
자동화된 Notion → docs 사이트 파이프라인 구축Notion API + 스크립트 --- 프로그램적이고 안정적
마이그레이션을 대행해줄 서비스에 비용 지불서드파티 도구 --- 품질이 받쳐준다면

대부분의 사람에게 --- 특히 Notion 콘텐츠를 AI 컨텍스트로 쓰거나 Markdown 네이티브 도구로 마이그레이션하는 사람 누구에게나 --- Save가 답이다. 제로 셋업으로 가장 깔끔한 Markdown을 만들어내고, 네이티브 export가 부과하는 어떤 구조적 손실 없이 toggle이 많고 database가 많은 페이지를 처리한다.

Save가 다루는 엣지 케이스

  • 페이지 안에 중첩된 database. database가 있는 페이지에서, 한 행이 또 database를 포함하는 다른 페이지로 연결되는 경우 --- Save는 최상위 테이블을 펼치고 중첩된 페이지로 링크 아웃하며, 세계 전체를 인라인화하려 하지 않는다. 트리 전체가 필요한 드문 경우를 위해 재귀는 옵트인이다.
  • 하위 페이지와 링크된 페이지. 내부 링크는 Markdown 링크로 보존된다. 부모와 자식을 따로 저장하면 링크가 해결된다. 부모만 저장하면 링크는 나중에 해결할 수 있는 참조로 남는다.
  • synced blocks. 실제 콘텐츠로 해결된다. Markdown에는 소스 블록을 가리키는 플레이스홀더가 아니라 해결된 텍스트가 들어간다.
  • 댓글. 기본 꺼짐. 페이지 콘텐츠와 함께 토론 스레드를 캡처하고 싶다면 확장 설정에서 켜라 (아카이브에 유용, AI 컨텍스트에는 시끄럽다).
  • 템플릿과 template button. 템플릿 콘텐츠는 렌더링된 모습 그대로 캡처된다. template button 자체는 정적 표현이 없는 인터랙티브 요소이므로 떨어진다.
  • wiki 페이지와 갤러리 뷰. 위키 홈 페이지는 자식 페이지 목록을 유지한다. 갤러리 뷰는 보이는 속성을 컬럼으로 한 항목들의 테이블이 된다.
  • database 속성 (formula, rollup, relation). formula와 rollup 값은 렌더링된 텍스트로 캡처된다. relation은 관련 페이지로의 Markdown 링크로 보존된다.
  • 공개 vs 비공개 페이지. Save는 로그인한 브라우저가 보는 것을 본다. 페이지를 읽을 수 있다면 Save는 그것을 변환할 수 있다 --- workspace 페이지, 공유 페이지, 공개 링크에서 동일하게 작동한다.
  • 수백 개의 blocks를 가진 긴 페이지. 확장은 변환을 청크화하여 브라우저가 얼지 않도록 한다. 출력은 페이지 길이와 관계없이 하나의 연속된 Markdown 파일이다.

당신의 워크플로와 짝짓기

Markdown 출력은 필요한 곳 어디서든 작동한다:

  • Obsidian --- 볼트에 파일을 떨어뜨리면 페이지를 더 저장할수록 링크 그래프가 자동으로 재구축된다
  • Logseq --- 같은 이야기, 페이지 속성은 Logseq 속성이 된다
  • Claude / ChatGPT / Gemini --- 파일을 붙여넣고, 후속 질문을 하고, Project의 컨텍스트로 쓴다
  • Apple Notes --- Markdown 공유 확장을 통한 깔끔한 임포트
  • 평문 폴더 + ripgrep --- 미니멀리스트로 갔다면, Markdown 폴더와 rg는 Notion이 했던 그 어떤 검색보다 빠르다
  • Save Vault --- 하나 연결했다면 모든 Notion 저장이 백링크와 태그와 함께 자동으로 거기에 들어가므로 마이그레이션이 진행되는 동안 전체 workspace가 검색 가능해진다

FAQ

Save는 비공개 workspace 페이지에서 작동하나요? 네. Save는 로그인된 브라우저에서 실행되므로, 당신이 읽을 수 있는 것 --- workspace 페이지, 공유 페이지, 공개 링크 --- 어떤 것이든 Save는 변환할 수 있습니다.

Save가 제 Notion 데이터를 망가뜨리나요? 아니요. Save는 읽기 전용입니다. 브라우저 탭에서 렌더링된 페이지를 읽고 컴퓨터에 Markdown 파일을 씁니다. Notion을 수정하지 않고, Notion API를 호출하지 않으며, workspace를 절대 건드리지 않습니다.

이미지와 파일 첨부는요? 이미지는 Notion의 S3 URL을 가리키는 Markdown 이미지 링크로 참조됩니다. 그 URL들은 서명되어 있고 만료되므로 장기 아카이브를 위해서는 Save에 “embed images locally” 패스를 짝지어 사용하세요 --- 확장에 Markdown과 함께 이미지를 다운로드하도록 요청하세요.

toggle을 보존하나요? 네, 그리고 이것이 Notion의 네이티브 export 대비 주요 차별점입니다. 페이지의 모든 toggle이 열리고 콘텐츠가 인라인화됩니다. 헤드라인만이 아니라 실제로 페이지에 있는 모든 것을 볼 수 있습니다.

전체 workspace를 대량 export할 수 있나요? 확장은 오늘 한 번에 한 페이지입니다. 전체 workspace 마이그레이션의 경우, 대부분의 사람들이 쓰는 워크플로는: workspace의 최상위 wiki 페이지를 저장하고(페이지 트리를 캡처합니다), 그 다음 실제로 원하는 페이지를 하나씩 저장하는 것입니다. 각 저장이 클릭 하나이기 때문에 들리는 것보다 빠릅니다.

Notion mobile에서 작동하나요? Chrome 데스크톱 전용입니다. 모바일에서는 URL을 복사해 데스크톱에서 열거나, Mac에서 Save Vault URL 핸들러를 사용하세요.

notion-to-md 및 다른 스크립트와 어떻게 비교되나요? 단순한 페이지에서는 출력 품질이 비교 가능합니다. toggle, callout, 인라인 database가 있는 페이지에서는 Save의 출력이 더 깔끔합니다. 원시 블록 트리를 걷는 대신 렌더링된 DOM을 읽기 때문 --- 라이브러리 업데이트를 기다리지 않고 새 블록 타입이 그냥 작동한다는 뜻입니다.

얼마인가요? Save는 무료 티어가 있어 몇 페이지에서 시도해볼 수 있습니다. 그 이후로는 작은 구독으로 변환 비용을 충당합니다.

관련 Save 가이드

## Continue reading

Jean-Sébastien Wallez

Written by

Jean-Sébastien Wallez

I've been making internet products for 10+ years. Built Save on weekends because I wanted my own reading library in clean markdown for Claude and Obsidian. Write here about web clipping, AI workflows, and the small things that make a personal knowledge base actually useful.

## try save

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

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

Chrome에 추가 🐿️