본문 바로가기
☕Java/Java 기본

SOLID 원칙

by 캔 2022. 6. 26.

객체 지향 언어로 프로그래밍을 하는 사람이라면 SOLID 원칙을 들어본 적이 있을 것이다. SRP, OCP, LSP, ISP, DIP 다섯 가지 원칙의 앞글자를 따서 부르는 것인데, 설명들은 많이 있지만 실제 프로그래밍을 사용할 때 기억하고 그 원칙을 지키려면 잘 기억하고 있어야 할 것 같아서 짧게 정리해보려고 한다. 각 원칙을 한 문장 내외로 축약할 것이다.

 

SRP(Single Resposibilitiy Principle, 단일 책임 원칙): 하나의 클래스와 그것을 구성하는 각각의 메서드들은 각각 하나의 책임을 가져야 한다.

 

OCP(Open-Close principle, 열림 닫힘 원칙): 확장은 가능하지만 수정은 지양한다.(확장에 열려 있고 수정에 닫혀 있다.

 

LSP(Liskov Substitution Principle, 리스코프 치환 원칙): 서브클래스는 자신의 기반 타입으로 교체가 가능해야 한다. 서브 클래스는 수퍼 클래스가 수행할 수 있는 모든 행위를 수행할 수 있어야 한다.

 

ISP(Interface Separation Principle, 인터페이스 분리 원칙): 클래스는 자신이 사용하지 않는 인터페이스를 구현하지 말아야 한다. 그러므로 인터페이스는 가급적 작게 분리하는 것이 좋다.

 

DIP(Dipendency Inversion Principle, 의존성 역전 원칙): 의존 관계를 맺어야 한다면, 변하기 쉬운 것보다 변하기 어려운 것에 의존해야 한다. 즉, 자주 변하는 구체적인 것보다 자주 변하지 않는 추상적인 것에 의존해야 한다.