만들면서배우는클린아키텍처 3

12장 아키텍처 스타일 결정하기

12 아키텍처 스타일 결정하기 지금까지 육각형 아키텍처를 사용해서 웹 어플리케이션을 만드는 방법을 살펴봤다. 그렇다면 언제 육각형 아키텍처 스타일을 사용해야 할까? 도메인이 왕이다 육각형 아키텍처 스타일을 사용할지 첫번째 지표 : 도메인 코드가 애플리케이션에서 가장 중요한 것인가? 육각형 아키텍처 스타일은 결국 영속성 관심사나 외부 시스템에 대한 의존성 등의 변화로부터 자유롭게 도메인 코드를 개발 할 수 있다는 것 외부의 영향을 받지 않고 도메인 코드를 자유롭게 발전시킬 수 있다는 것은 육각형 아키텍처 스타일이 내세우는 가장 중요한 가치 이것이 육각형 아키텍처 스타일이 도메인 주도 설계 방식과 정말 잘 어울리는 이유 DDD에서는 도메인이 개발을 주도하고 도메인 외 다른 기술들을 생각할 필요가 없게 되면 ..

6장 영속성 어댑터 구현하기

06 영속성 어댑터 구현하기 데이터베이스 주도 설계를 피하기 위해 영속성 계층을 앱 계층의 플러그인으로 만들어보자. 의존성 역전 앱은 영속성 기능 사용하기 위해 포트 호출. 이 포트는 영속성 어댑터에 의해 구현.(DIP) 육각형 아키텍처에서 영속성 어댑터는 앱에서 호출하기 때문에 아웃고잉 어댑터 포트는 앱과 영속성 사이의 간접적 계층 영속성 문제에 신경쓰지 않고 도메인 코드 개발 영속성 계층에 코드 의존성을 없앤다 영속성 코드를 변경하더라도 코어 코드에 영향이 없다 DIP로 인해 정적인 상황에서는 의존성이 역전되었지만 동적인 타임에는 여전히 앱이 영속성 코드에 의존하고 있다. 하지만 인터페이스 계약을 만족하는 한 영속성 코드 수정은 문제가 없다. 영속성 어댑터의 책임 영속성 어댑터가 일반적으로 하는 일...

2장 의존성 역전하기

02 의존성 역전하기 2장에서는 1장의 계층형 아키텍처의 문제점에 대한 대안에 대해 얘기한다. 단일 책임 원칙 Single Responsibility Principle(SRP) 하나의 컴포넌트는 오로의 한가지 일만 해야 하고, 그것을 올바르게 수행해야 한다. 라고 알고있지만 사실 실제 정의는 컴포넌트를 변경하는 이유는 오직 하나뿐이어야 한다. http://www.butunclebob.com/ArticleS.UncleBob.PrinciplesOfOod 아키텍처에서 가지는 의미 : 다른 이유로 변경된다면 이 컴포넌트는 안 변한다. 그런데... SRP를 따르다보니 변경할 이유가 컴포넌트 간의 의존성을 통해 너무 쉽게 전파된다. E에 비해 A는 의존성 때문에 변경할 확률이 높다. 시간이 갈수록 바꿀건 많아지는데..