Skip to content
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

Merged
merged 17 commits into from
Dec 19, 2024
Merged

Conversation

yummygyudon
Copy link
Member

Related Issue 🚀


Work Description ✏️

  • 어드민 "배너 관리" 기능 중, " 상세 배너 조회 " 기능을 구현합니다.
  • URI = /api/v1/banners/{bannerId}
  • Method = GET

PR Point 📸

@Embeddable 서브 도메인 객체 구현 - @Embedded 적용


@WebMvcTest 사용

아래와 같은 상황과 고민이 있었습니다.

  • Application 자체 구동 환경에서의 Test가 필요한 것이 아닌 Controller 메서드의 정상 처리 및 의도한 결과 반환 여부에 확인이 필요했습니다.

@SpringBootTest 를 사용하지 않은 이유
(Ref. blog article & docs)

- 조회 성공 상태에 대한 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`)
@yummygyudon yummygyudon self-assigned this Dec 12, 2024
@yummygyudon yummygyudon linked an issue Dec 12, 2024 that may be closed by this pull request
3 tasks
Copy link

height bot commented Dec 12, 2024

Link Height tasks by mentioning a task ID in the pull request title or commit messages, or description and comments with the keyword link (e.g. "Link T-123").

💡Tip: You can also use "Close T-X" to automatically close a task when the pull request is merged.

Copy link
Contributor

@sung-silver sung-silver left a comment

Choose a reason for hiding this comment

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

리뷰가 너무 늦어져서 죄송합니다 ㅜ.ㅜ..
잘 구현해주셔서 제 리뷰가 가독성 측면에서 개선되면 좋을 점들을 적은 리뷰라 일단 어프루브 했습니다!

- 선언부 분리 개행
- 불필요한 Import 개행 제거
- 불필요한 print 코드 제거
- 설명적 변수 반영
@yummygyudon yummygyudon added this pull request to the merge queue Dec 19, 2024
Merged via the queue into develop with commit af4084f Dec 19, 2024
1 check failed
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.

[FEAT] 배너 - 상세 조회
2 participants