Hexagonal Architecture

uni.gy·2023년 10월 8일
0

CS

목록 보기
17/18

장점

✔️ 유연성 Flexibility

포트와 어댑터를 사용함으로써, 다양한 기술 변화에 대응할 준비가 되어 있습니다.

빠르게 기술이 변화되고 있는 현재, 더 나은 기술의 활용은 더 이상 선택이 아닌 필수로 볼 수 있습니다.

이러한 유연성은 변경에 용이한 소프트웨어의 이점을 잘 나타냅니다.

✔️ 유지보수성 Maintainability

책임이 분리되어 있어, 코드의 이해와 수정이 용이하며, 변화에 빠르게 대응할 수 있습니다.

기존 기능을 다른 기술로 변경하고자 할 때, 새로운 어댑터 만으로 추가할 수 있습니다.

✔️ 테스트 용이성 Testability

  • 각 컴포넌트를 독립적으로 테스트할 수 있을 뿐만 아니라, 외부 의존성 없이 테스트할 수 있습니다.

  • 이를 통해 품질 향상과 개발 속도 향상에 도움이 됩니다.

Domain

  • 중요한 비즈니스 데이터와 규칙에 관련된 엔티티들로 채워집니다.
  • 도메인 개체는 바깥으로 향하는 어떤 의존성도 없어야 합니다.
  • "클래스는 단 한 개의 책임을 가져야 한다"의 의미를 가진 단일 책임 원칙 (SRP, Single Responsibility Principle)의 대표적인 예시

Usecase

  • 소프트웨어 동작을 추상화하여, 소프트웨어가 무엇을 하는지를 설명하는 역할을 합니다.

Port

  • 외부와의 모든 통신은 전용 "Port"를 통해 이루어집니다.

Adapter

  • 외부 인터페이스 제공
profile
한결같이

0개의 댓글