Skip to content

Conversation

@zyovn
Copy link
Member

@zyovn zyovn commented Nov 1, 2025

🔗 연관된 이슈

🚀 변경 유형

  • ✨ 기능 추가 (feature)
  • 🐛 버그 수정 (fix)
  • 📝 문서 변경 (docs)
  • ♻️ 리팩토링 (refactor)
  • 🧪 테스트 추가 / 수정 (test)
  • ⚙️ 설정 변경 (chore)

📝 작업 내용

  • 프론트 요청으로 인한 isTermsAgreement 제거
  • 테스트 코드 오류 수정

📸 스크린샷

image

💬 리뷰 요구사항

  • 머지 전에 ㅌㅔ이블 몇 개 드롭!!!!!!!!!!!!!!!!!!!!! 할게요

Summary by CodeRabbit

버그 수정

  • 앨범 생성 시 필수 약관 동의 요구사항이 제거되었습니다. 앨범 생성 프로세스가 더욱 간소화되었습니다.

@zyovn zyovn self-assigned this Nov 1, 2025
@zyovn zyovn added the ✨feature New feature or request label Nov 1, 2025
@zyovn zyovn linked an issue Nov 1, 2025 that may be closed by this pull request
1 task
@coderabbitai
Copy link

coderabbitai bot commented Nov 1, 2025

Walkthrough

앨범 생성 플로우 전반에서 약관 동의 검증(isTermsAgreement) 기능을 제거합니다. 도메인 모델, 요청 DTO, 매퍼, 검증 로직, 에러 코드, API 문서 및 테스트 픽스처에서 관련 필드와 파라미터를 일관되게 삭제합니다.

Changes

Cohort / File(s) Summary
도메인 엔티티 및 매퍼
src/main/java/com/cheeeese/album/domain/Album.java, src/main/java/com/cheeeese/album/infrastructure/mapper/AlbumMapper.java
Album 엔티티에서 isTermsAgreement 필드 제거 및 생성자 파라미터 삭제. AlbumMapper.toEntity 메서드 시그니처에서 isTermsAgreement 파라미터 제거 및 빌더 호출 삭제
요청 DTO 및 검증
src/main/java/com/cheeeese/album/dto/request/AlbumCreationRequest.java, src/main/java/com/cheeeese/album/application/validator/AlbumValidator.java
AlbumCreationRequest에서 isTermsAgreement 필드 제거. validateAlbumCreation에서 약관 동의 검증 로직 제거
애플리케이션 레이어
src/main/java/com/cheeeese/album/application/AlbumService.java
AlbumMapper.toEntity 호출 시 isTermsAgreement 파라미터 제거
에러 처리 및 문서화
src/main/java/com/cheeeese/album/exception/code/AlbumErrorCode.java, src/main/java/com/cheeeese/album/presentation/swagger/AlbumSwagger.java
AlbumErrorCode에서 ALBUM_REQUIRED_TERMS_NOT_AGREED 상수 제거. AlbumSwagger에서 createAlbum API 문서의 isTermsAgreement 필드 제거
테스트 픽스처 및 통합 테스트
src/test/java/com/cheeeese/fixture/FixtureFactory.java, src/test/java/com/cheeeese/album/integration/UserAlbumServiceIntegrationTest.java
FixtureFactory에서 Kakao 사용자 픽스처 추가(createKakaoUserInfo, createKakaoUser) 및 Album 생성 호출에서 isTermsAgreement 파라미터 제거. UserAlbumServiceIntegrationTest에서 테스트 데이터 설정을 하드코딩된 ID에서 실제 User/Album 인스턴스로 변경

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

  • 주의 영역:
    • AlbumMapper.toEntity 메서드 시그니처 변경이 모든 호출처에 반영되었는지 확인 필요
    • 테스트 픽스처의 createAlbum 시리즈 메서드들 간 파라미터 일관성 확인
    • UserAlbumServiceIntegrationTest의 테스트 데이터 초기화 로직이 올바르게 작동하는지 검증

Possibly related issues

Possibly related PRs

Suggested labels

🐛bug

Suggested reviewers

  • dahyun24

Poem

🐰 약관 동의는 이제 안녕~
불필요한 필드를 쓱싹 정리하고
매퍼와 검증도 함께 깔끔해졌네
앨범 생성은 더욱 간결하게
토끼가 축복합니다! ✨

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 8.33% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title Check ✅ Passed PR 제목 "feat: 프론트 요청으로 인한 isTermsAgreement 제거"는 변경 사항의 핵심을 명확하게 요약하고 있습니다. 원본 요약에서 확인할 수 있듯이, 이 PR은 Album 엔티티, AlbumCreationRequest DTO, AlbumMapper, AlbumValidator, AlbumErrorCode, Swagger 문서, 그리고 테스트 파일들에서 isTermsAgreement 필드/파라미터/검증을 일관되게 제거하고 있으며, 이는 제목에서 명시한 변경 사항과 정확히 일치합니다. 제목은 간결하고 구체적이며, 팀 동료들이 변경 이력을 빠르게 스캔할 때 주요 변경 사항을 명확히 이해할 수 있습니다.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feat/#40-album-terms

📜 Recent review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between ae96ac5 and c708fcd.

