본문 바로가기

분류 전체보기152

클린 아키텍처 - 컴포넌트 컴포넌트 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.
클린 아키텍처 - 설계원칙 - LSP 설계원칙 SOLID SRP: 단일 책임 원칙 Single Responsible Principle OCP: 개방-폐쇄 원칙 Open-Closed Principle LSP: 리스코프 치환 법칙 Liskov Substitution Principle ISP: 인터페이스 분리 원칙 Interface Segregation Principle DIP: 의존성 역전 원칙 Dependency Inversion Principle LSP 리스코프 치환 법칙 Liskov Substitution Principle S 타입의 객체 o1 각각에 대응하는 T 타입 객체 o2가 있고, T 타입을 이용해서 정의한 모든 프로그램 P에서 o2의 자리에 o1을 치환하더라도 P의 행위가 변하지 않는다면, S는 T의 하위 타입이다. 이게 무슨 말.. 2023. 2. 11.
클린 아키텍처 - 설계원칙 - DIP 설계원칙 SOLID SRP: 단일 책임 원칙 Single Responsible Principle OCP: 개방-폐쇄 원칙 Open-Closed Principle LSP: 리스코프 치환 법칙 Liskov Substitution Principle ISP: 인터페이스 분리 원칙 Interface Segregation Principle DIP: 의존성 역전 원칙 Dependency Inversion Principle DIP 의존성 역전 원칙 Dependency Inversion Principle '유연성이 극대화된 시스템'이란 소스 코드 의존성이 추상(abstraction)에 의존하며 구체(concretion)에는 의존하지 않는 시스템이다. 소프트웨어 시스템이라면 구체적인 많은 장치에 반드시 의존 할 수 밖에 .. 2023. 2. 11.