본문 바로가기

분류 전체보기154

클린 아키텍처 - 컴포넌트 결합 - SDP 컴포넌트 결합 ADP: 의존성 비순환 원칙 (Acyclick Dependencies Principle) SDP: 안정된 의존성 원칙(Stable Dependencies Principle) SAP: 안정된 추상화 원칙(Stable Abstractions Principle) SDP 안정된 의존성 원칙(Stable Dependencies Principle) 안정성의 방향으로(더 안정된 쪽에) 의존하라. 설계는 결코 정적일 수 없다. 설계를 유지하다 보면 변경은 불가피하다. 변경이 쉽지 않은 컴포넌트가 변경이 예상되는 컴포넌트에 의존하게 만들어서는 절대 안 된다. 변경을 쉽게 하기 위해 만든 컴포넌트에 변경이 어려운 컴포넌트가 의존하게 되면 변경을 쉽게 할 수 없게 된다. 변경이 큰 도전이 되어 버린다. 안정성.. 2023. 2. 11.
클린 아키텍처 - 설계원칙 - SRP 설계원칙 SOLID SRP: 단일 책임 원칙 Single Responsible Principle OCP: 개방-폐쇄 원칙 Open-Closed Principle LSP: 리스코프 치환 법칙 Liskov Substitution Principle ISP: 인터페이스 분리 원칙 Interface Segregation Principle DIP: 의존성 역전 원칙 Dependency Inversion Principle SRP 하나의 모듈은 하나의, 오직 하나의 이해관계자에 대해서만 책임져야 한다. 모든 모듈이 단 하나의 일만 해야 한다는 의미는 아니다. 응집된(cohesive)라는 단어가 SRP를 암시한다. 이 원칙을 위반하는 징후들을 살펴 보겠다. 징후 1: 우발적 중복 [그림 1-1 Employee 클래스] .. 2023. 2. 11.
클린 아키텍처 - 컴포넌트 컴포넌트 component 컴포넌트는 배포 단위다. 컴포넌트는 시스템의 구성 요소로 배포할 수 있는 가장 작은 단위다. 자바의 경우 jar, 루비에서는 gem 파일, 닷넷에서는 DLL이다. 여러 컴포넌트를 서로 링크하여 실행 가능한 단일 파일로 생성할 수 있다. 컴포넌트 응집도 컴퍼넌트 응집도와 관련된 세 가지 원칙 REP: 재사용/릴리스 등가 원칙(Reuse/Release Equivalence Principle) CCP: 공통 폐쇄 원칙(Common Closure Principle) CRP: 공통 재사용 원칙(Common Reuse Principle) REP: 재사용/릴리스 등가 원칙 재사용 단위는 릴리스 단위와 같다. 컴포넌트를 구성하는 모든 모듈은 서로 공유하는 중요한 테마나 목적이 있어야 한다. .. 2023. 2. 11.
클린 아키텍처란? Clean Architecture architecture vs design architecture: 세부사항과는 분리된 고수준 design: 저수준의 구조 또는 결정사항 등 행위와 아키텍처 소프트웨어 개발자는 두 가치를 모두 반드시 높게 유지해야 하는 책임을 진다. 행위 이해관계자를 위해 기계가 수익을 창출하거나 비용을 절약하도록 만든다. 기능 명세서나 요구사항 문서를 구체화 할 수 있도록 돕는다. 아키텍처 소프트웨어를 변경하기 쉽게 만들어준다. 소프트웨어는 soft와 ware의 합성어이다. ware는 상품 즉, product를 뜻한다. soft는 말 그대로 부드럽다는 뜻이다. 소프트웨어를 만든 이유는 기계의 행위를 쉽게 변경할 수 있도록 하기 위해서이다. 만약 기계의 행위를 바꾸는 일을 어렵게 만들고자.. 2023. 2. 11.