[Web] Spring Framework
Spring Framework
Framework란?
완전한 제품이아닌 반제품. 이미 잘 만들어진 "틀"
특수한 경우 개발자가 처음부터 모두 만들 수 있지만, 보편적으로는 이미 잘 만들어져 널리 쓰이고 있는 반제품을 활용해서 만드는 것
Spring Framework
엔터프라이즈 급 어플리케이션을 구축할 수 있는 가벼운 솔루션이자, One-Stop-Shop(모든 과정을 한꺼번에 해결하는 상점)이다. 원하는 부분만 가져다 사용할 수 있도록 모듈화가 잘 되어 있다. IoC 컨테이너이다. 선언적으로 트랜잭션을 관리할 수 있고, 완전한 기능을 갖춘 MVC Framework를 제공한다. AOP를지원하고 도메인 논리 코드와 쉽게 분리될 수 있는 구조를 가진다.
약 20개의 모듈이 있고 그 중 필요한 모듈을 가져와 쓸 수 있다.
spring-AOP : AOP Aliance와 호환되는 방법으로 AOP를 지원한다.
spring-aspects : AspectJ와의 통합을 제공한다
spring-instrument : 인스트루멘테이션을 지원하는 클래스와 특정 WAS에서 사용하는 클래스로더 구현체를 제공한다. 참고로 BCI(Byte Code Instrumentations)은 런타임이나 Load 때 클래스의 바이트 코드에 변경을 가하는 방법이다.
spring-messaging : 스프링 프레임워크 4는 메시지 기반 어플리케이션을 작성할 수 있는 message, messageChannel, MessageHandler등을 제공한다. 또한 해당 모듈에는 메소드에 메시지를 맵핑하기 위한 어노테이션도 포함되어 있으며 Spring MVC 어노테이션과 유사하다.
Data Access Integration
- spring-jdbc: 자바 jdbc 프로그래밍을 쉽게 할 수 있도록 기능을 제공한다.
- spring-tx : 선언적 트랙잭션 관리를 할 수 있는 기능을 제공한다.
여러가지 기능이 있지만 모두 알 필요는 없고 spring core만 제대로 숙지하고 있고, 부가적인 기능들은 필요에 따라 사용하면 된다.
Web
- spring-web : 멀티 파트 파일 업로드, 서블릿 리스너 등 웹 지향 통합 기능을 제공한다. http 클라이언트와 Spring의 원격 지원을 위한 웹 관련 부분을 제공한다.
- spring-webmvc : web-servlet 모듈이라고도 불리며, spring MVC 및 REST 웹 서비스 구현을 포함한다.
라이브러리 VS 프레임워크
프레임워크는 위에서 설명한 대로 반제품에 빗댈 수 있는데 반해, 라이브러리는 작성자가 어떤 로직이나 원하는 연산결과를 얻을 수 있도록 제공하는 함수 또는 그런 기능이다. 프레임워크라는 틀을 가공할 수 있는 여러가지 도구들이라고 생각하면 될 것 같다.
참고 : https://docs.spring.io/spring/docs/4.3.14.RELEASE/spring-framework-reference/htmlsingle/#overview
No comments: