리스코프 치환 원칙: 상속의 진정한 의미
2025-01-22

이 글에서는 종종 오해되는 SOLID 원칙 중 하나인 리스코프 치환 원칙(LSP)에 대해 자세히 설명합니다. 고전적인 직사각형과 정사각형 문제를 사용하여 서브타입이 베이스 타입을 완전히 대체하지 못하는 일반적인 LSP 위반 패턴을 보여줍니다. 저자는 LSP 위반을 피하기 위해 상속 대신 합성과 인터페이스를 사용할 것을 제안하며, 결제 처리의 실제적인 예를 보여줍니다. 예상치 못한 예외 발생이나 베이스 타입과 일치하지 않는 결과 반환 등 일반적인 LSP 위반에 대해서도 설명하고, 계약 테스트와 명확한 전/후 조건을 사용하여 LSP 준수를 보장하는 방법을 제시합니다. 결론적으로 이 글은 LSP가 단순한 상속 이상의 의미를 지니며, 동작 호환성과 기대치 충족에 관한 것임을 강조합니다. LSP를 따르면 더욱 신뢰할 수 있고 유지 보수가 용이한 코드를 작성할 수 있습니다.