문제
객체지향 설계 원칙 중 **리스코프 치환 원칙(LSP: Liskov Substitution Principle)**과 **인터페이스 분리 원칙(ISP: Interface Segregation Principle)**의 의미를 각각 설명하시오.
정답
LSP는 상위 타입의 객체를 하위 타입의 객체로 치환해도 프로그램의 정확성이 깨지지 않아야 한다는 원칙이다. ISP는 클라이언트가 자신이 사용하지 않는 메서드에 의존하지 않도록 인터페이스를 작고 구체적으로 분리해야 한다는 원칙이다.
리스코프 치환LSP상위 타입하위 타입인터페이스 분리ISP클라이언트메서드 의존
해설
LSP는 부모 타입을 사용하는 곳에 자식 타입을 넣어도 올바르게 동작해야 한다는 원칙으로, 다형성의 올바른 사용과 관련됩니다. ISP는 하나의 큰 인터페이스보다 클라이언트별로 필요한 기능만 담은 작은 인터페이스로 분리해야 한다는 원칙입니다.