Framework란?
완전한 제품이 아닌 반제품을 이용해 완제품을 만들어내는 것처럼, 프레임워크는 이미 중요하고 어렵고 복잡한 부분이 구현되어있는 반제품이라고 보면 된다.
Spring Framework란?
- 엔터프라이즈급 어플리케이션을 구축할 수 있는 가벼운 솔루션, 원스-스탑-숍(One-Stop-Shop) -> 모든 과정을 한꺼번에 해결 가능
- 원하는 부분만 가져다 사용할 수 있도록 모듈화가 잘 되어 있음
- IoC 컨테이너
- 선언적으로 트랜잭션 관리 가능
- 완전한 기능을 갖춘 MVC Framework 제공
- AOP 지원
- 도메인 논리 코드와 쉽게 분리될 수 있는 구조
프레임 워크 모듈
- 스프링 프레임워크는 약 20개의 모듈로 구성됨
- 필요한 모듈만 가져다 사용 가능
- Spring Core는 알고 있어야 하지만 다른 모듈들은 필요할 때마다 배워도 괜찮다!
AOP 와 인스트루멘테이션 (Instrumentation)
- spring-AOP : AOP 얼라이언스(Alliance)와 호환되는 방법으로 AOP를 지원합니다.
- spring-aspects : AspectJ와의 통합을 제공합니다.
- spring-instrument : 인스트루멘테이션을 지원하는 클래스와 특정 WAS에서 사용하는 클래스로 더 구현체를 제공,
+) BCI(Byte Code Instrumentations): 런타임이나 로드(Load) 때 클래스의 바이트 코드에 변경을 가하는 방법
메시징(Messaging)
- spring-messaging : 스프링 프레임워크 4는 메시지 기반 어플리케이션을 작성할 수 있는 Message, MessageChannel, MessageHandler 등을 제공, 해당 모듈에는 메소드에 메시지를 맵핑하기 위한 어노테이션도 포함되어 있으며, Spring MVC 어노테이션과 유사함
데이터 엑서스(Data Access) / 통합(Integration)
- 데이터 엑세스/통합 계층: JDBC, ORM, OXM, JMS 및 트랜잭션 모듈로 구성
- spring-jdbc : 자바 JDBC프로그래밍을 쉽게 할 수 있도록 기능을 제공
- spring-tx : 선언적 트랜잭션 관리를 할 수 있는 기능 제공
- spring-orm : JPA, JDO및 Hibernate를 포함한 ORM API를 위한 통합 레이어 제공
- spring-oxm : JAXB, Castor, XMLBeans, JiBX 및 XStream과 같은 Object/XML 맵핑 지원
- spring-jms : 메시지 생성(producing) 및 사용(consuming)을 위한 기능을 제공, Spring Framework 4.1부터 spring-messaging모듈과의 통합을 제공
웹(Web)
- 웹 계층: spring-web, spring-webmvc, spring-websocket, spring-webmvc-portlet 모듈로 구성
- spring-web : 멀티 파트 파일 업로드, 서블릿 리스너 등 웹 지향 통합 기능을 제공한다. HTTP클라이언트와 Spring의 원격 지원을 위한 웹 관련 부분 제공
- spring-webmvc : Web-Servlet 모듈이라고도 불리며, Spring MVC 및 REST 웹 서비스 구현 포함
- spring-websocket : 웹 소켓 지원
- spring-webmvc-portlet : 포틀릿 환경에서 사용할 MVC 구현 제공
REFERENCES
https://www.boostcourse.org/web326/lecture/58969/?isDesc=false