LSP (Liskov Substitution Principle)는 객체 지향 프로그래밍(OOP)의 SOLID 원칙 중 하나로, 서브타입은 기반 타입으로 교체 가능해야 한다는 원칙을 의미합니다. 이 원칙은 프로그램 설계의 유연성과 확장성을 향상시키는 중요한 원칙 중 하나입니다. LSP는 상속 관계에서 발생할 수 있는 문제를 방지하고, 코드의 재사용성과 유지 보수성을 향상시키는 데 기여합니다. LSP의 주요 개념 서브타입과 슈퍼타입 슈퍼타입: 기반 타입으로 사용되는 클래스나 인터페이스입니다. 서브타입: 슈퍼타입을 상속받은 자식 클래스입니다. 교체 가능성 서브타입 객체는 슈퍼타입 객체로 교체되어도 프로그램의 의도된 동작이 변하지 않아야 합니다. LSP의 핵심 원칙 서브타입의 강건성 (Robustness of ..