Software Engineering/Spring Boot

Java EE(Jakarta EE) vs. Spring 프레임워크

iseop 2023. 8. 27. 17:26   인쇄용 버전

 Spring은 Java EE를 대체하기 위해 나온 기술입니다. Java EE에는 JSP, JSTL, Servlet, EJB, JavaMail, JTA, JMS, JPA 등의 하위 기술들이 포함되어 있는데, 각각이 Spring Framework와 어떻게 대응되는지 궁금해져서 오랜만에 글을 쓰게 되었습니다. 추가로 Java EE와 Spring의 특징과 차이점도 함께 정리하겠습니다.

 Slideshare에서 좋은 자료를 발견해서 원본 주소를 남기고 가져와 보았습니다. 2011년 자료이지만 기술의 발달 과정을 이해하는 데는 옛날 자료도 도움이 많이 된다고 생각합니다.

 

1. 특징 비교

https://www.slideshare.net/kelapure/java-e-evsspringshootout

의존성 주입 JSR(Java Specification Requests)
CDI(Contexts and Dependency Injection)
Spring Inversion of Control Container
관점 지향 프로그래밍 Interceptors
Decorators
Spring AOP
영속성 JPA(Java Persistence API)
Hibernate ORM
트랜잭션 Java EE 6 - Transactions from docs.oracle.com
프레젠테이션 JSF(Java Server Faces)
Spring MVC
웹 서비스 JAX-WS & JAX-RS
메시징 JMS(Java Messaging Service)
테스트 JUnit

 

 

2. 공통점과 차이점

Java EE Spring
둘 다 널리 사용되는 미들웨어 솔루션이다.
각 기능이 서로 일치하고, 단순한 수준의 코드는 거의 유사하다.
기본값 활용 및 설정 최소화
(convention over configuration)
명시적 설정 필요(XML 또는 Java코드로)
* Spring Boot는 Java EE처럼 기본값을 적극 활용
기능이 중복되는 구성요소 없음
(모든 구성요소들은 고유한 기능을 지님)
다양한 구성요소들이 서로 대체 가능하나 복잡성 증대
(e.g. Hibernate vs. myBATIS)
벤더/플랫폼 독립적 Java 표준 기술 공식적인 표준은 아니나 빠르게 발전함
(2009년 VMware가 인수하여 현재에 이름)
구현 벤더에 따라 비표준 기술/추가기능을 수용함