Skip to content

fix: 동아리 정보 수정 요청에서 이모지 제외#651

Merged
dh2906 merged 1 commit into
developfrom
fix/exclude-club-update-emoji
May 29, 2026
Merged

fix: 동아리 정보 수정 요청에서 이모지 제외#651
dh2906 merged 1 commit into
developfrom
fix/exclude-club-update-emoji

Conversation

@dh2906
Copy link
Copy Markdown
Contributor

@dh2906 dh2906 commented May 29, 2026

🔍 개요

  • 동아리 정보 수정 요청에서 이모지가 더 이상 요청, 저장, Slack 알림 대상이 아니게 됩니다.
  • 등록 요청 API의 이모지 입력은 유지하고, 기존 동아리 정보 수정 요청 계약만 기획 범위에 맞게 좁혔습니다.

🚀 주요 변경 내용

  • 수정 요청 DTO, 저장 엔티티, 이벤트 payload, Slack 알림에서 요청 이모지 경로를 제거했습니다.
  • club_information_update_request.club_emoji 컬럼을 후속 마이그레이션으로 제거했습니다.
  • API, 서비스, Slack 알림 테스트를 수정 요청 이모지 제외 계약에 맞게 갱신했습니다.

💬 참고 사항

  • ./gradlew test --tests 'gg.agit.konect.unit.domain.club.service.ClubRegistrationRequestServiceTest' --tests 'gg.agit.konect.integration.domain.club.ClubRegistrationRequestApiTest' --tests 'gg.agit.konect.unit.infrastructure.slack.service.SlackNotificationServiceTest' --tests 'gg.agit.konect.unit.infrastructure.slack.listener.ClubRegistrationRequestSlackListenerTest' 통과
  • ./gradlew checkstyleMain 통과
  • git diff --check 통과
  • push 전 훅에서 IntelliJ 포맷 대상 확인, checkstyleMain, compileJava가 통과했습니다.

✅ Checklist (완료 조건)

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

Compound Engineering
GPT-5

- 이모지는 기획상 수정 대상이 아니므로 수정 요청 DTO와 알림 payload에서 제외
- 수정 요청 저장 시 이모지 값을 요구하지 않도록 엔티티와 서비스 흐름을 정리
- 기존 수정 요청 테이블의 이모지 컬럼을 후속 마이그레이션으로 제거해 저장 실패를 방지
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 29, 2026

Review Change Stack

📝 Walkthrough

Walkthrough

이 PR은 동아리 정보 수정 요청에서 emoji 필드를 제거합니다. DTO, 도메인 모델, 이벤트, Slack 서비스 통합, 데이터베이스 마이그레이션, 관련 테스트를 모두 업데이트하여 emoji 필드 제거를 완성합니다.

Changes

Club Emoji Field Removal

Layer / File(s) Summary
Domain Model & Event Contracts
src/main/java/gg/agit/konect/domain/club/dto/ClubInformationUpdateRequestDto.java, src/main/java/gg/agit/konect/domain/club/event/ClubInformationUpdateRequestedEvent.java, src/main/java/gg/agit/konect/domain/club/model/ClubInformationUpdateRequest.java
ClubInformationUpdateRequestDtoClubInformationUpdateRequestedEvent 레코드에서 emoji 컴포넌트를 제거합니다. ClubInformationUpdateRequest 엔티티에서도 clubEmoji 필드, 생성자 파라미터, 필드 초기화를 제거합니다.
Service & Slack Integration
src/main/java/gg/agit/konect/domain/club/service/ClubRegistrationRequestService.java, src/main/java/gg/agit/konect/infrastructure/slack/enums/SlackMessageTemplate.java, src/main/java/gg/agit/konect/infrastructure/slack/listener/ClubRegistrationRequestSlackListener.java, src/main/java/gg/agit/konect/infrastructure/slack/service/SlackNotificationService.java
ClubRegistrationRequestService의 빌더에서 emoji 설정을 제거합니다. SlackNotificationService.notifyClubInformationUpdateRequest() 메서드 시그니처에서 requestedEmoji 파라미터를 제거하고, Slack 리스너 호출과 메시지 포맷 인자를 업데이트합니다.
Database Schema Migration
src/main/resources/db/migration/V84__drop_club_information_update_request_emoji.sql
club_information_update_request 테이블에서 club_emoji 컬럼을 삭제하는 마이그레이션을 추가합니다.
Test Updates
src/test/java/gg/agit/konect/integration/domain/club/ClubRegistrationRequestApiTest.java, src/test/java/gg/agit/konect/unit/domain/club/service/ClubRegistrationRequestServiceTest.java, src/test/java/gg/agit/konect/unit/infrastructure/slack/listener/ClubRegistrationRequestSlackListenerTest.java, src/test/java/gg/agit/konect/unit/infrastructure/slack/service/SlackNotificationServiceTest.java
DTO 생성, 빌더 설정, Slack 호출 검증 및 메시지 assertion에서 emoji 관련 인자와 검증을 제거하여 모든 테스트를 업데이트합니다.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Possibly related PRs

  • BCSDLab/KONECT_BACK_END#642: 해당 PR에서 도입한 clubEmoji/requestedEmoji 필드를 본 PR에서 일관성 있게 제거합니다.

