Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

자바(Java)와 자바 EE(Java EE)의 차이점 완벽 정리

자바는 크게 Java SE(Standard Edition)Java EE(Enterprise Edition)로 나뉩니다. 두 에디션은 개발 목적과 제공하는 기능에서 뚜렷한 차이를 보이며, 어떤 종류의 애플리케이션을 만들고자 하는지에 따라 적합한 에디션이 달라집니다.

JSE(Java Standard Edition)란?

Java SE는 흔히 '코어 자바(Core Java)'라고도 불리며, 단독으로 실행되는 독립형(stand-alone) 애플리케이션을 개발할 때 사용됩니다. 대표적인 예로 어도비 리더(Adobe Reader), 백신 프로그램, 미디어 플레이어 등이 있습니다.

주요 패키지

  • lang: 자바 언어의 기본 요소들을 담당합니다.
  • util: 컬렉션 프레임워크, 이벤트, 데이터 구조 및 날짜(Date) 등 다양한 유틸리티 클래스를 제공합니다.
  • io: 파일 입출력을 포함한 각종 입력·출력 작업을 처리합니다.
  • math: 고정밀(multi precision) 산술 연산을 지원합니다.
  • nio: 자바의 논블로킹(non-blocking) I/O 프레임워크입니다.
  • net: 네트워킹 관련 클래스와 API를 제공합니다.
  • security: 키 생성, 암호화, 복호화 등 보안 프레임워크에 속하는 클래스와 인터페이스를 제공합니다.
  • sql: 데이터베이스 및 데이터 소스에 저장된 데이터에 접근하고 조작하기 위한 클래스와 인터페이스를 제공합니다.
  • awt: 자바에서 GUI 컴포넌트를 생성하기 위한 클래스와 인터페이스를 제공합니다.
  • text: 텍스트, 날짜, 숫자, 메시지를 처리합니다.
  • rmi: RMI(Remote Method Invocation) 패키지를 제공합니다.
  • time: 날짜, 시간, 시점(instant), 기간(duration)을 다루는 핵심 API입니다.
  • beans: 자바빈즈(JavaBeans) 컴포넌트 관련 클래스와 인터페이스를 제공합니다.

JEE(Java Enterprise Edition)란?

Java EE는 대규모 엔터프라이즈(기업용) 애플리케이션을 개발하기 위한 플랫폼으로, Java SE를 기반으로 서버 측 개발에 필요한 다양한 사양(specification)과 API를 추가로 제공합니다.

주요 구성 요소

  • 핵심 API: 서블릿(Servlet), WebSocket, JSF(JavaServer Faces), 통합 표현 언어(Unified Expression Language) 등
  • 웹 서비스 사양: RESTful 웹 서비스용 API(JAX-RS), JSON 처리용 API(JSON-P), JSON 바인딩용 API(JSON-B), XML 바인딩 아키텍처(JAXB), XML 웹 서비스용 API(JAX-WS) 등
  • 엔터프라이즈 사양: 의존성 주입(Dependency Injection), EJB(Enterprise JavaBean), JPA(Java Persistence API), JTA(Java Transaction API) 등

정리: Java SE vs Java EE

간단히 말해 Java SE는 자바의 기본이 되는 표준 플랫폼이며, Java EE는 여기에 웹 및 엔터프라이즈 개발 기능을 확장한 플랫폼입니다. 데스크톱 애플리케이션은 Java SE만으로 충분하지만, 웹 서버나 분산 시스템처럼 규모가 큰 서버 애플리케이션을 개발하려면 Java EE가 필요합니다.