Spring이란?

최준영·2021년 9월 26일
0

Spring Framework란?


  • 엔터프라이즈급 어플리케이션을 구축할 수 있는 가벼운 솔루션이자, 원-스탑-숍(여러 요구사항 충족 가능)이다.
  • 원하는 부분만 가져다 사용할 수 있도록 모듈화가 잘 되어있다.
  • IoC 컨테이너이다.
    • Inversion of control : 제어의 주체가 뒤바뀜. 이전까지는 개발자가 코드의 흐름, 제어의 주체였다면, 스프링에서는 프레임워크(컨테이너)가 주체가 된다.
    • 선언적으로 트랜잭션을 관리할 수 있다.
    • 완전한 기능을 갖춘 MVC Framework를 제공한다.
    • AOP를 지원한다. AOP(Aspect-Oriented Programming)는 OOP를 보완하는 수단으로, 흩어진 Aspect를 모듈화 할 수 있는 프로그래밍 기법이다.
    • 스프링은 도메인 논리 코드와 쉽게 분리될 수 있는 구조로 되어있다.

프레임워크 모듈

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

AOP와 인스트루멘테이션(Instrumentation)

  • spring-AOP : AOP 얼라이언스와 호환되는 방법으로 AOP를 지원한다.
  • spring-aspects : AspectJ와의 통합을 제공한다.
  • spring-instrument : 인스트루멘테이션을 지원하는 클래스와 특저어 WAS에서 사용하는 클래스로 더 구현체를 제공한다. 참고로 BCI(Byte Code Instrumentations)은 런타임이나 로드 때 클래스의 바이트 코드에 변경을 가하는 방법을 말한다.

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 : 메시지 생성 및 사용을 위한 기능을 제공, Spring Framework 4.1 부터 spring-messaging 모듈과의 통합을 제공한다.

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

프레임워크와 라이브러리


  • 프레임워크 : 작성자가 쉽게 접근 가능하고 만들 수 있는 기본 토대 및 환경
  • 라이브러리 : 작성자가 어떤 로직이나 원하는 연산 결과를 얻을 수 있도록 제공하는 함수 또는 그런 기능
profile
do for me

0개의 댓글