어드민 날짜 버그 수정 · 로그인 로딩 피드백 추가
0
글 수정 시 작성 날짜가 바뀌는 버그를 잡고, 로그인 페이지 로딩 상태 피드백을 추가한 날입니다.
어드민 수정 시 작성 날짜가 바뀌는 버그
글을 수정하고 저장하면 createdAt이 현재 시각 근처로 바뀌는 증상이 있었습니다.
원인은 타임존 변환 누락이었습니다.
흐름을 정리하면 이렇습니다.
- 글 로드 시 DB의 UTC 시각을
toDatetimeLocal()로 변환합니다. 이 함수는getFullYear(),getMonth()같은 로컬 시간 메서드를 써서 KST 기준 문자열"2026-07-06T14:30"을 만듭니다. - 저장 시 이 문자열을 그대로 서버에 보냅니다.
- API에서
new Date("2026-07-06T14:30")를 실행합니다. Netlify 서버는 UTC 환경이라 이 값을 UTC로 해석해2026-07-06T14:30:00Z로 저장합니다. - 원본은
05:30Z인데14:30Z로 바뀌어 있습니다. KST 오프셋(+9시간)만큼 밀립니다.
자정 근처 글이라면 날짜 자체가 하루 넘어가기도 합니다.
수정은 한 줄입니다. handleSave에서 payload를 구성할 때 브라우저에서 UTC ISO 문자열로 변환해서 보내도록 바꿨습니다.
// 수정 전
customDate: post.customDate || undefined,
// 수정 후
customDate: post.customDate ? new Date(post.customDate).toISOString() : undefined,
브라우저에서 new Date("2026-07-06T14:30")은 로컬 시간(KST)으로 파싱되고, .toISOString()이 올바른 UTC 문자열을 반환합니다. 서버는 이 UTC 값을 그대로 씁니다.
로그인 페이지 로딩 피드백
로그인 버튼을 누르면 bcrypt 연산과 Netlify 서버리스 콜드 스타트 때문에 1~3초 정도 걸립니다. 기존 코드에도 loading 상태가 있었고 버튼 텍스트가 "로그인 중..."으로 바뀌었지만, opacity 0.7 변화만으로는 피드백이 너무 약했습니다.
두 가지를 추가했습니다.
첫 번째는 버튼 안에 회전 스피너입니다. "로그인 중..." 텍스트 옆에 CSS 애니메이션 원형 스피너가 함께 표시됩니다.
두 번째는 입력 필드 비활성화입니다. 로딩 중에 아이디와 비밀번호 입력 필드에 disabled를 걸어, 처리 중임을 시각적으로 명확히 했습니다.
지연 자체는 구조상 없애기 어렵지만, 이제 시스템이 응답 중임을 바로 알 수 있습니다.
#개발일지#Studio NFP#스튜디오 NFP#어드민#버그수정
관련 게시글