한국 시간 새벽 00시를 기준으로 초기화를 한다고 했을 때 미국인은 오전 10시에 초기화가 된다. 이게 맞는 걸까? 다국지원을 하는 이유가 없지 않나?
→ 그렇기 때문에 초기화 시간을 각 나라를 기준으로 하기로 했다. 하지만 외국인 친구가 있을때, 또는 한국에 있던 사용자가 외국으로 넘어갔을 때를 생각하면 어떤 정책을 해야 사용자에게 가장 자연스러운 화면을 보여줄 수 있을지 고민했다.
코딩테스트 문제를 푸는 것처럼 아래의 상황을 대입해보고 같은 고민을 해주기 바란다.
세 명의 사용자가 있다. A(🇰🇷한국 UTC+9), B(🇻🇳베트남 UTC+7), C(🇦🇺호주 UTC+11) 이들은 사는 나라가 모두 다르다.
학습시간의 초기화 시간은 각자의 나라를 기준으로 **00:00:00
**이다.
예를 들어 베트남은 UTC기준으로 한국은 **T15:00:00Z
**에, 베트남은 T17:00:00Z
에, 호주는T13:00:00Z
에 학습시간이 초기화가 된다.
User A, B, C는 모두 UTC기준으로 T13:00:00Z ~ T19:00:00Z
만큼 6시간 공부를 했다. 즉,
22:00:00 ~ 04:00:00
20:00:00 ~ 02:00:00
00:00:00 ~ 06:00:00
대한민국에 있는 UserA의 폰에서는 다른 나라에 있는 UserB와 UserC의 학습시간이 내 나라의 초기화 시간 기준으로 보여진다.
이를 위해 사용자가 학습시간을 저장하는 순간에 해당 학습기록의 날짜를 DB에 저장하는 것이 아닌, 조회하는 시점을 기준으로 요청 시점 기준 해당 나라의 초기화 시간을 파악해 계산한 학습시간을 응답한다.