[BE] SISC1-231 [FIX] 날짜 비교 형식 수정 및 dto 반경값 수정#160
Conversation
워크스루두 개의 출석 관련 서비스에서 코드 정리 및 응답 확장이 이루어졌습니다. AttendanceService는 별도의 LocalDate와 LocalTime 호출을 단일 LocalDateTime.now()로 통합하고, AttendanceSessionService는 위치 응답에 radiusMeters 필드를 추가했습니다. 변경 사항
예상 코드 리뷰 노력🎯 1 (Trivial) | ⏱️ ~4분
관련 가능성이 있는 PR
제안된 리뷰어
시
Pre-merge checks and finishing touches✅ Passed checks (3 passed)
✨ Finishing touches
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 0
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
backend/src/main/java/org/sejongisc/backend/attendance/service/AttendanceService.java (1)
142-142: 검증 시점과 기록 시점의 타임스탬프 불일치를 확인하세요.Line 54에서 캡처한 통합 타임스탬프
now를 검증에 사용하고 있지만, 여기서는 새로운LocalDateTime.now()를 호출하여 출석 기록을 저장하고 있습니다. 검증 시점과 실제 기록되는 시점 사이에 시간 차이가 발생할 수 있습니다.일관성을 위해 검증에 사용된 동일한
now타임스탬프를 사용하는 것을 권장합니다:Attendance attendance = Attendance.builder() .user(user) .attendanceSession(session) .attendanceRound(round) .attendanceStatus(status) - .checkedAt(java.time.LocalDateTime.now()) + .checkedAt(now) .awardedPoints(session.getRewardPoints()) .checkInLocation(userLocation) .build();
🧹 Nitpick comments (1)
backend/src/main/java/org/sejongisc/backend/attendance/service/AttendanceSessionService.java (1)
228-244: 위치 재설정 시 반경 기본값(0 vs 100) 주석/구현 불일치 가능성메서드 주석에는 “반경은 기존 값 유지 또는 0으로 설정”이라고 되어 있지만, 실제 구현은 기존 값이 없을 때
100을 기본값으로 사용하고 있습니다.
기획 의도가 0인지 100인지 한번 확인 후,
- 의도가 0이라면 기본값을 0으로 변경하거나
- 의도가 100이라면 주석을 100으로 수정
중 하나로 맞춰 주시면 유지보수 시 혼동을 줄일 수 있을 것 같습니다.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (2)
backend/src/main/java/org/sejongisc/backend/attendance/service/AttendanceService.java(3 hunks)backend/src/main/java/org/sejongisc/backend/attendance/service/AttendanceSessionService.java(2 hunks)
🔇 Additional comments (4)
backend/src/main/java/org/sejongisc/backend/attendance/service/AttendanceSessionService.java (2)
271-274: Javadoc에 radiusMeters 추가 반영 👍위치 정보에
radiusMeters포함을 명시해서 실제 DTO 스키마와 주석이 일관되게 맞춰졌습니다. 추후 API 문서/프론트 확인에도 도움이 될 것 같습니다.
279-283: LocationInfo에 radiusMeters 매핑 추가 적절
session.getLocation().getRadiusMeters()를 그대로 DTO로 전달하는 방식이라 기존 로직에 영향을 주지 않으면서 응답 필드만 확장되고,location == null처리도 그대로 유지되어 있어 문제 없어 보입니다.backend/src/main/java/org/sejongisc/backend/attendance/service/AttendanceService.java (2)
54-56: 시간 일관성 개선이 우수합니다!단일
LocalDateTime.now()를 캡처하여checkDate와checkTime을 도출하는 방식은 중요한 개선사항입니다. 이전에LocalDate.now()와LocalTime.now()를 별도로 호출했을 경우, 자정 경계에서 두 호출 사이에 날짜가 바뀌는 레이스 컨디션이 발생할 수 있었습니다. 이 변경으로 모든 검증 로직이 동일한 시점을 기준으로 수행됩니다.
63-64: 로그 개선이 적절합니다.통합된
now타임스탬프를 로그에 표시하여 검증 시점의 전체 날짜와 시간을 함께 기록하도록 개선되었습니다. 디버깅 시 더 명확한 정보를 제공합니다.Also applies to: 76-76, 84-85
Summary by CodeRabbit
릴리스 노트
New Features
Refactor
✏️ Tip: You can customize this high-level summary in your review settings.