Skip to content

Repository files navigation

Chat Context Backup

Version Platform .NET License

ChatGPT 대화를 여러 개 등록해 제목별 폴더로 백업하고, 다른 질문에서 재사용할 context.mdcontext_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/스크린샷 생성이 지연되면 제한 시간 후 다음 단계 진행

사용 방법

방법 1 — 내장 브라우저에서 바로 추가

  1. 앱을 실행합니다.
  2. 오른쪽 WebView2 브라우저에서 ChatGPT에 로그인합니다.
  3. ChatGPT의 검색 기능이나 대화 목록을 이용해 백업할 대화를 엽니다.
  4. 브라우저 상단의 **현재 대화 추가**를 누릅니다.
  5. 다른 대화도 같은 방식으로 계속 추가합니다.
  6. 왼쪽의 **전체 백업 시작**을 누릅니다.

현재 페이지가 일반 대화, 커스텀 GPT 대화 또는 공유 대화 주소일 때 버튼이 활성화됩니다.

https://chatgpt.com/c/...
https://chatgpt.com/g/.../c/...
https://chatgpt.com/share/...

홈 화면, 로그인 페이지, 설정 페이지에서는 현재 대화 추가 버튼이 비활성화됩니다.

방법 2 — URL 여러 개 일괄 등록

  1. 백업할 주소 입력칸에 URL을 한 줄에 하나씩 붙여넣습니다.
  2. 목록에 추가를 누릅니다.
  3. 또는 TXT 불러오기로 URL 목록을 가져옵니다.
  4. 전체 백업 시작을 누릅니다.

브라우저 주소창

  • 주소를 마우스로 선택하거나 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의 네트워크 액세스 안내

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의 쿼리 문자열과 프래그먼트를 제거해 중복 등록 최소화

개인정보와 GitHub 업로드 주의

다음 항목은 저장소에 커밋하지 마세요.

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 구조로 확장할 수 있습니다.

버전 1.0 변경 사항

  • 첫 공개 배포 버전으로 버전 번호 정리
  • 브라우저 주소 표시 영역을 선택 가능한 주소창으로 변경
  • 주소창 직접 입력 및 Enter 이동 지원
  • 현재 주소 복사 버튼 추가
  • 현재 열린 ChatGPT 대화를 대기열에 즉시 추가하는 버튼 추가
  • 현재 URL이 대화 주소가 아닐 경우 버튼 비활성화
  • 중복 대화 추가 시 기존 대기열 항목 자동 선택
  • 완료 항목을 다시 추가하면 새 스냅샷 생성을 위한 재백업 대기 상태로 전환
  • 사이드바와 창 제목에 버전 정보 표시
  • GitHub README 사용 절차와 개인정보 주의사항 보강

전체 이력은 CHANGELOG.md, 배포 요약은 RELEASE_NOTES_1.0.md를 참고하세요.

참고한 UI 방향

  • Hermes Desktop의 사이드바와 작업 공간 중심 레이아웃
  • WPF Skill Dashboard의 카드형 대시보드 정보 계층
  • Syncfusion WPF UI Components Skills의 WPF 컨트롤 구성 사례

참고 프로젝트의 코드를 복사하지 않고 레이아웃과 정보 구조만 참고했습니다.

License

MIT License. LICENSE 참조.

About

ChatGPT 대화를 여러 개 등록해 제목별 폴더로 백업하고, 다른 질문에서 재사용할 `context.md`와 `context_pack.md`를 만드는 Windows WPF 애플리케이션입니다.

Resources

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages