객체지향 프로그래밍

[객체지향 프로그래밍] 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)

고수준 모듈은 저수준 모듈에 의존해서는 안 되며, 둘 다 추상화에 의존해야 한다는 원칙입니다.