[WTH-205] 내 동아리 활동 정보 조회 api 추가#35
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (2)
🚧 Files skipped from review as they are similar to previous changes (2)
📝 WalkthroughWalkthrough사용자 프로필 관련 API를 정리하고 클럽 멤버 관리 기능을 클럽 도메인으로 이동·재구성. ClubMember 관련 DTO/매퍼/리포지토리/컨트롤러가 추가·수정되고 User 측 프로필·쿼리 서비스가 제거됨. Changes
Sequence Diagram(s)sequenceDiagram
participant Client
participant ClubController
participant GetClubQueryService
participant ClubMemberReader
participant ClubMapper
Client->>ClubController: GET /api/v4/clubs/membership-status
ClubController->>GetClubQueryService: findMembershipStatus(userId)
GetClubQueryService->>ClubMemberReader: findAllByUserIdWithClub(userId)
ClubMemberReader-->>GetClubQueryService: List<ClubMember with Club>
GetClubQueryService->>ClubMapper: toMembershipStatusResponse(members)
ClubMapper-->>GetClubQueryService: ClubMembershipStatusResponse
GetClubQueryService-->>ClubController: ClubMembershipStatusResponse
ClubController-->>Client: 200 OK + CommonResponse(ClubMembershipStatusResponse)
Estimated code review effort🎯 4 (Complex) | ⏱️ ~60 minutes Possibly related PRs
Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 1 | ❌ 2❌ Failed checks (1 warning, 1 inconclusive)
✅ Passed checks (1 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 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.
🧹 Nitpick comments (1)
src/main/kotlin/com/weeth/domain/club/presentation/ClubMemberController.kt (1)
87-96: TODO 주석 추적 여부 확인두 개의 TODO 주석이 동아리별 프로필 수정으로의 변경을 언급하고 있습니다. 이 기술 부채가 이슈 트래커에 등록되어 있는지 확인해 주세요.
이 TODO 항목들을 추적하기 위한 이슈를 생성해 드릴까요?
Also applies to: 98-106
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@src/main/kotlin/com/weeth/domain/club/presentation/ClubMemberController.kt` around lines 87 - 96, There are two TODO comments in ClubMemberController.kt referencing a future change to per-club profile edits; create a tracked issue in your issue tracker and replace each TODO with a short note linking the new issue ID. Specifically, open an issue describing "Change /members/me to include clubId and restrict updates to a single ClubMember" including acceptance criteria and migration notes, then update the TODOs near the updateMyProfile method (annotated with `@PatchMapping`("/members/me") and the surrounding comment) and the similar block around lines 98-106 to reference that issue ID (or remove the TODO if you prefer) so the technical debt is tracked and the controller’s updateMyProfile/manageClubMemberUsecase change is clearly linked to the issue.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Nitpick comments:
In `@src/main/kotlin/com/weeth/domain/club/presentation/ClubMemberController.kt`:
- Around line 87-96: There are two TODO comments in ClubMemberController.kt
referencing a future change to per-club profile edits; create a tracked issue in
your issue tracker and replace each TODO with a short note linking the new issue
ID. Specifically, open an issue describing "Change /members/me to include clubId
and restrict updates to a single ClubMember" including acceptance criteria and
migration notes, then update the TODOs near the updateMyProfile method
(annotated with `@PatchMapping`("/members/me") and the surrounding comment) and
the similar block around lines 98-106 to reference that issue ID (or remove the
TODO if you prefer) so the technical debt is tracked and the controller’s
updateMyProfile/manageClubMemberUsecase change is clearly linked to the issue.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: d75757e6-7611-456d-bc63-f67be94132d9
📒 Files selected for processing (16)
src/main/kotlin/com/weeth/domain/club/application/dto/response/ClubMemberProfileResponse.ktsrc/main/kotlin/com/weeth/domain/club/application/dto/response/ClubMemberSummaryResponse.ktsrc/main/kotlin/com/weeth/domain/club/application/dto/response/ClubMembershipStatusResponse.ktsrc/main/kotlin/com/weeth/domain/club/application/mapper/ClubMapper.ktsrc/main/kotlin/com/weeth/domain/club/application/usecase/query/GetClubMemberQueryService.ktsrc/main/kotlin/com/weeth/domain/club/application/usecase/query/GetClubQueryService.ktsrc/main/kotlin/com/weeth/domain/club/domain/repository/ClubMemberReader.ktsrc/main/kotlin/com/weeth/domain/club/domain/repository/ClubMemberRepository.ktsrc/main/kotlin/com/weeth/domain/club/presentation/ClubController.ktsrc/main/kotlin/com/weeth/domain/club/presentation/ClubMemberController.ktsrc/main/kotlin/com/weeth/domain/club/presentation/ClubResponseCode.ktsrc/main/kotlin/com/weeth/domain/user/application/dto/response/UserProfileResponse.ktsrc/main/kotlin/com/weeth/domain/user/application/mapper/UserMapper.ktsrc/main/kotlin/com/weeth/domain/user/application/usecase/query/GetUserQueryService.ktsrc/main/kotlin/com/weeth/domain/user/presentation/UserController.ktsrc/main/kotlin/com/weeth/domain/user/presentation/UserResponseCode.kt
💤 Files with no reviewable changes (4)
- src/main/kotlin/com/weeth/domain/user/presentation/UserController.kt
- src/main/kotlin/com/weeth/domain/user/application/dto/response/UserProfileResponse.kt
- src/main/kotlin/com/weeth/domain/user/application/mapper/UserMapper.kt
- src/main/kotlin/com/weeth/domain/user/application/usecase/query/GetUserQueryService.kt
| return ClubMembershipStatusResponse( | ||
| hasActiveClub = activeMember != null, | ||
| hasWaitingClub = waitingMember != null, | ||
| activeClub = activeClub, | ||
| waitingClub = waitingClub, |
There was a problem hiding this comment.
응답을 Mapper로 위임하면 다른 곳과 일관된 구조가 될 것 같습니당
* [WTH-137] weeth server cicd 구축 (#4) * chore: 깃 이그노어 업데이트 * deploy: Dockerfile 통합 * deploy: main, dev 통합 CI 워크플로우 설정 * deploy: docker ignore 설정 * deploy: 개발서버 CICD 적용 * deploy: 운영서버 CICD 적용 * chore: caddy 리버스 프록시 정보 추가 * chore: 릴리즈 드래프터 적용 * chore: lint 수정 * chore: PR 템플릿 수정 * deploy: key 볼륨 마운트 설정 * deploy: 워크플로우 의존성 설정 * deploy: ci job 이름 변경 * deploy: wrapping 제거 * deploy: 홈 디렉토리 설정 변경 * chore: jdk 21로 업데이트 * [WTH-140] Deploy Job 분리 (#5) * deploy: job 분리 * chore: 개행 추가 * hotfix: 레디스 설정 추가 * [WTH-143] 응답 코드 및 예외 예시 오류 수정 (#7) * fix: 커스텀 예외 코드 반환 * fix: 그룹 페이지에 각각 커스터마이저 등록 * [WTH-139] file 도메인 코틀린 마이그레이션 (#6) * refactor: File 엔티티 구조 변경 및 마이그레이션 * refactor: 기존 서비스 제거 * refactor: FileRepository 마이그레이션 * refactor: 예외 마이그레이션 * refactor: 매퍼 마이그레이션 * refactor: dto 마이그레이션 * refactor: 파일 엔티티 개선을 위한 Enum Class 추가 * refactor: 타 도메인 조회를 위한 Reader 인터페이스 추가 * refactor: 파일 업로드 URL 생성을 위한 Port/Adapter 구현 * refactor: 기존 유스케이스를 QueryService로 이전 * refactor: Controller 마이그레이션 * refactor: File 도메인 변경에 따른 기존 코드 수정 * refactor: File 도메인 변경에 따른 기존 코드 수정 * refactor: File 도메인 변경에 따른 기존 코드 수정 * refactor: port/adapter 컨벤션 수정 및 스웨거 노출 API prefix 제거 * refactor: 예외 발생 원인 유지 * test: 테스트 추가 * feat: S3/CDN url 반환 로직 구현 * refactor: 주석 추가 * feat: S3/CDN url 반환 로직 구현 * feat: S3/CDN url 반환 환경변수 설정 * refactor: 주석 위치 수정 * refactor: 하위호환 * test: s3 presigned url 테스트 추가 * feat: VO 분리 * refactor: 미사용 객체 제거 * refactor: VO 규격에 맞게 테스트 대응 * refactor: lint 설정 * refactor: Repository 테스트 구현 및 불필요 코드 정리 * refactor: code-review skill 오류 해결 * refactor: 단일 enum 파일로 확장자 관리 * refactor: lint 설정 * refactor: 수정시 null check 추가 * refactor: command로 이동 * refactor: 입력 검증 수정 * [WTH-144] comment 도메인 코틀린 마이그레이션 (#8) * refactor: Comment 엔티티 마이그레이션 * refactor: 기존 서비스 제거 * refactor: Repository 마이그레이션 * refactor: Dto 마이그레이션 및 분리 * refactor: 예외 마이그레이션 * refactor: mapper 마이그레이션 * refactor: 유스케이스 마이그레이션 및 통합 * refactor: 컨트롤러 마이그레이션 * refactor: Comment Test Fixture 추가 * refactor: Comment 변경으로 인한 notice 도메인 수정 * refactor: Comment 변경으로 인한 post 도메인 수정 * refactor: 주석 추가 * refactor: 롬복 어노테이션 추가 * refactor: Increse 메서드 추가 * feat: 테스트 시 쿼리 측정을 위한 설정 추가 * feat: 댓글 조회 서비스 구현 * refactor: 댓글 조회 시 파일도 bulk로 조회해오도록 수저 * chore: 컨텍스트 업데이트 * refactor: 자체 리뷰 사항 반영 * feat: 레거시 vs 개선 로직 비교 테스트 추가 * chore: lint 처리 * [WTH-146] penalty 도메인 코틀린 마이그레이션 (#10) * refactor: Penalty enum java -> kotlin으로 폴더 변경 * refactor: Penalty enum kotlin으로 문법 변환 * refactor: Penalty entity, repository java -> kotlin으로 폴더 변경 * refactor: Penalty dto, mapper java -> kotlin으로 폴더 변경 * refactor: Penalty entity, repository kotlin으로 문법 변환 * refactor: Penalty dto, mapper kotlin으로 문법 변환 * build: Lombok 의존성 및 Kotlin 호환성 설정 추가 * refactor: Kotlin 마이그레이션에 따른 Java 호출 수정 * refactor: Penalty exception java -> kotlin으로 폴더 변경 * refactor: Penalty exception kotlin으로 문법 변환 * refactor: Penalty usecase java -> kotlin으로 폴더 변경 * refactor: Penalty service 불필요한 파일 삭제 * refactor: Penalty controller, responsecode java -> kotlin으로 폴더 변경 * refactor: 코틀린 문법에 맞게 Penalty errorcode 수정 * refactor: Penalty usecase kotlin으로 문법 변환 * refactor: Penalty controller, responseCode kotlin으로 문법 변환 * refactor: PenaltyType enum 패키지 이동 * refactor: Penalty DTO 개별 파일로 분리 * refactor: Penalty usecase command/query 분리 * refactor: Penalty mapper, controller 새 구조에 맞게 수정 * refactor: GetPenaltyQueryService 조회 N+1 쿼리 최적화 * refactor: Penalty 카운트 수정 시 User 비관적 락 적용 * fix: SavePenaltyUseCase 비관적 락 정확성 우선시하여 stale read 방지 * refactor: GetPenaltyQueryService UserCardinal N+1 쿼리 배치 조회로 최적화 * refactor: PenaltyRepository 동적 쿼리를 명시적 @query로 전환 * fix: PenaltyResponse에 항상 null 반환되던 필드에 실제 값 매핑 * refactor: Penalty UseCase 메서드명 execute를 도메인 동작명으로 변경 * refactor: Penalty DTO 불필요한 nullable 제거 및 Mapper 파라미터 정리 * refactor: QueryService DTO 조합 로직 Mapper로 이동 및 메서드명 개선 * style: Penalty DTO에 Swagger @Schema 어노테이션 추가 * refactor: Penalty 쿼리 표준화 및 LAZY fetch 전환 * refactor: QueryService @transactional 어노테이션 클래스 레벨로 이동 * [WTH-142] attendance 도메인 코틀린 마이그레이션 (#9) * refactor: Attendacne domain java -> kotlin으로 폴더 변경 * build: Lombok 의존성 및 Kotlin 호환성 설정 추가 * refactor: Attendacne entity kotlin으로 문법 변환 * test: Attendance entity Test 추가 * refactor: Attendacne enum java -> kotlin으로 폴더 변경 * refactor: Attendacne eum kotlin으로 문법 변환 * refactor: Attendacne repository kotlin으로 문법 변환 * refactor: Attendacne dto java -> kotlin으로 폴더 변경 * refactor: Attendacne dto kotlin으로 문법 변환 * refactor: Attendacne dto 코틀린 코드에 맞춰 수정 * refactor: Attendacne mapper java -> kotlin으로 폴더 변경 및 dto 확장 준비 * refactor: Attendance DTO request/response로 분리 * refactor: Attendacne mapper 코틀린 코드에 맞춰 참조 코드 수정 * refactor: Attendacne service java -> kotlin으로 폴더 변경 * refactor: Attendacne service kotlin으로 문법 변환 * refactor: Attendacne usecase java -> kotlin으로 폴더 변경 * refactor: Attendacne usecase kotlin으로 문법 변환 * refactor: Attendacne exception java -> kotlin으로 폴더 변경 * refactor: Attendacne exception kotlin으로 문법 변환 * refactor: Attendacne controller, responseCode java -> kotlin으로 폴더 변경 * refactor: Attendacne controller, responseCode kotlin으로 문법 변환 * refactor: AttendanceScheduler를 service/scheduler 패키지로 이동 * refactor: Attendance UseCase command/query 분리 * test: Attendance command/query 분리에 따른 테스트 재작성 * refactor: Attendance controller UseCase 의존 분리 * test: AttendanceMapperTest 하드코딩 값을 변수 참조로 변경 * refactor: 테스트 FQCN 정리 및 하드코딩 값 변수 참조로 변경 * refactor: Attendance Schduler Transaction import jakarta에서 spring으로 변경 * refactor: Attendance N+1 방지 위해 @manytoone(fetch = FetchType.LAZY) 적용 * refactor: Attendance 단건 조회 N+1 방지 위해 JOIN FETCH 적용 * test: UpdateAttendanceStatusUseCase 테스트 findByIdWithUser 반영 * refactor: user.attendances 조회를 Repository 쿼리로 분리 * test: Repository 쿼리 전환에 따른 테스트 mock 수정 * refactor: AttendanceMapper 중복 메서드 통합 * refactor: AttendanceGetService 미사용 메서드 제거 * refactor: Attendance DTO에 @Schema 어노테이션 추가 * refactor: AttendanceMainResponse를 AttendanceSummaryResponse로 이름 변경 * refactor: UpdateAttendanceStatusRequest 불필요한 @NotNull 제거 * refactor: toMainResponse를 toSummaryResponse로 변경 * stye: kotlin 코드 포맷 적용 * test: toSummaryResponse mock에 isAdmin 파라미터 명시 * refactor: UseCase 메서드명 execute를 도메인 용어로 변경 * refactor: GetAttendanceQueryService 메서드명을 도메인 용어로 변경 * refactor: AttendanceScheduler를 infrastructure로 이동, Usecase로 분리 * refactor: 아키텍처 기준에 맞게 attendance enum 패키지 구조 수정 * [WTH-145] board 도메인 마이그레이션 (#11) * [WTH-157] global 도메인 마이그레이션 (#13) * refactor: JWT 마이그레이션 * refactor: Apple 마이그레이션 * refactor: Kakao 마이그레이션 * refactor: Config 마이그레이션 * refactor: 예외 관련 마이그레이션 * refactor: 스프링 인증 관련 마이그레이션 * refactor: Redis 토큰 저장소 마이그레이션 * refactor: 기타 global 파일 마이그레이션 * refactor: 유저 도메인 변경사항 전파 * docs: 주석 추가 * docs: 코드 스타일 업데이트 * docs: 마크다운 깨짐 해결 * chore: lint 수정 * refactor: Role -> String 작업 원복 * refactor: 리뷰 반영 * refactor: 토큰 오류 수정 * refactor: email nullable 설정 * [WTH-149] account 도메인 코틀린 마이그레이션 (#12) * test: account 도메인 안전망 테스트 추가 * refactor: Account entity java -> kotlin 패키지 변경 * refactor: Account entity kotlin으로 문법 변경, money vo 추가 * refactor: entity 코틀린 문법 변경에 따른 참조 파일 수정 * refactor: Account dto, mapper java -> kotlin 패키지 변경 * refactor: Account dto 분리 및 kotlin 문법으로 변환 * refactor: Account mapper 수동 mapper, kotlin 문법으로 변환 * refactor: dto, mapper 코틀린 문법 변경에 따른 참조 파일 수정 * refactor: Account repository java -> kotlin 패키지 변경 * refactor: Account repository kotlin 문법으로 변환 * refactor: AccountUseCaseImpl find() 조회 N+1 개선 * refactor: Account repository 코틀린 문법 변경에 따른 참조 파일 수정 * refactor: 불필요한 service, usecase 관련 파일 삭제 * refactor: 아키텍처 구조에 맞게 usecase command/query로 분리 * test: usecase command/query 분리에 맞춰 테스트 다시 작성 * refactor: Account usecase 분리에 맞춰 참조 파일 수정 * refactor: Account exception, controller, responsecode java -> kotlin 패키지 변경 * refactor: Account controller, responsecode kotlin 문법으로 변환 * refactor: Account exception kotlin 문법으로 변환 * refactor: 불필요한 @JvmStatic 어노테이션 제거 * fix: Receipt.update() 금액 유효성 검사 누락 수정 * fix: updateReceipt 기수 존재 검증 누락 수정 및 description @notblank 추가 * fix: 영수증 수정 시 빈 파일 리스트로 전체 삭제 처리 * refactor: 요청 스웨거 예시 수정 * refactor: 요청 스웨거 예시 추가 * fix: Receipt 수정 시 account 불일치 검증 및 clearMocks 누락 수정 * [WTH-159] user 도메인 마이그레이션 (#14) * refactor: 사용자 도메인 모델을 코틀린으로 전환 * refactor: 사용자 DTO와 컨트롤러를 재구성 * refactor: 사용자 예외와 조회 로직을 정리 * feat: 소셜 로그인 연동을 구현 * perf: OB 적용 조회를 배치로 최적화 * refactor: 타 도메인 사용자 의존성을 정리 * test: 의존성 변경에 맞춰 테스트를 수정 * test: 사용자 도메인 테스트 구조를 개편 * refactor: 유저 테스트 명시적으로 수정 * refactor: 탈퇴 메서드 이전 * refactor: 미사용 메서드 제거 * refactor: 개행 추가 * refactor: DB 정렬 쿼리로 개선 * refactor: lint 설정 * [WTH-148] schedule 도메인 코틀린 마이그레이션 (#15) * test: Schedule 도메인 안전망 테스트 추가 * refactor: Schedule entity event java -> kotlin 패키지 변경 * refactor: Schedule entity event 독립 entity로 변경 및 kotlin 문법으로 수정 * refactor: Schedule entity event과 관련된 참조 파일 수정 * refactor: Meeting → Session, Attendance kotlin 엔티티 변환 및 attendance 도메인으로 이동 * refactor: Attendance 도메인 참조 파일 Session/AttendanceStatus로 업데이트 * refactor: Schedule 도메인 참조 파일 Session으로 업데이트 * refactor: UserManageUseCase Session 참조로 업데이트 * test: 문법 변환에 맞춰 Schedule 테스트 및 픽스처 수정 * refactor: 미사용 Status enum 제거 * refactor: Schedule enum java -> kotlin 패키지 변경 * refactor: Schedule enum kotlin 문법으로 변환 * refactor: Schedule dto 분리 및 kotlin 문법으로 변환 * refactor: requiredItem 속성 삭제 및 dto 참조 파일 수정 * refactor: Schedule mapper java -> kotlin 패키지 변경 * refactor: Schedule mapper kotlin 문법으로 변환 * refactor: Schedule validator java -> kotlin 패키지 변경, java dto 삭제 * refactor: Schedule validator kotlin 문법으로 변환 * refactor: Schedule UseCase/Service Kotlin DTO 참조로 전환 * refactor: Schedule Controller Kotlin DTO 참조로 전환 * refactor: Schedule mapper/validator Kotlin DTO 참조로 전환 및 테스트 수정 * refactor: Schedule event repository kotlin 문법으로 변환 * refactor: SessionReader 인터페이스 추가 * refactor: User Attendance 연관관계 단순화 및 N+1 해결 * refactor: AttendanceRepository 배치 조회 메서드 추가 * refactor: AttendanceRepository deleteAllBySession 벌크 삭제 추가 * refactor: session, evenet, attendence usecase 생성 * refactor: schedule usecase get query 생성 * refactor: usecase command/query 통합, 분리에 맞춰 참조 파일 수정, 삭제 * refactor: usecase command/query 통합, 분리에 맞춰 test 수정, 삭제 * refactor: SessionRepository/AttendanceRepository 비관적 락 쿼리 추가 * refactor: ManageSessionUseCase/ManageAttendanceUseCase 비관적 락 적용 * refactor: schedule/attendance 컨트롤러 Kotlin 전환 및 Event/Session API 분리 * refactor: ScheduleTimeCheck Kotlin 전환 및 요청 DTO type 필드 제거 * fix: ScheduleTimeCheckValidator null 입력 시 NPE 방지 * refactor: Event 조회를 Command UseCase에서 QueryService로 분리 * style: GetScheduleQueryService Kotlin 관용 표현으로 리팩토링 * style: findById().orElseThrow() Kotlin 스타일로 통일 및 불필요한 줄 제거 * refactor: Session 조회를 Command UseCase에서 GetSessionQueryService로 분리 * style: ktlintFormat 적용 * refactor: Meeting → Session 네이밍 통일 * style: GetAttendanceQueryService mapper 필드명 attendanceMapper로 통일 * docs: QR 코드 출석 기능 예정 메서드에 TODO 주석 추가 * refactor: schedule DTO에 @Schema 어노테이션 추가 * refactor: Meeting → Session 네이밍 통일 * fix: 머지 충돌로 인한 UserManageUseCaseImpl 컴파일 오류 수정 * fix: 출석 상태 관리자 재정 시 상태 검증 및 카운터 보정 로직 수정 * test: UserManageUseCaseTest 의존성을 실제 구현체에 맞게 수정 * fix: SessionNotFoundException을 attendance 도메인으로 분리 * refactor: findSessionInfos 중복 정렬 제거 * refactor: Meeting → Session 네이밍 통일 * fix: Session.updateInfo에 시간 유효성 검증 추가 * fix: Event update에 시간 유효성 검증 추가 * refactor: ScheduleController에서 불필요한 @ApiErrorCodeExample 제거 * refactor: AttendanceRepository mock을 relaxed로 변경하여 saveAll 호출 오류 수정 * refactor: Meeting -> Session 네이밍 변경 * refactor: ResponseCode 코드 번호 정리 * refactor: SessionErrorCode, SessionNotFoundException를 attendance 패키지로 이동 * refactor: content 필드 text -> length 500으로 변경 * refactor: attendance에서 session 패키지로 분리 * refactor: SwaggerConfig 도메인 코드 범위 테이블에 Session 추가 * fix: 세션 삭제 시 출석 상태 조회에 비관적 락 추가 * [WTH-161] 마이그레이션 후 정리 (#16) * [WTH-160] user 도메인 리팩토링 (#18) * refactor: cardinal 도메인 분리 * refactor: cardinal 도메인 분리 * refactor: 유저 도메인 dto 개선 * refactor: 유저 관련 엔티티 개선 * refactor: 유스케이스 분리 * refactor: 소셜 로그인 개선 * refactor: 유스케이스 분리 * refactor: 테스트 변경사항 반영 * refactor: 경고 기능 제거 * feat: UserCardinal 쿼리 추가 * refactor: api 엔드포인트 제거 및 응답 코드 수정 * docs: CLAUDE.md 예외 코드 범위 현행화 * test: email 형식에 맞게 fixture 수정 * refactor: 트랜잭션 제거 * refactor: id private set 설정 * [WTH-150] board 도메인 리팩토링 (#20) * refactor: 미사용 enum 제거 * refactor: 어드민용 API에서는 전체 게시판이 조회되도록 수정 * refactor: 게시판 수정 API PATCH 관련 주석 및 테스트 추가 * refactor: 게시글 수정시 PATCH 규칙 개선 및 삭제된 게시판의 글인 경우 반환하지 않도록 설정 * refactor: 게시판 상세 정보 조회 API 어드민으로 이전 * refactor: 미사용 메서드 제거 * refactor: 미사용 메서드 제거 * refactor: 게시판 정보가 바뀌거나, 유저 권한이 바뀌는 케이스 대응 * docs: todo 주석 추가 * docs: todo 주석 설정 * refactor: private set 설정 * chore: lint 수정 * docs: 엔티티 구조 업데이트 * docs: 엔티티 구조 업데이트 * refactor: 엔티티 구조 개선 * refactor: 엔티티 구조 변경에 따른 테스트 수정 * docs: 주석 추가 * test: 불필요한 문구 제거 * [WTH-174] weeth server 클로드 코드 커스텀 업데이트 (#19) * docs: 응답코드 5자리로 개선 * docs: 응답코드 5자리로 개선 * chore: ktlint hook 추가 * docs: 클로드 코드 관련 컨텍스트 최신화 * docs: 리드미 업데이트 * [WTH-169] QR 출석체크 기능 구현 (#17) * refactor: 사용되지 않는 ScheduleTimeCheck 관련 코드 제거 * refactor: 출석 코드 자릿수 4자리에서 6자리로 변경 * feat: QR 출석 Redis 포트 및 어댑터 추가 * feat: QR 출석 예외 클래스 및 에러/응답 코드 추가 * feat: QR 토큰 응답 DTO 및 어드민 QR 생성 UseCase 추가 * feat: 출석 체크인 로직을 Redis QR 코드 기반으로 변경 * feat: 어드민 QR 코드 생성 엔드포인트 추가 * test: GenerateQrTokenUseCase 및 ManageAttendanceUseCase checkIn 테스트 추가 * style: 린트 적용 * refactor: ManageAttendanceUseCase 가독성 개선 * style: 개행 추가해서 가독성 개선 * refactor: Attendance status 필드 private set 적용 * style: 린트 적용 * fix: 출석 에러코드 번호 수정 * fix: 세션 에러코드 번호 수정 * refactor: 불필요한 @transactional 어노테이션 제거 * refactor: 난수 생성 방식을 SecureRandom으로 변경 * feat: 출석 체크 시간 검증 추가 * refactor: QR 출석 Redis 키를 code에서 sessionId로 변경 및 세션 ID API 추가 * docs: QrAttendancePort 메서드 주석 추가 * test: QR 출석 체크인 테스트 수정 및 시간 검증 케이스 추가 * style: 린트 적용 * refactor: TTL_SECONDS 중복 상수를 QrAttendancePort로 통합 * [WTH-176] club 도메인 엔티티 추가 작업 (#21) * test: 누락 작업 추가(게시판 조회 시 검증 추가) * feat: Club 도메인 entity, vo 구현 * feat: vo 구현 * feat: repository 구현 * feat: 예외 추가 * feat: enums 추가 * feat: ClubRepository 추가 * feat: ClubMember Test 추가 * feat: Club Test 추가 * chore: lint 설정 * feat: tsid 생성 유틸 추가 * docs: club 응답 코드 추가 * refactor: 동아리 이름은 중복 가능하도록 수정 * refactor: 학교 이름 + 동아리 이름 Unique 제약조건 추가 * test: 테스트 보강 * [WTH-181] club 도메인 추가 작업 2 (#22) * refactor: UUID 사용으로 인한 code 길이 수정 및 프로필, 배경 사진 추가 * feat: Club Code UUID 적용 * feat: ClubMember 관련 정책 추가 * feat: dto 추가 * feat: 동아리 조회 서비스 구현 * feat: 동아리 멤버 조회 서비스 구현 * feat: 동아리 관리 유스케이스 구현 * feat: 동아리 가입/탈퇴 유스케이스 구현 * feat: 동아리 멤버 관리 유스케이스 구현 * feat: 컨트롤러 추가 * refactor: 스프링 빈 등록 * feat: 응답 코드 추가 * refactor: 주석 추가, 예외 이름 변경 * refactor: 테스트 케이스 보강 * refactor: MVP 기획에 맞게 다중 동아리 지원 막기 * refactor: 기수 정보 및 추가 사용자 정보 반환 * feat: mapper 구현 * refactor: id 기반 검증 제거 * feat: TSID를 Long으로 디코딩하는 어노테이션 추가 * docs: 주석 추가 * chore: lint 설정 * refactor: 중복 에러 코드 제거 * refactor: ClubMember 관련 DTO 수정 * refactor: 전처리 추가 * refactor: 테스트 케이스 추가 * refactor: 동시 가입 오류가 터지지 않게 락 적용 * refactor: 동시 가입 오류가 터지지 않게 락 적용 * refactor: 유스케이스명 수정 * refactor: ClubMember 관리시 해당 동아리에 속했는지 검증 추가 * refactor: 동아리 업데이트시 PATCH 계약에 맞게 수정 * feat:프로필, 배경 사진 삭제 API 추가 * [WTH-183] club 도메인 추가 작업 3 (#23) * refactor: Account 도메인 클럽 추가 * refactor: Account 도메인 클럽 추가 * refactor: Attendance 도메인 사전 작업 * refactor: Board 도메인 Club 추가 작업 * refactor: Board 도메인 Club 추가 작업 * refactor: Cardinal 도메인 Club 추가 작업 * refactor: comment 관련 테스트 반영 * refactor: Penalty 도메인 Club 사전 작업 * refactor: Schedule 도메인 Club 추가 작업 * refactor: Session 도메인 Club 추가 작업 * chore: 컨벤션 수정 * refactor: 계좌 생성 메서드 수정 * refactor: 기존 메서드 성능 개선 * docs: clubId 관련 내용 추가 * test: 테스트 반영 * chore: lint 설정 * refactor: 리뷰 내용 반영 * docs: todo 주석 추가 * [WTH-180] 대시보드 api 구현 (#24) * feat: NoticeRead 엔티티 및 Repository 추가 * feat: 공지 읽음 처리 유스케이스 및 API 추가 * feat: 대시보드용 Reader 인터페이스 추가 * feat: 대시보드 DTO, Mapper, Exception 추가 * feat: 대시보드 QueryService 구현 * feat: 대시보드 Controller 구현 * test: 대시보드 및 공지 읽음 처리 테스트 추가 * docs: 대시보드 도메인 ID API 설계 문서 추가 * docs: Swagger 도메인 코드 범위에 Club, Dashboard 추가 * style: 불필요한 주석 제거 * style: 불필요한 import문 삭제 * refactor: 공지 읽음 ID 조회 시 기간 제한 추가 * refactor: EventRepository findByDateRange @query 제거 * refactor: 사용하지 않는 메서드 제거 * style: 작성자 프로필 이미지 미구현 TODO 주석 추가 * refactor: 미사용 메서드 제거 * fix: 공지 읽음 처리 동시 요청 시 중복 저장 예외 처리 * fix: PostRepository 쿼리 보조 정렬 키 추가 * refactor: 공지 읽음 처리 API에 boardId 범위 제한 추가 * refactor: myClubs 조회 시 활성 멤버십만 반환하도록 수정 * refactor: validateMembership에서 비활성 멤버 접근 차단 * refactor: clubId api 지침에 맞게 수정 * style: 린트 적용 * refactor: NoticeRead 방식을 LastNoticeRead 방식으로 수정 * refactor: clubInfo DTO 초대코드 필드 추가 * refactor: 스케줄 일정 enum으로 변경 * refactor: 최신공지 응답 구조 수정 * refactor: MVP 미지원 홈 응답 필드 임시 제외 * refactor: home 대시보드에 내활동 응답 추가 * refactor: 대시보드 게시글/공지 조회 시 해당 클럽 검증 및 클럽 범위 필터링 적용 * style: 린트 적용 * refactor: 공지 읽음 처리 club 검증 추가 * fix: 대시보드 공지 시간 필드를 정렬 기준인 createdAt으로 통일 * test: 공지 읽음 갱신 시 lastReadAt 변경 여부 단언 추가 * refactor: SessionReader에 findByDateRange API로 통일 * refactor: 불필요한 쿼리문 삭제 * [WTH-189] club 추가 마무리 작업 (#25) * refactor: Account 도메인 ClubId 추가 및 접근 제어 * refactor: Board 도메인 ClubId 추가 및 접근 제어 * refactor: Cardinal 도메인 ClubId 추가 및 접근 제어 * refactor: CLub 도메인 리팩토링 * refactor: CLub 도메인 리팩토링 * refactor: schedule 도메인 club 추가 및 접근 제어 * refactor: session 도메인 club 추가 및 접근 제어 * refactor: ManageCardinalUseCase.kt 접근제어 추가 * refactor: applyOb 메서드 ClubMember로 이전 * refactor: attendance 도메인 clubMember 추가 * refactor: apply-ob api 추가 * refactor: apply-ob dto 추가 * refactor: ClubMember 조회시 clubId 추가 * refactor: Penalty clubMember 추가 * refactor: 접근 제어 추가 * refactor: 기수 정책 추가 * refactor: 미사용 API 제거 * refactor: 미사용 코드 제거 * docs: 주석 추가 * refactor: response code 추가 * refactor: mock 제거 * refactor: lint 설정 * test: ClubMemberCardinalPolicyTest 추가 * refactor: 에러코드 수정 * docs: 주석 추가 * refactor: 코드 정리 * refactor: 테스트 오류 수정 * docs: TODO 주석 추가 * refactor: isCurrent 메서드명 변경 및 주석 추가 * refactor: 리뷰 내용 반영 * [WTH-197] 동아리 정보 공개 api 구현 (#27) * refactor: 동아리 정보 공개 API 구현 * refactor: @PathVariable 어노테이션 제거 * refactor: dto명 수정 * [WTH-198] 동아리 개설 가입시 기수 입력 및 초기화 (#28) * feat: 최초 기수 설정 dto 및 중복 설정 예외 추가 * feat: 락을 포함한 조회 및 검증 메서드 추가. (추후 WTH-200 이슈에서도 사용 예정) * feat: 락을 포함한 조회 및 검증 메서드 추가. * refactor: 동아리 개설시 기수 초기화 로직 추가 * feat: 기수 초기 설정시 출석 초기화 로직 추가 * refactor: 개설시 기수 입력 추가 * feat: 활동 기수 최초 설정 API 추가 * docs: 주석 추가 * refactor: PathVariable 제거 * refactor: n+1 제거 및 주석 추가 * refactor: 미사용 import 문 제거 * refactor: 가볍게 검증하도록 수정 * [WTH-203] 동아리 개설/가입 수 제한 (#30) * feat: 동아리 최대 가입 예외 추가 * refactor: 동아리 생성가입 제한 로직 추가 * refactor: 미사용 예외 삭제 * docs: 주석 최신화 * refactor: 충돌해결 * refactor: 동시성 문제 해소 * [WTH-210] 학교 학과 open api (#29) * feat: Redis 캐시 설정 추가 * feat: 커리어넷 API 설정 추가 * feat: 학교/학과 도메인 레이어 추가 * feat: 커리어넷 Port/어댑터 구현 * feat: 학교/학과 조회 API 엔드포인트 추가 * feat: 학교/학과 조회 API 공개 접근 허용 * test: 학교/학과 api 테스트 구현 * docs: university 도메인 코드 범위 추가 * style: 개행 추가 * refactor: 커리어넷 Port 구조 개선 * style: 린트 적용 * refactor: 코드 리뷰 반영 * test: 변경된 구조에 맞게 테스트 수정 * fix: Redis 캐시 Kotlin 역직렬화 오류 수정 * style: 린트 적용 * fix: Redis 캐시 역직렬화 타입 검증 범위 제한 * refactor: 응답이 한글부터 정렬되게 수정 * fix: university API 엔드포인트 경로 수정 * refactor: GetSchoolQueryService, GetMajorQueryService를 GetUniversityQueryService로 통합 * refactor: port 네이밍 변경 * test: QueryService 통합에 맞춰 테스트 수정 * test: 학교/학과 캐시 통합 테스트 및 성능 벤치마크 추가 * refactor: 코드 리뷰 반영 * refactor: TTL 7일로 수정 * fix: MySQL 버전 수정 * fix: Jackson 역직렬화 허용 타입을 ArrayList로 제한 * [WTH-208] 사용자 프로필 기능 추가 (#26) * feat: User 엔티티 term, profile 필드 추가 * feat: 약관 동의 api 구현 * feat: 프로필 이미지 업로드/수정 api 구현 * feat: OAuth 프로필 이미지 저장 * feat: 파일 타입에 USER PROFILE 추가 * feat: UserInfo 공통 DTO 추가 * refactor: 사용자 정보가 필요한 Response/Mapper에서 UserInfo로 통일 * feat: 프로필 bio 및 profileImageUrl 필드 추가 * test: 사용자 프로필 필드 변경에 따른 관련 테스트 수정 * style: 린트 적용 * feat: 일정 클럽 필터링 기능 추가 * refactor: 대시보드 내활동 userInfo 네이밍 변경 * style: UserMapper DTO 생성자 named arguments 적용 * fix: CommonResponse<Void> nullable 타입 수정 * refactor: agreeTerms 검증 및 할당 로직 개선 * refactor: User 엔티티 생성자 정리 및 lateinit 제거 * fix: UserInfo.role nullable 타입 제거 * fix: AgreeTermsRequest 검증 메시지 추가 * test: User 엔티티 agreeTerms, updateProfileImageUrl, bio 테스트 추가 * fix: bio 필드 최대 길이 30자로 변경 * fix: profileImageUrl 공백 입력 시 null 정규화 * fix: User 생성자 name, profileImageUrl 검증, 정규화 추가 * refactor: User 생성자에서 id 제거 및 관련 테스트 변경 * refactor: bio 필드를 User에서 ClubMember로 이전 * refactor: 동아리별 멤버 프사 추가 및 소셜 프사 제거 * refactor: 소셜 로그인 이름 미제공 시 이메일 앞자리로 대체 가입할 수 있게 수정 * refactor: ClubMember 프로필 이미지 검증 추가 및 대시보드에 동아리 프사 추가 * style: bio 기본값 제거 및 Swagger 예제 추가 * feat: 동아리 멤버 프로필 사진 삭제 API 추가 * test: 동아리 멤버 프로필 사진 삭제 UseCase 테스트 추가 * refactor: 동아리 활동 프로필 수정 API 통합 * refactor: 동아리 멤버 프로필 전체 가입 동아리에 일괄 적용 * docs: 주석 추가 * style: 린트 적용 * refactor: 코드 리뷰 반영 * feat: User 엔티티에 school 필드 추가 * refactor: 응답코드 번호에 맞게 수정 * refactor: 미사용 api 제거 * [WTH-201] 동아리 입력 출력값 검증 (#31) * feat: 주사용 연락처 정보 추가 * refactor: 주사용 연락처 추가 반영 작업 * refactor: Dto 검증 추가 및 미사용 import 문 제거 * refactor: 미사용 import 제거 및 주석 추가 * refactor: 전화번호 global vo로 전환 * refactor: 주사용 연락처 enum 추가 * refactor: 전화번호 예시 "-" 제거 * docs: 주석 추가 * refactor: 주 연락처가 이메일인데, 이메일이 없는 경우 커스텀 예외 처리 * [WTH-204] LEAD 권한 이양 API 구현 (#33) * feat: LEAD 권한 이양 API 구현 * feat: LEAD 권한 이양 관련 예외 추가 * refactor: 동시성 방어를 위한 락 추가 * docs: LEAD 관련 설명 추가 * test: 관련 테스트 추가 * docs: lint 설정 * refactor: 사전 검증 추가 * refactor: 커스텀 예외 검증으로 수정 * [WTH-196] 인증 정책 수정, 이미지 관련 필드 수정 (#32) * refactor: JWT Token에서 Role 제거 * refactor: CurrentUserRole 관련 파일 제거 * refactor: Board 도메인 Role 제거 및 LEAD 접근 제어 수정 * refactor: Board 도메인 Role 제거 * refactor: user.role, profileimage 제거 * refactor: 작성자 정보를 매핑하기 위한 ClubMember 조회 메서드 추가 * refactor: User.Role -> MemberRole로 전환 * refactor: UserInfo 반환을 위한 매핑 로직 추가 * test: 테스트 일괄 반영 * chore: ADMIN 경로 검증에서 일반 인증 경로로 수정 * chore: 대체 예정 Deprecated 처리 * refactor: storageKey를 저장하는 방식으로 수정 * refactor: storageKey를 저장하는 방식으로 수정 * test: 이미지 관련 테스트 일괄 반영 * refactor: 미사용 dto 제거 * refactor: dto 길이 제한 추가 * refactor: 헬퍼 메서드 추가 * refactor: 불필요 코드 제거 * refactor: 중복 검증 제거 * refactor: isAdmin 메서드 제거 * [WTH-200] 동아리 정책 수정 (#34) * refactor: ClubMember 정책 분리 * feat: 분리 정책 테스트 추가 * refactor: 분리 반영 * refactor: ClubCode 검증 로직 개선 * [WTH-202] 출석 정책 및 구조 정리 (#36) * refactor: Session, Attendance private set 적용 * refactor: 출석 자동 마감 스케줄러를 매일 00시로 변경 * refactor: 미사용 API 제거 * refactor: AttendanceSummar.code 예시 6자리로 수정 * refactor: 출석 초기화 트리거 정리 * refactor: 출석 체크인, 마감 락 추가 * refactor: 배치 락 및 데드락 방지 * refactor: 세션 생성 시 출석 쿼리 최적화 * test: 배치 락 변경과 관련된 테스트 수정 * feat: 출석 마감 예외 클래스 추가 * style: 린트 적용 * fix: updateStatus 빈 리스트 예외 방지 * fix: 주석 제거 * refactor: DB 레벨 잠금 순서 보장 * fix: 주석으로 정렬 명시 * refactor: TODO 주석추가 * [WTH-205] 내 동아리 활동 정보 조회 api 추가 (#35) * refactor: 컨트롤러 분리 * refactor: dto에 role, status 정보 추가 * refactor: 가입 동아리 여부, 반환 메서드 추가 * refactor: 조회 메서드 책임 이전 * refactor: 응답코드 수정 * refactor: 매퍼로 위임 * [WTH-206] 게시글 좋아요 api (#38) * feat: 게시글 좋아요 도메인 추가 * feat: 게시글 좋아요 DTO 추가 * feat: 게시글 좋아요 토글 유스케이스 추가 * feat: 게시글 좋아요 토글 API 추가 * style: 린트 적용 * test: 관련 테스트 수정 * refactor: 게시글 좋아요 플래그 방식으로 변경 * refactor: 게시글 좋아요 응답 코드 단일화 * refactor: 게시글 좋아요 동시성 스냅샷 해결 * refactor: 비지니스 로직 이동 * refactor: 불필요한 락 제거 * refactor: 락 타임아웃 응답 코드 변경 * test: 게시글 좋아요 테스트 추가 * refactor: 응답 mapper로 위임 * refactor: 좋아요 응답 PostLikeResponse로 통합 * [WTH-207] 게시판 기본 기능 수정 (#37) * feat: 게시글 작성 시 현재 기수 자동 반영 * feat: 전체 게시글 조회 API 추가 * feat: 게시판 순서 수정 기능 추가 * refactor: 게시판 순서 변경 시 중복 boardId 검증 추가 * feat: 게시판 생성 시 displayOrder 자동 설정 * refactor: 게시판 생성 시 reorder apply 블록 제거 * style: 린트 적용 * refactor: 게시판 이름 중복 확인 로직 추가 * test: 게시판 이름 중복 검증 테스트 추가 * feat: 동아리 생성 시 공지사항 게시판 자동 생성 * style: 린트 적용 * refactor: 공지사항 게시판 생성 시 순서 명시 * test: 게시판 재정렬 후 검증 테스트 추가 * feat: 게시판 정보 추가 * refactor: 게시판 관련 코드 정리 * style: 가독성 개선 * style: 린트 적용 * fix: board EntityGraph 누락 수정 * refactor: cardinal 조회 예외 방지 * docs: 게시판 순서 변경 요청 DTO 설명 추가 * refactor: 대시보드 최신글 권한별 필터링 적용 * refactor: 미사용 매서드 제거 및 테스트 보완 * refactor: 공지사항 순서 고정 및 가상 전체 게시판 추가 * test: 게시판 고정, 전체 관련 테스트 추가 * refactor: 어드민 게시판 postCount 및 가상 전체 게시판 추가 * refactor: 게시판 이름, 순서 변경 제한 및 삭제 시 displayOrder 재정렬 * fix: 미팅 테이블명 세션으로 수정 * refactor: 세션 조회 시 기수 검증 추가 * refactor: 전체 게시글 목록 조회 시 좋아요 추가 * refactor: 좋아요와 관련된 테스트 수정 * test: 기수 검증 테스트 추가 * [WTH-221] 액세스 토큰 리프레시 토큰 쿠키 반환 (#39) * feat: 쿠키 관련 환경변수 설정 * feat: 쿠키 유틸 추가 * refactor: 쿠키에서 토큰 추출 로직 추가 * refactor: 쿠키에서 토큰 추출 로직 추가 * refactor: 쿠키를 반환하고 받도록 인증 관련 API 수정 * refactor: 약관 동의 시 가입 승인 & 토큰 발급하도록 로직 수정 * refactor: 토큰 타입 추가 (임시, 액세스) * refactor: 인증 API 수정 * refactor: 가입 미완료시 예외처리 * test: 테스트 환경변수 추가 * feat: token type enum 추가 * feat: 동아리 활동 정보 API 추가 * refactor: public 겨로 저리 * feat: 유저 프로필 완성 여부 확인 API 추가 * [WTH-220] 동아리 이미지도 File을 타도록 수정 (#40) * refactor: 동아리 이미지도 File을 타도록 수정 * refactor: lint 설정 * feat: 추방 멤버 복구 API 추가 * feat: 추방 멤버 복구 API 추가 * refactor: 페널티 타입 삭제 * refactor: 경로 파라미터로 수정 * refactor: UUID 예시 수정 * refactor: 학교 + 학번으로 중복 검사하도록 수정 * refactor: 페널티 타입 제거 * refactor: 스웨거 자물쇠 제거 * refactor: 스웨거 자물쇠 제거 * docs: 주석 추가 * refactor: 생성시간을 반환하도록 수정 * HOTFIX: cors 주소 추가 * HOTFIX: PATCH 매핑으로 수정 * [WTH-228] 공지사항 삭제 가능 (#41) * fix: 공지사항 삭제 방어 로직 추가 * test: 공지 게시판 삭제 테스트 추가 * refactor: 게시글 생성 제한 추가 * fix: 게시글 작성 작성자의 현재 최신기수로 변경 * fix: countBy 반환 타입 Int → Long 수정 * test: ClubMemberCardinalTestFixture 추가 * style: 린트 적용 * refactor: 게시판 생성 동시성 이슈 해결 * fix: countBy 반환 타입 Int로 수정 * refactor: 공지 게시판 생성 방어 로직 * refactor: 모든 게시판으로 생성 개수 제한 * [WTH-229] 유저 기수 수정 (#43) * refactor: 기수 필드 연도, 학기 제거 * refactor: 현재 진행 기수 지정 API로 변경 * refactor: 기수 정책 동아리로 범위 제한 * feat: 기수 수정 api 추가 * style: 린트 적용 * refactor: 기수 연도, 학기 제거 * test: club id 불일치 수정 * refactor: 기수 출석 카운트 복구 로직 추가 * refactor: 출석 복구 최신기수로 제한 * refactor: 출석 통계 및 패널티 리셋 수정 * test: 기수 테스트 픽스처 수정 * refactor: 페널티 복구 로직 추가 * [WTH-226] 세션 반복 생성 (#42) * feat: 세션 반복 생성을 위한 entity, enums 추가 * feat: 세션 반복 생성을 위한 dto/예외 설정 * feat: 세션 그룹 저장소 및 세션 저장소 메서드 추가 * refactor: duration 기반으로 계산하도록 개선 * refactor: 세션 생성 유스케이스 분리 + 반복 생성 로직 추가 * refactor: 세션 업데이트 유스케이스 분리 + 반복 세션 수정 로직 추가 * feat: 반복 세션 삭제 유스케이스 추가 * refactor: 예외 처리시 data도 선택적으로 받을 수 있도록 수정 * refactor: 세션 관리 유스케이스 분리 * refactor: 세션그룹 삭제 메서드 추가 * refactor: 메퍼 메서드 추가 및 세션 도메인으로 이전 * feat: 세션 그룹으로 조회 메서드 추가 * refactor: 세션 그룹 별 조회하도록 로직 개선 * refactor: 세션 그룹 별 조회하도록 로직 개선 * refactor: 이번 주 세션 리스트로 반환하도록 수정 * refactor: duration 계산 메서드 분리 * test: 테스트 적용 * refactor: 이번 주 세션 리스트로 반환하도록 수정 * refactor: lint 설정 * feat: 세션 반복 관련 API 가 * refactor: UI에 맞게 API 수정 * refactor: 세션 도메인으로 이전 * refactor: 응답 DTO 개선 * refactor: PATCH 스럽도록 수정 * refactor: 세션 id로 매핑 수정 * refactor: import 문 수정 * refactor: 엣지케이스 관련 주석 보강 * refactor: 제약조건 추가 * refactor: 개별 삭제 동시성 문제 보강 * refactor: 개별 삭제 동시성 문제 보강 * refactor: totalCount를 저장하지 않고, 조회시 계산해 반환하도록 수정 * refactor: dto 설명 수정 * refactor: 세션 그룹 업데이트 및 설명 포맷 개선 * refactor: 락 조회시 정렬 추가 * refactor: 장소, 설명 선택 처리 * refactor: QueryHints 추가 * refactor: id 변경 * refactor: fixture 파라미터 변경 * [WTH-236] 랜딩 문의하기 api 구현 (#45) * chore: Notion, Slack 설정 추가 * feat: 문의 port 인터페이스 추가 * feet: 문의하기 로직 구현 * feet: Notion, Slack Adapter 구현 * feet: 문의하기 엔트포인트 추가 * refactor: 응답코드 수정 * refactor: 문의하기 비동기로 변경 * chore: AsyncConfig 추가 * [WTH-237] 애플 로그인 수정 및 로그인 시 유저 정보 반환 (#44) * fix: 애플 로그인 수정 * refactor: 로그인 시 유저 이름 반환 * refactor: 주석 및 파일명 변경 * refactor: 파싱 로직 이전 * refactor: 컨트롤러 정리 * test: 의존성 추가 * HOTFIX: CORS 경로 변경 * fix: 도메인 설정이 변경된 경우 바로 반영 되도록 로직 수정 (#46) * [WTH-251] post comment 작성자 타입을 club member로 변경 (#48) * refactor: Post/Comment user 필드 clubMember로 변경 * refactor: clubMember로 fetch join * refactor: userReader 제거 * refactor: Mapper authorMember 제거 * refactor: Service buildMemberMap 제거 * refactor: Post/Comment fixture user를 clubMember로 변경 * test: 관련 test 수정 * test: 관련 test 수정 * [WTH-247] 유저 필드 nullable 처리 (#47) * fix: 선택 필드 nullable 및 PATCH 전략에 맞게 수정 * refactor: 초기 유저 정보 설정시 프로필 완성 여부를 검증하도록 수정 * refactor: 파일 업데이트시 하드 딜리트 시켜 replace가 정상적으로 되도록 수정 * refactor: isNew 필드 추가 * refactor: 파일 목록 반환 * test: 테스트 반영 * refactor: 업데이트시 검증 보강 * refactor: 업데이트시 검증 보강 * refactor: 충돌해결 * HOTIFX: 랜딩 CORS 추가 * [WTH-252] 출석 요약 조회 api에 세션 id가 없어 출석이 불가능한 문제 (#49) * refactor: 세션 id 반환 * refactor: 경로 매개변수로 변경 * test: test 반영 * [WTH-260] 동아리 생성시 club id 동아리 이름 즉시 반환 (#50) * feat: 동아리중복 검증 추가 * feat: 동아리중복 검증 추가 * refactor: 동아리 생성 응답 반환 * refactor: 테스트 반영 * [WTH-278] 파일 수정 오류 해결 (#52) * fix: 삭제 즉시 적용 * test: test mockk 추가 * [WTH-309] 문의 내용 NotBlank 검증 제거 (#53) * refactor: 문의 내용 선택 입력으로 변경 * [WTH-282] 댓글 좋아요 백엔드 qa (#54) * refactor: 댓글 반환 시간 작성 시간으로 변경 * refactor: 좋아요 토글을 like/unlike로 분리 * refactor: 공통 검증 로직 메서드로 추출 * refactor: 응답 예시 추가 * [WTH-294] qr 만료시간 실시간 전달 (#51) * feat: SSE 연결 관리를 위한 SseEmitterStore 추가 * feat: SSE port 구현 * feat: SSE adapter 구현 * feat: QR 생성 시 SSE로 출석 가능한 시간 전송 * feat: 출석 SSE 구독 엔드포인트 추가 * test: 관련 테스트 수정 * test: SseEmitterStore 단위 테스트 추가 * refactor: SsePort를 Broadcast, Subscribe로 분리 * feat: SSE Subscribe UseCase 추가 * refactor: SseEmitterStore 동시성 처리 * test: 관련 테스트 추가 및 수정 * test: 동시성 테스트 무한 대기 방지 * test: 동시성 테스트 수정 * refactor: @synchronized 병목 해소 * refactor: event로 패키지 변경 * style: 린트 적용 * [WTH-310] 대시보드 최근 게시글에 좋아요 여부 필드 추가 (#55) * refactor: 대시보드 최근 게시글 응답에 isLiked 필드 추가 * test: isLiked 테스트 추가 * [WTH-105] Weeth Server 모니터링 설정 (#56) * feat: 프로메테우스 API Overview 추가 * feat: 프로메테우스 외부/내부 인프라 대시보드 * feat: 로그 MDC 설정 추가 * feat: 관측 설정 추가 * refactor: redisConnectionFactory 주입 방식으로 수정 * refactor: 도커 네트워크 접근 허용 * refactor: 로그백 설정 수정 * refactor: 환경 설정 * feat: 로컬 모니터링 완성 * feat: 로컬 모니터링 완성 * refactor: 도커 파일 Java Agent 설정 * refactor: 도커 컴포즈 Java Agent 설정 * feat: 개발 서버 모니터링 설정 추가 * feat: 개발 서버 도커 컴포즈 추가 * feat: 개발 서버 배포 스크립트 추가 * feat: 운영 서버 모니터링 설정 추가 * feat: 운영 서버 도커 컴포즈 추가 * feat: 운영 서버 배포 스크립트 추가 * feat: 개발/운영 깃액션 워크 플로우 추가 * context: 컨텍스트 업데이트 * refactor: 도커 컴포즈 오타 수정 * refactor: 리버스 프록시 엔드포인트 명시적 제한 * refactor: 로컬 환경변수 설정 추가 * refactor: 루트 경로 차단 추가 * refactor: 모니터링 환경변수 추가 * refactor: 디렉토리 오타 수정 * refactor: 환경변수 수정 * refactor: 로키 설정 수정 * refactor: 대기시간 증강 * HOTFIX: 어드민 유저 이름 환경 변수 설정 * HOTFIX: 모니터링 핫픽스 추가 (Log 수집 안됨, Lettuce 수집 안됨 해결) * HOTFIX: 빌드 오류 해소 * HOTFIX: 불필요 이미지 정리 코드 추가 * [WTH-327] 어드민 게시판 관리 수정 (#57) * refactor: 게시판 이름 중복 API 추가 및 설명 추가 * refactor: 기본 설정 게시판 설명 추가 * fix: DTO 추가 * [WTH-326] 게시판 관련 API에 boardId 필드 추가 (#58) * fix: 게시판 관련 응답에 게시판 ID 추가 * fix: 게시판 관련 응답에 게시판 ID 추가 * refactor: 게시판 관련 요청에 게시판 ID 추가 * test: 관련 테스트 수정 * refactor: 좋아요 응답 DTO를 PostLikeActionResponse로 분리, 게시글 수정 boardId 추가 * refactor: 게시판 글자수 20자로 제한 * [WTH-350] 게시판 권한 추가 (#60) * feat: 게시판 설정에 따른 권한 표시 * refactor: 댓글 허용에 따른 권한 확인 * [WTH-347] sse is empty 처리 (#59) * fix: SSE emitter 교체/삭제 시 메모리 누수 방지 * feat: SSE 구독 시 QR 상태 즉시 전송 추가 * feat: SSE 구독 시 QR 상태 즉시 전송 추가 * feat: QR 만료 시 SSE로 qr-close 이벤트 broadcast * refactor: 코드 리뷰 반영 * [WTH-349] 모니터링 인프라 개선 (#61) * [WTH-356] 리더 추방이 불가능하도록 수정 (#62) * refactor: 리더 추방이 불가능하도록 수정 * test: 테스트 수정 * [WTH] 오늘의 일정 단건 응답으로 수정 (#64) * refactor: 오늘의 일정 응답 1개면 바로 반환, 여러개면 현재 시간 이후에 가까운 1개로 반환하게 수정 * test: 관련 테스트 수정 * [WTH-358] 추방된 경우 동아리 리스트 미표기 (#65) * fix: 내 동아리 조회 시 활성화된 동아리만 조회 * refactor: mvp 후 추방된 상태까지 반환하도록 설정 * [WTH-361] 운영서버 모니터링 설정 (#66) * refactor: 운영 환경 템포 제거 * refactor: 운영 CORS 추가 --------- Co-authored-by: 전수현 <128474444+soo0711@users.noreply.github.com>
📌 Summary
내 동아리 활동 정보 조회 API를 추가했습니당.
동아리 허브에서 사용할 가입 여부를 확인하고, 리스트를 제공하는 API를 추가했습니다
📝 Changes
What
""
Why
기능 요구사항에 맞추기 위함, 프론트에서 전역적으로 정보를 조회해 사용하기 위함
How
📸 Screenshots / Logs
💡 Reviewer 참고사항
✅ Checklist
Summary by CodeRabbit
New Features
Refactor