Hello World!

[Spring Basic] 객체 지향 설계와 스프링

by PyTong

BE

https://www.inflearn.com/course/스프링-핵심-원리-기본편

스프링이란?

  • 자바 언어 기반의 프레임워크 -> 객체 지향
  • 객체 지향 언어가 가진 강력한 특징을 살려내는 프레임워크
  • "좋은" 객체 지향 애플리케이션을 개발 할 수 있게 도와주는 프레임 워크
  • 스프링 DI 컨테이너, AOP, 이벤트, MVC, WebFlux, 트랙잭션, JDBC, ORM 지원 ... 등등 정말 다 있다

https://docs.spring.io/spring-framework/docs/4.3.x/spring-framework-reference/html/overview.html

 

 

흔히 말하는 "좋은" 객체 지향 프로그래밍

  • 추상화
  • 캡슐화
  • 상속
  • 다형성

역할과 구현으로 구분해서 세상을 바라보고 또 코딩하면 단순해지고, 유연해지고, 변경도 편리해진다.

역할(인터페이스) - 구현(인스턴스, 구현 클래스)을  유연하게 변경할 수 있게 되면 코드가 유연해진다.

 

 

스프링과 객체 지향

  • 다형성이 가장 중요하다.
  • 스프링은 다형성을 극대화해서 이용할 수 있게 도와준다.
  • 제어의 역전(IoC), 의존관계 주입(DI)은 다형성을 활용해서 역할과 구현을 편리하게 다룰 수 있도록 지원한다.

 

 

객체 지향 원칙 SOLID 와 스프링

  • SRP (단일 책임 원칙)
  • OCP (개방 폐쇄 원칙) 
  • LSP (리스코프 치환 원칙)
  • ISP (인터페이스 분리 원칙)
  • DIP (의존관계 역전 원칙)

스프링은 객체 지향 SOLID를 아주 잘 지킬 수 있도록 도와 준다.

특히 구현 클래스를 변경 했을 때, 객체를 생성하고, 연관 관계를 맺어주는 별도의 조립자, 설정자의 역할을 해준다.

 

 

다음 강의 내용을 기반으로 정리했습니다. 
https://www.inflearn.com/course/스프링-핵심-원리-기본편

 

 

블로그의 정보

PyTong

PyTong

활동하기