Skip to content

가져오기 / 내보내기 / 백업

Sudapapa Diary는 사용자 데이터의 자유로운 이동을 보장하기 위해 ICS 표준 가져오기·내보내기, 암호화 설정 백업, 자동 데이터베이스 백업 등 다양한 데이터 이동성 기능을 제공합니다. 데이터는 사용자의 PC에만 저장되므로, 다른 기기로 옮기거나 장기 보관하려면 이 문서의 절차를 사용하세요.

요약

  • ICS(.ics) - 일정 데이터의 표준 교환 형식 (RFC 5545). 다른 캘린더 앱과 호환됩니다.
  • 설정 백업(.sdpb) - AES-256-GCM으로 암호화된 환경설정 백업. 다른 PC로 옮길 수 있습니다.
  • 자동 DB 백업 - 마이그레이션·중요 변경 시 SQLite DB와 JSON을 타임스탬프 디렉토리에 자동 보관 (최근 5개 유지).
  • 다른 PC로 이동 - 토큰은 디바이스에 묶여 있으므로 단순 복사가 아닌 백업 절차가 필요합니다.

icsExporter.js는 내부 일정을 RFC 5545 표준 ICS 파일로 변환합니다. ical.js를 사용해 표준을 정확히 따르므로, Google Calendar / Microsoft Outlook / Apple Calendar 등 대부분의 앱에서 그대로 가져올 수 있습니다.

  1. 캘린더 관리 페이지를 열고 내보낼 캘린더를 선택합니다.
  2. 캘린더 카드 또는 도구 메뉴에서 내보내기 버튼 클릭
  3. 옵션 선택
    • 전체 일정 / 날짜 범위 지정
    • 단일 캘린더 / 여러 캘린더 합치기
  4. 저장 위치를 지정해 .ics 파일로 저장
ICS 속성매핑
SUMMARY제목
DESCRIPTION설명
LOCATION위치
DTSTART / DTEND시작/종료 (날짜 또는 날짜+시간)
STATUSconfirmed/tentative/cancelled
UID내부 ID 또는 외부 제공자 ID
PRODID-//Sudapapa Diary//Calendar//EN

