반응형

SRP(Sigle Responsibility Principle) - 단일책임의 원칙

: 작성된 클래스는 하나의 기능만 가지며 클래스가 제공하는 모든 서비스는 그 하나의 책임을 수행하는 데에 집중되어 있어야 한다는 원칙으로 이는 어떤 변화에 의해 클래스를 변경해야 하는 이유는 오직 하나뿐이어야 함을 의미합니다.

 

OCP(Open Close Principle) - 개방폐쇄의 원칙

: 버틀란트 메이어 박사가 1998년 객체지향 소프트웨어 설계 라는 책에서 정의한 내용으로 소프트웨어의 구성요소(컴포넌트, 클래스, 모듈, 함수)는 확장에는 열려있고, 변경에는 닫혀있어야 한다는 원리입니다. 이것은 변경을 위한 비용은 가능한 줄이고 확장을 위한 비용은 가능한 극대화 해야 한다는 의미로 요구사항 변경이나 추가사항이 발생하더라도 기존 구성요소는 수정이 일어나지 말아야 하며 기존 구성요소를 쉽게 확장해서 재사용할 수 있어야 한다는 의미입니다.

 

LSP(The Liskov Substitution Principle) - 리스코브 치환의 원칙

: 서브 타입은 언제나 기반 타입으로 교체할 수 있어야 한다는 원칙으로 서브 타입은 기반 타입이 약속한 규약을 지켜야 한다는 의미입니다. 상속은 구현 상속이든 인터페이스 상속이든 궁극적으로는 다형성을 통한 확장성 획득을 목표로 합니다. 다형성과 확장성을 극대화하려면 하위 클래스를 사용하는 것보다 상위 클래스를 사용하는 것이 더 좋습니다.

 

ISP(Interface Segregation Principle) - 인터페이스 분리의 원칙

: 한 클래스는 자신이 사용하지 않는 인터페이스는 구현하지 말아야 한다는 원칙입니다. 즉, 어떤 클래스가 다른 클래스에 종속될 때 가능한 최소한의 인터페이스만을 사용해야 합니다. 

 

DIP(Dependency Inversion Principle) - 의존성 역전의 원칙

: 의존 관계의 역전이란 구조적인 디자인에서 발생하던 하위 레벨 모듈의 변경이 상위 레벨 모듈의 변경을 요구하는 위계 관계를 끊는 의미의 역전입니다. 실제 사용 관계는 바뀌지 않으며, 추상을 매개로 메시지를 주고 받음으로써 관계를 최대한 느슨하게 만드는 원칙입니다.

반응형

+ Recent posts