저장 패킷 만들기
data만 넣지 말고 version, savedAt, expiresAt을 함께 문자열화합니다.
localStorage와 sessionStorage는 문자열 저장소입니다. 오래된 값, 깨진 JSON, 다른 탭 변경까지 방어해야 안정적인 화면 상태가 됩니다.
data만 넣지 말고 version, savedAt, expiresAt을 함께 문자열화합니다.
JSON.parse 실패, null, 예상과 다른 버전을 모두 기본값으로 되돌립니다.
expiresAt이 지났으면 removeItem으로 지우고 서버나 기본 설정에서 다시 시작합니다.
storage 이벤트로 다른 탭에서 바뀐 설정을 감지해 현재 화면도 맞춥니다.