Technical NOTE

Java EE 와 Jakarta EE 규격의 차이점 본문

카테고리 없음

Java EE 와 Jakarta EE 규격의 차이점

테크니컬노트 2024. 9. 24. 13:50
반응형
- 작성일 : 2024.09.24

 

Java EE 와 Jakarta EE 의 차이점은 주로 역사적 배경과 라이센스, 패키지 네이밍, 관리 구조 및 규격 명세 등에서 차이가 발생하게 된다. 이를 이해하기 위해, 두 규격의 개념과 차이점에 대해 각각 설명해보겠다.

 

개념 및 역사적 배경

 

Java EE (Java Platform, Enterprise Edition)

  • 초기 개발 및 관리 : Java EE는 Sun Microsystems에 의해 개발되었으며, Java 기반의 엔터프라이즈 어플리케이션을 개발하기 위한 표준 규격이다.
  • Oracle 인수 : 2010년에 Oracle이 Sun Microsystems를 인수하면서 Java EE의 관리 주체가 Oracle로 변경되었다.
  • 기능 및 구성 요소 : Java EE는 Servlet, JSP, EJB, JPA, JAX-RS, JAX-WS 등 다양한 엔터프라이즈 기술 스펙을 포함하고 있으며, 웹 어플리케이션 및 엔터프라이즈 시스템을 구축하는 데 필요한 기능을 제공한다.
  • 최종 버전 : Java EE 8 (2017년 발표)

Jakarta EE

  • 이전 및 재명명 : 2017년 Oracle은 Java EE 의 개발을 Eclipse Foundation에 이관하면서 Java EE 는 Jakarta EE 로 이름이 변경되었다.
  • 명칭 변경 이유 : Java라는 이름은 Oracle의 상표권에 속하므로, 새로운 관리 주체인 Eclipse Foundation은 Jakarta EE 라는 새로운 이름을 사용하게 되었다.
  • 패키지 변경 : Java EE 에서 사용하던 javax 패키지가 jakarta 패키지로 변경되었다. 이는 API 호환성에 큰 영향을 미치게 되었다.
  • 최신 기술 반영 : Jakarta EE 는 더 빠른 릴리즈 주기를 통해 최신 Java 표준 및 기술을 반영하고 있다. 예를 들어, Jakarta EE 9에서는 새로운 Java 언어 기능들을 지원하기 위해 패키지 구조를 javax 에서 jakarta 로 변경했다.
  • 최신 버전 : Jakarta EE 10 (2022년 발표)

 

주요 차이점

 

네이밍 및 패키지 변경

  • Java EE : javax 패키지 사용 (예 : javax.servlet, javax.persistence )
  • Jakarta EE : jakarta 패키지로 변경 (예 : jakarta.servlet, jakarta.persistence )
    • 이는 Java EE 8 에서 Jakarta EE 9 로 마이그레이션할 때 가장 큰 변화 중 하나이다. 패키지 변경으로 인해 기존 어플리케이션의 호환성을 유지하려면 소스 코드 변경이 반드시 필요하다.

관리 주체 및 커뮤니티

  • Java EE : Oracle이 관리. 폐쇄적 개발 모델
  • Jakarta EE : Eclipse Foundation이 관리. 커뮤니티 중심의 개방형 개발 모델
    • Jakarta EE 는 오픈소스 커뮤니티와의 활발한 협력을 통해 새로운 기술과 기능들을 더 빨게 반영하고 있다.

라이센스

  • Java EE : Oracle의 라이센스 정책에 의해 제약을 받음
  • Jakarta EE : Eclipse Public License(EPL)을 사용하여 더 자유로운 라이센스 정책을 적용
    • Oracle의 라이센스 제약을 벗어나기 위해 패키지 네임스페이스를 변경했다.

릴리즈 주기 및 최신 기술 반영

  • Java EE : 상대적으로 긴 릴리즈 주기. 최신 Java 버전과 기능 반영이 늦음
  • Jakarta EE : 더 빠른 릴리즈 주기와 최신 Java 표준 및 기능 반영
    • 예를 들어, Jakarta EE는 Java 11, 17과 같은 최신 LTS(Limited Term Support) 버전과의 호환성을 빠르게 제공하기 위해 노력하고 있다.

기존 어플리케이션의 마이그레이션

  • Java EE 에서 Jakarta EE 로 마이그레이션
    • 패키지 네임스페이스 변경 (javax --> jakarta)로 인해 소스 코드의 수정이 필요함
    • 특정 API와 기능의 변경이 있을 수 있어, 어플리케이션의 테스트와 검증이 필요함
    • Java EE 8 기반의 어플리케이션은 Jakarta EE 8 과 호환되지만, Jakarta EE 9 이상에서는 javax 패키지를 사용할 수 없음

기술 및 API 발전

  • Jakarta EE 는 Java EE 를 기반으로 하지만, 더 개방적이고 빠른 속도로 진화하고 있다.
  • 예를 들어, Jakarta EE 9 에서는 Servlet 5.0, JPA 3.0, CDI 3.0 등 최신 API 버전을 도입하고, Java SE 11을 지원하기 위해 구조적인 변경을 시행하였다.

 

요약 및 결론

 

Java EE 와 Jakarta EE 의 차이점은 주로 패키지 네임스페이스의 변경, 관리 주체의 변경, 라이센스 및 개발 방식의 차이로 요약할 수 있다.

Java EE는 Oracle에 의해 폐쇄적이고 느린 개발 모델을 따랐다면, Jakarta EE는 Eclipse Foundation에 의해 관리되면서 커뮤니티 중심의 개방적이고 빠른 개발 모델을 따르고 있다.

 

Jakarta EE로의 전환은 최신 Java 기술을 더 빠르게 반영하고, 엔터프라이즈 애플리케이션 개발을 더 유연하고 자유롭게 할 수 있는 환경을 제공한다. 그러나 javax에서 jakarta로의 패키지 변경은 기존 Java EE 어플리케이션의 마이그레이션에 큰 영향을 미치므로, 전환 시 충분한 계획과 검토가 필요해 보인다.

 
 
반응형