매일 조금씩

Java EE 란? Spring framework 와 경쟁? 상호 보완? 본문

Java

Java EE 란? Spring framework 와 경쟁? 상호 보완?

mezo 2024. 11. 3. 14:48
728x90
반응형

 

 

 

 

Java EE와 Spring Framework는 엔터프라이즈 애플리케이션을 개발하기 위한 플랫폼으로 공통의 목표를 가지고 있지만,

설계 철학, 기능 제공 방식, 유연성 등의 측면에서 차이가 있다.

 

Spring framework는 2003년 첫 등장 시,

Java EE 표준과 싸운는 것처럼 보여 어그로를 상당히 끌었지만,

실제론 JEE 스팩을 구현(+알파)한 모음체이다.

 

Spring을 사용하는 것이 좋은 어노테이션들:

// Spring
import org.springframework.transaction.annotation.Transactional;
import org.springframework.stereotype.Service;
import org.springframework.stereotype.Repository;
import org.springframework.context.annotation.Configuration;


- Spring의 기능을 더 풍부하게 사용할 수 있음
- Spring 생태계의 다른 기능들과 통합이 더 자연스러움


Jakarta EE를 사용하는 것이 좋은 어노테이션들:

// Jakarta EE
import jakarta.persistence.Entity;
import jakarta.persistence.Id;
import jakarta.persistence.Column;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;


- JPA, Bean Validation 등 표준 스펙 관련 어노테이션들
- 프레임워크 독립성이 중요한 도메인 레이어

 

일반적인 원칙:

  1. 도메인 엔티티나 표준 스펙 관련 -> Jakarta EE
  2. 스프링의 기능을 활용하는 부분 -> Spring
  3. 프레임워크 전환 가능성이 있는 부분 -> Jakarta EE

 

 

 

[요약]

특징 Java EE Spring Framework
철학 Java 표준 기반, 표준화와 상호 운용성 중시 유연성과 경량화 중시, 특정 애플리케이션 서버에 종속되지 않음
의존성 주입(DI) CDI, 서버에 의존적인 DI 관리 IoC 컨테이너를 통한 DI 관리, 유연한 설정 제공
데이터 접근 JPA, 표준 ORM Spring Data JPA, JPA 기능을 간편하게 사용
트랜잭션 관리 JTA, 글로벌 트랜잭션 관리 Spring 트랜잭션 관리, @Transactional 사용
웹 계층 Servlet, JSP, JSF Spring MVC, RESTful API 지원
보안 Java EE Security, 기본 인증 제공 Spring Security, 세밀한 보안 설정 및 OAuth 지원
실행 환경 Java EE 애플리케이션 서버(WildFly, WebLogic 등) 독립 실행 가능 (내장 서버), 클라우드 및 컨테이너 환경에 적합

 

 

 

 

[결론]

Java EE Java 표준에 맞춘 엔터프라이즈 애플리케이션 개발 환경을 제공하며,

표준화와 상호 운용성에 중점을 둔다.

애플리케이션 서버와 긴밀이 결합되어 복잡한 엔터프라이즈 환경에서의 일관성을 보장한다.

 

Spring Framework 유연하고 경량화된 방식으로 개발자 생산성을 높이며, 

서버에 종속되지 않고 다양한 환경에서 실행할 수 있다.

엔터프라이즈 애플리케이션을 구축하는 데 필요한 기능을 제공하되, Java EE 보다 설정과 구성이 단순하고 사용하기 쉽다.

 

 

 

 

728x90
반응형