💡 개요
보통 백엔드에서 프론트엔드로 LocalDateTime와 같은 시간 데이터를 응답할 때, Long 타입으로 변환해서 전달하는 것이 나은지, 아니면 LocalDateTime 타입 그대로 전달하는 것이 나은지 고민한다.
오늘은 두 방식에 대해 정리해 보자.
🛠️ LocalDateTime
LocalDateTime을 그대로 클라이언트에게 응답한다면 가장 큰 장점은 개발자가 알아보기 쉽다.
그 이유는 2025-05-23T14:30:00 이런 형식으로 응답이 되는데, 딱 봐도 날짜와 시간을 알 수 있기 때문이다.
하지만 LocalDateTime의 가장 큰 단점은 타임존을 포함하지 않기 때문에 혼동이 생길 수 있다.
만약 서버와 클라이언트가 다른 시간대(서버는 한국, 클라이언트는 미국)를 사용한다면 시차가 적용되지 않기 때문에 클라이언트의 나라나 지역에서 사용하는 시간대로 나타나지 않는다.
🛠️ Long (Epoch Time)
Epoch Time은 1970년 1월 1일 00:00:00 UTC을 기준으로 얼마큼의 시간이 경과했는지 나타내는 것이다.
표현 단위는 밀리초와 초 단위가 있다.
Long 타입으로 시간을 응답한다면 얻을 수 있는 가장 큰 장점은 LocalDateTime보다 크기가 작고, UTC 기준이기 때문에 서버와 클라이언트 사이에 시간대 이슈가 발생하지 않는다.
서버가 1970년 1월 1일 00:00:00 UTC 부터 경과한 밀리초를 응답한다면 클라이언트 측에서 new Date(epoch)로 로컬 시간을 표시하거나, toLocaleString() 같은 메서드로 가공해서 표시하면 된다.
'개발 일기' 카테고리의 다른 글
[개발 일기] 2025.05.25 - 일대일 관계에서 연관 관계의 주인 (0) | 2025.05.25 |
---|---|
[개발 일기] 2025.05.24 - REST API의 URL에 대한 개인적인 생각 (0) | 2025.05.24 |
[개발 일기] 2025.05.22 - JavaScript 얕은 복사? (1) | 2025.05.22 |
[개발 일기] 2025.05.21 - 점진적인 개선 (Feat : 클린코드) (0) | 2025.05.21 |
[개발 일기] 2025.05.20 - XSS (0) | 2025.05.20 |