Skip to content

develop -> main#644

Merged
JanooGwan merged 19 commits into
mainfrom
develop
May 28, 2026
Merged

develop -> main#644
JanooGwan merged 19 commits into
mainfrom
develop

Conversation

@JanooGwan

Copy link
Copy Markdown
Contributor

🔍 개요


🚀 주요 변경 내용


💬 참고 사항


✅ Checklist (완료 조건)

  • 코드 스타일 가이드 준수
  • 테스트 코드 포함됨
  • Reviewers / Assignees / Labels 지정 완료
  • 보안 및 민감 정보 검증 (API 키, 환경 변수, 개인정보 등)

dh2906 and others added 19 commits May 22, 2026 12:24
- 분과보다 세부적인 동아리 성격을 표현할 수 있도록 club 테이블에 topic 컬럼을 추가

- 동아리 생성과 기본정보 수정 시 주제를 함께 저장해 응답 데이터가 비어 있는 상태를 방지

- 기존에 분과명을 반환하던 동아리 목록, 상세, 가입/관리/지원, 웹 공개 API 응답에 topic을 함께 노출

- 기존 데이터는 마이그레이션 기본값으로 채워 컬럼 추가 시 배포 충돌을 줄임
* chore: 동아리 등록 요청 테이블 마이그레이션 추가

* feat: 동아리 등록 요청 엔티티 및 리포지토리 추가

* feat: 동아리 등록 요청 DTO 추가

* feat: 동아리 등록 요청 서비스 및 슬랙 알림 추가

* feat: 동아리 등록 요청 API 및 비로그인 허용 설정 추가

* feat: 슬랙 알림 템플릿에 동아리 등록 요청 메시지 추가

* test: 동아리 등록 요청 API 테스트 추가

* refactor: 웹 모델 패키지를 website 도메인으로 정리

- 웹사이트 전용 엔티티가 사용하는 서비스와 DTO의 도메인 경계에 놓이도록 패키지를 이동

- QueryDSL static import와 테스트 fixture import를 함께 정리해 생성 클래스 경로 불일치를 방지

- 테이블명은 유지해 DB 스키마 변경 없이 Java 패키지 경계만 정리

* chore: 코드 포맷팅

* chore: 동아리 등록 요청 이미지 테이블 분리

* feat: 동아리 등록 요청 이미지 엔티티 추가 및 연관관계 설정

* refactor: 이미지 저장 로직을 별도 테이블 기반으로 변경

* fix: 동아리 등록 요청 리뷰 피드백 반영

- 생성 요청은 201 응답으로 맞춰 클라이언트가 리소스 생성 성공을 일관되게 판단할 수 있게 정리

- 사진 및 영상은 최대 개수 제한만 유지해 무첨부 요청을 허용하는 API 계약과 저장 로직을 일치

- Slack 알림은 커밋 이후 이벤트 리스너에서 처리해 외부 연동 실패가 등록 저장을 롤백하지 않도록 분리

- 공개 접근은 경로 전체 예외 대신 @publicapi 메서드 단위로 제한해 같은 경로의 향후 메서드가 자동 공개되지 않도록 정리

- 실제 null 반환 가능성이 있는 웹사이트 동아리 응답의 대학 정보 문서화를 선택값으로 맞춤

* fix: 등록 요청 이미지 builder 출력 범위 제한

- Builder 문자열 출력에서 요청 엔티티 연관관계를 제외해 불필요한 객체 그래프 노출을 피함

- 기능 동작은 유지하면서 정적 분석 경고만 좁게 해소
* fix: web_club 불필요 컬럼 제거

- 웹 전용 동아리 테이블에서 응답에 사용하지 않는 회비, 모집, 신청, Google 연동 컬럼을 제거한다
- WebClub 엔티티 매핑도 함께 줄여 컬럼 제거 후 JPA 조회가 존재하지 않는 필드를 참조하지 않도록 한다
- 테스트 fixture에서 삭제된 필드 설정을 제거해 웹 동아리 생성 경로를 현재 스키마와 맞춘다

* fix: 등록 요청 이미지 감사 컬럼 추가

- ClubRegistrationRequestImage가 BaseEntity를 상속하므로 테이블에도 updated_at 컬럼을 추가한다
- 기존 V77을 수정하지 않고 후속 마이그레이션으로 처리해 이미 적용된 환경의 Flyway checksum 충돌을 피한다
- 공통 엔티티 감사 컬럼 계약과 실제 DB 스키마를 일치시킨다

