SOLID는 모듈식이고 유지 관리가 가능하며 이해하기 쉬운 소프트웨어 시스템을 만드는 것을 목표로 하는 5가지 설계 원칙을 나타내는 약어입니다. 이러한 원칙은 Robert C. Martin에 의해 만들어졌으며 개발자가 유연하고 강력하며 확장 가능한 소프트웨어를 설계하는 데 도움이 되는 지침 역할을 합니다. 다음은 각 원칙에 대한 간략한 설명입니다.
클래스나 모듈은 변경해야 할 이유가 하나만 있어야 합니다. 즉, 단일 책임이 있어야 합니다.
SRP를 준수하면 각 클래스가 특정 작업에 집중되어 이해, 유지 관리 및 테스트가 더 쉬워집니다.
높은 응집력을 촉진하고 변화의 영향을 줄입니다.
소프트웨어 엔터티(클래스, 모듈, 함수)는 확장에는 열려 있지만 수정에는 닫혀 있어야 합니다.
즉, 기존 코드를 수정하지 않고도 새로운 기능이나 동작을 추가할 수 있어야 합니다.
이것은 추상화, 인터페이스 및 상속을 사용하여 유연하고 재사용 가능한 구성 요소를 생성함으로써 달성됩니다.
하위 유형은 프로그램의 정확성에 영향을 주지 않고 기본 유형을 대체할 수 있어야 합니다.
상속 및 다형성이 올바르게 사용되도록 보장하여 파생 클래스의 개체를 기본 클래스의 개체로 대체할 때 예기치 않은 동작이나 예상 계약 위반을 방지합니다.
클라이언트가 사용하지 않는 인터페이스에 의존하도록 강요해서는 안 됩니다.
ISP는 여러 메서드가 있는 큰 인터페이스를 사용하는 대신 더 작고 구체적인 인터페이스로 나눌 것을 제안합니다.
이는 느슨한 결합을 촉진하고 클라이언트가 특정 인터페이스에 의존할 수 있게 하며 불필요한 종속성을 방지합니다.
고수준 모듈은 저수준 모듈에 의존해서는 안 됩니다. 둘 다 추상화에 의존해야 합니다.
DIP는 인터페이스 또는 추상 클래스를 사용하여 모듈을 분리하고 직접적인 종속성을 줄이는 것을 권장합니다. 이를 통해 구현을 쉽게 교체하거나 수정할 수 있고 모듈성을 촉진하며 더 나은 테스트 및 유지 관리가 가능합니다.
SOLID 원칙을 따르면 개발자는 이해, 유지 관리 및 확장이 더 쉬운 소프트웨어를 만들 수 있습니다.
SOLID 원칙은 시간이 지남에 따라 확장 가능하고 견고하며 유지 관리가 가능한 고품질 소프트웨어 시스템 개발에 기여합니다.