# 기록 저장·예시 분리·저장 실패 뒤 보존을 확인했습니다 직접 제작하고 로컬에서 실행한 별도 학습용 샘플입니다. 기록: 2026-10-17T22:23:03+09:00 ## 실행 1. sample-source.zip을 새 폴더에 풉니다. 2. `python3 -m http.server 8000 --bind 127.0.0.1` 3. `http://127.0.0.1:8000/habit.html`을 엽니다. 외부 API·계정·npm 설치가 필요 없습니다. 4. 선택 사항: Node 18 이상에서 `node test.mjs`를 실행하면 공통 모듈의 전체 순수 함수 시험을 볼 수 있습니다. 사례별 실제 관측은 verification.json에 있습니다. ## 결과 완료한 날짜 1개가 새로고침 뒤 남았습니다. 예시 화면을 열어도 실제 저장 문자열이 같았습니다. 저장 실패를 켜고 완료를 취소하면 화면 입력은 바뀌지만 기존 저장 자료는 그대로였고, 새로고침하면 마지막 저장 상태가 복원됐습니다. ## 적용 범위 - 기록은 현재 주소·브라우저의 localStorage에 저장됩니다. 자료 삭제·시크릿 모드·다중 탭 동시 수정은 별도 복구 설계 대상입니다. - 날짜 계산은 함수 입력, 저장 오류는 모의 실패 스위치로 시험했습니다. 실제 자정 경과·OS 시간대 변경·브라우저 용량 초과·저장 권한 차단·손상 저장본 복구는 검사 범위 밖입니다. - 직접 작성한 별도 로컬 샘플의 동작 기록입니다. 원작 재현이나 지정 AI 모델 간 성능 비교와 구분합니다. - 화면 폭 검사는 데스크톱 Chromium 뷰포트 에뮬레이션 기준입니다. 실제 단말·Safari·Firefox·장기 운영은 별도 환경 시험 대상입니다. ## 파일·권리 샘플 코드·도형·가상 입력은 이번 작업에서 직접 제작했습니다. 3D 두 사례의 vendor/는 Three.js 0.186.1이며 vendor/THREE-LICENSE.txt의 MIT 고지를 유지합니다. 시스템 글꼴 파일·외부 원작 에셋·음악·비공개 제작 원본은 포함하지 않았습니다. HTML/JS는 ZIP에서 로컬 실행하며 사이트에서 자동 실행하지 않습니다.