본문 바로가기
Progamming/BoostCourse

Spring이란?

by 동그란 혜주 2019. 3. 13.
  • 들어가기 전에

이번 시간에는 Spring Framework가 무엇인지, 그리고 Spring Framework를 구성하고 있는 모듈에는 어떠한 것들이 있는지 알아보도록 하자




  • 학습 목표

1. Spring Framework가 무엇인지 이해한다.

2. Spring Framework에는 어떤 모듈들이 있는지 이해한다.




  • 핵심 개념

- Spring Framework

- Spring Framework Modules



 

  • Framework

- 이미 만들어져 있는 반제품 역할

- 프로그래밍에서 이미 중요한 부분, 어려운 부분, 복잡한 부분 이런 것들은 미리 구현되어있음




  • Spring Framework

- 엔터프라이즈 급(굉장히 큰) 어플리케이션을 구축할 수 있는 가벼운 솔루션이자, 원스-스탑-숍(One-Stop-Shop)

· One-Stop-Shop : 모든 과정을 한꺼번에 해결하는 상점

- 원하는 부분만 가져다 사용할 수 있도록 모듈화가 잘 되어 있다

- IoC 컨테이너

- 선언적으로 트랜잭션을 관리할 수 있다

- 완전한 기능을 갖춘 MVC Framework를 제공

- AOP 지원

- 스프링은 도메인 논리 코드와 쉽게 분리할 수 있는 구조로 되어있다




  • Spring Framework Modules

- 스프링 프레임워크는 약 20개의 모듈로 구성

- 필요한 모듈만 가져다 사용가능





  • 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 구현을 제공한다. 

'Progamming > BoostCourse' 카테고리의 다른 글

XML 파일을 이용한 설정  (0) 2019.03.13
Spring IoC/DI 컨테이너  (0) 2019.03.13
Tap UI에 생명 불어넣기  (0) 2019.02.12
Tab UI를 만들기 위한 HTML과 CSS 구조 전략  (0) 2019.02.12
HTML templating 실습  (0) 2019.02.12

댓글