[Spring] Spring Framework?

2019. 5. 16. 16:54JAVA Back-End/Spring

프레임워크(Framework)

 프레임워크는 어떤 완제품이 아닌 반제품으로, 내가 반제품을 이용해서 내가 원하는 애플리케이션을 만들 수 있습니다. 

프레임워크는 라이브러리는 기본으로 들어가고 그것들을 돌아가는 환경입니다. 프레임워크의 약속들을 따르면서 개발을 하고, 자원의 소모가 크니 잘 알고 써야합니다.

 

Spring Framework

- Enterprise급 애플리케이션을 구축할 수 있는 솔루션.

- 원하는 부분만 가져와 사용할 수 있도록 모듈화.

- IoC 컨테이너

- 선언적 트랜잭션을 관리할 수 있음

- 완전한 기능을 갖춘  MVC 프레임워크를 제공

- AOP 지원

- 도메인 논리 코드와 쉽게 분리될 수 있는 구조

 

스프링 프레임워크 모듈

Framework 모듈

  • 스프링 프레임워크는 20개 정도의 모듈로 구성되어 있습니다
  • 필요한 모듈만 가져와 사용할 수 있습니다

AOP와 Instrumentation 

spring-AOP : AOP Alliance와 호환되는 방법으로 AOP를 지원합니다.

spring-aspects : AspectJ와의 통합을 제공합니다.

spring-instrument : Instrumentation을 지원하는 클래스와 특정 WAS에서 사용하는 클래스로 더 구현체를 제공합니다. 참고로 BCI (Byte Code Instrumentations)은 런타임이나 Load때 클래스의 Byte Code에 변경을 가하는 방법을 말합니다.

 

Messaging

spring-messaging : Spring4는 메시지 기반 애플리케이션을 작성할 수 있는 Message, MessageChannel, MessageHandler등을 제공합니다. 또, 해당 모듈에는 메소드에 Message를 맵핑하기 위한 Annotation도 포함되어 있으며, Spring MVC Annotation과 유사합니다. (해당 프로젝트에서는 사용하지 않지만 꼭 찾아서 공부)

 

Data Access / Integration 

데이터 엑세스/통합 계층은 JDBC, ORM, OXM, JMS 및 트랜잭션 모듈로 구성되어 있습니다.

spring-jdbc : 자바의 JDBC 프로그래밍을 쉽게 할 수 있도록 기능을 제공합니다.

spring-tx : 선언적 트랜잭션 관리를 쉽게 하도록 기능을 제공합니다.

spring-orm : JPA, JDO및 Hibernate를 포함한 ORM API를 위한 통합 레이어를 제공합니다.

(js로 mongodb를 조작하는 mongoose같은 ORM. 스프링에서도 이런 ORM을 제공)

spring-oxm : JAXB, Castor, XMLBeans,  JiBX 및 XStream과 같은 Object/XML 맵핑을 지원합니다.

spring-jms : 메시지 생성 및 사용을 위한 기능을 제공합니다. 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패턴 구현을 제공합니다.

 

 

[ edwith - 웹프로그래밍 부스트코스 ] 를 개인적으로 공부하고 정리한 공간입니다. 잘못된 부분은 피드백 주시면 감사하겠습니다

'JAVA Back-End > Spring ' 카테고리의 다른 글

스프링과 객체지향, SOLID  (0) 2023.03.28
[Spring] Spring MVC  (0) 2019.06.08
[Spring] Spring JDBC  (0) 2019.06.07
[Spring] xml파일을 이용한 Spring설정  (0) 2019.05.18
[Spring] IoC / DI 컨테이너  (0) 2019.05.16