백엔드/스프링

좋은 객체 지향의 5가지 원칙 (SOLID)

개발자R 2022. 10. 10. 22:54
반응형

SRP : 단일 책임 원칙 (Single Responsibility Principle)

하나의 class는 하나의 책임을 가져야한다. 

but.. 책임이란? 책임이 어떤건 크고 어떤건 작다.

적절한 책임의 크기를 정하는 것이 중요하다.

따라서 변경이 생겼을 때 파급효과가 적으면 단일 책임 원칙을 잘 따른 것.

 

OCP : 개방 - 폐쇄 원칙 (Open Closed Principle)

소프트웨어 요소는 확장에는 열려있으나, 변경에는 닫혀있어야한다.

-> 다형성을 잘 활용

인터페이스를 구현하는 새로운 클래스를 새로 만들어서 확장은 되지만, 인터페이스를 활용하는 클라이언트쪽은 변경이 없음.

스프링에서 OCI? 컨테이너가 해결해줌

 

LSP : 리스코프 치환 원칙 (Liskov Substitution Principle)

프로그램의 객체는 프로그램의 정확성을 깨뜨리지 않으면서 하위타입의 인스턴스로 바꿀 수 있어야 한다.

컴파일을 넘어서 기능적으로도 적용할 수 있어야한다.

 

ISP : 인터페이스 분리 원칙 (Interface Segregation Principle)

특정 클라이언트를 위한 여러 개의 인터페이스가 범용 인터페이스 하나보다 낫다.

분리를 하면 인터페이스가 명확해지고, 대체 가능성이 높아진다.

 

DIP : 의존관계 역전 법칙 (Dependency Inversion Principle)

프로그래머는 구체화가 아니라, 추상화에 의존해야한다.

구현체 자체에 의존하면 안되고 인터페이스에 의존해야한다.

 

 

* 출처 : 인프런강의 <스프링 핵심 원리 - 기본편> by. 김영한

반응형

'백엔드 > 스프링' 카테고리의 다른 글

[Java] Controller / Dto 기본 구성하기  (0) 2023.08.20