티스토리 뷰

728x90

 

 

안녕하세요. 개발개입니다.

 

이번 글에서는 Java Enterprise Application을 빌드하는데 보편적으로 사용되는
Spring Framework특징사용하는 이유에 대해 알아보도록 하겠습니다.

 

오타, 오류 혹은 기타 의견은 언제든지 환영합니다.

 

 

 


 

 

0. 들어가기 전에

프레임워크(framework)를 사용하는 이유부터 생각해 봅시다.

 

프레임워크를 사용하면 다음과 같은 장점이 있습니다.

  1. 설정보다 개발 업무에 좀 더 집중할 수 있습니다.
  2. 오랜 기간동안 확립된 디자인 패턴을 기반으로 합니다.
  3. 표준을 준수할 수 있도록 합니다.
  4. 비용 절감 효과가 있습니다. (생산량 증가)

하지만 반대로 이런 단점도 있습니다.

  1. 특정 방식대로 코드를 짜야 합니다.
  2. 언어나 라이브러리의 특정 버전을 탑니다.

 


 

1. 스프링 프레임워크의 특징

스프링은 애플리케이션 레벨에서의 인프라를 지원합니다.

즉, 설정 등을 최소화 함으로써 비즈니스 로직을 개발하는 데 좀 더 집중할 수 있습니다.

 

주요 특징은 다음과 같습니다.

Core

DI (Dependency Injection; 의존성 주입)

AOP (Aspect Oriented Programming; 관점 지향 프로그래밍)

데이터 바인딩

형변환

 

Data Access

Transaction (트랜잭션)

DAO 지원

JDBC (Java Database Connectivity)

ORM (Object Relational Mapping)

XML 마샬링

 

Web

Servlet API (Spring MVC)

Reactive API (Spring WebFlux)

 

Integration

JMS (Java Message Service)

JMX (Java Management Extenstion)

RMI (Remote Method Invocation)

스케줄링

캐시

 

Testing

모의 객체를 통한 단위/통합 테스트

Spring MVC Test

WebTestClient

 

 

다음은 스프링의 큰 특징 중 하나인 스프링 에코시스템(ecosystem; 생태계)의 일부 스프링 프로젝트입니다.

Boot 적은 설정으로 Spring 기반의 Standalone형 응용 프로그램을 쉽게 만들 수 있으며, 내장 Tomcat, Jetty, Undertow를 직접 사용할 수 있어 WAR 파일을 배포할 필요 없습니다. 
Cloud 서비스 검색, 회로 차단기 및 API 게이트웨이와 같은 일반적인 분산 시스템 패턴을 쉽게 개발할 수 있도록 지원합니다.
Security 사용자 정의가 가능한 인증 및 액세스 제어 프레임 워크로써 인증, 권한 부여 등 Spring 기반 애플리케이션의 보안을 위한 표준입니다.
Mobile Spring 웹 사이트에 요청하는 장치 유형을 감지하고 해당 장치를 기반으로 대체보기를 제공하는 기능을 제공하는 프레임 워크입니다.
Batch 배치 프로그램 개발을 위한 경량 프레임 워크로써 로깅, 트랜잭션 관리, 작업 처리 통계, 자원 관리 등을 포함하여 대용량의 레코드를 처리하는데 필수적인 기능들을 제공합니다.

 

다른 스프링 프로젝트는 다음 링크에서 확인할 수 있습니다. https://spring.io/projects

 

 


 

 

2. 스프링 프레임워크를 사용하는 이유

 - 편리함 

앞서 언급한 바와 같이 스프링 프레임워크는 기본적인 설정 등을 제공하기 때문에 옵션을 설정하는데 소비되는 시간을 줄여 주기 때문에 편리하고 로직 개발에 좀 더 집중할 수 있게 해줍니다. 

 

 - 모듈성 

주요 특징 중 하나로, 모듈화가 잘 되어 있기 때문에 Spring에서 제공하는 모듈 중 필요한 프로젝트를 선택적으로 사용할 수 있습니다. (위에 언급한 1. 스프링 프레임워크의 특징 중 스프링 에코시스템 참고)

 

 - 가벼움 

스프링 프레임워크는 POJO(Plain Old Java Object)를 지원합니다. 즉, 별도의 API를 사용하지 않고 일반 자바 코드만으로 구성 가능하기 때문에 기본적으로 매우 가볍습니다. (스프링 기본 프로젝트는 약 2MB에 불과)

 

 - 테스팅 

Spring은 TDD(Test Driven Development)를 지원합니다. 대체로 POJO로 구성되어 있기 때문에 단위 테스트가 용이하고, 복잡하지 않은 MVC 등의 시나리오에 대해 모의 객체를 제공합니다.

 

 - 커뮤니티 

Pivotal Software의 오픈 소스로써 공식적인 레퍼런스, 튜토리얼을 제공하고 있습니다. 또한, 사용자가 많은만큼 관련 질의응답도 수월합니다.

 

 

 


 

 

본 글은 다음을 참고하여 작성되었습니다.

https://spring.io/

 

spring.io

Let's build a better Enterprise. Spring helps development teams everywhere build simple, portable, fast and flexible JVM-based systems and applications.

spring.io

https://www.baeldung.com/spring-why-to-choose

 

Why Choose Spring as Your Java Framework? | Baeldung

A quick and practical overview of the main value proposition of Spring framework.

www.baeldung.com

https://www.websoptimization.com/blog/reasons-to-use-spring-framework/

 

Top 10 reasons to use Spring Framework ! Spring Framework Advantages

Looking for the Java Spring framework advantages for your next Java application development? Explore the blog to know the benefits of using the Spring framework.

www.websoptimization.com

 

 

728x90
Total
Today
Yesterday
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
05-03 11:56