자바는 Sun Microsystems가 1995년에 발표한 객체 지향 프로그래밍 언어이자, 해당 언어를 기반으로 하는 소프트웨어 플랫폼이다. 주된 구성 요소는 다음과 같다.
-
JVM (Java Virtual Machine)
- 자바 바이트코드를 실행하는 가상 머신으로, 운영 체제와 하드웨어에 독립적인 실행 환경을 제공한다.
- "Write Once, Run Anywhere"(WORA) 원칙을 구현함으로써 동일한 자바 프로그램을 다양한 플랫폼에서 동작하도록 한다.
-
JRE (Java Runtime Environment)
- JVM과 핵심 클래스 라이브러리(standard libraries)를 포함한다.
- 자바 애플리케이션을 실행하기 위해 최종 사용자가 설치해야 하는 환경이다.
-
JDK (Java Development Kit)
- JRE에 추가로 컴파일러(
javac), 디버거, 문서 생성 도구(javadoc) 등 개발에 필요한 도구들을 포함한다. - 개발자는 JDK를 이용해 자바 소스 코드를 바이트코드로 변환한다.
- JRE에 추가로 컴파일러(
-
표준 클래스 라이브러리
- 컬렉션, 입출력, 네트워킹, 멀티스레딩, GUI(AWT, Swing) 등 다수의 API를 제공한다.
- 최신 버전에서는 스트림 API, 모듈 시스템(Java Platform Module System, JPMS) 등도 포함한다.
주요 버전 및 특징
- Java SE (Standard Edition): 기본적인 언어와 코어 라이브러리를 제공하며, 데스크톱 및 서버 애플리케이션 개발에 사용된다. 버전 1.0부터 현재(2026년 기준) 최신 LTS 버전은 Java 21이다.
- Java EE (Enterprise Edition, 현재는 Jakarta EE): 기업용 웹·엔터프라이즈 애플리케이션을 위한 추가 사양(서블릿, JSP, EJB 등)을 포함한다.
- Java ME (Micro Edition): 제한된 리소스를 가진 임베디드 및 모바일 디바이스용 플랫폼이다. 현재는 발전이 둔화된 상태이다.
활용 분야
- 웹 애플리케이션: Spring, Java EE/Jakarta EE와 같은 프레임워크를 활용한 백엔드 서버 구축.
- 안드로이드 개발: 안드로이드 SDK는 초기에는 자바를 주요 언어로 사용했으며, 현재는 Kotlin과 병행된다.
- 데스크톱 애플리케이션: Swing, JavaFX 등을 이용한 GUI 프로그램.
- 대규모 데이터 처리: Hadoop, Apache Spark 등 빅데이터 프레임워크가 자바 기반으로 구현돼 있다.
- 임베디드 시스템: Java ME 및 다양한 임베디드 JVM이 소형 디바이스에서 사용된다.
생태계와 커뮤니티
- 오라클이 현재 공식 JDK 배포와 표준 사양 관리를 담당하고 있으며, OpenJDK 프로젝트를 통해 오픈 소스 구현을 유지·보수한다.
- 다양한 서드파티 JDK(Amazon Corretto, Azul Zulu 등)와 빌드 도구(Maven, Gradle) 및 IDE(IntelliJ IDEA, Eclipse, NetBeans) 등이 활발히 이용된다.
표준화 및 관리 기관
- JCP (Java Community Process): 자바 사양을 정의하고 업데이트하는 공개 절차를 운영한다. JCP는 JSR(Java Specification Request) 형태로 새로운 기능이나 개선안을 제안·검토한다.
자바 플랫폼은 30년 넘게 지속적으로 진화해 왔으며, 광범위한 산업 분야에서 핵심 기술로 자리 잡고 있다.