📒 Files selected for processing (9)
  • src/main/java/com/cheeeese/album/application/AlbumService.java (1 hunks)
  • src/main/java/com/cheeeese/album/application/validator/AlbumValidator.java (0 hunks)
  • src/main/java/com/cheeeese/album/domain/Album.java (1 hunks)
  • src/main/java/com/cheeeese/album/dto/request/AlbumCreationRequest.java (1 hunks)
  • src/main/java/com/cheeeese/album/exception/code/AlbumErrorCode.java (0 hunks)
  • src/main/java/com/cheeeese/album/infrastructure/mapper/AlbumMapper.java (1 hunks)
  • src/main/java/com/cheeeese/album/presentation/swagger/AlbumSwagger.java (1 hunks)
  • src/test/java/com/cheeeese/album/integration/UserAlbumServiceIntegrationTest.java (3 hunks)
  • src/test/java/com/cheeeese/fixture/FixtureFactory.java (4 hunks)
💤 Files with no reviewable changes (2)
  • src/main/java/com/cheeeese/album/exception/code/AlbumErrorCode.java
  • src/main/java/com/cheeeese/album/application/validator/AlbumValidator.java
🧰 Additional context used
🧬 Code graph analysis (2)
src/test/java/com/cheeeese/album/integration/UserAlbumServiceIntegrationTest.java (1)
src/test/java/com/cheeeese/fixture/FixtureFactory.java (1)
  • FixtureFactory (20-89)
src/test/java/com/cheeeese/fixture/FixtureFactory.java (2)
src/main/java/com/cheeeese/user/infrastructure/mapper/UserMapper.java (1)
  • UserMapper (6-16)
src/main/java/com/cheeeese/album/infrastructure/mapper/UserAlbumMapper.java (1)
  • UserAlbumMapper (8-18)
🔇 Additional comments (10)
src/main/java/com/cheeeese/album/dto/request/AlbumCreationRequest.java (1)

10-22: 약관 동의 필드 제거가 깔끔하게 처리되었습니다.

isTermsAgreement 필드가 DTO에서 완전히 제거되어 프론트엔드 요청사항이 반영되었습니다.

src/main/java/com/cheeeese/album/presentation/swagger/AlbumSwagger.java (1)

23-43: API 문서가 변경사항을 정확히 반영하고 있습니다.

RequestBody 설명에서 isTermsAgreement 필드가 제거되어 실제 DTO 구조와 일치합니다.

src/main/java/com/cheeeese/album/domain/Album.java (1)

69-96: 데이터베이스 마이그레이션 확인이 필요합니다.

엔티티에서 isTermsAgreement 필드가 제거되었지만, 데이터베이스에 is_terms_agreement 컬럼이 존재할 경우 마이그레이션이 필요합니다. PR 노트에 테이블 drop 계획이 언급되어 있으나, 프로덕션 환경에서는 ALTER TABLE 문을 통한 컬럼 제거가 필요할 수 있습니다.

다음 사항을 확인해주세요:

  1. 개발/스테이징 환경의 album 테이블에서 is_terms_agreement 컬럼 존재 여부
  2. 필요시 마이그레이션 스크립트 준비 여부
-- 컬럼이 존재한다면 다음과 같은 마이그레이션이 필요합니다
ALTER TABLE album DROP COLUMN is_terms_agreement;
src/test/java/com/cheeeese/fixture/FixtureFactory.java (3)

22-41: 테스트 유틸리티가 개선되었습니다.

KakaoUser 픽스처 생성 메서드가 추가되어 테스트에서 실제 User 엔티티를 쉽게 생성할 수 있게 되었습니다. OAuth2 인증 플로우를 시뮬레이션하는 데 유용합니다.


43-80: 앨범 생성 픽스처가 일관되게 업데이트되었습니다.

모든 앨범 생성 메서드에서 isTermsAgreement 파라미터가 제거되어 변경사항이 일관되게 반영되었습니다.


82-88: 객체 기반 픽스처로 개선되었습니다.

createHostUserAlbum이 ID 대신 실제 엔티티 객체를 받도록 변경되어 타입 안정성과 가독성이 향상되었습니다.

src/main/java/com/cheeeese/album/application/AlbumService.java (1)

56-65: 앨범 생성 로직이 정확히 업데이트되었습니다.

AlbumMapper.toEntity 호출에서 약관 동의 관련 파라미터가 제거되어 변경사항이 올바르게 반영되었습니다.

src/main/java/com/cheeeese/album/infrastructure/mapper/AlbumMapper.java (1)

18-42: 매퍼 메서드가 깔끔하게 업데이트되었습니다.

toEntity 메서드 시그니처와 빌더 구현에서 isTermsAgreement 파라미터와 관련 로직이 완전히 제거되었습니다.

src/test/java/com/cheeeese/album/integration/UserAlbumServiceIntegrationTest.java (2)

28-47: 테스트 설정이 개선되었습니다.

하드코딩된 ID 대신 실제 엔티티를 생성하고 영속화하여 테스트가 더 현실적이고 유지보수하기 쉬워졌습니다. 프로덕션 플로우를 더 정확히 반영합니다.


49-72: 성능 테스트가 올바르게 업데이트되었습니다.

엔티티 기반 참조(testAlbum.getMakerId(), testUser.getId())로 변경되어 타입 안정성이 향상되었습니다.


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
Contributor

@dahyun24 dahyun24 left a comment

Choose a reason for hiding this comment

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

LGTM

@zyovn zyovn merged commit 6c087a4 into develop Nov 1, 2025
1 check passed
@zyovn zyovn deleted the feat/#40-album-terms branch November 4, 2025 16:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

✨feature New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat: 프론트 요청으로 인한 isTermsAgreement 제거

3 participants