Spring이란?
자바 플랫폼을 위한 오픈 소스 애플리케이션 프레임워크
1. MVC패턴
MVC 구조는 Model - View - Controller 구조로 된 패턴을 말한다.
- View
사용자에게 보여지는 화면이다.
- Controller
View와 Service 사이를 연결한다.
- Service
실제 비즈니스로직을 처리한다.
- Repository
DB관리와 CRUD 작업을 처리한다.
2. 제어의 역전 (IoC: Inversion of Control)
- 객체간의 제어권을 개발자가아닌 스프링컨테이너가 객체의 생성부터 생명주기관리까지 관리하는 것
- IoC 컨테이너: 인스턴스 생성부터 소멸까지의 인스턴스 생명주기 관리를 개발자가 아닌 컨테이너가 관리한다.
- Bean: 스프링 컨테이너가 관리하는 객체
3. 의존성 주입 (DI: Dependency Injection)
- 객체를 직접 생성하는게 아닌 외부에서 생성후 주입 받는 방식
- 객에간의 의존성을 낮출 수 있다.
4. 관점 지향 프로그래밍 (AOP: Aspect Oriented Programming)
- 핵심 로직과 부가 기능을 분리하여 애플리케이션 전체에 걸쳐 사용되는 부가 기능을 모듈화하여 재사용할 수 있도록 지원하는 것