Claude 대화를 Markdown으로 저장하는 방법 (Artifacts, 인용, Projects)
Claude 대화는 점점 더 진지한 리서치와 코드 작업이 일어나는 장소가 되고 있습니다. Artifacts, 인용, 몇 시간에 걸친 주고받기를 포함한 긴 스레드는 종종 여러분의 노트에 있는 어떤 문서보다 많은 추론을 담고 있습니다. 그럼에도 Anthropic은 어떤 내보내기 기능도 제공하지 않습니다. “Markdown으로 다운로드” 버튼도, JSON 덤프도, 아카이브 엔드포인트도 없습니다. 스레드가 사이드바에서 사라지면, 돌아가는 유일한 방법은 claude.ai에서의 검색이며, 그것도 늘 기억하는 내용을 찾아주지는 않습니다.
Claude 대화를 Markdown으로 저장하면 세 가지 문제가 한 번에 해결됩니다. 영구적인 로컬 아카이브를 얻고, Obsidian이나 Notion 내에서 과거 추론을 참조할 수 있으며, 모델을 전환할 때 오래된 Claude 스레드를 ChatGPT나 Gemini에 컨텍스트로 다시 넣을 수 있습니다.
이 가이드는 짧은 채팅부터 Artifacts가 포함된 200K 토큰 리서치 스레드까지, Claude 대화를 깔끔한 Markdown으로 변환하는 모든 방법을 다룹니다.
왜 Claude 대화를 Markdown으로 저장해야 할까요?
Markdown은 대화가 가야 할 어떤 곳에서든 작동하는 포맷입니다:
- 다른 LLM에 넘기기 --- 두 번째 의견이나 다른 추론 스타일이 필요할 때, 오래된 Claude 스레드를 ChatGPT, Gemini 또는 로컬 모델에 붙여넣기
- Obsidian이나 Notion에 떨어뜨리기 --- 대화당 하나의 파일, 완전히 검색 가능, 프로젝트 노트에서 링크 가능
- 특정 턴 인용하기 --- 50턴 스레드에서 “Claude가 리팩토링을 제안한 순간”을 찾는 것은 검색 한 번 거리
- Artifacts를 실제 파일로 아카이브 --- Claude가 만든 코드, 문서, React 컴포넌트가 레포에 복사할 수 있는 코드 블록이 됨
- 인용 보존 --- Claude가 답변의 근거로 삼은 웹 검색 결과가 나중에 감사할 수 있는 각주가 됨
2026년 Claude-to-Markdown 트래픽의 대부분을 견인하는 사용 사례는 첫 번째입니다. 사람들은 Claude를 심도 있는 작업에 사용한 후, 최종 답변만이 아니라 출력과 추론을 보관하고 싶어합니다.
방법 1: Save (가장 빠름, 원클릭)
Save는 어떤 Claude 대화든 원클릭으로 Markdown 파일로 변환하는 Chrome 확장 프로그램입니다. 대화 DOM을 순회하고, 모든 사용자와 어시스턴트 턴을 순서대로 추출하며, Artifacts를 올바른 언어 식별자가 있는 코드 블록으로 빼내고, 인용을 각주로 보존합니다.
작동 방식:
- Chrome에서 Claude 대화 열기 (
claude.ai/chat/...및 공유 대화 링크에서 작동) - 툴바에서 Save 확장 프로그램 아이콘 클릭
.md파일이 즉시 다운로드됨 (연결되어 있다면 Save Vault에 도착)
얻는 것:
- 대화 제목과 날짜가 frontmatter로
- 모든 사용자와 어시스턴트 턴이 순서대로, 역할 레이블(
## You/## Claude)과 함께 - Claude Artifacts (코드, 문서, HTML, React 컴포넌트)가 올바른 언어 식별자가 있는 코드 블록으로 추출됨
- 답변 내부의 코드 블록과 언어 힌트 보존
- Claude의 웹 검색 결과 인용이 Markdown 각주로
- Claude가 도구를 호출할 때의 tool-use 턴 캡처 (호출과 결과 둘 다 나타남)
- 대화가 Claude Project 내부에 있고 시스템 프롬프트나 지식 파일이 보이는 경우 Project 컨텍스트 보존
제거되는 것:
- Claude.ai 내비게이션 chrome, 사이드바, 모델 선택기
- 여러분이 선택하지 않은 빈 재생성 브랜치
- 인라인 UI 어포던스 (“Edit”, “Copy”, “Retry” 버튼)
- 로딩 스켈레톤과 부분 스트림
최적의 사용자: 연구자, 엔지니어, AI 사용자, Claude에서 긴 스레드를 운영하며 작업을 보존하고자 하는 모든 사람. 다른 모델에 붙여넣을, Obsidian에 아카이브할, 동료에게 넘길 깔끔한 트랜스크립트가 필요하다면 이것이 가장 깔끔한 경로입니다.
출력 예시
Artifact가 있는 짧은 Claude 대화를 저장하면 다음과 같이 됩니다:
---
title: "Refactor my Express middleware into Hono"
url: https://claude.ai/chat/a1b2c3d4-...
model: Claude Opus 4.7
date: 2026-05-22
turns: 6
---
## You
Here's my Express middleware. Can you port it to Hono? I want to keep
the same auth behavior but drop the body-parser dependency.
```js
app.use((req, res, next) => {
if (!req.headers.authorization) return res.sendStatus(401)
// ...
})
Claude
Hono ships JSON parsing in core, so the body-parser dependency goes
away on its own. The middleware shape is almost identical --- c.req
instead of req, and you return instead of calling next().
Here’s the port 1:
import { Hono } from 'hono'
const app = new Hono()
app.use('*', async (c, next) => {
const auth = c.req.header('Authorization')
if (!auth) return c.text('Unauthorized', 401)
await next()
})
그 파일은 한 번의 붙여넣기로 ChatGPT의 사용 가능한 컨텍스트가 되고, 한 번의 키 입력으로 영구적인 Obsidian 노트가 되며, 그 안의 Artifact는 한 번의 복사로 레포에 커밋됩니다.
## 방법 2: 수동 복사-붙여넣기
Claude.ai는 대화 창에서 텍스트를 선택해 다른 웹 페이지처럼 복사하도록 허용합니다.
**단계:**
1. 대화 맨 위로 스크롤
2. 클릭과 드래그로 모든 턴 선택
3. 복사, Markdown 에디터에 붙여넣기
4. 수동으로 역할 레이블 추가, 코드 블록 펜스 수정, 안 따라온 Artifact 내용 다시 추가, 인용 링크 재구성
**이 방식의 문제점:**
- 긴 스레드에서 전체 대화를 선택하는 것은 취약함 --- Claude가 DOM을 가상화하므로 스크롤하면 이전 턴이 문서에서 빠짐
- Artifacts는 텍스트로 복사되지 않음; 플레이스홀더나 아무것도 안 얻음
- 코드 블록이 언어 힌트를 잃음
- 웹 검색 인용이 목적지 URL 없는 `[1]` `[2]`로 옴
- 역할 경계가 무너짐 --- 사용자와 Claude 턴이 하나의 텍스트 벽으로 흐려짐
- 분기된 대화 (응답을 재생성한 곳)는 모든 분기를 한꺼번에 가져옴
2턴 교환에서는 실행 가능. 화면 하나보다 긴 것은 무너집니다.
## 방법 3: 브라우저 콘솔 + 스크립트
개발자의 경우 대화 데이터는 DOM에 있습니다. Chrome DevTools 콘솔에서 작은 스크립트를 작성해 순회할 수 있습니다.
```js
const turns = document.querySelectorAll('[data-testid="conversation-turn"]')
const md = Array.from(turns).map(t => {
const role = t.querySelector('[data-role]')?.dataset.role
const body = t.querySelector('.prose')?.innerText
return `## ${role === 'user' ? 'You' : 'Claude'}\n\n${body}`
}).join('\n\n---\n\n')
console.log(md)
최적의 사용자: 출력에 대해 일회성 제어를 원하거나, 많은 스레드에 걸친 대량 추출을 스크립트화해야 하는 엔지니어.
이 방식의 문제점:
- 선택자가 어떤 공개 API의 일부도 아님; Anthropic은 정기적으로 UI 변경을 배포하며 스크립트는 경고 없이 깨짐
- Artifacts가 iframe이나 트리 외부 React 포털 내부에 렌더링됨;
innerText가 놓침 - 인용이 초기 DOM에 없는 툴팁에 있음
- tool-use 턴이 텍스트 턴과 다르게 중첩됨
- 로그인되어 있고 대화 탭에 있어야 함; 배치 작업으로 작동 안 함
환경을 제어할 때의 합리적인 탈출구. 의존할 방법은 아닙니다.
방법 4: Anthropic의 Workbench API (대화 재구성)
Anthropic API는 Messages 엔드포인트를 통해 대화 원시값을 노출하지만, 과거 claude.ai 대화를 반환하는 엔드포인트는 없습니다. API는 그것을 통해 보낸 대화만 봅니다. claude.ai 스레드를 프로그래밍 방식으로 재구성하려면 직접 재생해야 합니다.
curl https://api.anthropic.com/v1/messages \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-d '{
"model": "claude-opus-4-5",
"messages": [{ "role": "user", "content": "..." }]
}'
최적의 사용자: 자체 데이터베이스에 대화를 저장하는 자체 Claude 래퍼를 구축하는 팀. 호출을 제어하면 내보내기를 제어합니다.
기존-대화 사용 사례의 문제점:
- 과거 claude.ai 대화는 API로 도달 불가
- API 크레딧과 자체 스토리지 레이어 필요
- 이미 웹 UI에 가지고 있던 스레드를 아카이브하는 데 도움 안 됨
- Artifacts도 API 기능이지만 렌더링 파이프라인은 API가 아닌 웹 앱의 것
제품을 만들고 있다면 옳은 방법입니다. 어제의 리서치 스레드를 아카이브하려는 거라면 잘못된 방법입니다.
어떤 방법을 사용해야 하나요?
| 시나리오 | 최선의 방법 |
|---|---|
| 이미 가지고 있던 Claude 리서치 스레드 아카이브 | Save --- 원클릭, 구조화된 출력 |
| 오래된 Claude 대화를 ChatGPT나 Gemini에 붙여넣기 | Save --- 모든 턴, Artifacts 그대로 |
| Claude가 만들어준 Artifact (코드, 문서, React) 보존 | Save --- 코드 블록으로 추출 |
| 프로젝트 노트와 함께 스레드를 Obsidian에 떨어뜨리기 | Save --- 깔끔한 frontmatter와 헤딩 |
| 처음부터 자체 대화 로거 구축 | Anthropic API --- 호출을 제어한다면 |
| 2턴 교환의 빠르고 거친 복사 | 수동 복사-붙여넣기 --- 무료, 빠름, 지저분함 |
| 맞춤 변환이 있는 일회성 추출 | 콘솔 스크립트 --- 선택자에 익숙하다면 |
대부분의 사람들에게 --- 특히 리서치, 엔지니어링, 글쓰기에 Claude를 사용하는 누구에게나 --- Save가 답입니다. 설정 없이 가장 깔끔한 Markdown을 생성하며, 200K 토큰 스레드를 한 턴 채팅과 같은 속도로 처리합니다.
Save가 처리하는 엣지 케이스
- Claude Projects. Project 내부의 각 대화는 독립 파일로 추출됩니다. Project의 시스템 프롬프트나 지식 파일이 대화 헤더에 보이는 경우, Save는 컨텍스트가 손실되지 않도록 frontmatter에 그것들을 캡처합니다.
- 다중 Artifact 대화. Claude가 세 개의 Artifacts (예: HTML 페이지, React 컴포넌트, SQL 스키마)를 만든 스레드는 각 Artifact가 자체 코드 블록으로, 나타난 순서대로, 올바른 언어 식별자와 함께 나옵니다.
- 매우 긴 대화. Claude의 200K 컨텍스트 윈도우는 수백 턴과 수만 단어의 스레드를 생성할 수 있습니다. Save는 스크롤하면서 DOM을 스트리밍하므로, 전체 스레드가 이전 턴을 잃지 않고 통과합니다.
- 분기 및 재생성된 응답. Claude 응답을 재생성했을 때, 보관한 분기 (현재 표시된 것)만 내보내집니다. 폐기된 분기는 건너뜁니다.
- tool-use 턴. Claude가 도구 --- 웹 검색, 코드 실행, computer use --- 를 호출하면 호출과 결과 둘 다
tool_use와tool_result마커가 있는 코드 블록으로 캡처되어 추론의 사슬이 그대로 유지됩니다. - 공유 대화 링크.
claude.ai/share/...URL은 자신의 대화와 같은 방식으로 작동합니다. 누군가가 공유한 스레드를 아카이브하는 데 유용합니다. - Computer Use 세션. DOM에 보이는 것으로 제한됨 --- 스크린샷과 모델의 추론은 통과하지만, 기저 VM 상태는 통과하지 않음.
- Claude Code 대화. Claude Code는
claude.ai가 아닌 터미널에서 실행됩니다. 터미널 세션의 경우, 별도로 캡처하려면 Claude Code + Obsidian 워크플로 가이드를 참조하세요.
워크플로와 결합하기
Markdown 출력은 필요한 어디서나 작동합니다:
- ChatGPT / Gemini / 로컬 모델 --- 파일을 붙여넣고, 다른 모델에 후속 질문
- Obsidian --- vault에 떨어뜨리고, 프로젝트 노트에서 링크, 저장한 모든 Claude 스레드 전반에 걸쳐 검색
- Notion --- 직접 붙여넣기, 헤딩과 Artifact 코드 블록이 올바르게 렌더링
- Apple Notes --- Markdown 공유 확장을 통한 깔끔한 가져오기
- git 레포 --- 코드 블록에서 바로 Artifacts를 올바른 파일에 커밋
- Save Vault --- 연결했다면, 모든 Claude 저장이 백링크와 태그와 함께 자동으로 거기에 도착
FAQ
Save가 공유 대화 링크에서 작동하나요?
네. claude.ai/share/...에 있는 것은 자신의 대화와 같은 방식으로 내보내집니다. 동료가 보내는 스레드를 아카이브하는 데 유용합니다.
Claude Projects는 어떻습니까? Project 내부의 각 대화는 개별적으로 저장됩니다. Project의 시스템 프롬프트나 지식 파일이 페이지에 보이는 경우 (헤더나 사이드바), Save는 대화가 의존했던 컨텍스트를 잃지 않도록 frontmatter에 캡처합니다.
Artifacts를 캡처하나요? 네 --- 이것이 핵심 차별화 요소입니다. Artifacts (코드, 문서, HTML, React 컴포넌트, Mermaid 다이어그램)는 Claude가 만든 순서대로, 올바른 언어 식별자가 있는 코드 블록으로 통과합니다. 레포나 문서에 직접 복사할 수 있습니다.
Claude의 웹 검색 인용은 어떻습니까? 인용은 Markdown 각주로 보존됩니다. 각주 텍스트가 소스 URL이므로, 원본 스레드로 돌아가지 않고도 나중에 Claude의 grounding을 감사할 수 있습니다.
Claude Code (CLI)에서 작동하나요?
Claude Code는 브라우저가 아닌 터미널에서 실행됩니다. 확장 프로그램은 claude.ai를 대상으로 합니다. CLI 세션의 경우, 대화 트랜스크립트가 ~/.claude/의 디스크에 있으며 별도로 캡처할 수 있습니다 --- Claude Code + Obsidian 워크플로 가이드에서 다룹니다.
매우 긴 스레드를 처리하나요? 네. Claude의 200K 컨텍스트는 수백 턴의 대화를 생성할 수 있습니다. Save는 대화 창을 스크롤하고 DOM에 다시 가상화되는 각 턴을 읽으므로, 가장 긴 스레드도 완전히 통과합니다.
분기된 응답이 포함되나요? UI에 현재 표시된 분기 (보관한 것)만. 선택하지 않은 재생성 분기는 건너뛰어 파일이 Claude가 보여주는 대화와 일치합니다.
비용은 얼마인가요? Save는 몇 개의 대화에서 시도해볼 수 있도록 무료 등급이 있습니다. 그 이후 작은 구독으로 지속적인 사용을 커버합니다.
관련 Save 가이드
- ChatGPT 대화를 Markdown으로 저장 --- 모든 턴, 코드 블록 그대로
- YouTube 비디오를 Markdown으로 저장 --- AI 트랜스크립트, 요약, 타임스탬프
- GitHub 레포와 이슈를 Markdown으로 저장 --- README, 이슈, PR 토론, 모두 하나의 파일로
- Claude Code + Obsidian 지식 베이스 워크플로 --- 터미널 세션 캡처 및 쿼리 가능한 아카이브 구축
Footnotes
## Continue reading
ChatGPT 대화를 Markdown으로 저장하는 방법 (모든 턴, 코드 블록 그대로)
모든 ChatGPT 대화를 깔끔한 Markdown으로 변환: 모든 턴, 코드 블록, 표, 인용. 연구자와 AI 사용자를 위한 2026년 완벽 가이드.
Notion 페이지를 Markdown으로 저장하는 방법 (toggle 펼침, database는 테이블로)
어떤 Notion 페이지든 깔끔한 Markdown으로 변환: toggle 펼침, database는 테이블, callout 보존. Obsidian과 AI 사용자를 위한 2026 완전 가이드.
Reddit 스레드를 Markdown으로 저장하는 방법 (댓글과 맥락 포함)
어떤 Reddit 스레드든 중첩된 댓글, 카르마, 플레어, OP 표시까지 보존된 깔끔한 Markdown으로 변환하세요. 연구자와 AI 사용자를 위한 2026년 완벽 가이드.
Save로 LLM 지식 베이스 구축하는 방법
어떤 웹 콘텐츠든 Claude, ChatGPT 또는 어떤 LLM이든 극적으로 더 스마트하게 만드는 개인 지식 베이스로 변환하세요. Andrej Karpathy의 접근 방식에서 영감을 받았습니다.
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.