* fix: club topic 필드 제거

- club 테이블에서 더 이상 유지하지 않을 topic 컬럼을 제거한다
- club 기반 생성, 수정, 조회 응답 계약에서 topic을 함께 제외해 DB 스키마와 API 모델을 맞춘다
- 관련 서비스, projection, 테스트 데이터를 정리해 컬럼 제거 후 컴파일과 조회 경로가 깨지지 않도록 한다
- 운영자가 별도 조회 없이 등록 요청 내용을 확인할 수 있도록 상세 소개와 이미지 URL 목록까지 Slack 이벤트에 포함
- 이미지가 없는 요청도 명확히 구분되도록 메시지에 없음 상태를 표시
- Slack 메시지 포맷과 이벤트 payload 전달 범위를 테스트로 고정해 누락 회귀를 방지
- 운영자가 요청 내용을 더 자연스럽게 읽을 수 있도록 Slack 메시지 구성을 필드 라벨 중심으로 정리
- 동아리명 앞에는 요청 이모지를 사용하고 같은 값을 별도 요청 이모지 필드로도 표시해 입력값을 확인할 수 있게 구성
- 이미지 URL은 불필요한 quote와 번호를 제거해 요청에 들어온 값 그대로 확인할 수 있도록 조정
- 대학별 동아리 목록에서 totalCount는 필터링된 목록 개수로 유지해 기존 페이지네이션 의미를 보존

- 대학 전체 동아리 수는 university.clubCount로 분리해 분과 필터와 무관한 대학 요약값으로 제공

- 전체 동아리 수 카운트는 기존 공통 동아리 조건을 재사용해 조회 조건이 drift되지 않도록 정리
* fix: 웹사이트 필터 목록을 표시명 순서로 정렬

- 분과와 지역 필터가 프론트엔드에서 별도 정렬 없이 일관된 순서로 노출되도록 응답 생성 기준을 정리

- 준동아리와 지역 미지정은 실제 필터 성격이 다르므로 일반 가나다 정렬에서 제외해 마지막에 노출

- 통합 테스트에서 분과와 지역 반환 순서를 고정해 응답 계약 회귀를 방지

* chore: 코드 포맷팅
* feat: 기존 동아리 정보 수정 요청 API 추가

- 기존 동아리 정보를 바로 변경하지 않고 운영자가 확인할 수 있도록 수정 요청을 별도 테이블에 저장한다
- 동아리 등록 요청과 같은 공개 요청 저장 및 커밋 후 Slack 알림 패턴을 사용해 운영 알림 흐름을 맞춘다
- 존재하지 않는 동아리 ID로 요청이 저장되지 않도록 대상 동아리를 먼저 조회한다
- API, 서비스, Slack 위임, 메시지 포맷 테스트를 함께 추가해 요청 저장과 알림 흐름을 검증한다

* chore: 코드 포맷팅

* fix: 동아리 수정 요청 알림에 변경 전후 값을 표시

- 운영자가 수정 요청을 검토할 때 기존 값과 요청 값을 바로 비교할 수 있도록 Slack 이벤트 payload를 확장한다
- 동아리명뿐 아니라 분과, 한 줄 소개, 이미지, 위치, 상세 소개를 모두 현재 값에서 요청 값으로 표시한다
- 요청 저장 구조는 유지해 실제 동아리 정보가 즉시 변경되지 않는 기존 승인 흐름을 보존한다
- 이벤트 매핑과 Slack 메시지 포맷 테스트를 함께 수정해 비교 표시가 깨지지 않도록 한다

* fix: 수정 요청 builder 출력에서 club 참조 제외

- Lombok builder 출력에 연관 엔티티의 기본 Object 문자열이 포함되지 않도록 club 필드를 제외한다
- 엔티티 매핑과 요청 저장 흐름은 그대로 유지해 리뷰 지적 범위만 최소 수정한다
- 디버그 문자열에서 의미 없는 객체 참조가 노출되는 상태를 방지한다

* fix: 동아리 수정 요청 비교 기준을 웹 동아리로 변경

- 수정 요청에서 운영자가 확인하는 현재값을 앱용 club이 아니라 웹 노출용 web_club 기준으로 조회한다
- 요청 저장 FK도 web_club을 바라보게 맞춰 비교 대상과 저장 대상의 의미가 어긋나지 않도록 한다
- 기존 요청 저장과 Slack 알림 흐름은 유지하고 비교 기준만 웹 동아리 데이터로 좁힌다
- 통합 테스트와 서비스 테스트를 web_club fixture 기반으로 바꿔 API path의 clubId 해석을 고정한다

