1. 소개

  • 자바 플랫폼을 위한 오픈소스 애플리케이션 프레임워크이다.
  • 프레임워크란 소프트웨어 설계의 유용한 경험을 재사용할 수 있도록 일반화한 명세이다.
  • 대한민국 공공기관의 웹 서비스 개발 시 사용을 권장하고 있는 전자정부 표준프레임워크(e-Goverment framework)의 기반 기술이다.
  • POJO & Dependency Injection

2. 특징

2.1. 제어 반전 컨테이너/(IoC: Inversion of Control) 컨테이너

2.2. 관점 지향 프로그래밍(AOP)을 지원

AOP의 주요 개념은 여기를 읽어보자.

2.2. 데이터베이스 연동 지원

데이터 액세스 프레임워크/스프링은 데이터베이스에 접속하고 자료를 저장 및 읽어오기 위한 여러 가지 유명한 라이브러리, 즉 JDBC, iBATIS(MyBatis), Hibernate 등에 대한 지원 기능을 제공하여 데이터베이스 프로그래밍을 쉽게 사용.

2.4. MVC 패턴

Spring MVC라 불리는 모델-뷰-컨트롤러(MVC) 패턴을 사용한다.

  • Model : 애플리케이션 데이터와 비즈니스 로직을 담는 객체이다.
  • View : Model을 표시한다. (하나의 Model이 여러 View에서 사용됨)
  • Controller : Model과 View의 중계역할을 한다. 

MVC의 흐름은 이렇다.

  • 클라이언트가 요청하면 DispatcherServlet이 요청을 받는다.
  • DispatcherServlet이 request 정보와 함께 HandlerMapping을 호출하고, HandlerMapping이 request를 처리할 Controller 정보를 알려준다.

3. LyfeCycle

  • Initialization 
  • Spring Beans 생성
  • Dependency Injection 발생
  • 애플리케이션 내에서 Bean 사용 가능
  • Destruction 
  • GC에 의해 Bean 릴리즈

4. Spring Boot