자바의 변천사에 대해서 알아보면 자바는 JavaEE 와 J2EE 등 플랫폼으로 사용되다가 최근 2018년도부터는 자카르타EE로 명칭을 바꾸고 새로운 변화를 시작했다.
Java EE
1999년 썬 마이크로시스템즈가 J2EE(Java 2 Enterprise Edition) 명으로 발표한 분산 애플리케이션 개발 목적의 산업 표준 플랫폼이다.
기업용 앱을 개발 하기 위한 기술과 환경을 제공하며 서블릿(Servlet), JSP, EJB, JDBC 등의 기능을 제공한다.
자바EE의 주요 목적은 특정 운영체제와 미들웨어에 종속되지 않고 정보 교환 및 애플리케이션 호환이 가능한 플랫폼을 제공하는 것이다.
자바EE는 출시 초창기에 기업용 자바 플랫폼이라는 새로운 생태계를 열며 큰 성과를 이뤘지만 현재는 상업용 플랫폼의 한계와 스프링 프레임워크(Spring Framework) 등 오픈소스 SW의 발전으로 인기를 잃었고, 더군다나 자바EE의 릴리즈 주기가 2년에서 4년으로 길어지면서 빠르게 변화하는 기술 트렌드를 반영하지 못한 것도 인기가 시들해진 이유 중 하나이다.
오라클은 2017년 자바EE 8 릴리즈를 마지막으로 오픈소스 SW를 지원하는 비영리 단체인 이클립스 재단에 자바EE 프로젝트를 이관했고, 썬 마이크로시스템즈를 인수한 오라클이 사실상 자바EE의 수익화에 실패하면서 기술 주도권을 포기한 것으로 판단된다.
그리하여 자바EE 버전의 히스토리는 J2EE 의 선마이크로시스템즈의 시작부터 jakarta 의 eclipse까지 아래 그림과 같다.
Jakarta EE
이클립스 재단으로 이관된 자바EE의 공식 명칭은 자카르타EE, 프로젝트 명은 EE4J(Eclipse Enterprise for Java)로 변경되었다.
또한 기존 자바 정책인 JCP 가 아닌 오픈소스 기반의 JESP 라는 중립적인 정책을 따랐다.
그러면서 코드적인 면에서도 많이 변경이 되겠지만 api 패키지명이 바뀌면서 많은 혼란이 나올것이다.
javax.* 에서 jakarta.*로 변했기 때문이다.
자세한 내용은 아래 표와 같다.
Java EE 용어Jakarta EE 용어
JavaEE | JakartaEE | ||
Java Servlet | javax.servlet | Jakarta Servlet | jakarta.servlet |
JavaServer Pages (JSP) | javax.servlet.jsp | Jakarta Server Pages | jakarta.servlet.jsp |
JavaServer Faces (JSF) | javax.faces | Jakarta Server Faces | jakarta.faces |
Java Message Service (JMS) | javax.jms | Jakarta Messaging | jakarta.jms |
Java Persistence API (JPA) | javax.persistence | Jakarta Persistence | jakarta.persistence |
Java Transaction API (JTA) | javax.transaction | Jakarta Transaction | jakarta.transaction |
Enterprise JavaBeans (EJB) | javax.ejb | Jakarta Enterprise Beans | jakarta.ejb |
Java Mail | javax.mail | Jakarta Mail | Jakarta.mail |
클라우드 네이티브를 목표로 방향성을 설정한 Jakarta는 장기적인 로드맵이나 마일스톤이 아직은 부족하여 많이 생소하지만 앞으로 계속해서 변해갈 것이다.
아마도 자바EE를 기반으로 하는 스프링 프레임워크, 스프링 부트, 아파치 톰캣(Apache Tomcat) 등이 자카르타EE를 채택하는 시점부터 많은 전환이 이뤄질 것으로 예상된다.
'IT > Java' 카테고리의 다른 글
공백 제거 trim() / strip() (32) | 2022.11.19 |
---|---|
JpaRepository 관련 쿼리메서드 (40) | 2022.11.16 |
이클립스 workspace 저장위치 확인 및 바꾸기 (46) | 2022.11.09 |
@Controller와 @RestController (45) | 2022.11.07 |
POJO 방식 (37) | 2022.10.27 |
댓글