Skip to content

Conversation

@dh2906
Copy link
Contributor

@dh2906 dh2906 commented Dec 31, 2025

🔍 개요

  • 순공 시간 타이머 API를 추가한다.

🚀 주요 변경 내용

  • POST 메소드의 /study-timers/start /study-timers/stop 엔드포인트를 추가했습니다.

  • 일간, 월간, 총 누적 순공 시간을 관리하도록 테이블을 추가했습니다.

  • 만약 타이머를 23:50 ~ 00:10 동안 작동했다면 자정을 기준으로 전날 10분, 다음날 10분으로 집계됩니다.

    • 타이머를 며칠동안 연속으로 작동했을 때도 마찬가지로 집계됩니다.

💬 참고 사항

  • 순공 시간은 모두 단위로 집계됩니다.

  • 유저는 1개의 타이머만 실행할 수 있으며 중복 요청 시 409 에러가 발생합니다.

  • 타이머가 이미 종료된 상태라면 중복 요청 시 400 에러가 발생합니다.

  • 시간 집계하는 로직이 다소 더럽고 복잡할 수 있습니다....

  • 순공 시간 조회와 랭킹은 다음 PR에 올릴 예정입니다.

  • 타이머 종료 시 클라에서 누적 시간을 받습니다. (HH:mm:ss 형식)

    • 서버 시간과 받은 누적 시간의 차이를 비교해 1분 이상의 오차가 발생한다면 타이머를 무효처리 합니다.

✅ Checklist (완료 조건)

  • 코드 스타일 가이드 준수
  • 테스트 코드 포함됨
  • Reviewers / Assignees / Labels 지정 완료
  • 보안 및 민감 정보 검증 (API 키, 환경 변수, 개인정보 등)

@dh2906 dh2906 requested a review from Soundbar91 December 31, 2025 12:04
@dh2906 dh2906 self-assigned this Dec 31, 2025
@dh2906 dh2906 added the 기능 새로운 기능을 개발합니다. label Dec 31, 2025
@github-actions
Copy link

⚠️ Checkstyle 위반 사항 발견

Checkstyle 검사에서 코딩 컨벤션 위반이 발견되었습니다.

📋 상세 리포트

@github-actions
Copy link

⚠️ Checkstyle 위반 사항 발견

Checkstyle 검사에서 코딩 컨벤션 위반이 발견되었습니다.

📋 상세 리포트

Copy link
Collaborator

@Soundbar91 Soundbar91 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

고생하셨습니다 ~

기능상 문제가 될 거 같은 부분은 반영해주시고, 코드 관련 코멘트는 바로 반영해주셔도 되고 기능 완성 이후에 반영해주시면 될 거 같아요.

@github-actions
Copy link

github-actions bot commented Jan 2, 2026

⚠️ Checkstyle 위반 사항 발견

Checkstyle 검사에서 코딩 컨벤션 위반이 발견되었습니다.

📋 상세 리포트

@dh2906
Copy link
Contributor Author

dh2906 commented Jan 2, 2026

수정사항

  • 엔드포인트를 /study-times에서 /studytimes로 수정했습니다.

  • 타이머 종료 시 클라에서 받는 값을 시:분:초 에서 , , 로 받도록 분리했습니다.

  • 타이머 종료 후 시간을 누적하는 로직에서 각 케이스 및 일별, 주간에 따른 누적 메소드를 분할했습니다.

  • 서비스 로직에서 엔티티 생성을 빌더 패턴으로 직접 만드는 방식에서 정적 팩토리 메소드를 호출하는 방식으로 수정했습니다.

@dh2906 dh2906 merged commit 8a07bb3 into main Jan 2, 2026
1 check passed
@Soundbar91 Soundbar91 deleted the feat/CAM-140-study-time branch January 2, 2026 13:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

기능 새로운 기능을 개발합니다.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants