스프링 프레임워크 등장
EJB 지옥
EJB에서 주는 인터페이스를 다 받아서 서비스 repo 등을 개발했어야 했다 -> 즉, ejb의 의존도가 굉장히 높아짐
근데 이 EJB가 굉장히 어려움.
그러다 보니, 그냥 순수한 JAVA를 쓰자는 말들이 나옴.
그러다 로드 존슨이란 사람이 있는데, 이 사람이 EJB 없이도 충분히 고품질의 확장 가능한 애플리케이션을 개발 할 수 있음을 보여줌. 여기에 지금의 스프링 핵심 개념과 기반 코드가 들감
이걸 기반으로 오픈소스인 스프링 프레임워크가 만들어졌다.
그러다 2003~ 2013 까지 쭉 스프링 프레임워크가 쭊쭊 발전하기 시작함.
핵심 기술: AOP, DI, MVC, WebFlux, 트랜잭션, JDBC, ORM, 캐시, 등등
스프링이 잘되면서 스프링을 기반으로 하는 데이터, 시큐리티, 배치 등등 시스템들도 계속 늘어남
스프링 생태계가 계속 커지게 됨
수 많은 라이브러리를 함께 사용해야 함 --> 그러다 보니, 프로젝트 시작할 때 필요한 설정이 늘어남 --> 설정하다가 시작도 못하는 경우가 늘어남.. 즉, 스프링이 무거워져버렸다 ..
설정을 제대로 하려면 스프링을 알아야하는데, 시작을 하려면 설정을 해야됨 ㅇ__ㅇ.. 응?
스프링 빈은 또 어떨까.. 너무 많은 빈을 등록해야 해.. 그리고 빈 등록하면서 각각의 빈의 설정 값도 다 고민해야돼
ㅠ_ㅠ 넘 힘들어 ㅠ_ㅠ
이~ 문제를 해결하기 위해서 나온게 스프링 부트다 !
BOOT, 부팅. 즉, 어떤 일을 시작하기 위해 필요한 준비를 한다는 것. (인간 개입 최소화)
스프링 부트 프로젝트를 시작한다?
-복잡한 설정이 없음
- 최근엔 기본을 사용
- 편리하게 사용할 수 있도록 지원
WAS: 웹 서버 내장해서 별도의 웹 서버 설치가 필요없음
라이브러리 관리
- 스타터 종속성 제공: 관련된 모든 dependency 자동으로 다 다운해줌
- 라이브러리 버전 자동 관리
자동 구성 : 필요한 빈 자동 등록
외부 설정: 환경에 따라 달라져야 하는 외부 설정 공통화
프로덕션 준비:??? 모네티렁 위한 메트릭 제공
결론~~ 스프링 부트는 너~무 편리해서 무조건 사용해야됨
스프링 부트는 스프링 프레임워크를 쉽게 사용할 수 있게 도와주는 도구일 뿐이다. 본질은 스프링 프레임워크.
부트없이 스프링만 사용하는건 가능하지만, 너어어무 편리해서 거의 필수가 되어버림
2014년 스프링 부트 1.0에 나와서
2017에 스프링 부트 2.0이 되고
2022년 스프링 부트 3.0 이 나옴! --> JAVA 17
'스프링'