Repository navigation
[feat] 지금 출석을 받는 중인지 조회 API - #261
Merged
Merged
Conversation
minwoo-3
approved these changes
Oct 27, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
✨ 작업 내용
학생이 지금 출석을 받는 중인지 조회하는 API를 추가했습니다(CheckUp-Client#357).
GET /api/v1/attendance/active{ "dormitory": bool, "studyRoom": bool }true입니다.onSessionFloor와 같음). 호실이 없는 학생은 얼굴 세션을 세지 않습니다./attendance/me와 같이 403MISSING_STUDENT_INFO입니다.🔍 리뷰 시 참고사항
qr:purpose:{purpose}(점수 = lease 만료 epoch ms)를 추가했습니다.save에서 추가,delete에서 제거합니다.saveIfPresent)는 기존 Lua 안에서 세션 키가 있을 때만 갱신하므로, close 뒤 늦은 heartbeat가 인덱스에 되살리지 않습니다.ZCOUNT (now, +inf)라 정리 전 항목도 세지 않습니다. 키 TTL은 세션과 같은lease-ttl입니다.FaceRecognitionSessionRepository.existsActiveOnFloor(active·purpose·lastActivityAt > cutoff·floor) 한 쿼리입니다. migration은 없습니다.AttendanceActiveService를 따로 둔 이유:FaceRecognitionService가AttendanceService를 쓰므로,AttendanceService에 넣으면 순환 의존이 생깁니다.ZCOUNT2번, 얼굴 세션 존재 쿼리 최대 2번입니다. 학생 약 200명이 30초마다 부르면 초당 약 7건이라 부담은 작다고 봅니다.dd79ac3)는 하네스 main에 머지된 커밋입니다([docs] 학생 출석 접수 여부 API 계약 추가 Start-Up-harness#38,contracts/README.md에 이 API 추가).검증: 관련 테스트(
QrSessionRepositoryTest,QrSessionServiceTest,FaceSessionStoreTest,FaceRecognitionServiceTest,AttendanceActiveServiceTest,AttendanceControllerTest) 72개 통과. 로컬./gradlew clean build는 666개 중 이번 변경과 무관한FaceTemplateRepositoryTest1개가 로컬 개발 DB에 남은 템플릿 데이터 때문에 실패했습니다. 실제 웹 연동은 확인하지 않았습니다.✅ 체크리스트
.env.example등) 변경이 필요한 경우 작성 또는 수정했나요?📎 관련 이슈(선택)
🤖 Generated with Claude Code