모르지 않다는 것은 아는것과 다르다.

Other

JDK, JRE, SDK, JavaSE, JavaME, JavaEE 정리

채마스 2022. 2. 28. 19:55

JDK, JRE, JDK 비교

JDK

  • Java Development Kit의 약자다.
  • java 관련 각종 라이브러리가 들어있다.
  • 개발자만을 위한 컴파일러(javac), 디버깅툴 등을 제공한다.
  • 개발자 및 사용자를 위한 JAVA인 JRE(+JVM)을 포함한 종합 툴이다.
  • java 는 컴파일한 후 바로 돌리는 compiled language 방식이 아니라, 자바가상머신으로 자신의 고유 환경을 구축한 후, 돌아가기 때문에 자바 컴파일러와 자바 가상 머신이 모두 필요하고, 이 둘을 묶어서 JDK 라고한다.
  • 다시말해, Java로 된 언어를 컴파일하고 개발할 수 있도록 해주는 개발 환경의 세트를 의미한다.


JRE

  • Java Runtime Environment 의 약자다.
  • JDK 같은 개발 키트 개념은 아니다.
  • JDK 로 자바 프로그램을 제작하려고 할때, 프로그램을 실행할 수 있도록 하는 환경을 말한다.
  • JRE 는 JVM 이 자바 프로그램을 동작시킬 때 필요한 라이브러리 파일들과 기타파일들이 담겨있다.
  • 다시말해, JRE 는 JDK 의 실행환경을 구현했다고 할 수 있다.
  • JRE 는 보통 JDK 에 포함되어 있기 때문에 별도로 다운 받을 일은 거의 없다.


SDK

  • Software Development Kit 혹은 Standard Development Kit 의 약자다.
  • Java 뿐 아니라 모든 언어의 소프트웨어 개발 키트를 지칭한다. -> 언어에 종속된 표현이 아니다.
  • JRE에서 돌아가게 될 프로그램을 만들기 위해 개발자들이 사용할 API들이 들어가 있습니다.
  • 관용적으로 SDK 를 JavaEE 의미로 사용한다. -> JDK 는 JavaSE 의미로 사용된다.
  • Java 용 SDK 를 JDK 라고 한다.



JavaSE, JavaME, JavaEE

JavaSE

  • Java Standard Edition 의 약자다.
  • 자바의 기본 프로그래밍 플랫폼 입니다.
  • 기본이 되는 라이브러리와 API 들이 포함되어 있습니다.


JavaME

  • Micro Edition 입니다. 모바일 기기나 임베디드 시스템등에 사용될 어플리케이션을 개발하기 위한 플랫폼을 제공합니다.


JavaEE

  • Enterprise Edition 입니다.
  • Royal fee 를 지불해야 한다.
  • 자바SE + 웹서버용기능 이라고 보면 됩니다.
  • 기업이나 큰 비지니스용 어플리케이션을 개발하기 위한 플랫폼을 제공합니다.
  • 주로 서버측 개발에 사용합니다.
  • JavaSE에 추가하여 DB억세스(JDBC), 리모트(RMI), 메시징(JSM), 웹서비스, XML, 엔터프라이즈자바빈, 서블릿.. 등등을 포함합니다.



JAVA, JDK 버전 정리

  • JAVA SE version 을 가장 우선으로 파악해야 한다.
  • JDK version은 이 JAVA SE version을 지원하는 버전이라고 볼 수 있다.
  • 예를 들어 현재 JDK 12.0.1은 JAVA SE 12.0.1 version에 맞춘 개발 툴이라고 보면 된다.
  • 참고로 JAVA SE 6, 7, 8 버전은 JDK 1.6, 1.7, 1.8 로 매칭된다.
  • JAVA SE 9 버전 이후로 JDK 와 버전을 맞췄다.
  • 결론은 8 버전 이전꺼는 JDK 버전을 1.x 로 생각하고 9 버전 부터는 JAVA 버전과 JDK 버전이 동일하다고 생각하면 된다.




REFERENCES

'Other' 카테고리의 다른 글

gradle 파일 이해하기  (0) 2022.06.11
SpringBoot Properties  (0) 2022.03.24
intellij 단축키  (0) 2022.03.14
java (Spring)로 Shell Script 실행 하기  (0) 2022.02.28
Lombok 사용시 주의할 점  (0) 2022.02.28