Suggested labels

버그

🐰 동아리 이모지는 요청 사항에서,

메모리 속으로 흩어집니다.

DTO부터 DB까지,

깔끔하게 제거되었네요! ✨

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed PR 제목이 주요 변경 사항을 명확하고 간결하게 요약하고 있습니다. '동아리 정보 수정 요청에서 이모지 제외'는 변경 사항의 핵심을 정확히 나타냅니다.
Description check ✅ Passed PR 설명이 변경 사항과 직접적으로 관련되어 있으며, 개요, 주요 변경 내용, 참고 사항, 체크리스트 등으로 구성되어 충분한 맥락을 제공합니다.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
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.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/exclude-club-update-emoji

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.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In
`@src/main/resources/db/migration/V84__drop_club_information_update_request_emoji.sql`:
- Around line 1-2: The migration
V84__drop_club_information_update_request_emoji.sql drops the club_emoji column
from club_information_update_request with no rollback or runbook; add a
reversible path by either (a) creating a companion rollback migration that
re-creates club_emoji with the original type and restores data from a backup
table, or (b) modify the migration process to perform a safe multi-step deploy:
first deploy an app change that stops using club_emoji, then add a migration
that copies club_emoji to a temp table/column (preserving values), then drop the
column in a follow-up migration, and include a runbook in the PR describing the
app-first deployment order and recovery steps; reference the table name
club_information_update_request and column club_emoji in the migration/runbook
and ensure the rollback migration restores schema and data types exactly.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 825dafd1-3dfc-467f-b803-6015bada1610

📥 Commits

Reviewing files that changed from the base of the PR and between 899db1c and 73e076c.

📒 Files selected for processing (12)
  • src/main/java/gg/agit/konect/domain/club/dto/ClubInformationUpdateRequestDto.java
  • src/main/java/gg/agit/konect/domain/club/event/ClubInformationUpdateRequestedEvent.java
  • src/main/java/gg/agit/konect/domain/club/model/ClubInformationUpdateRequest.java
  • src/main/java/gg/agit/konect/domain/club/service/ClubRegistrationRequestService.java
  • src/main/java/gg/agit/konect/infrastructure/slack/enums/SlackMessageTemplate.java
  • src/main/java/gg/agit/konect/infrastructure/slack/listener/ClubRegistrationRequestSlackListener.java
  • src/main/java/gg/agit/konect/infrastructure/slack/service/SlackNotificationService.java
  • src/main/resources/db/migration/V84__drop_club_information_update_request_emoji.sql
  • src/test/java/gg/agit/konect/integration/domain/club/ClubRegistrationRequestApiTest.java
  • src/test/java/gg/agit/konect/unit/domain/club/service/ClubRegistrationRequestServiceTest.java
  • src/test/java/gg/agit/konect/unit/infrastructure/slack/listener/ClubRegistrationRequestSlackListenerTest.java
  • src/test/java/gg/agit/konect/unit/infrastructure/slack/service/SlackNotificationServiceTest.java
