SOLID 원칙, 정말 모든 개발자가 따라야 할까?

by DD
5개월 전
조회수 7

SOLID 원칙은 객체 지향 설계의 핵심 원리이나, 일부 원칙의 실용성에 대한 의문이 제기됨

특히, Open-Closed Principle은 현대 언어의 발전에 따라 유효성이 감소했다는 비판을 받음

커뮤니티에서는 SOLID 원칙의 과도한 적용보다는, 상황에 맞는 유연한 설계를 강조하는 분위기임

Liskov Substitution Principle (LSP) 심층 분석

LSP는 상속 관계에서 서브타입이 기반 타입의 행위를 보장해야 함을 강조한다. 구체적으로, 서브타입 객체는 기반 타입 객체 대신 사용될 수 있어야 하며, 이는 타입 이론에 기반한 엄격한 정의이다. 따라서, 상속 관계를 신중하게 설계하고, 서브타입이 기반 타입의 행동 규칙을 위반하지 않도록 주의해야 한다.

Open-Closed Principle (OCP) 재조명

OCP는 확장에는 열려 있고, 수정에는 닫혀 있어야 한다는 원칙이다. 하지만, 현대 언어의 발전으로 인해 API 변경의 위험이 줄어들면서, OCP의 유효성에 대한 의문이 제기된다. 반면, 호환성 유지는 여전히 중요한 가치이며, OCP는 외부 사용자를 위한 인터페이스 설계에 유용하다. 따라서, OCP는 상황에 맞게 적용해야 한다.

Dependency Inversion Principle (DIP)의 함정

DIP는 상위 모듈이 하위 모듈의 구현에 의존하지 않도록 추상화에 의존해야 함을 강조한다. 구체적으로, 의존성 주입을 통해 유연성을 확보할 수 있지만, 과도한 사용은 코드 복잡도를 증가시킬 수 있다. 결과적으로, DIP는 필요한 경우에만 적용하고, 구체적인 구현에 대한 의존성을 완전히 제거하는 것은 지양해야 한다.

A SOLID Load of Bull