웹 개발
시간대 문제로 데이터가 꼬였을 때
웹 앱에서 시간대 설정이 잘못되어 시간 관련 데이터가 꼬일 때 확인하는 순서.
시간대 문제는 자주 눈에 띄지 않다가 갑자기 터진다. 문제를 너무 크게 잡으면 모든 파일이 의심스럽다.
작게 시작하자. 이 문제가 정확히 어디서 나오는가부터.
문제 상황 파악
시간이 언제 맞아야 하는가? 서버의 시간? 클라이언트의 시간? 데이터베이스의 시간?
- 정상일 때의 시간 값
- 비정상일 때의 시간 값
- 어느 계층에서 차이가 나는가
환경별 시간대 설정 확인
로컬, 개발, 배포 환경의 시간대가 모두 같게 설정되어 있는가? TZ 환경 변수는?
로그에서 볼 부분
npm run build
# 서버 로그에서 타임스탐프와 실제 시간을 비교
로그에 기록되는 시간과 실제 시간이 일치하는가?
데이터베이스 시간 확인
데이터가 저장될 때의 시간, 조회할 때의 시간이 올바르게 기록되고 있는가?
일관성 유지하기
시간대는 한 번 정하면 바꾸기 어렵다. 처음부터 UTC로 저장하고 클라이언트에서만 변환하는 게 안전하다.
결과가 바뀐 이유를 로그와 데이터로 설명할 수 있으면 문제가 정리된 것이다.