💤 Files with no reviewable changes (11)
  • src/main/java/gg/agit/konect/domain/club/dto/ClubInformationUpdateRequestDto.java
  • src/main/java/gg/agit/konect/domain/club/model/ClubInformationUpdateRequest.java
  • src/main/java/gg/agit/konect/domain/club/service/ClubRegistrationRequestService.java
  • src/main/java/gg/agit/konect/infrastructure/slack/service/SlackNotificationService.java
  • src/test/java/gg/agit/konect/integration/domain/club/ClubRegistrationRequestApiTest.java
  • src/test/java/gg/agit/konect/unit/domain/club/service/ClubRegistrationRequestServiceTest.java
  • src/main/java/gg/agit/konect/infrastructure/slack/listener/ClubRegistrationRequestSlackListener.java
  • src/test/java/gg/agit/konect/unit/infrastructure/slack/service/SlackNotificationServiceTest.java
  • src/test/java/gg/agit/konect/unit/infrastructure/slack/listener/ClubRegistrationRequestSlackListenerTest.java
  • src/main/java/gg/agit/konect/domain/club/event/ClubInformationUpdateRequestedEvent.java
  • src/main/java/gg/agit/konect/infrastructure/slack/enums/SlackMessageTemplate.java
📜 Review details
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
  • GitHub Check: coverage
  • GitHub Check: Analyze (java-kotlin)
🧰 Additional context used
📓 Path-based instructions (4)
**/db/migration/*.sql

📄 CodeRabbit inference engine (.github/copilot-instructions.md)

Flyway 마이그레이션 파일은 파일명 버전 순서, 기존 운영 데이터 backfill, NOT NULL 추가 순서, 기본값 처리를 확인한다

Files:

  • src/main/resources/db/migration/V84__drop_club_information_update_request_emoji.sql
**/*.{sql,java}

📄 CodeRabbit inference engine (.github/copilot-instructions.md)

데이터베이스 변경에서는 마이그레이션 순서, 기존 데이터 호환성, nullable/default 처리, 롤백 난이도, 인덱스 필요성을 확인한다

Files:

  • src/main/resources/db/migration/V84__drop_club_information_update_request_emoji.sql
src/main/resources/db/migration/**/*.sql

⚙️ CodeRabbit configuration file

src/main/resources/db/migration/**/*.sql: Flyway 마이그레이션 리뷰 규칙:

  • 버전 파일명 규칙(V{number}__{description}.sql) 위반 여부를 우선 확인한다.
  • 이미 배포된 마이그레이션 수정/재번호 부여 위험이 있으면 반드시 차단 코멘트를 남긴다.
  • 파괴적 변경(drop, rename 등)은 롤백 가능성과 운영 영향 관점에서 검토한다.

Files:

  • src/main/resources/db/migration/V84__drop_club_information_update_request_emoji.sql
**/*

⚙️ CodeRabbit configuration file

**/*: 공통 리뷰 톤 가이드:

  • 모든 코멘트는 첫 줄에 [LEVEL: ...] 태그를 포함한다.
  • 과장된 표현 없이 사실 기반으로 작성한다.
  • 한 코멘트에는 하나의 이슈만 다룬다.
  • 코드 예시가 필요하면 최소 수정 예시를 제시한다.
  • 가독성/단순화/확장성 이슈를 발견하면 우선순위를 높여 코멘트한다.

Files:

  • src/main/resources/db/migration/V84__drop_club_information_update_request_emoji.sql

@github-actions
Copy link
Copy Markdown

🧪 JaCoCo Coverage Report (Changed Files)

Summary

  • Overall Coverage: 85.7% ✅
  • Covered Lines: 132 / 154
  • Changed Files: 7

Coverage by File

Class Coverage Lines Status
SlackNotificationService
gg.agit.konect.infrastructure.slack.service
58.5% 31/53 ⚠️
ClubInformationUpdateRequestedEvent
gg.agit.konect.domain.club.event
100.0% 20/20
SlackMessageTemplate
gg.agit.konect.infrastructure.slack.enums
100.0% 12/12
ClubRegistrationRequestSlackListener
gg.agit.konect.infrastructure.slack.listener
100.0% 37/37
ClubRegistrationRequestService
gg.agit.konect.domain.club.service
100.0% 32/32

📊 View Workflow Run

@dh2906 dh2906 merged commit c6b3a36 into develop May 29, 2026
5 checks passed
@dh2906 dh2906 deleted the fix/exclude-club-update-emoji branch May 29, 2026 04:15
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.

1 participant