본문 바로가기

Develop/Java

다양한 Java 플랫폼 정리

728x90

플랫폼

모든 Java 플랫폼은 자바 가상 머신(JVM)과 어플리케이션 프로그래밍 인터페이스(API)로 구성되어 있습니다.

Java SE (Standard Edition)

  • 가장 대중적인 자바 플랫폼입니다.
  • 자바 언어라고 하는 대부분의 패키지가 포함된 에디션 (java.lang.*, java.util.*, java.awt.*, javax.rmi.*, javax.net.* 등)

Java SE의 API는 자바 프로그래밍 언어의 핵심 기능들을 제공합니다.

  • 원시 타입
  • 네트워킹
  • 보안
  • 데이터베이스 처리
  • GUI 개발
  • XML Parsing

가상 머신, 개발 도구, 배포 기술, 부가 클래스 라이브러리, 툴킷 등을 제공합니다.

 

Java EE (Enterprise Edition)

  • Java EE 플랫폼은 Java SE 플랫폼을 기반으로 그 위에 탑재됩니다.
  • 웹 프로그래밍에 필요한 기능을 다수 포함합니다. (JSP, Servlet, JDBC, JNDI, JTA, EJB 등)
  • 대규모, 다계층, 확장성, 신뢰성, 보안, 네트워킹 API, 환경 등을 제공합니다.
  • glassdoor.com, people.com, lg.com, cafe.naver.com, sbs.co.kr 등에서 사용합니다.
  • 지금은 자바8 버전을 마지막으로 Java EE 이름이 Jakarta로 변경되어서 업데이트 중이며 오픈소스인 Jakarta와 Java EE는 공존하는 관계에 있으며 Jakarta로 쉬운 Migration을 지원합니다. 여담이지만 Java EE는 느린 업데이트 주기로 (거의 2년 마다) 시장에서 Spring 점유율에 밀려버렸습니다.

 

Java ME

  • Java ME는 모바일 폰과 같은 자바 프로그래밍 언어 기반의 애플리케이션이 보다 조그만 가상 머신으로 동작시킬 수 있는 기능과 API 제공 (Java SE의 경량화)
  • Java EE 처럼 Java SE를 기반으로 합니다.
  • 작은 장치에서 동작하는 전용 클래스 라이브러리들을 제공합니다.
  • Java EE 서비스의 클라이언트 역할을 하기도 합니다.
  • 임베디드 시스템에서 사용합니다. 안드로이드에서 사용하는 코어 API 들이 빠져 있어서 안씀. TV 셋탑박스 등에서 사용합니다.

 

Java FX

  • 경량 사용자 인터페이스 API를 사용하여 크거나 무거운 인터넷 애플리케이션을 만들 때 사용됩니다.
  • 하드웨어 수준에서 가속 기능을 사용할 수 있는 그래픽과 미디어 엔진을 갖추고 있어 클라이언트의 성능에 신경을 써야하는 분야에서 사용됩니다.
  • Java EE처럼 클라이언트 역할을 하기도 합니다.
  • Minecraft에서 사용

 


 

출처 및 참고

Why is Java SE rather than Java ME being used in Android development, although it is being developed for mobile applications? https://www.quora.com/Why-is-Java-SE-rather-than-Java-ME-being-used-in-Android-development-although-it-is-being-developed-for-mobile-applications
Java EE Usage Statistics https://trends.builtwith.com/framework/Java-EE
Is Minecraft Made In Javafx? https://wiki.rankiing.net/is-minecraft-made-in-javafx/
Java EE와 SE의 개념과 차이 https://doozi316.github.io/java/2020/07/01/WEB20/
Java EE에서 Jakarta EE로의 전환 https://www.samsungsds.com/kr/insights/java_jakarta.html