본문 바로가기

전체 글153

클린 아키텍처 - 설계원칙 - 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.
클린 아키텍처 - 설계원칙 - ISP 설계원칙 SOLID SRP: 단일 책임 원칙 Single Responsible Principle OCP: 개방-폐쇄 원칙 Open-Closed Principle LSP: 리스코프 치환 법칙 Liskov Substitution Principle ISP: 인터페이스 분리 원칙 Interface Segregation Principle DIP: 의존성 역전 원칙 Dependency Inversion Principle ISP 인터페이스 분리 원칙 Interface Segregation Principle [그림 4-1. 인터페이스 분리 원칙] 그림 4-1에서 기술된 상황에서, 다수의 사용자가 me 클래스의 오퍼레이션을 사용한다. children: cooking, exercise wife: cooking, clean.. 2023. 2. 11.
클린 아키텍처 - 설계원칙 - OCP 설계원칙 SOLID SRP: 단일 책임 원칙 Single Responsible Principle OCP: 개방-폐쇄 원칙 Open-Closed Principle LSP: 리스코프 치환 법칙 Liskov Substitution Principle ISP: 인터페이스 분리 원칙 Interface Segregation Principle DIP: 의존성 역전 원칙 Dependency Inversion Principle OCP 개방-폐쇄 원칙 Open-Closed Principle 소프트웨어 개체(artifact)는 확장에는 열려 있어야 하고, 변경에는 닫혀 있어야 한다. 다시 말하자면 소프트웨어 개체의 행위는 확장할 수 있어야 하지만, 이때 개체를 변경해서는 안 된다. 만약 요구사항을 살짝 확장하는 데 소프트웨어.. 2023. 2. 11.