계층형 말고는 다르게 짤 수 없을까? 아직 이해가 얕아 잘못 이해 한 것일 수 있으니 ‘이런게 있다’ 정도로 만 참고 하셔도 좋을 것 같습니다.
기존 레이어드 아키텍처의 한계
- 제일 하단에 인프라가 위치하여
- 인프라 변경이 일어나면 변경이 어려울 수 있음
- 인프라 종속적인 코드 발생으로 테스트가 어려워질 수 있음
- 관점을 세부단위가 아니라 아키텍처 적인 관점으로 해결할 방안을 찾아보자하고 클린 아키텍처가 대두
클린 아키텍처(로버트 C. 마틴)의 메인 포인트
- Entity를 제일 안쪽으로 두어, 재사용성을 늘린다
- 외부 연결에 의존성을 최대한 줄인다
https://techblog.woowahan.com/2647/
간단하게 이해해본 Hexagonal Architecture의 특징
- 클린 아키텍처를 실천하는 아키텍처 형태 (어댑터 패턴을 모듈 전체적으로 사용)
- 서비스에 대한 모든 외부 통로(in, out)를 인터페이스화 하는 패턴화 강제 (DIP, Adapter Pattern)
- Entity로 흐르는 단방향 흐름을 만들어 엔티티, 서비스(Use Cases)의 재사용성을 높임
- 어댑터를 통해 인프라 교체의 유연성을 컴포넌트 전체 아키텍처로 부여
- 팀 전체단위로 학습을 해야하기 때문에 학습 비용의 문제가 있음
https://netflixtechblog.com/ready-for-changes-with-hexagonal-architecture-b315ec967749