SOLID는 소프트웨어 개발에서 객체 지향 설계 원칙의 다섯 가지 기본 원칙을 나타냅니다.
이러한 원칙은 소프트웨어를 설계할 때 더 견고하고 유연하며 유지 보수가 용이하도록 돕는데 도움이 됩니다. 다음은 SOLID 원칙의 각각에 대한 간단한 설명입니다.
1. SRP (Single Responsibility Principle, 단일 책임 원칙 )
- 클래스는 단 하나의 책임만 가져야 합니다. 즉, 클래스의 변경 이유는 단 하나여야 합니다. 이 원칙을 따르면 클래스가 변경되어야 할 이유가 명확해지고 코드의 유지 보수성이 향상됩니다.
2. OCP (Open-Closed Principle, 개방-폐쇄 원칙)
- 클래스는 확장에 대해 열려 있어야 하지만 변경에 대해 닫혀 있어야 합니다. 다시 말해, 새로운 기능을 추가하거나 요구 사항을 변경할 때 기존의 코드를 수정하지 않고도 기능을 확장할 수 있어야 합니다.
3. LSP (Liskov Substitution Principle, 리스코프 치환 원칙 )
- 하위 타입은 상위 타입으로 대체할 수 있어야 합니다. 즉, 부모 클래스의 인스턴스를 대체하는 자식 클래스는 부모 클래스가 수행하는 작업을 완전히 수행할 수 있어야 합니다. 이 원칙을 준수하면 코드의 일관성이 유지되고 다형성이 강화됩니다.
4. ISP (Interface Segregation Principle, 인터페이스 분리 원칙 )
- 클라이언트는 자신이 사용하지 않는 메서드에 의존하지 않아야 합니다. 따라서 인터페이스는 클라이언트가 필요로 하는 작은 단위로 분리되어야 합니다. 이는 인터페이스의 크기를 줄이고 결합도를 낮춰 유연성을 높입니다.
5. DIP (Dependency Inversion Principle, 의존성 역전 원칙 )
- 고수준 모듈은 저수준 모듈에 의존해서는 안 됩니다. 둘 모두 추상화에 의존해야 합니다. 즉, 구체적인 구현이 아닌 추상화에 의존해야 합니다. 이는 시스템의 유연성과 재사용성을 향상시킵니다.
SOLID 원칙을 준수하는 것은 코드의 유지 보수성, 재사용성, 확장성을 향상시키고 버그를 줄이며 소프트웨어 개발의 전반적인 품질을 향상시키는 데 도움이 됩니다.
'지식 > 알고리즘' 카테고리의 다른 글
Design Pattern (0) | 2024.05.26 |
---|---|
Shared Repository vs Blackboard (0) | 2024.05.25 |
Reliability vs Availability (0) | 2024.05.25 |
허프만코드 알고리즘 (0) | 2019.11.18 |
댓글