[Spring Basic] 객체 지향 설계와 스프링
by PyTong스프링이란?
- 자바 언어 기반의 프레임워크 -> 객체 지향
- 객체 지향 언어가 가진 강력한 특징을 살려내는 프레임워크
- "좋은" 객체 지향 애플리케이션을 개발 할 수 있게 도와주는 프레임 워크
- 스프링 DI 컨테이너, AOP, 이벤트, MVC, WebFlux, 트랙잭션, JDBC, ORM 지원 ... 등등 정말 다 있다
흔히 말하는 "좋은" 객체 지향 프로그래밍
- 추상화
- 캡슐화
- 상속
- 다형성
역할과 구현으로 구분해서 세상을 바라보고 또 코딩하면 단순해지고, 유연해지고, 변경도 편리해진다.
역할(인터페이스) - 구현(인스턴스, 구현 클래스)을 유연하게 변경할 수 있게 되면 코드가 유연해진다.
스프링과 객체 지향
- 다형성이 가장 중요하다.
- 스프링은 다형성을 극대화해서 이용할 수 있게 도와준다.
- 제어의 역전(IoC), 의존관계 주입(DI)은 다형성을 활용해서 역할과 구현을 편리하게 다룰 수 있도록 지원한다.
객체 지향 원칙 SOLID 와 스프링
- SRP (단일 책임 원칙)
- OCP (개방 폐쇄 원칙)
- LSP (리스코프 치환 원칙)
- ISP (인터페이스 분리 원칙)
- DIP (의존관계 역전 원칙)
스프링은 객체 지향 SOLID를 아주 잘 지킬 수 있도록 도와 준다.
특히 구현 클래스를 변경 했을 때, 객체를 생성하고, 연관 관계를 맺어주는 별도의 조립자, 설정자의 역할을 해준다.
다음 강의 내용을 기반으로 정리했습니다.
https://www.inflearn.com/course/스프링-핵심-원리-기본편
블로그의 정보
PyTong
PyTong