Skip to content

Merge: main 브랜치 변경사항을 develop에 동기화 - #426

Merged
kimjuneon merged 15 commits into
developfrom
chore/kimjuneon/sync-main-into-develop-v2
Sep 29, 2026
Merged

kimjuneon merged 15 commits into
developfrom
chore/kimjuneon/sync-main-into-develop-v2

Conversation

@kimjuneon

@kimjuneon kimjuneon commented Sep 23, 2026 •

Copy link
Copy Markdown
Member

작업 배경

릴리스 과정의 Squash merge로 main과 develop의 커밋 이력이 분리되어 병합 충돌이 발생했습니다.

변경사항

  • main 이력을 develop에 동기화
  • 충돌 파일 3개를 main 기준으로 해결
  • develop의 ICS 수집 및 Canary 테스트 변경 유지

Summary by CodeRabbit

  • 버그 수정
    • 계절학기 개강 일정이 정규 학기 시작으로 잘못 분류되지 않도록 수정했습니다. 이에 따라 계절학기 중에는 학사 일정에 맞는 운영 기간이 표시되며, 방학 기간이 정규 학기 기간으로 바뀌어 안내되는 문제를 방지합니다. (예: 하계 방학과 하계 계절학기 개강 일정이 함께 있는 경우 방학으로 표시됩니다.)

