본문 바로가기

아키텍처17

클린 아키텍처란? 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.
클린 아키텍처 - 컴포넌트 결합 - ADP 컴포넌트 결합 ADP: 의존성 비순환 원칙 (Acyclick Dependencies Principle) SDP: 안정된 의존성 원칙(Stable Dependencies Principle) SAP: 안정된 추상화 원칙(Stable Abstractions Principle) ADP 의존성 비순환 원칙 (Acyclick Dependencies Principle) 컴포넌트 의존성 그래프에 순환(cycle)이 있어서는 안 된다. '숙취 증후군 (the morning after syndrome)' 하루 종일 일해서 무언가를 작동하게 만들어 놓고 퇴근했는데, 이튿날 출근해 보면 전혀 돌아가지 않는 상황. 보통 당신보다 더 늦게까지 일하면서 당신이 의존하고 있던 무언가를 수정했기 때문이다. 숙취 증후군은 많은 개발자가.. 2023. 2. 11.