-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[FEAT/#287] 단일 Banner 상세 조회 기능 #288
Conversation
- 조회 성공 상태에 대한 Success Status Code Enum 추가 구현했습니다. (`BannerSuccessCode`)
소문자인 외부 반환 데이터를 관리하는 필드 `value`을 선언했습니다. 또한 외부 조회 등에 사용될 경우, `value`를 통해 조회할 수 있도록 하기 위해 `getByValue` 메서드를 정의했고 조회하려는 값에 해당하는 Enum이 없을 경우 Banner Exception이 발생하도록 했습니다. - ContentType : 게시물 유형 - PublishLocation : 게시 위치 - PublishStatus : 게시 상태
단일 Entity 내에 모든 필드를 관리할 경우, 관리 및 유지보수에 어려움이 있을 것이며 관심사가 혼재될 것을 우려하여 Embeddable 객체로 분리하여 정의했습니다. - `BannerImage` : PC/Mobile 용 이미지 객체 - `PublishPeriod` : 게시 기간 객체 - 게시 시작 날짜 & 게시 종료 날짜 기반으로 `PublishStatus`를 연산하여 반환하는 메서드 `getPublishStatus`를 정의했습니다.
- 신규 도메인 데이터 테이블로 생성할 Banner (`banners`) 테이블에 대해 복수형 전환 분기 처리를 추가했습니다. * `spring.jpa.properties.hibernate.globally_quoted_identifiers` 속성이 true로 지정될 경우, 자동으로 double quote 가 생성되며 H2 DB에서 테이블 인식에 문제가 생기는 이유로 해당 속성을 제거했습니다.
Embedded 객체 변경이 정상적으로 처리되는지 중점적으로 확인했습니다. * 구현 과정에서 발생했던 오탈자 수정을 진행했습니다.(`BannerImage#updateMobileImage`)
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
리뷰가 너무 늦어져서 죄송합니다 ㅜ.ㅜ..
잘 구현해주셔서 제 리뷰가 가독성 측면에서 개선되면 좋을 점들을 적은 리뷰라 일단 어프루브 했습니다!
...ation-common/src/main/java/org/sopt/makers/operation/code/success/web/BannerSuccessCode.java
Outdated
Show resolved
Hide resolved
...ation-common/src/main/java/org/sopt/makers/operation/code/success/web/BannerSuccessCode.java
Show resolved
Hide resolved
operation-domain/src/main/java/org/sopt/makers/operation/banner/domain/Banner.java
Outdated
Show resolved
Hide resolved
operation-domain/src/main/java/org/sopt/makers/operation/banner/domain/Banner.java
Show resolved
Hide resolved
operation-domain/src/main/java/org/sopt/makers/operation/banner/domain/PublishLocation.java
Show resolved
Hide resolved
operation-domain/src/main/java/org/sopt/makers/operation/banner/domain/PublishPeriod.java
Outdated
Show resolved
Hide resolved
operation-domain/src/main/java/org/sopt/makers/operation/banner/domain/PublishStatus.java
Show resolved
Hide resolved
operation-domain/src/test/java/org/sopt/makers/operation/DatabaseCleaner.java
Outdated
Show resolved
Hide resolved
operation-domain/src/test/java/org/sopt/makers/operation/banner/BannerTest.java
Outdated
Show resolved
Hide resolved
operation-domain/src/test/java/org/sopt/makers/operation/banner/BannerTest.java
Show resolved
Hide resolved
- 선언부 분리 개행 - 불필요한 Import 개행 제거 - 불필요한 print 코드 제거 - 설명적 변수 반영
Related Issue 🚀
Work Description ✏️
/api/v1/banners/{bannerId}
GET
PR Point 📸
※
@Embeddable
서브 도메인 객체 구현 -@Embedded
적용※
@WebMvcTest
사용아래와 같은 상황과 고민이 있었습니다.