ChatGPT 대화를 여러 개 등록해 제목별 폴더로 백업하고, 다른 질문에서 재사용할 context.md와 context_pack.md를 만드는 Windows WPF 애플리케이션입니다.
내장 WebView2 브라우저에서 ChatGPT를 검색하거나 대화를 열고 **현재 대화 추가**를 누르면, 주소를 별도로 복사하지 않아도 해당 대화가 백업 대기열에 바로 등록됩니다.
버전 1.0은 첫 공개 배포용 릴리스입니다.
- 내장 ChatGPT 브라우저와 로그인 세션 유지
- 현재 브라우저에 열린 대화를 버튼 한 번으로 대기열에 추가
- 선택·복사·직접 입력이 가능한 브라우저 주소창
- 주소창에 URL 입력 후 Enter로 이동
- 여러 ChatGPT URL 일괄 등록 및 TXT/CSV 불러오기
/c/로그인 대화와/share/공유 대화 구분- 중복 URL 자동 감지 및 기존 항목 선택
- 완료된 대화를 다시 추가하면 재백업 대기 상태로 전환
- 대화 제목별 폴더와 재백업 스냅샷 생성
- JSON, Markdown, HTML, MHTML, PDF, 전체 화면 PNG 저장
- 메시지 내부 첨부파일 후보 다운로드
- 여러 대화를 하나의
context_pack.md로 병합 - 단계별 진행률, 메시지 수, 작업 로그 표시
- PDF/MHTML/스크린샷 생성이 지연되면 제한 시간 후 다음 단계 진행
- 앱을 실행합니다.
- 오른쪽 WebView2 브라우저에서 ChatGPT에 로그인합니다.
- ChatGPT의 검색 기능이나 대화 목록을 이용해 백업할 대화를 엽니다.
- 브라우저 상단의 **
현재 대화 추가**를 누릅니다. - 다른 대화도 같은 방식으로 계속 추가합니다.
- 왼쪽의 **
전체 백업 시작**을 누릅니다.
현재 페이지가 일반 대화, 커스텀 GPT 대화 또는 공유 대화 주소일 때 버튼이 활성화됩니다.
https://chatgpt.com/c/...
https://chatgpt.com/g/.../c/...
https://chatgpt.com/share/...
홈 화면, 로그인 페이지, 설정 페이지에서는 현재 대화 추가 버튼이 비활성화됩니다.
백업할 주소입력칸에 URL을 한 줄에 하나씩 붙여넣습니다.목록에 추가를 누릅니다.- 또는
TXT 불러오기로 URL 목록을 가져옵니다. 전체 백업 시작을 누릅니다.
- 주소를 마우스로 선택하거나
Ctrl+C로 복사할 수 있습니다. - 주소창을 클릭하면 전체 주소가 선택됩니다.
- URL을 직접 입력하고 Enter를 누르면 해당 주소로 이동합니다.
복사버튼은 현재 주소를 클립보드에 저장합니다.현재 대화 추가는 현재 열린 ChatGPT 대화만 대기열에 등록합니다.
- URL 일괄 백업
- 백업 저장 위치
- URL 직접 입력 및 파일 불러오기
- 백업 대기열
- 작업 진행 상태
- 내장 ChatGPT 브라우저
- 현재 주소 복사 및 현재 대화 추가
- 실시간 작업 로그
- 보관함 · 자료 묶기
- 저장된 대화 조회
- 백업 폴더 열기
- 여러 대화를 새 질문용
context_pack.md로 묶기
Data/
├─ Backups/
│ └─ 대화제목__대화ID/
│ ├─ context.md
│ ├─ conversation.json
│ └─ Snapshots/
│ └─ yyyyMMdd_HHmmss/
│ ├─ 00_extraction.json
│ ├─ 01_context.md
│ ├─ 02_page_dom.html
│ ├─ 03_page_snapshot.mhtml
│ ├─ 04_page.pdf
│ ├─ 05_full_page.png
│ ├─ Attachments/
│ └─ manifest.json
├─ ContextPacks/
├─ WebViewProfile/
├─ queue.json
└─ settings.json
같은 대화를 다시 백업하면 기존 결과를 덮어쓰지 않고 Snapshots 아래에 새 시각 폴더를 만듭니다.
- Windows 10 또는 Windows 11 x64
- Microsoft Edge WebView2 Runtime
- 소스 빌드 시 .NET 8 SDK
- Visual Studio 2022 17.8 이상 권장
Visual Studio를 종료한 뒤 프로젝트 루트에서 다음 스크립트를 실행할 수 있습니다.
Set-ExecutionPolicy -Scope Process Bypass
.\repair.ps1직접 빌드:
dotnet restore .\ChatContextBackup.sln
dotnet build .\ChatContextBackup.sln -c Debug.\publish-win-x64.ps1결과 폴더:
publish\ChatContextBackup-win-x64\
생성된 폴더 전체를 배포하면 됩니다. 실행 파일만 따로 옮기지 마세요.
Visual Studio의 XAML 미리 보기 또는 Live Preview가 외부 CDN 연결을 감지하면 네트워크 액세스를 허용할까요? 창이 나타날 수 있습니다.
- 실제 앱이 아닌 Visual Studio 개발 도구에서 표시하는 안내입니다.
- ChatGPT 페이지 표시가 필요한 CDN 요청이라면 선택 허용할 수 있습니다.
- 차단하면 페이지 일부가 로드되지 않아 백업이 멈춘 것처럼 보일 수 있습니다.
- 반복되면 Visual Studio의 XAML Live Preview 또는 Hot Reload를 끄고 F5로 일반 실행하세요.
- 배포된 EXE에서는 Visual Studio의 해당 안내 창이 표시되지 않습니다.
자세한 내용은 docs/TROUBLESHOOTING.md를 참고하세요.
- 페이지에 메시지가 실제로 나타날 때까지 준비 상태 확인
- 스크롤 횟수 상한 적용
- 저장 단계별 진행 로그 표시
- MHTML, PDF, PNG 저장에 각각 독립 제한 시간 적용
- 부가 산출물 실패 시 전체 백업을 중단하지 않고
manifest.json에 경고 기록 - 대화 원본 JSON과 Markdown 우선 저장
- 대화 URL의 쿼리 문자열과 프래그먼트를 제거해 중복 등록 최소화
다음 항목은 저장소에 커밋하지 마세요.
Data/
Data/WebViewProfile/
bin/
obj/
.vs/
publish/
WebViewProfile에는 로그인 쿠키와 세션 데이터가 포함될 수 있습니다. 백업한 대화, 첨부파일, queue.json, settings.json도 공개 저장소에 올리지 않는 것이 안전합니다.
프로젝트의 .gitignore에는 위 경로가 기본 등록되어 있습니다.
src/ChatContextBackup/
├─ Models/
├─ Services/
├─ App.xaml
├─ MainWindow.xaml
└─ MainWindow.xaml.cs
현재 릴리스는 간결한 code-behind 기반으로 구성되어 있습니다. 기능 규모가 커질 경우 ViewModel, Command, 의존성 주입을 분리하는 MVVM 구조로 확장할 수 있습니다.
- 첫 공개 배포 버전으로 버전 번호 정리
- 브라우저 주소 표시 영역을 선택 가능한 주소창으로 변경
- 주소창 직접 입력 및 Enter 이동 지원
- 현재 주소 복사 버튼 추가
- 현재 열린 ChatGPT 대화를 대기열에 즉시 추가하는 버튼 추가
- 현재 URL이 대화 주소가 아닐 경우 버튼 비활성화
- 중복 대화 추가 시 기존 대기열 항목 자동 선택
- 완료 항목을 다시 추가하면 새 스냅샷 생성을 위한 재백업 대기 상태로 전환
- 사이드바와 창 제목에 버전 정보 표시
- GitHub README 사용 절차와 개인정보 주의사항 보강
전체 이력은 CHANGELOG.md, 배포 요약은 RELEASE_NOTES_1.0.md를 참고하세요.
- Hermes Desktop의 사이드바와 작업 공간 중심 레이아웃
- WPF Skill Dashboard의 카드형 대시보드 정보 계층
- Syncfusion WPF UI Components Skills의 WPF 컨트롤 구성 사례
참고 프로젝트의 코드를 복사하지 않고 레이아웃과 정보 구조만 참고했습니다.
MIT License. LICENSE 참조.