2019. 5. 16. 16:54ㆍJAVA 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 |