rlagkswn00 and others added 15 commits October 8, 2025 17:33
* Feat: 컴퓨터공학부 대학원 공지 Scrap 추가  (#291)

* DepartmentName에 COMPUTER_GRADUATE 추가

* ComputerScienceGraduateDept 구현

* [feat]: urlPrefix 구현

* [feat]: urlPrefix 적용

* [test]: ComputerScienceGraduateDeptTest 구현

* [refactor]: GraduateDeptInfoTest로 이동

* [feat]: isGrad 필드 추가

* [feat]: isGrad 적용

* [feat]: is_grad 필드 추가 flyway 적용

* [refactor]: getUrlPrefix -> getHostPrefix로 수정

* [refactor]: urlPrefix 삭제

* [feat]: noticeGraudationInfo 추가

* [refactor]: ComputerScienceGraduateDept 삭제

* [refactor]: isGrad 적용

* [refactor]: GraduateDeptInfoTest 개행 추가, TestFileLoader 적용

* [refactor]: isGrad -> graduate로 필드명 수정

* [refactor]: graduate 필드 Null 허용으로 수정

* [refactor]: getter 필드 위에 지정

* [refactor]: setter -> 비즈니스 함수로 수정

* [refactor]: 대학원/학사 DepartmentNoticeUpdater 분리

* [refactor]: 개행처리

* [refactor]: DepartmentNoticeScrapResult 삭제

* [refactor]: LatestPageNoticeApiClient 분리

* [refactor]: creatUrl/scrapHtml 분리

* [refactor]: graduate로 필드 수정

* [refactor]: latestPageGraduateNoticeApiClient 사용

* [refactor]: graduate -> graduated로 이름 수

* [refactor]: 일반 notice는 graduated 필드에 null로 저장

* [refactor]: getGraduated() 오타 수정

* [refactor]: deptInfo.isSupportGraduateScrap() 구현 -  대학원 과정을 지원 안하는 DeptInfo 방어 로직

* [refactor]: ? 개수 수정

* [refactor]: 일반 공지 graduated null로 반환 테스트 추가

* [refactor]: 컨트롤러 graduated 파라미터 required=false로 설정

* [refactor]: 공통 로직 getGraduateDeptInfoList 메서드 추출

* [feat]: noticeGraduationInfo 추가

* [feat]: Notice 관련 테스트에 graduated 적용

* [fix]: noticeGraduationInfo 오타 수정

* Feat/cors setting

* feat(AuthConfig): CORS 설정 추가

* feat(AuthConfig): CORS 설정 추가

* feat(Report): reporterId로 필드명 변경

* feat(AdminQueryService): 조회시 Page구현체 사용하도록 변경

* Feat: 유저 학사일정 알림 설정 관련 기본 설정 추가 (#302)

* feat: 학사일정 알림 ON/OFF 컬럼 추가 Flyway 쿼리문 작성

* feat: 유저 엔티티에 학사일정 알림 ON/OFF 필드 추가

* feat: 학사일정 알림 FeatureFlag 추가

* fix: 불피요 Getter 삭제

* fix: 학사일정 알림 ON/OFF 컬럼 추가 시 불필요 쿼리문 제거

* Feat: 학사일정 알림 설정 API 추가 (#303)

* feat: 학사일정 알림 ON/OFF 컬럼 추가 Flyway 쿼리문 작성

* feat: 유저 엔티티에 학사일정 알림 ON/OFF 필드 추가

* feat: 학사일정 알림 FeatureFlag 추가

* fix: 불피요 Getter 삭제

* fix: 학사일정 알림 ON/OFF 컬럼 추가 시 불필요 쿼리문 제거

* feat: 학사일정 알림 토글 API 엔드포인트 및 Response Dto추가

* feat: 학사일정 알림 성공 메시지 추가

* feat: 학사일정 알림 토글 UseCase 추가

* feat: 학사일정 알림 토글 서비스 로직 추가

* feat: 학사일정 토글 도메인 테스트 추가

* feat: 학사일정 토글 인수 테스트 추가

* fix: FeatureFlagConfig Remote 설정

* fix: toggleAcademicEventNotification 메서드명 변경 -> updateUserAcademicEventNotification

* fix: 불필요 반환 객체 제거(result, response)

* fix: 학사일정 알림 변경 요청 시 설정값 받도록 수정

* fix: 학사일정 알림 설정 도메인 로직수정

* fix: 유저 인수테스트 및 테스트 수정

* fix: @NotNull javax -> jakarta 임포트 수정

* fix: 교직원 스크랩 DTO변환간 중복 Key 문제 해결

* fix: 불필요 로깅 삭제

* fix: 불필요 주석 삭제

* Feat:  학사일정 알림 스케쥴링 로직 추가 (#305)

* version 2.15.3 (#304)

* Feat: 컴퓨터공학부 대학원 공지 Scrap 추가  (#291)

* DepartmentName에 COMPUTER_GRADUATE 추가

* ComputerScienceGraduateDept 구현

* [feat]: urlPrefix 구현

* [feat]: urlPrefix 적용

* [test]: ComputerScienceGraduateDeptTest 구현

* [refactor]: GraduateDeptInfoTest로 이동

* [feat]: isGrad 필드 추가

* [feat]: isGrad 적용

* [feat]: is_grad 필드 추가 flyway 적용

* [refactor]: getUrlPrefix -> getHostPrefix로 수정

* [refactor]: urlPrefix 삭제

* [feat]: noticeGraudationInfo 추가

* [refactor]: ComputerScienceGraduateDept 삭제

* [refactor]: isGrad 적용

* [refactor]: GraduateDeptInfoTest 개행 추가, TestFileLoader 적용

* [refactor]: isGrad -> graduate로 필드명 수정

* [refactor]: graduate 필드 Null 허용으로 수정

* [refactor]: getter 필드 위에 지정

* [refactor]: setter -> 비즈니스 함수로 수정

* [refactor]: 대학원/학사 DepartmentNoticeUpdater 분리

* [refactor]: 개행처리

* [refactor]: DepartmentNoticeScrapResult 삭제

* [refactor]: LatestPageNoticeApiClient 분리

* [refactor]: creatUrl/scrapHtml 분리

* [refactor]: graduate로 필드 수정

* [refactor]: latestPageGraduateNoticeApiClient 사용

* [refactor]: graduate -> graduated로 이름 수

* [refactor]: 일반 notice는 graduated 필드에 null로 저장

* [refactor]: getGraduated() 오타 수정

* [refactor]: deptInfo.isSupportGraduateScrap() 구현 -  대학원 과정을 지원 안하는 DeptInfo 방어 로직

* [refactor]: ? 개수 수정

* [refactor]: 일반 공지 graduated null로 반환 테스트 추가

* [refactor]: 컨트롤러 graduated 파라미터 required=false로 설정

* [refactor]: 공통 로직 getGraduateDeptInfoList 메서드 추출

* [feat]: noticeGraduationInfo 추가

* [feat]: Notice 관련 테스트에 graduated 적용

* [fix]: noticeGraduationInfo 오타 수정

* Feat/cors setting

* feat(AuthConfig): CORS 설정 추가

* feat(AuthConfig): CORS 설정 추가

* feat(Report): reporterId로 필드명 변경

* feat(AdminQueryService): 조회시 Page구현체 사용하도록 변경

* Feat: 유저 학사일정 알림 설정 관련 기본 설정 추가 (#302)

* feat: 학사일정 알림 ON/OFF 컬럼 추가 Flyway 쿼리문 작성

* feat: 유저 엔티티에 학사일정 알림 ON/OFF 필드 추가

* feat: 학사일정 알림 FeatureFlag 추가

* fix: 불피요 Getter 삭제

* fix: 학사일정 알림 ON/OFF 컬럼 추가 시 불필요 쿼리문 제거

* Feat: 학사일정 알림 설정 API 추가 (#303)

* feat: 학사일정 알림 ON/OFF 컬럼 추가 Flyway 쿼리문 작성

* feat: 유저 엔티티에 학사일정 알림 ON/OFF 필드 추가

* feat: 학사일정 알림 FeatureFlag 추가

* fix: 불피요 Getter 삭제

* fix: 학사일정 알림 ON/OFF 컬럼 추가 시 불필요 쿼리문 제거

* feat: 학사일정 알림 토글 API 엔드포인트 및 Response Dto추가

* feat: 학사일정 알림 성공 메시지 추가

* feat: 학사일정 알림 토글 UseCase 추가

* feat: 학사일정 알림 토글 서비스 로직 추가

* feat: 학사일정 토글 도메인 테스트 추가

* feat: 학사일정 토글 인수 테스트 추가

* fix: FeatureFlagConfig Remote 설정

* fix: toggleAcademicEventNotification 메서드명 변경 -> updateUserAcademicEventNotification

* fix: 불필요 반환 객체 제거(result, response)

* fix: 학사일정 알림 변경 요청 시 설정값 받도록 수정

* fix: 학사일정 알림 설정 도메인 로직수정

* fix: 유저 인수테스트 및 테스트 수정

* fix: @NotNull javax -> jakarta 임포트 수정

* fix: 교직원 스크랩 DTO변환간 중복 Key 문제 해결

* fix: 불필요 로깅 삭제

* fix: 불필요 주석 삭제

---------

Co-authored-by: 양지윤 <155087951+jiyun921@users.noreply.github.com>
Co-authored-by: Jiwoo Kim <zbqmgldjfh@gmail.com>

* fix: 학사일정 스크랩 주기 원복

* feat: 최초 사용자 토큰 저장 시 학사일정 알림 구독하도록 수정

* feat: 학상일정 알림 설정 시 FCM 구독/구독해제 설정 추가

* feat: 학사일정 알림 토픽 추가

* feat: 학사일정 알림 스케쥴 로직 추가

* feat: 금일 학사일정 DB 조회 로직 구현

* feat: 학사일정 알림 전송 비지니스 로직 추가

* feat: 학사일정 알림 전송 관련 도메인 로직 추가

* feat: FeatureFlagsSupport 객체 추가

* test: IntegrationTestSupport 통합 테스트 수행 전 FeatureFlag 초기화 추가

* feat: FeatureFlagsSupport 객체 추가로 인한 불필요 Mocking 제거

* feat: User 도메인 테스트 추가

* test: AcademicEventNotificationServiceTest 추가

* test: AcademicEventNotificationSchedulerTest 추가

* fix: 메세지 리터럴 변수명 불일치 수정

* fix: 잘못된 try Catch문 삭제

* fix: Refrence Type으로 수정

* fix: Boolean 비교 equals 적용

이걸 까먹네 바본가

* fix: 기본 토픽 구독하는 메서드명 수정

* fix: 학사일정 알림 메시지 포맷 변경

* fix: 학사일정 알림 발송 간 에러 발생시 로직 수정

---------

Co-authored-by: 양지윤 <155087951+jiyun921@users.noreply.github.com>
Co-authored-by: Jiwoo Kim <zbqmgldjfh@gmail.com>

* Fix: 학과 공지 업데이트 오류 수정, 학과 목록 조회 api 수정 (#310)

* [feat]: 학과별(학사) 전체 공지 업데이트 테스트 구현

* [refactor]: 변수 이름 graduated로 수정

* [fix]: latestPageGraduateNoticeApiClient 주입 누락 수정

* [feat]: 학과 목록 조회 - graduateSupported 추가

* [refactor]: 학과 목록 조회 - DeptInfo 주입 방식으로 수정

* [feat]: 매체연기학과 추가 구현

* [refactor]: import 수정

* [fix]: 학과 개수 변경 반영

* Feat: OCI 환경 CI/CD배포 파이프라인 추가 (#311)

* feat: OCI CI/CD 워크플로우

* fix: plain 파일 제외 하도록 수정

* fix: dev 환경 ci/cd workflow 수정(decrpt 추가 및 sh 명령어 수정) (#312)

* feat: decrpt secrets 실행 시 env 추가 (#313)

* Feat: 학사일정 카테고리 및 알림 전송 분류 추가 (#308)

* feat: 학사일정 카테고리 추가

* fix: 학사일정 카테고리 이넘화로 인한 수정

* feat: 학사일정 카테고리 분류 클래스 추가

* feat: 학사일정 알림 분류기 추가

* feat: 학사일정 제목 정규화 클래스 추가

* feat: AcademicEventConverter 내 알림 및 카테고리 분류 추가

* fix: 학사일정 카테고리 추가로 인한 테스트 변경

* fix: 학사일정 카테고리 추가로 인한 테스트 변경

* fix: 학사일정 스크랩 간 공휴일 제거로 인한 검증 횟수 변경

* test: AcademicEventCategorizerTest 추가

* test: AcademicEventNotificationClassifierTest 추가

* test: AcademicEventSummaryNormalizerTest 추가

* test: AcademicEventConverterTest 카테고리, 알림 구분 테스트 추가

* feat: 학사일정 스크랩 주기 변경(월1회 -> 주1회)

* fix: 학사일정 업데이트 스케줄링 간 이벤트 건수 로그레벨 변경

* fix: 소나큐브 대응(Private Constructor)

* fix: 코드래빗 대응(DisplayName 변경)

* fix: 소나큐브 대응(ReDOS문제)

* fix: 소나큐브 대응(ReDOS문제)

* fix: 학사일정 카테고리 이름 공백 제거

* fix: 학사일정 엔티티 변환 시 Optional 반환하도록 수정

* fix: 푸시알림 메시지 생성 시 data 추가

* fix: 로그 오타 수정

* feat: Normalizer 패턴 변경(글자수 제한, Possessive Quantifiers)

* fix: AcademicEventCategorizer private 생성자 추가

* Feat: 어드민 기능- 전체 사용자 토픽 구독 API 추가 (#314)

* feat: User.getFcmToken getter 추가

* feat: 사용자 모든 구독 정보 가져오는 Repository Method 추가

* remove: 불필요 메서드 삭제

* remove: 모든 사용자 토픽 구독 처리 서비스 로직 추가

* remove: 모든 사용자 토픽 구독 처리 API추가

* remove: 모든 사용자 토픽 구독 처리 인수테스트 추가

* fix: 재구독 시 트랜잭션 어노테이션 제거

* fix: 재구독 성공/실패 개수 로깅

* feat: 학사일정 카테고리 컬럼 사이즈 30으로 변경

* Fix: 학사일정 알림 및 업데이트 시간 수정 (#315)

* fix: 학사일정 알림 스케쥴 시간 변경(매일 아침 9시)

* fix: 학사일정 업데이트 시간 수정(매주 월요일 오전 5시)

* Feat: 대학원 스크랩 Feature Flag 적용 (#316)

* fix: 대학원 공지사항 스크랩 피처플래그 추가

* feat: 대학원 공지사항 스크랩 피처플래그 적용

---------

Co-authored-by: 양지윤 <155087951+jiyun921@users.noreply.github.com>
Co-authored-by: Jiwoo Kim <zbqmgldjfh@gmail.com>
* [refactor] 누락된 학과 추가 구현 (#322)

* [feat]: 기계로봇자동차공학부, 재료공학과, 항공우주모빌리티공학과 추가

* [refactor]: 학과 목록 개수 수정

* Fix: 댓글 개수 표시 오류 수정 (#327)

* feat: CommentCommandPort 부모 댓글의 답글 삭제 메서드 추가

* feat: CommentQueryRepository 부모 댓글의 답급 소프트 삭제 쿼리 추가

* feat: NoticeCommandService 댓글 삭제 시 답급도 같이 삭제하도록 수정

* feat: 댓글 삭제 정책에 맞게 데이터 정합성 유지를 위한 Flyway 쿼리 추가

* test: 댓글 삭제 시 답글 삭제하는 인수 테스트 추가

* test : 댓글 개수 테스트 로직 수정

* test : 소나큐브 이슈 대응(isZero 사용)

---------

Co-authored-by: 양지윤 <155087951+jiyun921@users.noreply.github.com>
version 2.16.2
version 2.16.3
version 2.17.0
version 2.17.1
version 2.17.3
* Chore: Renovate와 CI Canary 설정 추가 (#376)

* chore: Renovate와 CI Canary 설정 추가

* chore: Renovate 보안 취약점 알림 설정 추가

* Feat: building 도메인 분리 및 club 위치 참조 전환 (#373)

* feat: building 도메인 분리 기반 추가

* refactor: club building 참조 조회 전환

* test: building 도메인 테스트 추가

* refactor: building 이름 유니크 제약 추가
## #️⃣ 이슈

Release `2.17.5`

## 📌 요약

이번 배포는 Java 21 런타임 기준 전환, 개발/배포 환경 안정화, club legacy 위치 컬럼 제거를 포함합니다.

## 🛠️ 상세

## Infra
- Java 런타임 기준을 17에서 21로 전환했습니다. Gradle Wrapper, JaCoCo, ArchUnit, GitHub Actions JDK 설정도 Java 21 기준으로 정리했습니다. (#385)
- 개발 서버 배포 시 비대화식 SSH 세션에서도 `~/.bash_profile` 환경변수가 로드되도록 수정하고, 백그라운드 Java 프로세스의 stdin을 분리해 배포 타임아웃 가능성을 줄였습니다. (#386)
- dev 배포 SSH 세션이 백그라운드 Java 프로세스에 붙어 대기하지 않도록 추가로 보정했습니다.

## Chore / Refactor
- building backfill 완료 이후 더 이상 사용하지 않는 club legacy 위치 컬럼(`club.building`, `club.lat`, `club.lon`)을 제거했습니다. (#381)

## Deploy
- version: 2.17.5
- base: main
- head: develop
- merge method: merge commit
- release tag: 2.17.5
- release title: v2.17.5

## 💬 기타

- 포함 범위: `origin/main..origin/develop`
- 포함 커밋: #385, #386, #381, `30b29786`
- 이 PR은 `develop -> main` 배포 PR이며, merge commit 방식으로 머지합니다.
* [fix]: 동아리 목록 조회 api 응답에 recruitmentStatus 필드 추가 (#384)

* [fix]: 동아리 목록 조회 api 응답에 recruitmentStatus 필드 추가

* [refactor]: 시간 계산 한번만 하도록 수정

* Feat : 어드민 동아리 업로드 API 구현 (#353)

* feat : club icon_image_path 컬럼 마이그레이션 추가

* feat : 동아리 생성 성공 응답 코드 추가

* feat : 동아리 중복 생성 에러 코드 추가

* feat : 어드민 동아리 생성 요청 DTO 확장

* feat : 어드민 동아리 생성 응답 DTO 추가

* feat : 어드민 동아리 생성 API 추가

* feat : 동아리 생성 유스케이스 인터페이스 추가

* feat : 동아리 생성 커맨드 정의 추가

* feat : 동아리 생성 CommandPort 메서드 추가

* feat : 동아리 생성 이벤트 포트 확장

* feat : 동아리 중복 조회 포트 메서드 추가

* feat : 동아리 이름 소속 중복 조회 리포지토리 메서드 추가

* feat : ClubSns JPA Repository 구현 추가

* feat : 동아리 생성 중복체크 persistence 구현 추가

* feat : 동아리 생성 필드 및 생성자 확장

* feat : 동아리 카테고리 한글 매핑 지원 추가

* feat : 동아리 소속 한글 매핑 지원 추가

* feat : 동아리 SNS URL 도메인 객체 매핑 추가

* feat : SNS URL 기반 타입 판별 로직 추가

* feat : 스토리지 업로드 유스케이스 인터페이스 정의

* feat : 다중 파일 업로드 커맨드 모델 추가

* feat : 단일 이미지 업로드 커맨드 모델 추가

* feat : 이미지 삭제 이벤트 모델 확장

* feat : 동아리 생성 이미지 업로드 이벤트 구현

* feat : 동아리 생성 후 이미지 업로드 이벤트 리스너 추가

* feat : 동아리 생성 이벤트 발행 어댑터 구현

* fix : 파일 스트림 업로드 처리 및 예외 로깅 보강

* feat : 동아리 생성 서비스 로직 및 검증 구현

* test : 어드민 동아리 생성 요청 응답 스텝 추가

* test : 어드민 동아리 정보 업로드 인수테스트 추가

* test : ClubCategory 변환 테스트 정리

* test : ClubDivision 변환 테스트 정리

* fix : 스토리지 Mock 어댑터 프로필 설정 조정

* fix : 스토리지 S3 어댑터 프로필 설정 조정

* refactor : logoImage를 iconImage 이름 통일

* fix : posterImage Null 분기 처리

* fix : 주석처리 해놓은 어노테이션 제거

* refactor : 동아리 등록 API 파라미터명 변경

* fix : 이벤트 생성 간 path 중복 사용 해결

* remove : 불필요 파일 제거

* remove : 미사용 파일 제거

* fix : reference type 대신 primitive type 사용하도록 수정

* fix : ClubSnsType 매핑 과정 구체화 및 예외 케이스 처리

* test : ClubSnsType 도메인 테스트 추가

* fix : ClubSnsType NPE 예외 처리

* feat : club icon_image_path 컬럼 마이그레이션 추가

* feat : 동아리 생성 성공 응답 코드 추가

* feat : 동아리 중복 생성 에러 코드 추가

* feat : 어드민 동아리 생성 요청 DTO 확장

* feat : 어드민 동아리 생성 응답 DTO 추가

* feat : 어드민 동아리 생성 API 추가

* feat : 동아리 생성 유스케이스 인터페이스 추가

* feat : 동아리 생성 커맨드 정의 추가

* feat : 동아리 생성 CommandPort 메서드 추가

* feat : 동아리 생성 이벤트 포트 확장

* feat : 동아리 중복 조회 포트 메서드 추가

* feat : 동아리 이름 소속 중복 조회 리포지토리 메서드 추가

* feat : ClubSns JPA Repository 구현 추가

* feat : 동아리 생성 중복체크 persistence 구현 추가

* feat : 동아리 카테고리 한글 매핑 지원 추가

* feat : 동아리 소속 한글 매핑 지원 추가

* feat : 동아리 SNS URL 도메인 객체 매핑 추가

* feat : SNS URL 기반 타입 판별 로직 추가

* feat : 스토리지 업로드 유스케이스 인터페이스 정의

* feat : 다중 파일 업로드 커맨드 모델 추가

* feat : 단일 이미지 업로드 커맨드 모델 추가

* feat : 이미지 삭제 이벤트 모델 확장

* feat : 동아리 생성 이미지 업로드 이벤트 구현

* feat : 동아리 생성 후 이미지 업로드 이벤트 리스너 추가

* feat : 동아리 생성 이벤트 발행 어댑터 구현

* fix : 파일 스트림 업로드 처리 및 예외 로깅 보강

* feat : 동아리 생성 서비스 로직 및 검증 구현

* test : 어드민 동아리 생성 요청 응답 스텝 추가

* test : 어드민 동아리 정보 업로드 인수테스트 추가

* test : ClubCategory 변환 테스트 정리

* test : ClubDivision 변환 테스트 정리

* fix : 스토리지 Mock 어댑터 프로필 설정 조정

* fix : 스토리지 S3 어댑터 프로필 설정 조정

* refactor : logoImage를 iconImage 이름 통일

* fix : posterImage Null 분기 처리

* fix : 주석처리 해놓은 어노테이션 제거

* refactor : 동아리 등록 API 파라미터명 변경

* fix : 이벤트 생성 간 path 중복 사용 해결

* remove : 불필요 파일 제거

* remove : 미사용 파일 제거

* fix : reference type 대신 primitive type 사용하도록 수정

* fix : ClubSnsType 매핑 과정 구체화 및 예외 케이스 처리

* test : ClubSnsType 도메인 테스트 추가

* fix : ClubSnsType NPE 예외 처리

* [fix]: 중복 마이그레이션 파일 제거

* [feat]: club 생성자 추가 및 building 엔티티 분리 적용

* [fix]: 동아리 생성 api @RequestPart → @RequestParam로 수정

* [fix]: 동아리 생성 테스트 posterimage 필드명 통일

* [fix]: data에 AdminClubCreateResponse 반환하도록 수정

* [fix]: data에 AdminClubCreateResponse 반환하도록 수정

---------

Co-authored-by: jiyun921 <ryn0921@naver.com>

---------

Co-authored-by: HanJu Kim <56250226+rlagkswn00@users.noreply.github.com>
* [fix]: 동아리 목록 조회 api 응답에 recruitmentStatus 필드 추가 (#384)

* [fix]: 동아리 목록 조회 api 응답에 recruitmentStatus 필드 추가

* [refactor]: 시간 계산 한번만 하도록 수정

* Feat : 어드민 동아리 업로드 API 구현 (#353)

* feat : club icon_image_path 컬럼 마이그레이션 추가

* feat : 동아리 생성 성공 응답 코드 추가

* feat : 동아리 중복 생성 에러 코드 추가

* feat : 어드민 동아리 생성 요청 DTO 확장

* feat : 어드민 동아리 생성 응답 DTO 추가

* feat : 어드민 동아리 생성 API 추가

* feat : 동아리 생성 유스케이스 인터페이스 추가

* feat : 동아리 생성 커맨드 정의 추가

* feat : 동아리 생성 CommandPort 메서드 추가

* feat : 동아리 생성 이벤트 포트 확장

* feat : 동아리 중복 조회 포트 메서드 추가

* feat : 동아리 이름 소속 중복 조회 리포지토리 메서드 추가

* feat : ClubSns JPA Repository 구현 추가

* feat : 동아리 생성 중복체크 persistence 구현 추가

* feat : 동아리 생성 필드 및 생성자 확장

* feat : 동아리 카테고리 한글 매핑 지원 추가

* feat : 동아리 소속 한글 매핑 지원 추가

* feat : 동아리 SNS URL 도메인 객체 매핑 추가

* feat : SNS URL 기반 타입 판별 로직 추가

* feat : 스토리지 업로드 유스케이스 인터페이스 정의

* feat : 다중 파일 업로드 커맨드 모델 추가

* feat : 단일 이미지 업로드 커맨드 모델 추가

* feat : 이미지 삭제 이벤트 모델 확장

* feat : 동아리 생성 이미지 업로드 이벤트 구현

* feat : 동아리 생성 후 이미지 업로드 이벤트 리스너 추가

* feat : 동아리 생성 이벤트 발행 어댑터 구현

* fix : 파일 스트림 업로드 처리 및 예외 로깅 보강

* feat : 동아리 생성 서비스 로직 및 검증 구현

* test : 어드민 동아리 생성 요청 응답 스텝 추가

* test : 어드민 동아리 정보 업로드 인수테스트 추가

* test : ClubCategory 변환 테스트 정리

* test : ClubDivision 변환 테스트 정리

* fix : 스토리지 Mock 어댑터 프로필 설정 조정

* fix : 스토리지 S3 어댑터 프로필 설정 조정

* refactor : logoImage를 iconImage 이름 통일

* fix : posterImage Null 분기 처리

* fix : 주석처리 해놓은 어노테이션 제거

* refactor : 동아리 등록 API 파라미터명 변경

* fix : 이벤트 생성 간 path 중복 사용 해결

* remove : 불필요 파일 제거

* remove : 미사용 파일 제거

* fix : reference type 대신 primitive type 사용하도록 수정

* fix : ClubSnsType 매핑 과정 구체화 및 예외 케이스 처리

* test : ClubSnsType 도메인 테스트 추가

* fix : ClubSnsType NPE 예외 처리

* feat : club icon_image_path 컬럼 마이그레이션 추가

* feat : 동아리 생성 성공 응답 코드 추가

* feat : 동아리 중복 생성 에러 코드 추가

* feat : 어드민 동아리 생성 요청 DTO 확장

* feat : 어드민 동아리 생성 응답 DTO 추가

* feat : 어드민 동아리 생성 API 추가

* feat : 동아리 생성 유스케이스 인터페이스 추가

* feat : 동아리 생성 커맨드 정의 추가

* feat : 동아리 생성 CommandPort 메서드 추가

* feat : 동아리 생성 이벤트 포트 확장

* feat : 동아리 중복 조회 포트 메서드 추가

* feat : 동아리 이름 소속 중복 조회 리포지토리 메서드 추가

* feat : ClubSns JPA Repository 구현 추가

* feat : 동아리 생성 중복체크 persistence 구현 추가

* feat : 동아리 카테고리 한글 매핑 지원 추가

* feat : 동아리 소속 한글 매핑 지원 추가

* feat : 동아리 SNS URL 도메인 객체 매핑 추가

* feat : SNS URL 기반 타입 판별 로직 추가

* feat : 스토리지 업로드 유스케이스 인터페이스 정의

* feat : 다중 파일 업로드 커맨드 모델 추가

* feat : 단일 이미지 업로드 커맨드 모델 추가

* feat : 이미지 삭제 이벤트 모델 확장

* feat : 동아리 생성 이미지 업로드 이벤트 구현

* feat : 동아리 생성 후 이미지 업로드 이벤트 리스너 추가

* feat : 동아리 생성 이벤트 발행 어댑터 구현

* fix : 파일 스트림 업로드 처리 및 예외 로깅 보강

* feat : 동아리 생성 서비스 로직 및 검증 구현

* test : 어드민 동아리 생성 요청 응답 스텝 추가

* test : 어드민 동아리 정보 업로드 인수테스트 추가

* test : ClubCategory 변환 테스트 정리

* test : ClubDivision 변환 테스트 정리

* fix : 스토리지 Mock 어댑터 프로필 설정 조정

* fix : 스토리지 S3 어댑터 프로필 설정 조정

* refactor : logoImage를 iconImage 이름 통일

* fix : posterImage Null 분기 처리

* fix : 주석처리 해놓은 어노테이션 제거

* refactor : 동아리 등록 API 파라미터명 변경

* fix : 이벤트 생성 간 path 중복 사용 해결

* remove : 불필요 파일 제거

* remove : 미사용 파일 제거

* fix : reference type 대신 primitive type 사용하도록 수정

* fix : ClubSnsType 매핑 과정 구체화 및 예외 케이스 처리

* test : ClubSnsType 도메인 테스트 추가

* fix : ClubSnsType NPE 예외 처리

* [fix]: 중복 마이그레이션 파일 제거

* [feat]: club 생성자 추가 및 building 엔티티 분리 적용

* [fix]: 동아리 생성 api @RequestPart → @RequestParam로 수정

* [fix]: 동아리 생성 테스트 posterimage 필드명 통일

* [fix]: data에 AdminClubCreateResponse 반환하도록 수정

* [fix]: data에 AdminClubCreateResponse 반환하도록 수정

---------

Co-authored-by: jiyun921 <ryn0921@naver.com>

* [fix] Rename �prod-kr.yml to prod-kr.yml (#394)

---------

Co-authored-by: HanJu Kim <56250226+rlagkswn00@users.noreply.github.com>
* [fix]: 동아리 목록 조회 api 응답에 recruitmentStatus 필드 추가 (#384)

* [fix]: 동아리 목록 조회 api 응답에 recruitmentStatus 필드 추가

* [refactor]: 시간 계산 한번만 하도록 수정

* Feat : 어드민 동아리 업로드 API 구현 (#353)

* feat : club icon_image_path 컬럼 마이그레이션 추가

* feat : 동아리 생성 성공 응답 코드 추가

* feat : 동아리 중복 생성 에러 코드 추가

* feat : 어드민 동아리 생성 요청 DTO 확장

* feat : 어드민 동아리 생성 응답 DTO 추가

* feat : 어드민 동아리 생성 API 추가

* feat : 동아리 생성 유스케이스 인터페이스 추가

* feat : 동아리 생성 커맨드 정의 추가

* feat : 동아리 생성 CommandPort 메서드 추가

* feat : 동아리 생성 이벤트 포트 확장

* feat : 동아리 중복 조회 포트 메서드 추가

* feat : 동아리 이름 소속 중복 조회 리포지토리 메서드 추가

* feat : ClubSns JPA Repository 구현 추가

* feat : 동아리 생성 중복체크 persistence 구현 추가

* feat : 동아리 생성 필드 및 생성자 확장

* feat : 동아리 카테고리 한글 매핑 지원 추가

* feat : 동아리 소속 한글 매핑 지원 추가

* feat : 동아리 SNS URL 도메인 객체 매핑 추가

* feat : SNS URL 기반 타입 판별 로직 추가

* feat : 스토리지 업로드 유스케이스 인터페이스 정의

* feat : 다중 파일 업로드 커맨드 모델 추가

* feat : 단일 이미지 업로드 커맨드 모델 추가

* feat : 이미지 삭제 이벤트 모델 확장

* feat : 동아리 생성 이미지 업로드 이벤트 구현

* feat : 동아리 생성 후 이미지 업로드 이벤트 리스너 추가

* feat : 동아리 생성 이벤트 발행 어댑터 구현

* fix : 파일 스트림 업로드 처리 및 예외 로깅 보강

* feat : 동아리 생성 서비스 로직 및 검증 구현

* test : 어드민 동아리 생성 요청 응답 스텝 추가

* test : 어드민 동아리 정보 업로드 인수테스트 추가

* test : ClubCategory 변환 테스트 정리

* test : ClubDivision 변환 테스트 정리

* fix : 스토리지 Mock 어댑터 프로필 설정 조정

* fix : 스토리지 S3 어댑터 프로필 설정 조정

* refactor : logoImage를 iconImage 이름 통일

* fix : posterImage Null 분기 처리

* fix : 주석처리 해놓은 어노테이션 제거

* refactor : 동아리 등록 API 파라미터명 변경

* fix : 이벤트 생성 간 path 중복 사용 해결

* remove : 불필요 파일 제거

* remove : 미사용 파일 제거

* fix : reference type 대신 primitive type 사용하도록 수정

* fix : ClubSnsType 매핑 과정 구체화 및 예외 케이스 처리

* test : ClubSnsType 도메인 테스트 추가

* fix : ClubSnsType NPE 예외 처리

* feat : club icon_image_path 컬럼 마이그레이션 추가

* feat : 동아리 생성 성공 응답 코드 추가

* feat : 동아리 중복 생성 에러 코드 추가

* feat : 어드민 동아리 생성 요청 DTO 확장

* feat : 어드민 동아리 생성 응답 DTO 추가

* feat : 어드민 동아리 생성 API 추가

* feat : 동아리 생성 유스케이스 인터페이스 추가

* feat : 동아리 생성 커맨드 정의 추가

* feat : 동아리 생성 CommandPort 메서드 추가

* feat : 동아리 생성 이벤트 포트 확장

* feat : 동아리 중복 조회 포트 메서드 추가

* feat : 동아리 이름 소속 중복 조회 리포지토리 메서드 추가

* feat : ClubSns JPA Repository 구현 추가

* feat : 동아리 생성 중복체크 persistence 구현 추가

* feat : 동아리 카테고리 한글 매핑 지원 추가

* feat : 동아리 소속 한글 매핑 지원 추가

* feat : 동아리 SNS URL 도메인 객체 매핑 추가

* feat : SNS URL 기반 타입 판별 로직 추가

* feat : 스토리지 업로드 유스케이스 인터페이스 정의

* feat : 다중 파일 업로드 커맨드 모델 추가

* feat : 단일 이미지 업로드 커맨드 모델 추가

* feat : 이미지 삭제 이벤트 모델 확장

* feat : 동아리 생성 이미지 업로드 이벤트 구현

* feat : 동아리 생성 후 이미지 업로드 이벤트 리스너 추가

* feat : 동아리 생성 이벤트 발행 어댑터 구현

* fix : 파일 스트림 업로드 처리 및 예외 로깅 보강

* feat : 동아리 생성 서비스 로직 및 검증 구현

* test : 어드민 동아리 생성 요청 응답 스텝 추가

* test : 어드민 동아리 정보 업로드 인수테스트 추가

* test : ClubCategory 변환 테스트 정리

* test : ClubDivision 변환 테스트 정리

* fix : 스토리지 Mock 어댑터 프로필 설정 조정

* fix : 스토리지 S3 어댑터 프로필 설정 조정

* refactor : logoImage를 iconImage 이름 통일

* fix : posterImage Null 분기 처리

* fix : 주석처리 해놓은 어노테이션 제거

* refactor : 동아리 등록 API 파라미터명 변경

* fix : 이벤트 생성 간 path 중복 사용 해결

* remove : 불필요 파일 제거

* remove : 미사용 파일 제거

* fix : reference type 대신 primitive type 사용하도록 수정

* fix : ClubSnsType 매핑 과정 구체화 및 예외 케이스 처리

* test : ClubSnsType 도메인 테스트 추가

* fix : ClubSnsType NPE 예외 처리

* [fix]: 중복 마이그레이션 파일 제거

* [feat]: club 생성자 추가 및 building 엔티티 분리 적용

* [fix]: 동아리 생성 api @RequestPart → @RequestParam로 수정

* [fix]: 동아리 생성 테스트 posterimage 필드명 통일

* [fix]: data에 AdminClubCreateResponse 반환하도록 수정

* [fix]: data에 AdminClubCreateResponse 반환하도록 수정

---------

Co-authored-by: jiyun921 <ryn0921@naver.com>

* [fix] Rename �prod-kr.yml to prod-kr.yml (#394)

* Feat: 캠퍼스맵 mock 조회 API 구현

* Feat: 캠퍼스맵 장소 및 운영시간 도메인 타입 추가

* Feat: 캠퍼스맵 조회 응답 모델 추가

* Feat: 캠퍼스맵 mock 조회 API 구현

* fix: 캠퍼스맵 건물 상세 조회 404 응답 형식 수정

* Test: 캠퍼스맵 조회 API 인수 테스트 추가

* Refactor: 캠퍼스맵 V2 API 경로 및 응답 DTO 정리

* Refactor: 캠퍼스맵 mock 데이터 및 건물 상세 응답 보강

* Test: 캠퍼스맵 V2 API 경로 반영

* Refactor: 캠퍼스맵 응답 구조 개선 및 mock 데이터 추가

* Refactor: 캠퍼스맵 mock API 응답 및 데이터 구조 개선

* Feat: 캠퍼스맵 mock 시설 및 검색 키워드 보강

* Fix: 실외 캠퍼스 시설 층 정보 수정

* Feat: 캠퍼스맵 장소 및 운영시간 도메인 구현

* Feat: 캠퍼스맵 장소 및 운영시간 도메인 구현

* Test: 캠퍼스맵 핵심 도메인 테스트 보강

* Fix: 캠퍼스 시설 소유 건물 검증 추가

* Refactor: 캠퍼스맵 도메인 에러 코드 분리

* Fix: 캠퍼스 시설 노출 순서 검증 추가

* Feat: 캠퍼스맵 카테고리 목록 조회 API 구현

* Refactor: 캠퍼스맵 mock 조회 API 분리

* Feat: 캠퍼스맵 카테고리 목록 조회 API 구현

* Test: 캠퍼스맵 카테고리 목록 조회 테스트 추가

* Refactor: 캠퍼스맵 카테고리 조회 ReadModel 적용

* Test: 캠퍼스맵 카테고리 ReadModel 조회 테스트 수정

* Feat: 캠퍼스맵 전체 건물 목록 조회 API 구현

* Feat: 캠퍼스맵 전체 건물 목록 조회 API 구현

* Refactor: 캠퍼스맵 건물 목록 조회 ReadModel 적용

* Chore: 캠퍼스맵 데이터 소스 기본값 설정

* Test: 캠퍼스맵 전체 건물 목록 조회 테스트 추가

* Feat: 캠퍼스맵 건물 키워드 검색 API 구현

* Feat: 캠퍼스맵 건물 키워드 검색 API 구현

* Test: 캠퍼스맵 건물 키워드 검색 테스트 추가

* Refactor: 캠퍼스맵 건물 키워드 검색 쿼리 개선

* Test: 캠퍼스맵 건물 키워드 검색 테스트 보완

* Feat: 캠퍼스맵 카테고리 기반 시설 목록 조회 API 구현

* Feat: 캠퍼스맵 카테고리 기반 시설 목록 조회 API 구현

* Test: 캠퍼스맵 카테고리 기반 시설 목록 조회 테스트 추가

* Fix: 캠퍼스맵 시설 카테고리 요청값 검증 강화

* Refactor: 캠퍼스맵 시설 카테고리 정규화 로직 수정

* Feat: 캠퍼스맵 운영기간 fallback 로직 추가

* Refactor: 캠퍼스맵 주말 판단 로직 공통 유틸 분리

* Refactor: 캠퍼스맵 운영기간 조회 구조 개선

* Test: 캠퍼스맵 조회 테스트 구조 보완

* Test: 캠퍼스맵 실제 조회 API 인수 테스트 추가

* Feat: 캠퍼스맵 건물 상세 조회 API 구현

* Feat: 캠퍼스맵 건물 상세 조회 API 구현

* Chore: 개발 환경 캠퍼스맵 데이터 소스 설정

* Test: 캠퍼스맵 건물 상세 조회 테스트 추가

* Refactor: 캠퍼스맵 건물 상세 조회 예외 처리 개선

* Refactor: 캠퍼스맵 mock 조회 API 제거

* Feat: 캠퍼스맵 건물 노출 우선순위 조회 구현

* Feat: 캠퍼스맵 건물 노출 우선순위 조회 구현

* Test: 캠퍼스맵 건물 노출 우선순위 조회 테스트 추가

* Fix: 캠퍼스맵 건물 노출 우선순위 정렬 수정

* Test: 캠퍼스맵 건물 노출 우선순위 정렬 테스트 추가

* Feat: 캠퍼스맵 건물 및 시설 통합 검색 API 구현

* Feat: 캠퍼스맵 시설 키워드 검색 구현

* Feat: 캠퍼스맵 건물 및 시설 통합 검색 API 구현

* Test: 캠퍼스맵 통합 검색 테스트 추가

* Refactor: 캠퍼스맵 시설 검색 정렬 로직 분리

* Test: 캠퍼스맵 통합 검색 인수 테스트 추가

* Refactor: 캠퍼스맵 시설 이미지를 건물 이미지로 통합

* Refactor: 캠퍼스맵 시설 이미지를 건물 이미지로 통합

* Refactor: 캠퍼스 시설 건물 이미지 경로 조회 캡슐화

* Test: Building 도메인 아키텍처 경계 검증 추가

* Test: 캠퍼스맵 통합 검색 시설 이미지 응답 검증 추가

* Feat: 캠퍼스맵 검색 건물 이미지 응답 추가

* Feat: 캠퍼스맵 검색 건물 이미지 응답 추가

* Test: 캠퍼스맵 검색 건물 이미지 응답 테스트 추가

* Refactor: 캠퍼스맵 검색 이미지 URL 중복 생성 방지

* Fix: 계절학기 개강 운영기간 판정 수정

* Refactor: 사용하지 않는 건물 요약 변환 메서드 제거

---------

Co-authored-by: 양지윤 <155087951+jiyun921@users.noreply.github.com>
Co-authored-by: HanJu Kim <56250226+rlagkswn00@users.noreply.github.com>
Co-authored-by: jiyun921 <ryn0921@naver.com>
@coderabbitai

coderabbitai Bot commented Sep 23, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

Navigate logical layers of code changes, visualize relationships, and explore their blast radius.

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Advanced

Run ID: a46cb805-0562-419e-abbb-88919463a3a9

📥 Commits

Reviewing files that changed from the base of the PR and between 34d7505 and df44382.

📒 Files selected for processing (3)
  • src/main/java/com/kustacks/kuring/building/adapter/out/calendar/AcademicEventPeriodAdapter.java
  • src/main/java/com/kustacks/kuring/building/application/service/CampusMapQueryService.java
  • src/test/java/com/kustacks/kuring/building/adapter/out/calendar/AcademicEventPeriodAdapterTest.java
💤 Files with no reviewable changes (1)
  • src/main/java/com/kustacks/kuring/building/application/service/CampusMapQueryService.java

Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review.


Walkthrough

계절학기 개강 이벤트를 정규 학기 시작 경계에서 제외하고, 해당 분류를 검증하는 테스트를 추가했습니다. 건물 요약 결과 생성 메서드는 호출부에서 전달한 이미지 URL을 사용합니다.

Changes

학사일정 운영 기간

Layer / File(s) Summary
계절학기 개강 경계 분류
src/main/java/com/kustacks/kuring/building/adapter/out/calendar/AcademicEventPeriodAdapter.java, src/test/java/com/kustacks/kuring/building/adapter/out/calendar/AcademicEventPeriodAdapterTest.java
개강 이벤트에 계절 문자열이 포함되면 학기 시작 경계로 분류하지 않습니다. 테스트는 계절학기 개강 일정이 있을 때 운영 기간이 VACATION인지 확인합니다.

캠퍼스 지도 건물 요약

Layer / File(s) Summary
해석된 이미지 URL 전달
src/main/java/com/kustacks/kuring/building/application/service/CampusMapQueryService.java
toBuildingSummaryResult가 사전에 해석된 이미지 URL을 인자로 받아 결과에 사용합니다.

Priority: ⬇️ Low

Change: Other

Merge Risk: ⚪ Minimal · up to df443

The changed calendar classification and building image URL paths have no identified merge-blocking issue. The PR is mergeable after normal checks.

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 4 functions across 2 files. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed 제목은 main 브랜치 변경사항을 develop 브랜치에 동기화한다는 PR의 주요 목적을 정확하게 설명합니다.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
  • Fix all pre-merge checks with AI
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR

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.

❤️ Share

토끼가 달력 위에 귀를 세우고
계절 개강은 방학 칸에 놓아요
건물 사진 주소도 받아 들고
테스트가 그 자리를 확인해요
깡충, 바뀐 코드를 축하해요!

Comment @coderabbitai help to get the list of available commands.

@sonarqubecloud

Copy link
Copy Markdown

@github-actions

Copy link
Copy Markdown

Unit Test Results

  98 files    98 suites   2m 33s ⏱️
678 tests 670 ✔️ 8 💤 0 ❌
681 runs  673 ✔️ 8 💤 0 ❌

Results for commit df44382.

@rlagkswn00 rlagkswn00 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

앞으로 이렇게 안해도 될 방법을 한번 찾아보시쥬
제 경험상 feat ->dev는 스쿼시 머지 하고, dev -> main은 머지커밋하면 됏던거같은데 말이쥬

@rlagkswn00 rlagkswn00 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

잠만여 좀만더 확인해볼게요

@jiyun921

Copy link
Copy Markdown
Collaborator

앗 앞으로는 dev → main은 스쿼시 머지 안하도록 확인 잘 하고 머지하겠습니다 저도 이 부분을 놓친것같네요 ㅜㅜ 감사합니다!!

@kimjuneon
kimjuneon merged commit 1f679b6 into develop Sep 29, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants