Metlivi 블로그

Day One JSON 내보내기 파일을 변경 없이 오프라인에서 읽는 방법

Day One 내보내기 파일을 점검하려면 다운로드한 ZIP 파일을 변경하지 않은 상태로 두고, 별도의 작업 복사본을 만들어 로컬에 압축을 푼 다음, 텍스트 편집기나 Python의 표준 JSON 도구로 `.json` 파일을 여세요. ZIP은 컨테이너이고, JSON은 구조화된 텍스트이며, 미디어 폴더에는 별도의 파일이 들어 있습니다. 문서화되지 않은 키의 의미를 단정 짓지 않고도 JSON 구문이 올바른지 확인하고 후보 텍스트, 날짜 또는 첨부 파일 값을 찾을 수 있습니다. JSON을 읽을 수 있다는 것만으로는 모든 미디어 파일이 온전히 존재하거나 아카이브가 완벽하게 복원될 수 있음을 증명하지는 못합니다.

2026년 9월 30일4 min read일상의 미학과 자기 표현작성: Metlivi Editorial Team
섹션 1

먼저 ZIP, JSON, 미디어를 구분하기

Day One은 자사의 JSON 내보내기를 선택한 항목이 포함된 `.json` 파일을 담고 있는 ZIP 파일로 설명합니다. 미디어는 사진, 비디오, 오디오 및 PDF 폴더에 포함될 수 있습니다. 가이드에 따르면 JSON은 보관된 데이터를 다시 가져오기 위한 용도로 제작되었으며 Day One 및 Day One JSON 파일을 지원하는 앱에서 읽을 수 있습니다. [Day One의 내보내기 가이드](https://dayoneapp.com/guides/tips-and-tutorials/exporting-entries/)에는 필드별 전체 스키마가 정의되어 있지 않으므로 익숙해 보이는 파일 이름이나 키가 있다고 해서 그 의미를 속단해서는 안 됩니다.

원본 ZIP 파일은 그대로 유지하세요. 운영체제의 압축 도구를 사용하여 새 로컬 폴더에 복사본을 추출합니다. 개인 일기를 온라인 서식 지정 도구에 업로드하는 것은 피하세요. 파일을 열거나 이동하기 전에 아카이브에 JSON 파일이 하나만 있는지, 둘 이상인지, 또는 미디어 폴더가 포함되어 있는지 확인하세요. 정확한 내용은 내보내기 설정에 따라 다릅니다. ZIP은 파일 형식이 다르기 때문에 `.zip` 파일을 마치 JSON 파일인 것처럼 열려고 하면 오류가 발생합니다.

섹션 2

로컬에서 JSON 구문 확인하기

JSON 문서는 구조화된 값을 설명하는 텍스트입니다. 최상위 수준은 객체, 배열 또는 기타 유효한 JSON 값일 수 있습니다. JSON 객체는 이름이 지정된 멤버를 포함하고, 배열은 순서가 지정된 값을 포함합니다. 문자열에는 큰따옴표를 사용하며 쉼표, 콜론, 대괄호는 JSON 구문을 따라야 합니다. [MDN의 JSON 가이드](https://developer.mozilla.org/en-US/docs/Learn_web_development/Core/Scripting/JSON)에서 이러한 구조와 일반적인 구문 제한 사항을 설명합니다.

빠른 로컬 확인과 가독성 높은 들여쓰기를 위해 Python 문서에서는 다음과 같은 명령줄 형식을 안내합니다:

`python3 -m json.tool < journal.json`

추출한 파일의 경로와 함께 이 명령을 사용하고, 별도의 서식화된(pretty-printed) 복사본을 원하는 경우에만 출력을 새 파일로 리디렉션하세요. 구문 분석(파싱)에 성공하면 명령이 서식화된 JSON을 출력하며, 실패할 경우 Python이 오류 위치를 보고합니다. 성공적인 파싱은 해당 텍스트가 파서 기준에서 유효한 JSON임을 의미합니다. 파일이 완전하다거나, 해당 값이 예상한 의미를 지니고 있다거나, Day One에서 이를 성공적으로 가져올 수 있다는 것을 보장하지는 않습니다. [Python의 `json` 문서](https://docs.python.org/3/library/json.html)에는 파일이나 문자열을 읽기 위한 `json.load()` 및 `json.loads()`에 대한 설명도 수록되어 있습니다.

섹션 3

문서의 실제 형태 파악하기

공백이 아닌 첫 번째 문자부터 확인하세요. 시작 부분의 `{`는 객체를, `[`는 배열을 나타냅니다. 서식화된 복사본에서 바깥쪽 레벨을 펼치고 멤버 이름과 값 유형을 점검합니다. 배열에 객체가 포함될 수 있고, 해당 객체에 다시 배열이나 중첩된 객체가 포함될 수 있습니다. 반복되는 객체 형태는 후보 일기 항목을 찾는 데 도움이 되지만, 반복된다는 사실 자체만으로 내보내기 도구의 의도된 스키마를 단정할 수는 없습니다.

항목에 포함되어 있을 법한 특정 문구를 텍스트에서 검색한 다음, 그 주변의 중괄호와 값을 살펴보세요. 짐작에 기대어 키 이름을 바꾸지 말고, 값 옆에 표시된 정확한 키를 기록하세요. 날짜처럼 보이는 값은 후보 날짜일 수 있고, 경로처럼 보이는 문자열은 후보 첨부 파일 참조일 수 있습니다. Day One 문서나 내보내기 파일 자체의 맥락에서 의미가 확인될 때까지는 둘 다 확정되지 않은 상태로 취급하세요. 메모할 때는 원래의 철자, 구두점, 이스케이프 시퀀스 및 값 유형을 그대로 유지해야 합니다.

섹션 4

이스케이프 및 미디어 참조를 신중하게 해석하기

JSON 문자열 내부에서 눈에 보이는 `\n`과 같은 시퀀스는 이스케이프된 줄바꿈을 나타내며, 원래 항목에서 반드시 두 개의 문자로 이루어진 것은 아닙니다. 따옴표와 백슬래시도 이스케이프 처리됩니다. 파서는 “Line one Line two”를 줄바꿈이 포함된 하나의 문자열로 표시할 수 있지만, JSON 텍스트는 해당 줄바꿈을 `\n`으로 인코딩합니다. 소스 파일을 편집하지 말고 리더기나 파서 내에서 값을 비교하세요.

특정 값이 미디어 파일 이름이나 상대 경로와 유사하다면 추출된 미디어 폴더에 해당하는 파일이 있는지 확인하세요. 해당 참조와 일치 여부를 기록하되, 이는 어디까지나 관찰 결과일 뿐 Day One 내에서 해당 참조가 완벽히 연결된다는 증거는 아닙니다. 일치하는 파일이 없는 경우 내보내기 옵션, 이름 지정 방식의 차이 또는 해당 필드만으로는 파악할 수 없는 기타 세부 사항 때문일 수 있습니다. 파일 목록 점검 기록은 원본 내보내기 파일과 분리하여 보관하세요.

섹션 5

추측된 필드 이름 대신 점검 기록 작성하기

간단한 표를 작성하면 불확실성을 명확히 드러낼 수 있으며 다른 사람이 동일한 검토를 재현하는 데 도움이 됩니다:

예를 들어 일반적인 JSON 객체는 `{"text":"A note","date":"2024-05-06","attachment":"photos/example.jpg"}`와 같은 내용을 담고 있을 수 있습니다. 이는 예시용 이름과 값일 뿐이며 Day One의 스키마를 설명하는 것이 아닙니다. 메모 작성 시 원본 값을 변경하지 마세요. 임의로 날짜 형식을 변환하거나, 짐작으로 경로를 연결하거나, 낯선 멤버를 삭제해서는 안 됩니다.

컨테이너 내용: 압축 해제 후 존재하는 파일 이름 및 폴더
JSON 구조: 관찰된 최상위 유형 및 중첩 구조
후보 값: 정확한 키, 값 유형 및 짧은 발췌본
가능한 의미: “후보 텍스트/날짜/첨부 파일”; 미확인 상태로 표시
관련 미디어: 정확한 경로 및 일치하는 파일 발견 여부
섹션 6

점검만으로는 확인할 수 없는 부분 인지하기

구문이 유효하다고 해서 내보내기 파일에 선택한 모든 항목이나 의도한 미디어 파일이 빠짐없이 포함되어 있음을 증명하는 것은 아닙니다. 첨부 파일로 추정되는 값이 보인다고 해서 참조된 파일이 실제로 존재한다는 보장은 없으며, 비슷한 이름의 파일이 있다고 해서 가져오기 동작이 올바르게 작동할 것임을 확증할 수도 없습니다. Day One 가이드에서는 JSON을 보관 및 재가져오기 형식으로 명시하고 있지만, 읽기 전용 점검은 복원 테스트가 아닙니다. 호환성이나 데이터 복구에 대한 확신이 필요하다면 최신 Day One 지침을 참조하고, 변경되지 않은 원본 내보내기 파일을 보존한 상태에서 안전한 복사본을 통해 별도로 가져오기 테스트를 수행하세요.

관련 글

이 주제 더 살펴보기