스프링이란?
스프링 프레임워크(Spring Framework)
자바 기반 가장 대중적인 개발 프레임워크
의존성 주입(DI), 제어의 역전(IoC) => 결합도를 낮추는 어플리케이션 개발 가능
어노테이션을 통한 단순한 개발 방법을 제공한다.
스프링 프레임워크의 모듈들
Spring JDBC
Spring MVC
Spring AOP
Spring ORM
Spring Test
등등...
객체 지향 프로그래밍(OOP)에서 가장 중요한 것은 Class
관점 지향 프로그래밍(AOP)에서 가장 중요한 것은 관점(Aspect)
스프링은 AOP
스프링만의 ORM을 가지고 있지 않지만 Hibernate 또는 Apache Ibatis와 같은 ORM 사용 가능
하지만 스프링 프로젝트 셋팅이 어려워 ,,, 개발자에게 너무 많은 시간이 걸리더라.
스프링 부트는 자동설정(AutoConfiguratioin)을 이용 -> 개발에 필요한 내부 디펜던시를 관리함
미리 설정된 스타터 프로젝트를 제공하여 jar 파일이 클래스 패스내에 있으면 해당 설정을 알아서 구성함
예를 들어 스프링의 jar는 dispatcher servlet으로, Hibernate의 jar는 datasource로
각각의 호환되는 버전을 선택해줘야 했던 스프링의 복잡도를 줄이기 위해 SpringBoot Starter 도입
개발자는 디펜던시 관리와 각각의 호환 버전에 대해 고민할 필요가 없더라.