- 2002년 로드 존슨이 EJB의 문제점을 지적하면서 EJB 없이도 충분히 고품질의 확장 가능한 애플리케이션을 개발할 수 있음을 보여주면서 30,000라인 이상의 기반 기술을 예제 코드로 선보인 책을 출간함.
로드 존슨의 책 출간 직후 유겐 휠러, 얀 카로프가 로드 존슨에게 오픈소스 프로젝트를 제안했고 그때 만들어진 오픈소스가 스프링의 기반이 됨
[ 스프링 생태계 ]
- 필수
- 스프링 프레임워크
- 스프링 부트
- 선택
- 스프링 데이터
- 스프링 세션
- 스프링 시큐리티
- 스프링 Rest Docs
- 스프링 배치
- 스프링 클라우드
- 등...
[ 스프링 프레임워크 ]
- 핵심 기술 : 스프링 DI 컨테이너, AOP, 이벤트 기타
- web 기술 : 스프링 MVC, 스피링 WebFlux
- 데이터 접근 기술 : 트랜잭션, JDBC, ORM, XML
- 기술 통합 : 캐시, 이메일, 원격 접근, 스케줄링
- 테스트 : 스프링 기반 테스트 지원(JUnit)
- 언어 : 자바, 코틀린, 그루비
[ 스프링 부트 ]
- 스프링을 편리하게 사용할 수 있도록 지원하며 tomcat 같은 웹 서버를 내장하고 있으므로 웹 서버를 별도로 설치하지 않아도 됨
- 스프링과 3rd parth라이브러리 자동 구성
- starter 종속성 제공
- 관례에 의한 간결한 설정
- 최근 추세는 스프링 부트를 사용하는 방향으로 가고 있다.
스프링은 DI(Dependency Injection)과 DI 컨테이너를 제공하기 때문에 객체지향의 5가지 원칙 중 OCP, DIP를 잘 지킬 수 있게 만들어 준다. 클라이언트 코드의 변경 없이 기능 확장이 가능하며 쉽게 부품을 교체하듯이 개발을 할 수 있다는 점이 스프링의 장점이다.
'Back-end > Spring' 카테고리의 다른 글
IoC, DI, 컨테이너 (0) | 2022.02.07 |
---|---|
File Download (0) | 2021.11.05 |