디자인패턴, 프로그래밍 패러다임, 아키텍처/아키텍처 2

클린아키텍처: 계층형 아키텍처의 문제를 보완해보자.

1. 다시 보는 계층형 아키텍처 - 계층형 아키텍처는 소프트웨어를 구성하는 소스코드를 관심사에 따라 "계층"으로 분류한 구조이다. - 계층형 아키텍처의 최대 관심사는 "관심사에 따른 계층 분리"이며, 일반적으로 다음과 같은 구조들이 제시된다. presentation -> business(service / domain) -> data access(persistence) -> db - 이러한 계층형 아키텍처는 다음과 같은 장점을 가진다. 계층별 관심사가 분리되기 때문에, 코드가독성과 유지보수성이 높다. 모듈 교체가 용이하다. 예컨대, business 레이어에서만 사용하는 모듈을 교체할 때, 이에 따라 다른 계층에 미칠 사이드 이펙트가 현저히 적을 것이다. 테스트가 용이하다. 각 계층은 관심사에 따라 분리되어..

계층형 아키텍처

1. 아키텍처의 기본 관심사 - 소프트웨어 아키텍처의 가장 기본적인 관심사는 "소프트웨어의 구성요소를 관심사에 따라 분리하는 것"이다. - 관심사에 따라 구성요소를 분리함으로써 얻을 수 있는 가장 큰 이득은 "구성요소의 관심사 축소에 따른 코드 가독성/유지보수의 용이성 개선"이다. => 그도 그럴 것이, 소스코드가 모두 한 파일에 저장된 소프트웨어와 관심사에 따라 분리된 소프트웨어만 비교하더라도, 후자가 코드 가독성도 좋고, 유지 보수도 그에 따라 더 편리할 것이 당연하다. - 부가적으로(?), 수월한 테스트 환경 조성과 같은 이득이 수반될 수 있다. - 이 글에서는 가장 일반적으로 활용되고 있는 아키텍처로 간주되는 "계층형 아키텍처"를 다뤄보고자 한다. 2. 계층형 아키텍처 개요 - 계층형 아키텍처는 ..