Skip to content

[SOU-638] 롤백 및 찜 과 DB 백업 파이프라인 구축#262

Merged
Develop-KIM merged 10 commits into
developfrom
rollback/SOU-638-revert-to-455c656
May 22, 2026
Merged

[SOU-638] 롤백 및 찜 과 DB 백업 파이프라인 구축#262
Develop-KIM merged 10 commits into
developfrom
rollback/SOU-638-revert-to-455c656

Conversation

@Develop-KIM

@Develop-KIM Develop-KIM commented May 22, 2026

Copy link
Copy Markdown
Member

Summary by CodeRabbit

릴리스 노트

  • Bug Fixes

    • Apple 마이그레이션 관련 오류 처리 추가
  • Chores

    • 이메일 브로드캐스트 기능 제거
    • 푸시 알림 시스템 제거
    • Firebase 통합 제거
    • SMTP 메일 설정 제거
    • 개발/프로덕션 환경의 모니터링 및 로깅 스택 제거
    • 배포 프로세스 간소화

Review Change Stack

Develop-KIM and others added 10 commits May 22, 2026 18:19
* fix: 디스크 사용량 모니터링 스크립트 수정

* chore: 불필요한 주석 제거

* chore: 오타 수정
* feat: 찜 레포지토리 구현

* feat: 찜 비즈니스 로직 구현

* feat: 찜 응답 DTO 정의

* feat: 찜 API 구현

