인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

seonjun Moon님의 프로필 이미지
seonjun Moon

작성한 질문수

EDA 기반 Microservice 구현 (with Hexagonal, DDD)

외부영역 구현(프레임워크 헥사곤)-API어댑터 구현

UserCase가 많은데... 이유?

작성

·

313

0

UserCase가 많은데...

그러니까 일반적인 Layered Architecture에서는

 

Service 기능으로, 현재 결국에는 RentalCard 관련해서 작업을 하니까 RentarCardService라는 interface파일에 모든 기능을 넣어서 사용할 수 가 있는데

 

현재 헥사고날 공부하면서 UseCase는 InqueryUsecase를 제외하고 기능 하나에 usecase하나로 작성이 되었더라고요.

 

이 이유와 이로 인한 장점이 무잇인지 잘 모르겠습니다.

설명 부탁드립니다!

답변 1

1

han jeong heon님의 프로필 이미지
han jeong heon
지식공유자

네 강의자 한정헌입니다.

말씀하신 바대로 헥사고널 아키텍처에서도 예를 들면 CUD단위로 하나의 유스케이스 인터페이스로 묶고 이를 구현하는 입력포트도 하나의 클래스로 작성할 수 있습니다.

처음에 간단했던 cud야 괜찮겠지만 비지니스가 점점 복잡해지면 유지보수가 거듭되면서 이 클래스가 점점 비대해질 가능성이 있습니다.

그래서 저는 기능 단위로 유스케이스와 입력포트를 분리하는 방법을 선호합니다.

유스케이스 단위로 클래스 생성하는 방식에 대해서는 클린코드의 저자 로버트 c 마틴이 ‘ 소리치는 아키텍처(코드의 명칭을 통해 그 의도롤 소리치게 하자.)’라고도 언급하며 강조를 하기도 했습니다. 왜냐면 이렇게 했을 경우 코드명으로 그 의도를 바로 식별할 수 있기 때문이죠. 즉 클래스 명만 보고 어떠한 유스케이스인지 쉽게 인지 가능하기 때문에 테스트 및 유지보수성 높아 질수 있음을 강조했다고 생각합니다.

감사합니다.

seonjun Moon님의 프로필 이미지
seonjun Moon
질문자

설명 감사합니다 ^^

seonjun Moon님의 프로필 이미지
seonjun Moon

작성한 질문수

질문하기