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

fix: 카페 이미지 3개 초과하여 저장 시 예외 반환하는 로직 버그 수정 #140

Merged
merged 3 commits into from
Dec 9, 2023

Conversation

Ji-soo708
Copy link
Member

개요

  • 한 카페에 대해 사용자가 4개 이상의 카페 이미지를 등록할 시, 예외를 반환해야 합니다. 기존 로직에서는 DB에서 카페 이미지가 4개 이상있는지 확인하는데 이 과정에서 isUsed==false인 이미지(이미지 삭제 스케줄링에 의해 삭제되지 않은 이미지)까지 카운트합니다. 현재 isUsed==true인 이미지만 카운트하도록 로직을 수정했습니다.

작업사항

  • 카페 이미지 3개 초과하는지 판단하는 로직 수정

주의사항

  • 카페 이미지를 3개 초과하여 저장할 시, 예외를 반환하는 테스트 코드가 이미 존재하고 isUsed까지 판별하는지 확인하는 테스트 코드가 추가로 필요하지 않다고 생각하여 생략했습니다.
  • API 테스트를 통해 제대로 동작하는 지 한 번 더 확인해주세요.

@Ji-soo708 Ji-soo708 self-assigned this Dec 7, 2023
@Ji-soo708 Ji-soo708 added the 🚨심각한 버그🚨 사용자의 주요 기능이 아예 동작하지 않을 우려가 있는 버그 label Dec 7, 2023
@Ji-soo708 Ji-soo708 added 사소한 버그 사용자가 눈치채지 못할 정도의 사소한 버그 and removed 🚨심각한 버그🚨 사용자의 주요 기능이 아예 동작하지 않을 우려가 있는 버그 labels Dec 7, 2023
Copy link
Member

@kth990303 kth990303 left a comment

Choose a reason for hiding this comment

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

수고했어요~

@@ -350,7 +350,7 @@ public CafeImagesSaveResponse saveCafeImage(Long memberId, String mapId, List<Mu
private void validateOwnedCafeImagesCounts(Cafe cafe, Member member, List<MultipartFile> requestCafeImages) {
List<CafeImage> currentOwnedCafeImages = cafe.getCafeImages()
.stream()
.filter(cafeImage -> cafeImage.isOwned(member))
.filter(cafeImage -> cafeImage.isOwned(member) && cafeImage.getIsUsed())
Copy link
Member

Choose a reason for hiding this comment

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

cafeImage.isOwned(member) && cafeImage.getIsUsed()로 분기가 되니까 조금 이해하기 어렵더라고요. PR의 overview에 설명을 워낙 잘해주셔서 이해하긴 했는데, 코드만 보곤 어떤 조건으로 필터링되는거지? 싶었어요.

따로 이 부분을 private method로 뺀 후, 적절한 네이밍을 짓는 것도 괜찮겠네요. (근데 기가막힌 네이밍 짓기가 좀 어려울 거 같긴 해요)

Copy link
Contributor

Choose a reason for hiding this comment

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

케이님 리뷰 좋은데, 저는 여기서는 너무 많은 private 메서드는 지양하는게 좋기도 한 것 같아요.
이미 CafeService가 너무 무거워서.. UseCase layer를 하나 더 만드는것도 좋아보였어요 ㅎㅎ

Copy link
Contributor

Choose a reason for hiding this comment

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

아 그리고 filter를 두개 쓰는 방안도 있을 것 같은데, 크리티컬 하고 크진 않지만 성능 상 테스트 해보면 지금이 더 좋다고 합니다~

@@ -2,6 +2,6 @@

public class ExceedCageImagesTotalCountsException extends BadRequestException{
public ExceedCageImagesTotalCountsException() {
super("카페 이미지는 3개 이상 등록하실 수 없습니다.", 2008);
super("카페 이미지는 4개 이상 등록하실 수 없습니다.", 2008);
Copy link
Member

Choose a reason for hiding this comment

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

그동안 이런 오타가 있었다니 새삼 놀랍네요ㅋㅋㅋ

@Ji-soo708 Ji-soo708 merged commit b32fde2 into develop Dec 9, 2023
2 checks passed
Copy link
Contributor

@jung-woo-kim jung-woo-kim left a comment

Choose a reason for hiding this comment

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

수정 감사합니다 메리님 🙏
리뷰 남겼는데 읽어만 보셔도 좋을 것 같아요 :)
고생하셨어요!

@@ -350,7 +350,7 @@ public CafeImagesSaveResponse saveCafeImage(Long memberId, String mapId, List<Mu
private void validateOwnedCafeImagesCounts(Cafe cafe, Member member, List<MultipartFile> requestCafeImages) {
List<CafeImage> currentOwnedCafeImages = cafe.getCafeImages()
.stream()
.filter(cafeImage -> cafeImage.isOwned(member))
.filter(cafeImage -> cafeImage.isOwned(member) && cafeImage.getIsUsed())
Copy link
Contributor

Choose a reason for hiding this comment

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

케이님 리뷰 좋은데, 저는 여기서는 너무 많은 private 메서드는 지양하는게 좋기도 한 것 같아요.
이미 CafeService가 너무 무거워서.. UseCase layer를 하나 더 만드는것도 좋아보였어요 ㅎㅎ

@@ -350,7 +350,7 @@ public CafeImagesSaveResponse saveCafeImage(Long memberId, String mapId, List<Mu
private void validateOwnedCafeImagesCounts(Cafe cafe, Member member, List<MultipartFile> requestCafeImages) {
List<CafeImage> currentOwnedCafeImages = cafe.getCafeImages()
.stream()
.filter(cafeImage -> cafeImage.isOwned(member))
.filter(cafeImage -> cafeImage.isOwned(member) && cafeImage.getIsUsed())
Copy link
Contributor

Choose a reason for hiding this comment

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

아 그리고 filter를 두개 쓰는 방안도 있을 것 같은데, 크리티컬 하고 크진 않지만 성능 상 테스트 해보면 지금이 더 좋다고 합니다~

@jung-woo-kim jung-woo-kim deleted the MOCACONG-469-bug-cafeimage-save-exception branch December 9, 2023 03:35
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.

3 participants