* fix: 동아리 수정 요청 입력을 등록 요청과 맞춤

- 수정 요청도 등록 요청과 같은 필드셋을 받도록 대학명, 주제, 이모지, 첨부 이미지 목록을 포함한다
- 요청 이미지 목록은 등록 요청과 같이 별도 이미지 테이블에 순서와 함께 저장한다
- 웹 동아리 현재값과 요청값 비교 알림은 등록 요청 필드 기준으로 재정렬한다
- 기존 위치와 로고 단일 URL 입력을 제거해 등록 요청과 수정 요청 계약이 달라지는 혼선을 줄인다

* chore: 코드 포맷팅

* fix: 동아리 수정 요청 알림 변경값만 비교 표시

- 현재값과 요청값이 같은 항목은 단일 값으로 표시해 불필요한 비교 화살표를 줄인다
- 값이 달라진 항목만 초기값에서 변경값으로 이어지는 형태로 보여 운영자가 실제 변경 내용을 빠르게 볼 수 있게 한다
- 인라인 값과 긴 본문 값의 표시 방식을 분리해 Slack 메시지 가독성을 유지한다

* fix: 동아리 수정 요청 입력 검증 보강

- 수정 요청 이미지 URL 원소에도 빈 값과 길이 제한을 적용해 잘못된 URL이 저장되지 않도록 정리
- 요청별 이미지 표시 순서가 중복 저장되지 않도록 DB 유니크 제약을 추가
- 존재하지 않는 동아리 테스트가 임의 숫자에 의존하지 않도록 경계값을 사용

* chore: 코드 포맷팅

* fix: PR 리뷰 피드백 반영

- 수정 요청 엔티티의 문자열 출력에서 웹 동아리 참조가 노출되지 않도록 안전한 toString 생성을 명시
- 수정 요청 상태값이 허용된 enum 값으로만 저장되도록 DB 제약을 추가

* refactor: 수정 요청 DTO 이름 정리

- API 요청 타입에서 Dto 접미사를 제거해 기존 요청 DTO 네이밍과 맞춤
- 같은 이름의 저장 모델과 충돌하지 않도록 엔티티 타입을 명시적으로 분리
- 서비스와 테스트 참조를 새 타입명에 맞춰 정리해 FQCN 없이 읽히도록 유지

* Revert "refactor: 수정 요청 DTO 이름 정리"

This reverts commit 46fcbbb.
feat: 동아리 분과 카테고리 8종 개편
@JanooGwan JanooGwan self-assigned this May 28, 2026
@coderabbitai

coderabbitai Bot commented May 28, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: a2593b76-23d1-49b2-abb7-b82066784d65

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch develop

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 and usage tips.

@JanooGwan JanooGwan added the 배포 운영 서버의 배포 관련 이슈입니다. label May 28, 2026
@github-actions

Copy link
Copy Markdown

🧪 JaCoCo Coverage Report (Changed Files)

Summary

  • Overall Coverage: 92.2% ✅
  • Covered Lines: 295 / 320
  • Changed Files: 25

Coverage by File

Class Coverage Lines Status
SlackNotificationService
gg.agit.konect.infrastructure.slack.service
58.5% 31/53 ⚠️
WebsiteQueryRepository
gg.agit.konect.domain.website.repository
96.7% 88/91
WebsiteService
gg.agit.konect.domain.website.service
100.0% 28/28
ClubRegistrationRequestedEvent
gg.agit.konect.domain.club.event
100.0% 14/14
ClubInformationUpdateRequestedEvent
gg.agit.konect.domain.club.event
100.0% 21/21
UniversityRegion
gg.agit.konect.domain.university.enums
100.0% 14/14
ClubCategory
gg.agit.konect.domain.club.enums
100.0% 12/12
ClubRegistrationRequestController
gg.agit.konect.domain.club.controller
100.0% 4/4
SlackMessageTemplate
gg.agit.konect.infrastructure.slack.enums
100.0% 12/12
ClubRegistrationRequestSlackListener
gg.agit.konect.infrastructure.slack.listener
100.0% 38/38
ClubRegistrationRequestService
gg.agit.konect.domain.club.service
100.0% 33/33

📊 View Workflow Run

@JanooGwan JanooGwan merged commit 166263b into main May 28, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

배포 운영 서버의 배포 관련 이슈입니다.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants