말씀묵상 앱 — Google Drive 저장소 기술 검증 (PoC)

이 페이지는 본 프로그램이 아닙니다. Google Drive를 개인 묵상 데이터 저장소로 쓸 수 있는지만 검증하는 최소 프로토타입입니다. 백엔드 서버 없이 브라우저에서만 동작합니다.

0. Client ID 설정

Google Cloud Console에서 발급받은 OAuth 2.0 클라이언트 ID(웹 애플리케이션)를 아래에 붙여넣으세요. 이 값은 코드/파일에 저장되지 않고 이 브라우저 탭의 메모리에만 유지됩니다. (README.md 참고)

1~2. 로그인 / OAuth 승인

8. 읽기표 데이터 연결 테스트

data/sungnak-dongne-semejul-bible6-2026.json을 불러와, 선택한 날짜의 성경 읽기 범위를 표시합니다. 이 섹션은 위의 Google Drive 테스트와는 별개로 동작합니다 (로그인 불필요).

9. KJV 본문 표시 테스트

data/kjv/Jer.json, data/kjv/Lam.json을 불러와, 위에서 조회한 읽기 범위의 KJV 영어 본문을 표시합니다. 현재는 Jer(예레미야), Lam(예레미야애가) 두 책만 지원합니다. AI 한국어 번역은 아직 연결하지 않았습니다.

10. Claude API 연결 테스트 (Phase 3-2A)

이 섹션은 Claude API 연결만 검증합니다. 아직 KJV 본문·번역 캐시·Google Drive·묵상 데이터와는 연결하지 않습니다.
API Key는 이 브라우저 탭의 JavaScript 메모리에만 유지됩니다. localStorage/sessionStorage/쿠키/파일 어디에도 저장하지 않으며, 새로고침하면 사라집니다.




11. Gemini API 연결 테스트 (무료 티어 확인용, Claude와 독립)

이 섹션은 Gemini API 연결만 검증합니다. 10번(Claude) 섹션과는 완전히 독립적으로 동작하며, 10번 코드는 건드리지 않았습니다.
KJV 본문·번역 캐시·Google Drive·묵상 데이터와는 아직 연결하지 않습니다.
API Key는 이 브라우저 탭의 JavaScript 메모리에만 유지됩니다. localStorage/sessionStorage/쿠키/파일 어디에도 저장하지 않으며, 새로고침하면 사라집니다.




12. KJV → Gemini 한국어 번역 테스트 (Phase 3-2B)

KJV JSON에서 실제 구절 하나(Jeremiah 52:23)를 읽어 Gemini로 번역합니다. 11번 섹션의 API Key/모델을 그대로 재사용합니다.
날짜 자동 연결·전체 번역·캐시는 아직 구현하지 않습니다. 11번에서 먼저 Key를 적용해야 합니다.


13. KJV + 한국어 번역 캐시 표시 테스트 (Jer 52:23~27)

사전에 생성된 data/kjv-ko/Jer.json 번역 캐시를 읽어, KJV 영어 원문 아래에 한국어(AI 번역)를 함께 표시합니다.
이 섹션은 Gemini API를 호출하지 않습니다 — 이미 만들어진 캐시 파일만 읽습니다. 캐시가 없는 절은 오류 없이 "아직 번역 없음"으로 표시됩니다.

14. 날짜별 성경 읽기 (Phase 2 — 영어+한국어 통합)

위 8번 섹션의 날짜 입력을 그대로 사용합니다. 선택한 날짜의 읽기 범위 전체(책 경계 포함)를 KJV 영어 본문 + 한국어(AI 번역) 캐시로 함께 표시합니다.
8~13번 섹션의 코드/함수는 전혀 수정하지 않고, 그 함수들을 그대로 호출만 합니다. 화면 표시에서만 책 이름을 Jer→렘, Lam→애로 바꿔 보여주며, 내부 데이터의 book 코드(Jer/Lam)는 변경하지 않습니다.

15. 오늘의 묵상/기도 작성 (Phase 3 — 입력 UI + 객체 생성 검증)

