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

굿데이님의 프로필 이미지
굿데이

작성한 질문수

Microservice 내부 아키텍처 와 EventStorming 설계

헥사고날 관련 질문있습니다.

작성

·

648

0

안녕하세요. 강의 잘 듣고 있습니다.

헥사고날 그림을 보면 인터페이스와 아답터를 통해 외부와 통신을 할텐데 실제 구현을 어떤식으로 하는지 궁금해서 질문드립니다.
제가 spring은 잘 모르고 node.js만 알아서 그거 기준으로 질문드릴게요.

sequelize나 typeorm 같은 orm library가 아답터에 해당하는 건가요?
만약 그렇다면 그것을 호출하는 인터페이스(repository?)를 만들어야 할텐데, 인터페이스가 거의 랩핑수준일 것 같습니다. 이렇게 하면 너무 귀찮을 듯 한데요.
아니면 orm library를 repository라 생각해도 되나요?

답변 부탁드립니다. 감사합니다.

 

답변 1

0

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

움 안녕하세요 . ^ ^

ㅎ 그런데 제가 node.js 는 잘 몰라서요 어쩌죠? 움 검색해 보니 typeorm이 OR매퍼인것 같네요.

그래서 미약하나 답변 드리면 헥사고널 아키텍처와 클린 아키텍처는 쉽게 유지보수 가능하고 대체,확장가능하도록 구성한 아키텍처 청사진이라고 생각하심 됩니다.

즉 정확한 구현체를 제공하고 있지는 않아요. 그래서 다양한 방식으로 헥사고널 아키텍처나 클린 아키텍처를 구현했다는 사례들이 있는데, 어떤 이는 굉장히 엄격하게 적용하기도 하고 다소 타협을 하기도 합니다.(예를 들면 엄격한 경우는 헥사고널 + 도메인모델로 구성할 경우 외부영역에 도메인모델 매핑을 위한 별도 오브젝트를 구성하고 다소 타협한 케이스는 도메인 모델에 바로 or매핑코드를 작성)

그리고 레파지토리 같은 경우는 저는 java인 경우에 내부영역에서 데이터를 처리로직을 구현하기 위한 용도로 레파지토리를 만드는데(즉 repository가 출력 포트 or매퍼가 출력 어댑터) node.js같은 경우는 제가 답을 드리기 힘들걱 같네요. ^ ^;;;

그래도 유용한 답변을 들려야 할 것 같아 헥사고널+ node.js 사례를 찾아봤는데 참고해보심 될 것 같습니다.

https://dev.to/sairyss/domain-driven-hexagon-18g5

https://www.youtube.com/watch?v=kRFg6fkVChQ

명확한 답변 못드려서 죄송하네요. ^ ^;;;

굿데이님의 프로필 이미지
굿데이
질문자

많은 도움이 되었습니다.
다음 실습강의도 기대가 됩니다.

굿데이님의 프로필 이미지
굿데이

작성한 질문수

질문하기