개인 개발: 학습 기록 기능 구현 및 시간대 처리 설계 (일본 시간 기준)
요약
본 글은 React/Redux Toolkit과 Go/TiDB를 사용하여 학습 기록 기능을 구현한 과정을 다룹니다. 가장 큰 난관은 '오늘'을 어떤 시간대 기준으로 정의할지 결정하는 것이었습니다. 작성자는 클라이언트 측에서는 로컬 시간을 이용해 날짜 키를 생성하고, 서버는 UTC를 사용하며 이 둘의 개념적 분리를 유지하는 방식으로 아키텍처를 설계했습니다.
핵심 포인트
- 시간대 문제 해결을 위해 클라이언트는 `getFullYear()` 등 로컬 값을 사용하여 날짜 키를 구성해야 합니다.
- 프론트엔드 타이머는 `setInterval` 대신 시작/종료 시각(`startedAt`, `endsAt`)을 계산하여 정확도를 높였습니다.
- 데이터베이스 설계 시, 사용자 기록은 클라이언트의 신고(申告)에 의존하고 서버는 UTC를 기준으로 일련번호를 관리하는 것이 중요합니다.
- 날짜 처리 시 '사용자의 달력 날짜'와 'UTC 기준 목록화' 개념을 분리하여 혼용하지 않아야 합니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Zenn TypeScript Practice의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기0