노트 :

리스코프 치환 원칙(Liskov Substitution Priciple, LSP) 본문

자격증

리스코프 치환 원칙(Liskov Substitution Priciple, LSP)

IT_달토끼 2023. 2. 1. 10:13

 

SOLID 5원칙 중 하나.

 

(SOLID: 로버트 마틴이 2000년대 초반에 명명한 객체 지향 프로그래밍 설계의 5원칙을 두문자어로 나타낸 것)

 

 

약어 정의
S SRP 단일 책임 원칙(Single Responsibility Principle): 한 클래스는 하나의 책임만 가져야 한다.
O OCP 개방-폐쇄원칙(Open/Closed Principle): 소프트웨어 요소는 확장에 열려있고 변경에 닫혀있어야 한다.
L LSP 리스코프 치환 원칙(Liskov Substitution Principle): 부모 클래스를 자식 클래스가 대신할 수 있다.
I ISP 인터페이스 분리 원칙(Interface Segregation Principle): 특정 클라이언트를 위한 인터페이스 여러 개가 범용 인터페이스 하나보다 낫다.
D DIP 의존관계 역전 원칙(Dependency Inversion Principle): 프로그래머는 추상화에 의존해야 하며, 구체화에 의존해서는 안된다.

 

프로그램의 객체는 프로그램의 정확성을 깨지 않음면서 하위 타입의 인스턴스로 바꿀 수 있어야 한다는 원칙이다.

 

쉽게 설명하면, 부모 클래스에서 생성한 객체는 부모를 상속한 자식 클래스의 인스턴스로 변경했을 때 문제가 발생하지 않아야 한다는 것이다.

 

LSP를 위반하게 되는 가장 유명한 예시가 직사각형의 부모 클래스를 상속한 정사각형의 자식 클래스이다.

 

직사각형은 가로, 세로 길이가 다르고 정사각형은 가로,세로 길이가 같기 때문에, 부모 클래스의 객체를 자식 클래스의 인스턴스로 치환해서 사용할 때 오류가 발생하게 된다.

 

이 원칙은 기존 프로그램 개발을 이어 받은 새로운 개발자가 지켜야 할 가이드라인을 제시한다.

 

 

'자격증' 카테고리의 다른 글

미들웨어(Middleware)  (0) 2023.02.03
객체지향 분석(OOA, Object Oriented Analysis)  (0) 2023.02.03
스크럼(Scrum) 기법  (0) 2023.02.02
소프트웨어 생명 주기(Software Life Cycle)  (0) 2023.02.02
UI 설계도구  (0) 2023.02.02