📝 객체지향 5원칙(SOLID) SOLID는 객체지향 5원칙의 두음을 따서 만든 말이다. 각각 나열하자면, SRP(단일 책임 원칙) OCP(개방 폐쇄 원칙) LSP(리스코프 치환 원칙) ISP(인터페이스 분리 원칙) DIP(의존관계 역전 원칙) 위와 같이 존재한다. 이 중 오늘 이야기할 Covariant(이하 공변성)에 관한 이야기가 속한 곳은 LSP(Liskov Substitution Principle)다. 📌 LSP란? LSP는 타입 S가 타입 T의 서브타입이라면 프로그램의 속성 변경 없이 T타입의 객체를 S타입으로 치환할 수 있어야 한다.라는 개념이다. 쉽게 말하면, 서브타입은 수퍼타입을 대체할 수 있어야 한다는 말이다. 서브타입이 수퍼타입을 대체하는 개념, 그것이 바로 공변성이다. 공변성을 이용한..