-
객체 지향 설계와 스프링Spring/스프링 핵심 원리 - 기본편 2022. 8. 2. 16:46
[인프런] 스프링 핵심 원리 - 기본편
좋은 객체 지향 설계의 5가지 원칙(SOLID)
- SRP: 단일 책임 원칙(single responsibility principle)
- OCP: 개방-폐쇄 원칙 (Open/closed principle) ⭐
- LSP: 리스코프 치환 원칙 (Liskov substitution principle)
- ISP: 인터페이스 분리 원칙 (Interface segregation principle)
- DIP: 의존관계 역전 원칙 (Dependency inversion principle) ⭐
단일 책임 원칙 (Single responsibility principle)
- 한 클래스는 하나의 책임만 가짐
- 변경이 있을 때 파급 효과가 적으면 단일 원칙 책임을 잘 지킨 것
OCP 개방-패쇄 원칙 (Open/closed principle)
- 다형성의 중요성
- 확장에는 열려있으나 변경에는 닫혀 있어야 함
- 이를 지키기 위해서는 설정자가 필요함
LSP 리스코프 치환 원칙 (Liskov substitution principle)
- 객체의 정확성
ISP 인터페이스 분리 원칙 (Interface segregation principle)
- 범용 인터페이스가 아닌 역할을 나눠 인터페이스를 분리
- 인터페이스가 명확해지고, 대체 가능성도 높아짐
DIP 의존관계 역전 원칙 (Dependency inversion principle)
- 추상화 즉, 인터페이스에 의존하도록 프로그래밍하는 것
- 구현체에 의존하면 변경에 어려움이 발생
DI 컨테이너: 자바 객체들을 컨테이너에 넣고, 안에서 의존관계를 주입하는 것
스프링은 클라이언트 코드 변경 없이 기능 확장을 할 수 있게 함
결론
- 역할과 구현 분리
- 기능을 확장할 가능성이 없다면 구체 클래스, 기능 확장이 필요하면 인터페이스 부여 권장
'Spring > 스프링 핵심 원리 - 기본편' 카테고리의 다른 글
컴포넌트 스캔 (0) 2022.08.05 싱글톤 컨테이너 (0) 2022.08.04 스프링 컨테이너와 스프링 빈 (0) 2022.08.04 스프링 핵심 원리 이해2 - 객체 지향 원리 적용 (0) 2022.08.03 스프링 핵심 원리 이해1 - 예제 만들기 (0) 2022.08.03