Architecture4 [Architecture] 4. 육각형 아키텍처(헥사고날 아키텍처) 이번 챕터에서는 두 가지 아키텍처 스타일 중 두번째 육각형 아키텍처(헥사고날 아키텍처)에 대해 이야기 한다. 1. 육각형 아키텍처(헥사고날 아키텍처) 육각형 아키텍처는 애플리케이션 코어가 각 어댑터와 상호 작용하기 위해 특정 포트를 제공한다. 육각형 안에는 도메인 엔티티와 이와 상호 작용하는 유스케이스가 있다. 육각형 외부로 향하는 의존성이 없기 때문에 마틴이 클린 아키텍처에서 제시한 의존성 규칙이 그대로 적용된다. 대신 모든 의존성은 코어로 향한다. 육각형 바깥에는 애플리케이션과 상호 작용하는 다양한 어댑터들이 있다. 왼쪽에 있는 어댑터들은 애플리케이션 코어를 호출하기 때문에 애플리케이션을 주도하는 어댑터(driving adapter)들이다. 반면 오른쪽에 있는 어댑터들은 애플리케이션 코어에 의해 호출.. 2024. 4. 16. [Architecture] 3. 클린 아키텍처(Clean Architecture) 이번 챕터에서는 두 가지 아키텍처 스타일 중 첫번째 클린 아키텍처에 대해 이야기 한다. 1. 클린 아키텍처 로버트 C. 마틴이 정립한 용어로, 클린 아키텍처에서는 설계가 비즈니스 규칙의 테스트를 용이하게 하고, 비즈니스 규칙은 프레임워크, 데이터베이스, UI 기술, 그 밖의 외부 애플리케이션이나 인터페이스로부터 독립적일 수 있다고 이야기 한다. 이는 도메인 코드가 바깥을 향하는 어떤 의존성도 없어야 함을 의미하며, 대신 의존성 역전의 원칙의 도움으로 모든 의존성이 도메인 코드를 향한다. 클린 아키텍처에서 가장 주요한 규칙은 의존성 규칙으로, 계층 간의 모든 의존성이 안쪽을 향해야 한다는 것이다. 아키텍처 코어에는 유스케이스에서 접근하는 도메인 엔티티가 존재하며, 유스케이스는 단일 책임을 갖기 위해 조금 .. 2024. 4. 15. [Architecture] 2. 계층형 아키텍처의 대안 첫번째 챕터에서는 계층형 아키텍처의 문제점에 대해 이야기하였다. 이번 챕터에서는 계층형 아키텍처의 대안에 대해 이야기 한다. 1. 단일 책임 원칙 단일 책임 원칙의 일반적인 해석은 아래와 같다. "하나의 컴포넌트는 오로지 한 가지 일만 해야 하고, 그것을 올바르게 수행해야 한다." 이는 단일 책임이라는 말을 가장 직관적으로 해석한 것으로, 단일 책임 원칙이라는 이름에 오해의 여지가 있다는 점을 주의해야 하며, 단일 책임 원칙의 실제 의도가 아니다. 단일 책임의 원칙의 실제 정의는 아래와 같다. "컴포넌트를 변경하는 이유는 오직 하나 뿐이어야 한다." '책임'은 '오로지 한 가지 일만 하는 것'보다 '변경할 이유'로 해석해야 한다. 컴포넌트를 변경할 이유가 오로지 한 가지라면 컴포넌트는 딱 한 가지 일만 .. 2024. 4. 11. [Architecture] 1. 계층형 아키텍처의 문제 '만들면서 배우는 클린 아키텍처' 책을 통해 클린 아키텍처를 공부하면서 알게된 내용을 기록하고 정리하기 위해 시리즈를 작성하려고 한다. 해당 챕터에서는 사내 솔루션의 아키텍처인 계층형 아키텍처의 문제에 대해 이야기한다. 1. 계층형 아키텍처의 문제는 무엇일까? 일반적인 3계층 아키텍처는 웹 계층에서 요청을 받아 도메인 혹은 비즈니스 계층에 있는 서비스로 요청을 보내 필요한 비즈니스 로직을 수행하고, 도메인 엔티티의 상태 조회 혹은 변경을 위해 영속성 계층의 컴포넌트를 호출한다. 계층형 아키텍처는 견고한 아키텍처 패턴이다. 계층을 잘 이해하고 구성한다면 웹 계층이나 영속성 계층에 독립적으로 도메인 로직 작성이 가능하고, 도메인 로직에 영향을 주지 않고 웹 계층과 영속성 계층에 사용된 기술의 변경도 가능하.. 2024. 4. 9. 이전 1 다음