본문 바로가기
목차
JSP

대중적 스프링 프레임워크 모듈

by 지각생 2021. 12. 24.
728x90

스프링프레임워크는 다른 많은 기능들이 있습니다. 그 기능들은 약 스무개의 모듈로 나위어져 있으며 흔히 발생하는 문제들을 해결하고 있습니다. 

아래는 몇가지 대중적인 모듈들입니다.

* Spring JDBC

* Spring MVC

* Spring AOP

* Spring ORM

* Spring JMS

* Spring Test

* Spring Expression Language( SpEL )

 

관점 지향 프로그래밍( AOP, Aspect Oriented Programming)은 스프링 프레임워크에서 아주 강력한 기능입니다. 객체지향 프로그래밍에서 중요 키포인트는 Class입니다. 반면 AOP에서는 관점(Aspect)입니다. 예를 들어, 기존 프로젝트에 security나 logging 등을 추가하고 싶을 때.. 기존 비즈니스 로직에는 손을 대지 않고 AOP를 활용하여 추가할 수 있습니다. 특정 메소드가 끝날 때 호출할 수도 있고, 호출 직전, 메소드가 리턴한 직후 혹은 예외가 발생했을 때 등 여러가지 상황에 활용할 수 있습니다.

스프링은 스프링만의 ORM을 가지고 있지 않습니다. 그러나 Hibernate, Apache Ibatis 등과 같은 ORM과의 매우 우수한 통합환경을 제공합니다.

간단히 말해, 스프링 프레임워크는 웹 어플리케이션을 개발하는데 결합도를 낮추는 방향의 개발방법을 제공한다고 말할 수 있습니다. Web 어플리케이션 개발은 스프링의 이러한 컨셉( Dispatcher Servlet, ModelAndView, and Vier Resolver ) 덕분에 쉬운 개발을 할 수 있게 됬습니다.

 

스프링이 이토록 많은 문제들을 해결하고 있다면, 왜 스프링 부트의 필요해졌을까??

현재 당신이 스프링으로 이미 개발하고 있다면, 모든 기능을 다 갖춘 스프링 어플리케이션을 개발하면서 직면한 문제들에 대해서 되새겨 생각해보세요. 만일 생각을 못하는 분들을 위해 몇가지 꼬집어보겠습니다. Transaction Manager, Hibernate Datasource, Entity Manager, Session Factory와 같은 설정을 하는데에 어려움이 많이 있었습니다. 최소한의 기능으로 Spring MVC를 사용하여 기본 프로젝트를 셋팅하는데 개발자에게 너무 많은 시간이 걸렸습니다.

 

스프링부트는 스프링의 이러한 설정에 관한 이슈를 어떻게 풀었을까??

 

스프링 부트 스타터 프로젝트 옵션들

응용프로그램의 종류에 따라 쉽고 빠르게 개발을 도와줄 수 있는 몇가지 스프링 스타터 프로젝트를 소개하겠습니다

* spring-boot-starter-web-services : SOAP 웹 서비스

* spring-boot-starter-web : Web, RESTful 응용프로그램

* spring-boot-starter-test : Unit testing, Integration Testing

* spring-boot-starter-jdbc : 기본적인 JDBC

* spring-boot-starter-hateoas : HATEOAS 기능을 서비스에 추가

* spring-boot-starter-security : 스프링 시큐리티를 이용한 인증과 권한

* spring-boot-starter-data-jpa : Spring Data JPA with Hibernate

* spring-boot-starter-cache : 스프링 프레임워크에 캐싱 지원 가능

* spring-boot-starter-data-rest : Spring Data REST를 사용하여 간단한 REST 서비스 노출

 

https://sas-study.tistory.com/274

728x90

댓글