DB의 날짜와 프론트의 날짜 다른(1일 더 차이나는) 오류 해결
2025. 3. 14. 01:23ㆍ백엔드
문제
DB의 생일 날짜와 프론트의 렌더링되는 생일의 날짜가 다르게 나오고 있다.
프론트의 날짜가 계속 1일 더 빠르게 나오고 있는 것
원인
백엔드에서 Date 타입을 사용하면 버의 타임존(KST)을 기준으로 날짜가 저장된다. 하지만 자바스크립트에서는 기본적으로 UTC로 변환하여 처리하기 때문이다.
- 백엔드에서 2024-06-29 00:00:00 KST(한국 시간)으로 날짜가 전송된다.
- 프론트엔드에서 이를 받아 new Date() 로 변환하면 기본적으로 UTC 기준으로 해석되기 때문에 아래 과정이 진행된다.
- KST(UTC+9) 기준 2024-06-29 00:00:00 KST → 2024-06-28 15:00:00 UTC
- Date.toISOString()을 하면 2024-06-28T15:00:00.000Z가 출력된다.
- 이를 YYYY-MM-DD로 포맷하면 2024-06-28로 표시된다.
해결
기존에는 생일의 변수 타입을 Date로 쓰고 있었는데 이걸 LocalDate로 바꿔주었다.
LocalDate는 시간 정보가 없기 때문에 타임존 변환 문제가 발생하지 않기 때문이다.
'백엔드' 카테고리의 다른 글
Redis 사용하여 JWT RefreshToken 저장하기 (0) | 2025.04.03 |
---|---|
UPSERT의 동작원리와 기준 컬럼 설정 유의점 (0) | 2025.03.14 |
application-dev.yml 적용하는 방법 (0) | 2025.02.20 |
CORS 오류 해결 방법 - Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. (0) | 2025.02.14 |
자바 컴파일 과정 (0) | 2025.01.14 |