API 서버와 클라이언트(WEB, PC, ANDROID)가 있습니다.
일반적으로 서버에서 UTC로 시간을 내려주면 특별한 시간 변환 없이 클라이언트에서는 Local Timezone으로 시간을 보여줄 수 있습니다. 하지만 사용자가 임의로 Timezone을 서버에 설정할 수 있다면?
이제는 클라이언트 디바이스의 Timezone을 사용하는 것이 아니라 사용자가 설정한 Timezone을 사용해야 합니다.
이경우 어디서 시간 변환을 하는게 좋을까요? 서버? 클라이언트?
깊게 생각할 것 없이 저는 클라이언트에서 하는게 좋겠다고 생각했습니다.
하지만 다른 분들의 생각도 들어보고 싶어 이곳에 글을 올려봅니다.
제 주변에서 정리된 의견은 아래와 같습니다.
-
서버에서 각각의 클라이언트에서 시간 변환을 구현 하는것은 개발이 비효율적이지 않나?
- 클라이언트에서 서버 자원은 한정적이다. 서버의 부하를 줄이고 클라이언트의 자원을 활용하자. 화면에 보여줄 날짜 포멧(예를들어 년/월/일 또는 1분전?), 색깔 정보 등도 모두 클라이언트에서, 디바이스 성격에 맞게끔 랜더링할 필요가 있다고 생각된다. 타임존도 마찬가지 아닐까?
음.. 두서 없이 쓰고보니.. 그런데 사용자가 타임존을 설정할 수 있게 기능을 제공하는게 좋은걸까요?
필요하다면 그냥 디바이스의 타임존을 변경해서 쓰면 되지 않을까 싶기도 하네요...
2개의 의견 from SLiPP
각각의 장,단점이 있는 것이라 정답은 없지 않을까요? 만들고 있는 앱의 상황에 따라 달라지리라 봅니다.
개인적인 의견은 다음과 같습니다. 클라이언트마다 분기되어야 하는 기능이나 확장할 포인트가 있다면 클라이언트에서 구현할 필요가 있겠지만 그렇지 않다면 서버가 담당하는 것이 맞지 않을까라고 보는데요. 타임존의 경우에는 클라이언트마다 달라져야할 부분이 있나요? 제가 봤을 때 그리 다른 부분이 없을 듯 해서요. 그리고 서버 자원에 그리 큰 부담이 되지는 않을 듯 한데요.
@자바지기 답변 감사합니다^^ 데이터들이 대부분 시간 정보를 가지고 있어 거의 모든 API 응답에서 세션 유저의 타임존 정보에 따라 시간 변환을하고 있습니다. 동접이 그리 높지 않아서... 사실 지금까지는 부하 문제를 느끼지는 않고 있습니다. 생각해보면 그리 큰 부담이 아닌데 좀 소심했던것 같기도 합니다. ㅎㅎ
의견을 남기기 위해서는 SLiPP 계정이 필요합니다.
안심하세요! 회원가입/로그인 후에도 작성하시던 내용은 안전하게 보존됩니다.
SLiPP 계정으로 로그인하세요.
또는, SNS 계정으로 로그인하세요.