객체지향 프로그래밍
[객체지향 프로그래밍] SOLID 원칙
Alsong
2025. 1. 23. 13:48
객체지향 설계를 효과적으로 하기 위해 제안된 다섯가지 원칙이 존재합니다. 코드의 유지보수성과 확장성을 높이기 위한 원칙이죠. SOLID는 각 원칙의 첫 글자를 딴 약어입니다.
하나씩 개별 포스팅을 통해 정리해 나가려고 합니다. 이 글에서는 개념만 간략히 설명하도록 할게요!
1. 단일 책임 원칙 (SRP, Single Responsibility Principle)
하나의 객체는 하나의 책임만 가져야 한다는 원칙입니다. 이는 어떤 변경이 발생했을 때 클래스를 변경할 이유는 단 하나여야 한다는 뜻입니다.
2. 개방-폐쇄 원칙 (OCP, Open-Cloesd Principle)
소프트웨어는 확장에는 열려있고, 변경에는 닫혀 있어야 한다는 원칙입니다. 이는 기존의 코드를 변경하지 않고도 새로운 기능을 확장할 수 있어야 한다는 뜻입니다.
3. 리스코프 치환 원칙 (LSP, Liskov Substitution Principle)
상위(부모) 객체는 언제나 하위(자식) 객체로 치환될 수 있어야 한다는 원칙입니다. 하위 객체는 상위 객체를 상속받을 때 상위 객체의 행동 규약을 따라야 하며, 이는 다형성을 올바르게 활용하기 위해서 입니다.
4. 인터페이스 분리 원칙 (ISP, Interface Segragation Principle)
하나의 일반적인 인터페이스보다 구체적인 여러 개의 작은 인터페이스를 사용하는 것이 더 좋다는 원칙입니다. 하나의 대형 인터페이스를 사용하게 되면 객체는 자신이 사용하지 않는 메서드에도 의존하게 됩니다.
5. 의존성 역전 원칙 (DIP, Dependency Inversion Principle)
고수준 모듈은 저수준 모듈에 의존해서는 안 되며, 둘 다 추상화에 의존해야 한다는 원칙입니다.