위 8번 섹션의 날짜 입력을 그대로 사용합니다. 이번 단계는 실제 저장을 구현하지 않습니다 — Google Drive에도, localStorage에도 저장하지 않으며, 아래 버튼은 "저장" 버튼이 아니라 입력한 내용을 승인된 데이터 구조(DECISIONS.md "날짜별 묵상 파일 내부 데이터 구조", "reference 구조 정정", "Phase 3 범위 확정" 참고)의 JavaScript 객체로 만들어 화면에서 구조를 확인하는 용도입니다. 새로고침하면 사라집니다. createdAt/updatedAt은 실제 저장이 없으므로 이번 단계에서는 null로 유지합니다(Phase 5에서 실제 값 설정 예정).

묵상

기도



17. Phase 6-A — Google Drive appDataFolder PoC

이것은 실제 묵상 저장 기능이 아닙니다. 사용자 눈에 보이지 않는 Drive의 특수 저장 공간 (appDataFolder, drive.appdata scope 필요)이 이 프로젝트의 현재 OAuth/gapi 구조에서 실제로 동작하는지만 검증하는 PoC입니다. 순수 테스트 JSON({"test":"phase6a", ...})만 사용하며, 묵상/기도 내용은 전혀 관여하지 않습니다. 과거 일반 Drive 폴더 저장 방식(Phase 5, 현재는 삭제됨, 말씀묵상 폴더·mukstang-{날짜}.json)의 저장 로직과 데이터와도 완전히 분리되어 있었고 전혀 건드리지 않았습니다.
버튼을 누르면 CREATE → LIST → READ → UPDATE → READ(재확인) → DELETE(테스트 파일 정리)를 순서대로 실행합니다.

18. Phase 6-B-1 — appDataFolder 묵상 저장

로그인한 계정의 appDataFolder에 위 15번 "작성 내용 확인"으로 만든 lastMeditationEntry를 실제로 저장하는 테스트 기능입니다. 파일명은 과거 일반 Drive 저장 방식(Phase 5, 현재는 삭제됨)과 동일한 규칙(mukstang-{날짜}.json)을 썼지만, 저장 위치는 완전히 별개였습니다 — Phase 5는 사용자 눈에 보이는 말씀묵상 폴더에, 이 섹션은 사용자에게 보이지 않는 계정 전용 appDataFolder에 저장합니다. 서로의 파일을 검색·수정하지 않습니다.
appDataFolder는 로그인한 Google 계정에 종속되므로, 다른 계정으로 로그인하면 이 계정의 데이터를 전혀 볼 수 없습니다 — 사용자별 분리를 이 프로젝트 코드가 아니라 Google Drive의 접근 제어가 보장합니다.
과거 일반 Drive 저장 방식(Phase 5, 현재는 삭제됨)의 "Google Drive에 저장" 버튼은 이 섹션과 무관하게 독립적으로 동작했습니다.

19. Phase 6-B-2 — appDataFolder에서 불러오기

위(8번) 선택한 날짜의 기존 저장 데이터를 appDataFolder에서만 검색해 불러옵니다. 과거 일반 Drive 저장 방식(Phase 5, 현재는 삭제됨)의 "Google Drive에 저장"이 쓰던 사용자 눈에 보이는 말씀묵상 폴더와는 무관합니다 — 그쪽 데이터는 이 버튼으로 불러오지 않습니다.
날짜를 바꾸는 것만으로는 자동으로 조회하지 않습니다 — 아래 버튼을 눌러야만 실행됩니다. 15번에 이미 입력된 내용이 있으면 불러오기 전에 확인을 먼저 물어봅니다.

20. 과거 묵상 목록/검색 (Phase 7-1)

appDataFolder에 저장된 모든 mukstang-*.json 기록을 날짜 내림차순으로 보여줍니다. 검색어를 입력하면 묵상/기도 내용을 대상으로 검색합니다(비워두면 전체 목록). 목록/검색 결과에는 날짜와 성경 읽기 범위만 표시하며, 묵상/기도 실제 내용은 미리보기로 표시하지 않습니다.
항목을 클릭하면 위 15번 입력창에 그 날짜의 내용을 불러옵니다 — 저장하지 않은 내용이 있으면 먼저 확인을 물어봅니다.

로그