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