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

[refactor] 코드 스타일 통일 #68

Merged
merged 28 commits into from
Aug 15, 2024

Conversation

june-777
Copy link
Member

💡 다음 이슈를 해결했어요.

Issue Link - #63

💡 이슈를 처리하면서 추가된 코드가 있어요.

1. 컨트롤러 계층 - xxxRequest, 서비스 계층 - xxxCommand

  • 서비스 계층은 xxxCommand 파라미터 하나만 받도록 수정했습니다.
  • 그에 따라, 기존에 없었던 Vendor 조회 로직, 검증 로직등이 추가되었습니다.
  • request, command DTO를 분리함에 따라 메뉴 등록 DTO인 MenuLineItem을 외부 record로 분리했습니다.

2. 컨트롤러 메서드 반환타입 - xxxResponse

3. 커스텀 예외 - BadRequestException, NotFoundException 등을 상속하도록 수정

4. 서비스 계층 반환 타입 - void 에서 Long으로 수정

5. 도메인 컨트롤러에서 예외 핸들링


💡 이런 고민을 했어요.

각 도메인 컨트롤러에서 핸들링을 세부적으로 할 필요가 있을까?

  • 커스텀 예외에 대한 회의 떄, 상속 계층으로 예외를 핸들링하기 용이한 장점이 있는데, 현재는 그러한 장점을 활용하지 못하고 있다.
  • 세부적으로 예외를 핸들링할 필요가 있을까? 예외를 캐치해서 수행하는 작업이 모두 동일하다. 그냥 BadRequestException, NotFoundException 등등 상위 예외만 핸들링하면 되지 않을까
  • 그럼 결국 GlobalExceptionHandler에서 공통으로 핸들링하는게 낫지 않을까

✅ 셀프 체크리스트

  • 내 코드를 스스로 검토했습니다.
  • 필요한 테스트를 추가했습니다.
  • 모든 테스트를 통과합니다.
  • 브랜치 전략에 맞는 브랜치에 PR을 올리고 있습니다.
  • 커밋 메세지를 컨벤션에 맞추었습니다.
  • wiki를 수정했습니다.

에러 코드는 클라이언트에게 보여지는 부분이다.
코드 스타일 통일에 따라 해당 예외는 제거함
1. 컨트롤러 계층 - xxxRequest
1. 서비스 계층 - xxxCommand
2. 변경함에 따라 서비스 계층에서 Vendor 를 조회하는 로직이 추가됨
Request, Command DTO로 분리하는 과정에서 MenuLineItem 을 외부 클래스로 분리함
1. 서비스 계층 - xxxCommand
2. 변경함에 따라 서비스 계층에서 Vendor 를 조회하는 로직이 추가됨
- storeId는 request param 에서 path variable 로 이동
- StoreMenuRegistrationResponse 을 반환하도록 함
- 가게 등록 response
- 가게 메뉴 등록 response
Copy link
Member

@kimhyun5u kimhyun5u left a comment

Choose a reason for hiding this comment

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

저도 도메인 예외 처리가 모두 같은 작업을 처리해서 예외 처리에 대해서 고민이 생기긴 하네요!

도메인 별로 분류하면 나중에 멀티모달 등으로의 확장에 용이하긴 하지만 아직은 큰 효용이 없는 것 같긴해요 😅

String message 는 로그를 의미함
로그성 메시지를 강제하기 위해, 이외의 생성자는 제거함
@june-777 june-777 added the 🔨 Refactor 코드 리팩토링 label Aug 15, 2024
@june-777 june-777 added this to the 프로토타입 만들기 milestone Aug 15, 2024
Copy link
Contributor

@Hyeon-Uk Hyeon-Uk left a comment

Choose a reason for hiding this comment

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

좋습니다! 고생하셨습니다!!!!!

…코드스타일통일

# Conflicts:
#	src/main/java/camp/woowak/lab/menu/exception/MenuErrorCode.java
#	src/main/java/camp/woowak/lab/web/api/store/StoreApiController.java
#	src/test/java/camp/woowak/lab/web/api/store/StoreApiControllerTest.java
@june-777 june-777 merged commit c6f1b26 into main Aug 15, 2024
1 check passed
@june-777 june-777 deleted the refactor/63_june-777_코드스타일통일 branch August 15, 2024 10:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🔨 Refactor 코드 리팩토링
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

[리팩터링] 컨트롤러, 서비스 클래스 코드 스타일 통일
3 participants