피드로 돌아가기
I Reverse Engineered a Closed-Format App. Everything Was in SQLite.
Dev.toDev.to
Database

SQLite 역공학을 통한 2,285개 노트의 Markdown 마이그레이션 성공

I Reverse Engineered a Closed-Format App. Everything Was in SQLite.

Antonio Zhu2026년 6월 26일4intermediate

Context

내보내기 기능이 부재한 폐쇄적 포맷의 Youdao Cloud Note 데이터 추출 필요성 대두. 로컬 스토리지 내 SQLite DB와 파일 시스템이 혼재된 파편화된 데이터 구조가 병목으로 작용.

Technical Solution

  • SQLite DB 분석을 통한 Note Metadata와 Folder Hierarchy의 관계형 모델 식별
  • BFS 알고리즘 기반의 note_book 테이블 순회를 통한 폴더 트리 구조 복원
  • orgEditorType 필드값에 따른 데이터 소스 분기 처리(0: Local File, 1: SQLite Content Table)
  • JSON 기반 Block Tree 구조의 재귀적 탐색을 통한 Markdown 변환 렌더러 구현
  • entryPath 참조를 통한 로컬 JSON/Markdown 파일의 물리적 매핑 및 병합
  • YAML Frontmatter를 활용한 메타데이터 보존 및 파일 시스템 기반의 Vault 구조 재구성

1. 로컬 데이터 분석 시 SQLite의 NULL 값 처리와 Unix Timestamp 단위(sec vs ms) 정밀 검증

2. 계층 구조 데이터 추출 시 BFS/DFS를 활용한 트리 순회 로직 설계

3. 정형/비정형 데이터 혼재 시 타입 필드(EditorType 등)를 통한 조건부 파싱 전략 수립

원문 읽기