Skip to content

자습 출석 이력 영구 저장 및 무인증 조회 API 추가 - #214

Merged
jyx-07 merged 2 commits into
developfrom
feat/study-attendance-history-api
Jul 2, 2026
Merged

자습 출석 이력 영구 저장 및 무인증 조회 API 추가#214
jyx-07 merged 2 commits into
developfrom
feat/study-attendance-history-api

Conversation

@jyx-07

@jyx-07 jyx-07 commented Jul 1, 2026

Copy link
Copy Markdown
Contributor

#️⃣연관된 이슈

#이슈번호

📝작업 내용

자습실 신청 스트릭 기능을 서드파티(외부 개발자)가 자체 계산할 수 있도록 백엔드 기반을 구현했습니다.

  • 자습 출석/신청 데이터가 Redis에만 저장되고 매일 06:00 TTL로 삭제되는 구조라, 출석 확정/취소 시점에 StudyAttendanceHistoryJpaEntity(tb_study_attendance_history)로 일자별 출석 이력을 영구 저장하도록 변경
  • CheckStudyAttendanceServiceImpl: 출석 체크 시 이력 저장 (JPA insert가 추가되어 클래스 트랜잭션을 readOnly = true에서 쓰기 가능으로 변경)
  • UncheckStudyAttendanceServiceImpl: 체크인 해제 시 당일 이력 삭제
  • GET /public/study/attendances: 최근 7일간 날짜별 출석자 이름 리스트를 반환하는 무인증 공개 API 추가 (학번/유저ID 등 식별 정보는 제외, 이름만 노출)
  • 스트릭 계산(주말 제외 등) 로직은 서버가 아닌 서드파티 책임으로 설계 — 서버는 raw 데이터만 제공
  • SecurityConfig/public/** permitAll 추가

스크린샷 (선택)

💬리뷰 요구사항(선택)

무인증 공개 엔드포인트로 이름을 노출하는 것에 대한 개인정보 관점 검토를 부탁드립니다. 필요 시 익명화/닉네임 처리로 변경 가능합니다.

@jyx-07 jyx-07 added 🌟 Status: Reviewing 리뷰 중인 이슈 📩 Type: Feature/Function 새로운 기능 및 개선 사항 labels Jul 1, 2026
@jyx-07 jyx-07 self-assigned this Jul 1, 2026
@jyx-07
jyx-07 requested a review from a team July 1, 2026 14:28

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Code Review

This pull request introduces a study attendance history tracking feature, adding a new JPA entity, repository, and a public endpoint to retrieve the last week's attendance list. The reviewer's feedback highlights critical timezone issues where using LocalDate.now() without specifying a timezone (like 'Asia/Seoul') can lead to incorrect date recordings on UTC servers. Additionally, the feedback points out a privacy concern regarding the exposure of students' real names on an unauthenticated public endpoint, suggesting name masking or nickname usage. Other recommendations include adhering to consistent repository naming conventions (using '...Repository' instead of '...JpaRepository') and simplifying the date range generation logic.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

@jyx-07
jyx-07 merged commit e9a0662 into develop Jul 2, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

🌟 Status: Reviewing 리뷰 중인 이슈 📩 Type: Feature/Function 새로운 기능 및 개선 사항

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants