파란하늘의 지식창고
반응형

history

Java는 오래된 언어이다 보니 내역이 복잡하다.
어떻게 흘러왔는지를 간략하게 알고 있는 것이 도움이 될 듯하여 찾아보았다.

1995년 Sun microsystems에서 제임스 고슬링이 개발하여 최초 버전인 1.0을 공개하였다.

이는 이후 2010년에 Oracle이 Sun microsystems를 인수하면서 Java 저작권이 Oracle로 넘어가게 되고 
Oracle이 Java 8까지 운영하다 이후 오픈소스인 OpenJDK와 상업용 OralcleJDK를 나누게 된다.

처음엔 JDK 1.0, JDK 1.1이란 이름으로 발표되었는데 이후 J2SE 1.2, 1.3, 1.4로 발표되었고 Standard Edition과 구분된 J2EE 1.2, 1.3, 1.4 (Enterprise Edition), J2ME가 나왔다.

이 이름은 5 버전에서 J2SE 5와 같이 앞에 1.x를 빼고 버전을 표기하도록 변경되었고 6 버전 이후엔 J2SE가 아닌 Java SE, Java EE와 같이 다시 변경되었다.

2018년 Java EE 8을 공개하면서 Oracle은 Java EE를 Eclipse Foundation으로 양도하기로 한다.

JDK를 설치하면 Java SE와 Java EE가 같이 포함된 형태였지만 JDK 11에서 Java EE는 제외되게 된다.

https://openjdk.java.net/jeps/320

여기까지 설명한 Java SE와 Java EE의 version history를 표로 정리하면 다음과 같다.

  Release Date  
JDK 1.0a 1994년 Sum microsystems에서 공개
JDK 1.0a2 1995년 5월 23일  
JDK 1.0 1996년 1월 23일  
JDK 1.1 1997년 2월 19일  
J2SE 1.2 1998년 12월 8일  
J2EE 1.2 1999년 12월 12일  
J2SE 1.3 2000년 3월 8일  
J2EE 1.3 2001년 9월 24일  
J2SE 1.4 2002년 2월 6일  
J2EE 1.4 2003년 11월 11일  
J2SE 5 2004년 9월 30일 버전 명명에서 1.x를 제거
Java EE 5 2006년 5월 11일 Java EE로 표기 변경
Java SE 6 2006년 12월 11일 Java SE로 표기 변경
Java EE 6 2009년 12월 10일  
Java SE 7 2011년 7월 Oracle로 인수된 후 공개된 버전
Java EE 7 2013년 5월 28일  
Java SE 8 (LTS) 2014년 3월  
Java EE 8 2017년 8월 31일 Oracle이 Java EE를 Eclipse Foundation으로 권한을 양도하기로 결정
Java SE 9 2017년 9월 OpenJDK, OralcleJDK 분리
6개월 단위 버전 릴리즈 정책 시작
LTS 정책 3년 주기 
Java SE 10 2018년 3월  
Java SE 11 (LTS) 2018년 9월 JAVA EE가 JDK에서 제외됨
Java SE 12 2019년 3월  
Java SE 13 2019년 9월  
Jakrta EE 8 2019년 9월 10일 Java EE 8을 그대로 이전
Java SE 14 2020년 3월  
Java SE 15 2020년 9월  
Jakarta EE 9 2020년 11월 22일 javax.* 을 jakrata.* namespace로 변경
Java SE 16 2021년 3월  
Jakrta EE 9.1 2021년 5월 25일 JDK 11 지원
Java SE 17 (LTS) 2021년 9월 LTS 정책 2년 주기로 변경함
Java SE 18 2022년 3월 (예정)  
Java SE 19 2022년 9월 (예정)  
Java SE 20 2023년 3월 (예정)  
Java SE 21 (LTS) 2023년 9월 (예정)  

Java SE

Java SE는 JDK를 설치하여 사용하는 핵심 라이브러리들이다.

별도의 dependency 설정 없이 사용하는 java.lang.*, java.util.*, java.awt.*, javax.rmi.*, javax.net.* 등 자바 프로젝트 개발 시 설정한 jdk에서 가져온 jre에 포함된 라이브러리들이 이에 해당한다.

java 개발에서 사용되는 basic type과 object에서 networking, security, database access, GUI 개발, xml parsing과 같은 핵심적인 기능을 제공한다.

Java EE

Java EE는 Java SE를 기반으로 large-scale, multi-tiered, scalable, reliable 및 secure network application을 개발하고 실행하기 위한 API 및 runtime 환경을 제공한다.

java 기반 서버 개발을 해본 사람이라면 이미 Java EE를 사용하고 있다.

Servlet, JSP, EJB, JPA, JDBC, persistence 등등 수많은 Java EE 라이브러리를 알게 모르게 참조하여 사용하고 있다.

Jakarta EE

Eclipse Foundation으로 양도가 되면서 Java EE에 대한 개발이 가속화되기 시작했다.

특히 Jakarta EE 9는 기존에 없던 NoSQL에 대한 지원과 javax.*에서 jakarta.*로 namespace 변경이 이루어졌다.

Spring Boot 3에서는 Jakarta EE 9가 적용될 예정이기 때문에 기존 Java EE에서 전환에 많은 비용이 소모될 것으로 예상된다.

반응형
profile

파란하늘의 지식창고

@Bluesky_

내용이 유익했다면 광고 배너를 클릭 해주세요