icsParser.js는 외부 ICS 파일을 읽어 내부 형식으로 변환합니다.

  1. 캘린더 관리불러오기 또는 도구 메뉴에서 가져오기 선택
  2. .ics 파일을 선택 (또는 드래그&드롭)
  3. 가져올 대상 캘린더를 선택
    • 새 캘린더 만들기 (파일의 X-WR-CALNAME 또는 “가져온 캘린더”로 자동 명명)
    • 기존 캘린더에 병합
  4. 중복 처리 정책 선택
    • 새 일정으로 추가
    • 같은 UID가 있으면 건너뛰기
    • 같은 UID가 있으면 덮어쓰기
  5. 가져오기 시작 → 완료 알림
  • 모든 시간은 시스템 로컬 시간대로 변환됩니다.
  • DTSTARTVALUE=DATE인 일정은 종일 일정(is_all_day=1)으로 저장됩니다.
  • 캘린더 색상은 X-APPLE-CALENDAR-COLOR 또는 기본값(#3b82f6) 사용
  • 알림(VALARM)은 가능한 한 보존되며, 지원하지 않는 형식은 무시됩니다.

도구 메뉴의 여러 ICS 일괄 가져오기로 여러 파일을 동시에 처리할 수 있습니다. 각 파일의 캘린더 이름이 그대로 새 캘린더로 만들어집니다.

settingsBackup.js는 환경설정·위젯 레이아웃·알람 등을 단일 암호화 파일(.sdpb)로 묶어주는 기능입니다.

항목
알고리즘AES-256-GCM
키 파생PBKDF2 (SHA-256, 100,000회)
솔트32바이트 무작위
IV16바이트 무작위
인증 태그16바이트
매직 바이트SDPB (SuDaPaPa Backup)
  • 환경설정(테마, 언어, 알림 설정 등)
  • 시계 알람 목록
  • 위젯 레이아웃 / 즐겨찾기 / 빠른 접근
  • 일정 데이터 (선택)
  • 메모 / 비밀번호 (선택)
항목사유
OAuth 토큰 (Google/Microsoft/Naver)디바이스 키로 암호화되어 다른 PC에서 복호화 불가
디바이스 ID디바이스 단위로 새로 생성됨
임시 캐시다음 동기화에 자동 재구성
  1. 새 PC에 Sudapapa Diary 설치 후 최초 실행
  2. 설정 → 백업 → 백업 파일에서 복원
  3. .sdpb 파일과 비밀번호 입력
  4. 매직 바이트 검증 후 복호화
  5. 환경설정/알람/위젯이 즉시 적용되고, 외부 캘린더는 다시 로그인하면 일정이 복구됩니다.

backup.js는 다음 시점에 자동으로 백업을 생성합니다.

시점종류위치
마이그레이션 직전migration-backup-*Configurations/Backups/
사용자 수동 트리거json-backup-* 또는 db-backup-*동일
정기 일정 (옵션)db-backup-*동일
%AppData%/../sudapapadiary/Configurations/Backups/
├── migration-backup-2026-04-21T10-30-00/
│ ├── Connections/
│ ├── Calendars/
│ ├── Passwords/
│ └── Defaults/
├── db-backup-2026-04-25T08-00-00/
│ └── sudapapa.db
└── json-backup-2026-04-26T12-15-00/
└── ...

각 백업 종류별로 최근 5개만 유지하고 오래된 백업은 자동 삭제됩니다(maxBackups = 5). 디스크 용량 사용을 일정하게 유지하면서도 최근 변경에 대한 안전망을 제공합니다.

긴급 복구가 필요하다면 백업 디렉토리에서 직접 복원할 수도 있습니다.

  1. 앱을 완전히 종료
  2. 현재 Configurations/Database/sudapapa.db를 별도 위치로 옮겨 임시 보관
  3. 백업 디렉토리에서 원하는 시점의 db-backup-*/sudapapa.db를 원래 위치로 복사
  4. 앱을 다시 시작

DataMigration.js는 구버전 JSON 저장소에서 SQLite로 데이터를 자동 마이그레이션합니다. 사용자 동작은 필요 없으며, 다음 단계로 안전하게 처리됩니다.

  1. 마이그레이션 직전 자동 백업 생성
  2. SQLite 스키마 초기화
  3. 캘린더/일정/연결/암호 데이터 이관
  4. 마이그레이션 후 검증
  5. 원본 JSON은 삭제하지 않고 백업으로 보관
  6. 실패 시 체크포인트로 롤백

원본 JSON 파일이 그대로 남아 있으므로, 마이그레이션이 실패해도 데이터 손실 없이 이전 버전으로 되돌릴 수 있습니다.

데이터를 다른 PC로 이전하는 권장 흐름입니다.

  1. 기존 PC에서 설정 → 백업 → 암호화 백업 만들기
  2. .sdpb 파일을 USB/클라우드 드라이브로 옮김
  3. 새 PC에 Sudapapa Diary 설치
  4. 설정 → 백업 → 백업에서 복원으로 .sdpb 파일 + 비밀번호 입력
  5. 외부 캘린더는 새 PC에서 다시 로그인 (토큰은 디바이스에 묶여 있어 복사되지 않음)

비밀번호 매니저 데이터, OAuth 토큰, 일부 민감 설정은 디바이스마다 다른 암호화 키로 보호됩니다(encryption.js).

항목디바이스 키 의존백업 파일에 포함
일반 환경설정
시계 알람
일정 / 메모✅ (선택)
비밀번호 매니저 항목마스터 비번 입력 시 ✅
OAuth 토큰

따라서 다른 PC로 옮길 때 비밀번호 매니저 항목은 백업 비밀번호와 별개로 마스터 비밀번호를 한 번 더 요구할 수 있습니다.

사용 패턴권장 주기
매일 일정 변경 많음주 1회 설정 백업 + 매월 1회 외부 저장
일정 변경 드묾월 1회 설정 백업
중요한 변경 직후즉시 1회 추가 백업
OS 재설치/PC 교체 직전반드시 백업 후 복원

자동 DB 백업은 항상 작동하지만, 수동 설정 백업은 PC 외부(다른 디스크/클라우드)에 보관해야 디스크 장애 시에도 복구할 수 있습니다.

증상해결
ICS 내보내기 시 글자가 깨짐UTF-8 인코딩으로 저장됨 - 가져오는 앱이 UTF-8을 지원하는지 확인
가져오기 후 시간이 1시간 어긋남시스템 시간대 또는 일광절약시간 차이 - Windows 시간대를 자동 설정으로 변경
백업 복원 시 “잘못된 비밀번호”PBKDF2 인증 태그 검증 실패 - 비밀번호를 다시 확인 (대소문자 포함)
백업 파일이 너무 큼메모/비밀번호 등 선택 항목을 줄이거나, ICS와 설정 백업을 분리
자동 백업이 보이지 않음%AppData%/../sudapapadiary/Configurations/Backups/를 확인
마이그레이션 후 일정이 안 보임migration-status.json 확인 후 자동 백업에서 복원