* feat: 찜 관련 에러코드 추가
* [SOU-593] 기념품 조회 응답에 찜 수/여부 추가 (#250)

* feat: 찜 수 집계 쿼리 추가

* feat: 찜 수 및 찜 ID 목록 조회 쿼리 추가

* feat: 기념품 상세 조회에 찜 수/여부 추가

* feat: 근처 기념품 목록 조회에 찜 수/여부 추가

* feat: 내 기념품 목록 조회에 찜 수/여부 추가

* feat: 일반 추천 기념품 조회에 찜 수/여부 추가

* feat: AI 추천 기념품 조회에 찜 수/여부 추가

* test: 찜 수/여부 추가에 따른 테스트 수정

* [SOU-571] 찜 기능 테스트 코드 및 API 문서 작성 (#251)

* feat: 찜 기능 테스트 코드 및 API 문서 작성

* feat: 찜 목록 조회 응답에 isWishlisted 필드 추가

* [SOU-601] 탈퇴 유저 삭제 배치 스케줄러 구현 (#252)

* feat: 탈퇴 유저 삭제 배치 스케줄러 추가

* feat: 탈퇴 유저 삭제 로직 반환값 추가 및 테스트 수정

* chore: 불필요한 import 구문 제거

* fix: userId UUID 타입 불일치로 인한 NumberFormatException 수정 (#253)

* feat: 탈퇴 유저 배치 삭제로 정책 변경 및 테스트 수정 (#254)

* feat: 정보 동의한 회원들에게만 알림을 발송하도록 수정 (#255)

* refactor: auth 바운디드 컨텍스트 수정

* fix: 깃 충돌 수정

* refactor: 정책에 따라 테스트 코드 수정

* [SOU-622] Docker DB 전환 및 자동 백업 파이프라인 구축

---------

Co-authored-by: johoon030 <142702766+hoonjo123@users.noreply.github.com>
Co-authored-by: Develop-KIM <kimdonghwan913@gmail.com>
Co-authored-by: monkey <105265603+Develop-KIM@users.noreply.github.com>
* [SOU-593] 기념품 조회 응답에 찜 수/여부 추가 (#250)

* feat: 찜 수 집계 쿼리 추가

* feat: 찜 수 및 찜 ID 목록 조회 쿼리 추가

* feat: 기념품 상세 조회에 찜 수/여부 추가

* feat: 근처 기념품 목록 조회에 찜 수/여부 추가

* feat: 내 기념품 목록 조회에 찜 수/여부 추가

* feat: 일반 추천 기념품 조회에 찜 수/여부 추가

* feat: AI 추천 기념품 조회에 찜 수/여부 추가

* test: 찜 수/여부 추가에 따른 테스트 수정

* [SOU-571] 찜 기능 테스트 코드 및 API 문서 작성 (#251)

* feat: 찜 기능 테스트 코드 및 API 문서 작성

* feat: 찜 목록 조회 응답에 isWishlisted 필드 추가

* [SOU-601] 탈퇴 유저 삭제 배치 스케줄러 구현 (#252)

* feat: 탈퇴 유저 삭제 배치 스케줄러 추가

* feat: 탈퇴 유저 삭제 로직 반환값 추가 및 테스트 수정

* chore: 불필요한 import 구문 제거

* fix: userId UUID 타입 불일치로 인한 NumberFormatException 수정 (#253)

* feat: 탈퇴 유저 배치 삭제로 정책 변경 및 테스트 수정 (#254)

* feat: 정보 동의한 회원들에게만 알림을 발송하도록 수정 (#255)

* refactor: auth 바운디드 컨텍스트 수정

* fix: 깃 충돌 수정

* refactor: 정책에 따라 테스트 코드 수정

* [SOU-622] Docker DB 전환 및 자동 백업 파이프라인 구축

* feat: db 백업 자동화 스크립트 추가 (#259)

---------

Co-authored-by: johoon030 <142702766+hoonjo123@users.noreply.github.com>
Co-authored-by: Develop-KIM <kimdonghwan913@gmail.com>
Co-authored-by: monkey <105265603+Develop-KIM@users.noreply.github.com>
@coderabbitai

coderabbitai Bot commented May 22, 2026

Copy link
Copy Markdown

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 6095c016-fa80-4160-881c-91252254adc5

📥 Commits

Reviewing files that changed from the base of the PR and between 42252b1 and 5628c92.

📒 Files selected for processing (66)
  • .github/workflows/dev-cicd.yaml
  • .github/workflows/prod-cicd.yaml
  • Dockerfile
  • build.gradle
  • deploy/dev/docker-compose.app.yaml
  • deploy/dev/docker-compose.db.yaml
  • deploy/dev/docker-compose.monitoring.yaml
  • deploy/dev/prometheus.yaml
  • deploy/dev/scripts/deploy.sh
  • deploy/prod/docker-compose.blue.yaml
  • deploy/prod/docker-compose.green.yaml
  • deploy/prod/docker-compose.logging.yaml
  • deploy/prod/docker-compose.monitoring.yaml
  • deploy/prod/loki-config.yaml
  • deploy/prod/prometheus.yaml
  • deploy/prod/promtail.yaml
  • src/main/java/com/souzip/adapter/webapi/admin/AdminEmailApi.java
  • src/main/java/com/souzip/adapter/webapi/admin/AdminPushApi.java
  • src/main/java/com/souzip/adapter/webapi/admin/dto/EmailBroadcastRequest.java
  • src/main/java/com/souzip/adapter/webapi/admin/dto/EmailTestSendRequest.java
  • src/main/java/com/souzip/adapter/webapi/admin/dto/PushBroadcastRequest.java
  • src/main/java/com/souzip/application/email/EmailBroadcastService.java
  • src/main/java/com/souzip/application/email/UserEmailQueryService.java
  • src/main/java/com/souzip/application/email/dto/EmailBroadcastResult.java
  • src/main/java/com/souzip/application/email/provided/UserEmailFinder.java
  • src/main/java/com/souzip/application/notification/FcmNotificationService.java
  • src/main/java/com/souzip/application/notification/FcmTokenCommandService.java
  • src/main/java/com/souzip/application/notification/FcmTokenNotFoundException.java
  • src/main/java/com/souzip/application/notification/FcmTokenQueryService.java
  • src/main/java/com/souzip/application/notification/PushBroadcastHistoryCommandService.java
  • src/main/java/com/souzip/application/notification/PushBroadcastHistoryQueryService.java
  • src/main/java/com/souzip/application/notification/dto/MarketingConsentStats.java
  • src/main/java/com/souzip/application/notification/dto/PushBroadcastHistoryResponse.java
  • src/main/java/com/souzip/application/notification/dto/PushBroadcastResult.java
  • src/main/java/com/souzip/application/notification/provided/FcmTokenFinder.java
  • src/main/java/com/souzip/application/notification/required/FcmTokenRepository.java
  • src/main/java/com/souzip/application/notification/required/PushBroadcastHistoryRepository.java
  • src/main/java/com/souzip/auth/adapter/security/config/SecurityConfig.java
  • src/main/java/com/souzip/domain/country/service/CountryService.java
  • src/main/java/com/souzip/domain/notification/DeviceType.java
  • src/main/java/com/souzip/domain/notification/FcmToken.java
  • src/main/java/com/souzip/domain/notification/FcmTokenRegisterRequest.java
  • src/main/java/com/souzip/domain/notification/PushBroadcastHistory.java
  • src/main/java/com/souzip/domain/notification/controller/FcmTokenController.java
  • src/main/java/com/souzip/domain/notification/dto/FcmTokenResponse.java
  • src/main/java/com/souzip/shared/config/AppConfig.java
  • src/main/java/com/souzip/shared/config/FirebaseConfig.java
  • src/main/java/com/souzip/shared/config/FirebaseProperties.java
  • src/main/java/com/souzip/shared/config/FirebasePropertiesConfiguration.java
  • src/main/java/com/souzip/shared/config/MailSmtpConfig.java
  • src/main/java/com/souzip/shared/config/MailSmtpProperties.java
  • src/main/java/com/souzip/shared/exception/ErrorCode.java
  • src/main/resources/.env.example
  • src/main/resources/META-INF/orm.xml
  • src/main/resources/application-dev.yaml
  • src/main/resources/application-local.yaml
  • src/main/resources/application-prod.yaml
  • src/main/resources/application.yaml
  • src/main/resources/db/migration/V14__create_fcm_token_tablel.sql
  • src/main/resources/db/migration/V16__create_push_broadcast_history.sql
  • src/main/resources/logback-dev.xml
  • src/main/resources/logback-local.xml
  • src/main/resources/logback-prod.xml
  • src/test/java/com/souzip/domain/notification/FcmTokenRegisterRequestTest.java
  • src/test/java/com/souzip/domain/notification/FcmTokenTest.java
  • src/test/resources/application-test.yaml

Walkthrough

이 PR은 FCM 푸시 알림, 이메일/푸시 브로드캐스트, 모니터링 스택 기능을 제거하고 빌드/배포/로깅 설정을 정리하는 대규모 리팩토링 작업입니다. Firebase/Mail SMTP 설정과 관련 인프라 구성을 완전히 제거합니다.

Changes

기능 제거 및 인프라 정리

Layer / File(s) Summary
FCM/Firebase 도메인 및 서비스 제거
src/main/java/com/souzip/domain/notification/FcmToken.java, src/main/java/com/souzip/domain/notification/DeviceType.java, src/main/java/com/souzip/domain/notification/FcmTokenRegisterRequest.java, src/main/java/com/souzip/application/notification/FcmTokenCommandService.java, src/main/java/com/souzip/application/notification/FcmTokenQueryService.java, src/main/java/com/souzip/application/notification/FcmTokenNotFoundException.java, src/main/java/com/souzip/application/notification/FcmNotificationService.java, src/main/java/com/souzip/domain/notification/controller/FcmTokenController.java, src/main/java/com/souzip/domain/notification/dto/FcmTokenResponse.java, src/main/java/com/souzip/application/notification/provided/FcmTokenFinder.java, src/main/java/com/souzip/application/notification/required/FcmTokenRepository.java, src/main/java/com/souzip/shared/config/FirebaseConfig.java, src/main/java/com/souzip/shared/config/FirebaseProperties.java, src/main/java/com/souzip/shared/config/FirebasePropertiesConfiguration.java, src/main/resources/db/migration/V14__create_fcm_token_tablel.sql, src/main/resources/META-INF/orm.xml
FCM 토큰 도메인 엔티티, 커맨드/쿼리 서비스, REST 컨트롤러, Firebase 스프링 설정, 데이터베이스 테이블/ORM 매핑이 제거됩니다.
이메일 브로드캐스트 기능 제거
src/main/java/com/souzip/adapter/webapi/admin/AdminEmailApi.java, src/main/java/com/souzip/application/email/EmailBroadcastService.java, src/main/java/com/souzip/application/email/UserEmailQueryService.java, src/main/java/com/souzip/adapter/webapi/admin/dto/EmailBroadcastRequest.java, src/main/java/com/souzip/adapter/webapi/admin/dto/EmailTestSendRequest.java, src/main/java/com/souzip/application/email/dto/EmailBroadcastResult.java, src/main/java/com/souzip/application/email/provided/UserEmailFinder.java, src/main/java/com/souzip/shared/config/MailSmtpConfig.java, src/main/java/com/souzip/shared/config/MailSmtpProperties.java, src/main/java/com/souzip/shared/config/AppConfig.java
관리자 이메일 발송 API, 이메일 전송 서비스, 요청/결과 DTO, SMTP 메일 설정이 전체 제거되고 AppConfig에서 MailSmtpProperties 등록 제거됩니다.
푸시 브로드캐스트 히스토리 기능 제거
src/main/java/com/souzip/adapter/webapi/admin/AdminPushApi.java, src/main/java/com/souzip/domain/notification/PushBroadcastHistory.java, src/main/java/com/souzip/application/notification/PushBroadcastHistoryCommandService.java, src/main/java/com/souzip/application/notification/PushBroadcastHistoryQueryService.java, src/main/java/com/souzip/adapter/webapi/admin/dto/PushBroadcastRequest.java, src/main/java/com/souzip/application/notification/dto/MarketingConsentStats.java, src/main/java/com/souzip/application/notification/dto/PushBroadcastHistoryResponse.java, src/main/java/com/souzip/application/notification/dto/PushBroadcastResult.java, src/main/java/com/souzip/application/notification/required/PushBroadcastHistoryRepository.java, src/main/resources/db/migration/V16__create_push_broadcast_history.sql, src/main/resources/META-INF/orm.xml
관리자 푸시 발송 API, 푸시 히스토리 도메인 엔티티, 조회/저장 서비스, 요청/결과 DTO, 데이터베이스 테이블이 모두 삭제됩니다.
모니터링 스택 제거 및 배포 파이프라인 조정
deploy/dev/docker-compose.monitoring.yaml, deploy/dev/prometheus.yaml, deploy/prod/docker-compose.monitoring.yaml, deploy/prod/docker-compose.logging.yaml, deploy/prod/loki-config.yaml, deploy/prod/prometheus.yaml, deploy/prod/promtail.yaml, deploy/dev/scripts/deploy.sh, .github/workflows/dev-cicd.yaml, .github/workflows/prod-cicd.yaml, src/main/java/com/souzip/auth/adapter/security/config/SecurityConfig.java
Prometheus/Grafana, Loki/Promtail 모니터링 스택 설정 파일이 완전 삭제되고, 배포 스크립트 단계 번호 재조정, CI/CD workflow environment 메타데이터 제거, /actuator/prometheus 엔드포인트 인증 필수 변경됩니다.
빌드 설정, CI/CD 파이프라인, 로깅 구성 재정리
Dockerfile, build.gradle, .github/workflows/dev-cicd.yaml, .github/workflows/prod-cicd.yaml, deploy/dev/docker-compose.app.yaml, deploy/dev/docker-compose.db.yaml, deploy/prod/docker-compose.blue.yaml, deploy/prod/docker-compose.green.yaml, src/main/resources/logback-dev.xml, src/main/resources/logback-local.xml, src/main/resources/logback-prod.xml, src/main/resources/application.yaml, src/main/resources/application-dev.yaml, src/main/resources/application-local.yaml, src/main/resources/application-prod.yaml, src/main/resources/.env.example, src/test/resources/application-test.yaml, src/main/java/com/souzip/shared/exception/ErrorCode.java
프로젝트 버전 (1.1.0-SNAPSHOT0.0.1-SNAPSHOT), jar 패키징 설정 제거, 의존성 정리 (spring-boot-starter-mail, firebase-admin, logstash-logback-encoder 제거), Dockerfile JAR_FILE 인자 추가, Logback 프로파일 파일 완전 삭제, Spring Boot 로깅 설정 추가 (콘솔 패턴, root/app 로그 레벨), Actuator 엔드포인트 노출 범위 조정, 환경 변수 업데이트 (Firebase/SMTP 제거, Admin 초기 비밀번호 추가), ErrorCode에 Apple 관련 상수 추가됩니다.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Possibly related PRs

  • souzip/souzip-api#240: 메인 PR이 AdminPushApi, PushBroadcastHistory, 관련 서비스/DTO/리포지토리를 완전 제거하는데, 이 PR은 동일한 푸시 브로드캐스트 히스토리 기능을 추가했으므로 코드 레벨에서 직접 충돌합니다.
  • souzip/souzip-api#246: 메인 PR에서 관리자 이메일 전송(AdminEmailApi, EmailBroadcastService) 및 Mail SMTP 설정이 제거된 반면, 이 PR은 Gmail SMTP 기반 메일 전송 서비스를 추가하므로 동일 기능 영역에서 코드 충돌이 발생합니다.
  • souzip/souzip-api#230: 메인 PR이 모니터링 스택(Prometheus, Grafana, Loki, Promtail) 관련 파일과 배포 스크립트 로직을 완전 제거하는데, 이 PR은 해당 모니터링 인프라를 구축했으므로 직접 대상 코드가 일치합니다.

Suggested labels

refactoring, ci/cd

Suggested reviewers

  • bum0w0
  • miller198
✨ 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 rollback/SOU-638-revert-to-455c656

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.

@Develop-KIM Develop-KIM changed the title Rollback/sou 638 revert to 455c656 [SOU-638] 롤백 및 찜 과 DB 백업 파이프라인 구축 May 22, 2026
@Develop-KIM Develop-KIM merged commit c59a49a into develop May 22, 2026
3 of 4 checks passed

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

<?xml version="1.0" encoding="UTF-8"?>

P0 Badge META-INF/orm.xml 삭제를 되돌리세요

META-INF/orm.xml을 통째로 제거하면 RefreshToken, File, Notice 같은 도메인 타입의 JPA 매핑이 사라집니다. 이 클래스들은 현재 @Entity가 없지만 RefreshTokenRepository/FileRepository/NoticeRepository에서 그대로 Repository 대상으로 사용되고 있어, 애플리케이션 기동 시점에 Not a managed type로 실패할 수 있습니다(전 환경 공통, 서비스 기동 불가).

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@@ -1,23 +0,0 @@
CREATE TABLE fcm_tokens (

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge 적용 이력이 있는 Flyway 마이그레이션 파일을 유지하세요

V14/V16 마이그레이션 파일을 삭제하면, 이미 해당 버전이 반영된 DB(예: 이전 배포에서 적용됨)에서는 Flyway 검증 단계에서 로컬에 없는 버전으로 간주되어 마이그레이션/기동이 중단될 수 있습니다. 특히 application-dev.yaml/application-prod.yaml에서 Flyway가 활성화된 상태라 롤백 배포 시 환경에 따라 즉시 장애로 이어질 수 있습니다.

Useful? React with 👍 / 👎.

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.

2 participants