-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix: server 시간을 기준으로 날짜 계산하게 변경 #94
The head ref may contain hidden characters: "fix/#92-\uC11C\uBC84\uC640_\uB0A0\uC9DC_\uC2F1\uD06C\uAC00_\uB9DE\uC9C0_\uC54A\uB294_\uBB38\uC81C\uB97C_\uD574\uACB0\uD55C\uB2E4"
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
정말 고생하셨지만, 이 방법보다 훨씬 간단한 방법을 찾아서 공유드립니다...
어차피 넘어오는 데이터가 Seoul시 기준이므로, 저희도 UI에서 LocalDateTime.now 를 "Asia/Seoul" 기준으로 맞추기만 하면 됩니다.
댓글 기능 구현 PR
에 커밋으로 남겨두겠습니다.
오 혹시 분 또는 초 단위의 시간대가 안맞는 현상도 해결 가능할까요?! 현재 문제점인 server와 client의 분 또는 초 단위 싱크가 안 맞는 문제를 해결 할 수 있을까요?! |
넵 확인해봤는데 해결되었습니다 |
2024-04-22 23:45:31.858 9859-9930 okhttp.OkHttpClient com.withpeace.withpeace I {"data":{"postId":362,"userId":5,"nickname":"nickname","profileImageUrl":"http://withpeace.s3-website.kr.object.ncloudstorage.com/userProfile/5/21","title":"123","content":"123","type":"FREEDOM","createDate":"2024/04/22 23:45:42","postImageUrls":[],"comments":[]},"error":null} 여전히 지속적으로 발생합니다! 디바이스 시간을 1분 전으로 수동 설정하시면, 재현할 수 있을겁니다! |
디바이스 시간을 수동 설정하면 안맞아야 하지 않나요...? 백엔드와 상대 시간 설정을 맞추는게 핵심이라고 생각합니다 |
관련해서 백엔드분과 논의한 슬랙 스레드에 태그 드리겠습니다! |
상대 시간을 보여주는 거라 타임존을 맞추면 해결되는 문제 아닌가요? 서버의 데이터를 기준으로 보여줘야 하지 않을까요? 아마 다른앱들도 수동으로 시간을 바꾸게 되면 다르게 상대 시간이 다르게 나올겁니다. |
서버 시간과 클라이언트 시간이 주기적으로 동기화가 되겠지만, 지속적으로 동일하지는 않습니다! |
시간차가 나는 이유가 TimeZone이 다르기 떄문이었는데, TimeZone만 동일하게 맞춰주면 시간차가 다를일이 없습니다. |
TimeZone은 세계시각을 구분하는 지역 단위입니다. 회사들도 디바이스(컴퓨터) 시간을 맞추기 위해 자체 NTP(시간 동기화 서버)를 두기도 합니다! |
수동으로 시간을 바꿔도 똑같은 시간차를 보여주기 위해 이 PR의 코드를 사용하자는 얘기이신가요? |
정상적인 시간을 보여주는데에 목적이 있습니다. 수동으로 변경하지 상황외에도 클라이언트, 서버간 시간차를 보완하여 -몇 초 라는 단위를 사용자를 아예 볼 수 없을 것입니다. |
TimeZone만 맞추면 -초가 나올일이 없지않나요? |
TimeZone은 네트워크 시간 동기화 도구가 아닌 지역간 시차 단위입니다 |
-초가 나오는 경우의 수를 알려주세요 |
https://time.navyism.com/?host=naver.com 두 서버의 시간차를 보시면 알 수 있을 것입니다. 클라이언트와 서버 시간이 같나요? 아니면 이해가 안되시는 걸까요? |
모바일에서는 수동으로 설정하지 않는이상 똑같이 네트워크를 통해 시간대를 가져올 것이고, 서버도 자체 시간대를 지정한 것이 아니라 네트워크를 통해 시간을 가져올 텐데, 이 차이가 1초이상 나는 경우는 저는 거의 없다고 생각합니다. TimeZone이 달라서 시간대가 엄청 차이난 것이었지, TimeZone만 맞추면 -초가 나오는 경우가 저는 없을 것이라고 생각됩니다. |
서버시간을 가져오는 곳이 다릅니다 사용자와 서버가 자동 동기화가 잘 된다고 가정하더라도 -초가 안나오게 방어 코드가 있으면 좋지 않을까요? |
에뮬레이터와 핸드폰 모두 실험을 해보았는데 문제가 없었기에, 서버의 시간대를 이용핦 필요가 없다고 생각했습니다. 현재 저희 기능들이 초단위로 중요한 기능들이 아니라고 생각했고, 모든 시간이 들어간 데이터에 대해 nowDate라는 Column 값이 들어가고 둘의 차이를 계산하는 코드가 늘어나는 것이 약간 불필요하다고 생각됩니다. 정말 만에하나라도 -초가 나오는 경우를 생각한다면 간단히 Duration이 -일 때 0으로 변환하는 코드만 있으면 충분하다고 생각합니다. |
넵 좋습니다 -값일 때 0으로 두는 코드를 두면 될 것 같아요! "방금 전"이라는 텍스트를 쓸 수도 있을 것 같구요 |
관련 이슈번호
close #92
작업 사항
nowDate를 시간이 필요한 도메인에 추가 server response **header[date]** 사용
기타 사항
요구사항 변경에 따라 uimodel을 좀 변경했는데, 좋은 개선 방향이 있으면 말씀주세요!