Jakarta EE
1. 개요
1. 개요
자카르타 EE는 자바를 이용한 서버측 개발을 위한 플랫폼이다. 정식 명칭은 자카르타 EE이며, 이전에는 자바 플랫폼, 엔터프라이즈 에디션 또는 J2EE로 불렸다. 이 플랫폼은 이클립스 재단이 개발 및 관리하며, EPL 혹은 GPL v2 클래스패스 예외 라이선스를 따른다.
자카르타 EE는 자바 SE를 확장하여, 웹 애플리케이션 서버에서 동작하는 장애복구 및 분산 멀티티어 애플리케이션을 구축하기 위한 API와 서비스를 정의한다. 이 플랫폼의 스펙에 따라 구현된 제품을 일반적으로 WAS라고 부른다.
2017년 오라클이 Java EE를 이클립스 재단으로 이관하면서 자카르타 EE로 브랜드가 변경되었다. 이는 커뮤니티 주도의 개방형 개발 모델로의 전환을 의미한다. 자카르타 EE는 엔터프라이즈 애플리케이션 개발의 복잡성을 줄이고, 확장성과 안정성을 제공하는 것을 목표로 한다.
2. 역사
2. 역사
자카르타 EE의 역사는 자바 플랫폼, 엔터프라이즈 에디션의 역사와 깊이 연관되어 있다. 이 기술은 1999년 12월 썬 마이크로시스템즈가 최초로 J2EE 1.2 SDK를 발표하며 시작되었다. 이후 스펙 개발은 자바 커뮤니티 프로세스를 통해 이루어졌으며, 버전 5.0이 출시되면서 공식 명칭이 J2EE에서 Java EE로 변경되었다.
2017년은 중요한 전환점이었다. 같은 해 9월 Java EE 8 스펙이 발표된 후, 오라클은 해당 플랫폼의 관리 권한을 이클립스 재단으로 이관하였다. 이로 인해 플랫폼의 명칭은 '자카르타 EE'로 다시 변경되었고, 개발 프로세스도 자카르타 사양 프로세스로 전환되었다.
이클립스 재단으로의 이관 이후, 첫 번째 주요 버전인 자카르타 EE 8은 2019년 9월에 출시되었다. 이 버전은 Java EE 8과 완벽한 호환성을 유지하는 것이 목표였다. 이후 2020년 12월에는 자카르타 EE 9가 발표되었는데, 이 버전에서는 모든 API의 패키지 명이 javax.*에서 jakarta.*로 변경되는 중요한 구조적 변화가 이루어졌다.
3. 주요 특징
3. 주요 특징
자카르타 EE는 엔터프라이즈급 자바 애플리케이션 개발을 위한 포괄적인 플랫폼이다. 이 플랫폼은 자바 SE를 기반으로 하여, 대규모 분산 시스템과 웹 애플리케이션을 구축하는 데 필요한 핵심 API와 서비스를 표준화하여 제공한다. 이를 통해 개발자는 트랜잭션 관리, 보안, 데이터베이스 접근, 메시징 등 복잡한 인프라 문제보다 비즈니스 로직 자체에 더 집중할 수 있다.
주요 특징으로는 컴포넌트 기반의 아키텍처를 들 수 있다. 서블릿, JSP, EJB, CDI와 같은 표준 컴포넌트들을 조합하여 다중 계층 애플리케이션을 구성한다. 이러한 모듈화는 코드 재사용성을 높이고 유지보수를 용이하게 한다. 또한, 플랫폼은 다양한 인터넷 프로토콜과 기술을 지원하여 현대적 웹 서비스 개발을 가능하게 한다.
자카르타 EE의 또 다른 중요한 특징은 호환성과 이식성이다. 이클립스 재단이 관리하는 공식 사양을 준수하는 모든 애플리케이션 서버에서 동일한 애플리케이션이 동작하도록 보장한다. 이는 벤더 종속성을 줄이고, 개발자가 선호하는 오픈 소스 또는 상용 WAS를 자유롭게 선택할 수 있는 유연성을 제공한다.
마지막으로, 커뮤니티 주도의 개방형 개발 모델을 따른다. 사양의 발전은 자카르타 EE 워킹 그룹을 통해 투명하게 이루어지며, 급변하는 클라우드 네이티브 및 마이크로서비스 환경에 대응하기 위해 지속적으로 진화하고 있다. 이는 자카르타 EE를 현대 엔터프라이즈 개발의 핵심 표준으로 자리매김하게 하는 기반이 된다.
4. 핵심 기술 및 사양
4. 핵심 기술 및 사양
자카르타 EE 플랫폼은 엔터프라이즈급 자바 애플리케이션 개발을 위한 핵심 기술과 사양의 집합체이다. 이 플랫폼은 서블릿, JSP, EJB와 같은 기초적인 웹 기술부터 CDI, JPA, JSON-P 같은 현대적인 API까지 광범위한 표준을 정의한다. 이러한 사양들은 분산 컴퓨팅, 트랜잭션 관리, 보안, 확장성 등 기업 환경의 복잡한 요구사항을 해결하도록 설계되었다.
주요 기술 구성 요소는 계층별로 구분된다. 웹 계층 기술에는 서블릿, JSP, JSF, 웹 소켓 API가 포함된다. 엔터프라이즈 애플리케이션의 비즈니스 로직을 구현하는 핵심 기술로는 EJB와 CDI가 있다. 데이터 지속성을 위한 표준은 JPA가 담당하며, 메시지 큐를 통한 비동기 통신에는 JMS가 사용된다. 또한 RESTful 웹 서비스 개발을 위한 JAX-RS와 SOAP 기반 웹 서비스를 위한 JAX-WS도 중요한 구성 요소이다.
이러한 사양들은 이클립스 재단 산하의 자카르타 EE 워킹 그룹에서 관리하는 자카르타 사양 프로세스를 통해 개발되고 유지된다. 각 사양은 독립적인 버전 관리 체계를 가지며, 특정 자카르타 EE 플랫폼 버전(예: 자카르타 EE 9.1, 자카르타 EE 10)은 호환되는 사양 버전들의 조합으로 정의된다. 이는 구현체 제공자와 개발자에게 명확한 호환성 기준과 안정적인 API 세트를 보장한다.
5. 구현 및 호환 서버
5. 구현 및 호환 서버
자카르타 EE 스펙을 구현한 제품을 웹 애플리케이션 서버 또는 WAS라고 부른다. 이클립스 재단은 자카르타 EE 플랫폼의 공식 명세를 정의하며, 벤더들이 이 명세에 맞춰 제품을 개발하고 인증을 받을 수 있다. 인증을 받은 서버는 해당 자카르타 EE 버전의 모든 기능을 완벽하게 지원한다는 것을 보장하며, 애플리케이션의 이식성을 높이는 데 기여한다.
주요 오픈 소스 및 상용 웹 애플리케이션 서버 구현체는 다음과 같다.
제품 이름 | 주요 개발/제공사 | 비고 |
|---|---|---|
글래스피시 | 이클립스 재단 | 참조 구현체로, 자카르타 EE 명세의 기준이 된다. |
톰캣 | 아파치 소프트웨어 재단 | 서블릿 및 JSP 컨테이너로, 일부 자카르타 EE 프로파일을 지원한다. |
와일드플라이 (JBoss EAP) | 레드햇 | 자카르타 EE 풀 스펙을 지원하는 대표적인 오픈 소스 서버이다. |
IBM 웹스피어 | IBM | 기업 환경에서 널리 사용되는 상용 웹 애플리케이션 서버이다. |
오라클 웹로직 | 오라클 | 자바 EE 및 자카르타 EE를 지원하는 상용 서버이다. |
자카르타 EE 8 이후의 공식 호환 제품 목록은 이클립스 재단의 'Jakarta EE Compatible Products' 페이지에서 확인할 수 있다. 인증을 받은 제품들은 로고를 사용할 수 있으며, 이는 해당 제품이 자카르타 EE 기술 호환성 킷(TCK)을 통과했음을 의미한다. 이러한 인증 체계는 자바 커뮤니티 프로세스 시대부터 이어져 온 엔터프라이즈 자바 생태계의 표준화 노력을 반영한다.
6. Java EE와의 관계 및 차이점
6. Java EE와의 관계 및 차이점
자카르타 EE는 이전의 Java EE를 계승한 플랫폼이다. 2017년 오라클이 Java EE의 관리권을 이클립스 재단으로 이관하면서 생태계의 지속성과 개방성을 확보하기 위한 변화가 시작되었다. 이관 과정에서 상표권 문제로 인해 'Java' 브랜드를 사용할 수 없게 되었고, 이에 따라 새로운 이름인 자카르타 EE가 채택되었다. 이는 단순한 이름 변경을 넘어, 기술의 주도권이 단일 벤더에서 개방형 커뮤니티로 완전히 이전되었음을 의미하는 중요한 분기점이 되었다.
두 플랫폼의 가장 큰 차이는 패키지 네임스페이스에 있다. Java EE 8까지는 모든 API가 javax.* 패키지 하위에 정의되어 있었다. 그러나 자카르타 EE 9부터는 새로운 네임스페이스인 jakarta.*를 도입하여 모든 사양이 이 아래로 이전되었다. 이 변경은 상표권 분리를 위한 기술적 필수 요건이었으며, 기존 javax.* 패키지를 사용하는 수많은 라이브러리와 프레임워크에 광범위한 영향을 미쳤다.
호환성 측면에서 자카르타 EE 8은 Java EE 8과 완전히 동일한 기능 세트를 제공하며, 하위 호환성을 유지한다. 즉, Java EE 8 애플리케이션은 수정 없이 자카르타 EE 8 호환 서버에서 실행될 수 있다. 그러나 자카르타 EE 9로 넘어가면서 패키지명 변경이 필수화되면, 기존 애플리케이션은 코드를 수정하거나 마이그레이션 도구를 사용해야 한다. 이클립스 재단의 관리 하에 자카르타 EE는 더 빠른 혁신 주기와 클라우드 네이티브 애플리케이션 개발에 초점을 맞춘 현대화를 진행하고 있다.
7. 개발 및 생태계
7. 개발 및 생태계
자카르타 EE의 개발과 생태계는 이클립스 재단의 관리 하에 운영된다. 사양의 개발은 자카르타 사양 프로세스를 통해 이루어지며, 이는 개방적이고 투명한 협업 모델을 지향한다. 이 프로세스는 기업, 개인 개발자, 오픈 소스 커뮤니티 등 다양한 이해관계자들이 사양의 진화에 참여할 수 있는 길을 제공한다.
자카르타 EE의 생태계는 사양을 구현한 호환 제품들, 개발 도구, 교육 자료, 그리고 활발한 커뮤니티로 구성된다. 주요 구현체로는 이클립스 재단의 글래스피시, 레드햇의 와일드플라이, 오픈리버티, 아파치 톰캣, 페이스팔 등의 웹 애플리케이션 서버가 있다. 이러한 제품들은 자카르타 EE 호환성 인증을 통해 표준 준수를 보장받는다.
개발 생태계에서는 스프링, 마이크로프로파일, 쿠아르쿠스와 같은 현대적 프레임워크들이 자카르타 EE 기술 스택과 긴밀하게 연동되거나 대안을 제시하며 발전하고 있다. 또한 마이크로서비스, 클라우드 네이티브 애플리케이션 구축을 위한 사양이 지속적으로 확장되고 있다.
커뮤니티는 자카르타 EE의 발전에 핵심적인 역할을 한다. 이클립스 재단을 중심으로 한 공개 포럼, 컨퍼런스, 워킹 그룹 활동을 통해 사용자 피드백이 사양 개발에 직접 반영된다. 이는 자카르타 EE가 기업용 자바 개발의 표준 플랫폼으로서 지속적인 관련성을 유지하는 데 기여한다.
