- 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

+ Recent posts