썬 마이크로시스템즈의 제임스 고슬링이 설계해 1995년 발표한 객체 지향·범용 프로그래밍 언어. 소스 코드를 특정 기계어가 아닌 중간 표현인 바이트코드로 컴파일하고, 이를 자바 가상 머신(JVM)이 각 플랫폼에서 해석·실행하는 구조를 취함. 이로써 한 번 작성한 코드를 여러 운영체제·하드웨어에서 재컴파일 없이 구동하는 "한 번 작성하면 어디서나 실행(Write Once, Run Anywhere)" 원칙을 구현. C·C++과 유사한 문법을 갖되 포인터 직접 조작 같은 저수준 기능을 줄이고, 가비지 컬렉션을 통한 자동 메모리 관리, 강한 정적 타입, 예외 처리, 리플렉션 등 안정성과 이식성을 중시한 설계가 특징.
자바는 단순함·객체 지향성·견고함·보안성·플랫폼 중립성·고성능·다중 스레드 지원을 핵심 목표로 삼아 설계됨. 초기에는 웹 브라우저에 내장되는 애플릿으로 주목받았으나, 이후 서버 측 엔터프라이즈 애플리케이션(J2EE/Java EE), 데스크톱(J2SE/Java SE), 모바일·임베디드(J2ME/Java ME) 영역으로 분화하며 폭넓게 확산. 2006년 썬이 핵심 구현을 GPL로 개방해 오픈소스 참조 구현인 OpenJDK가 등장했고, 2010년 오라클이 썬을 인수하며 자바 기술의 관리 주체가 됨.
자바는 ISO·Ecma 같은 공식 표준이 아닌 자바 커뮤니티 프로세스(JCP)를 통해 사실상의 표준으로 진화해 왔으며, 안드로이드 애플리케이션 개발의 기반 언어이자 대규모 기업 시스템·웹 서버·빅데이터·금융 인프라 등에서 가장 널리 쓰이는 언어 중 하나로 자리매김. 코틀린·스칼라·클로저 등 JVM 기반 언어들과 자바스크립트·C#·파이썬을 비롯한 후대 언어 설계에 폭넓은 영향을 끼친 현대 소프트웨어 생태계의 핵심 언어.
추가 정보
기원과 이름
1991년 썬 마이크로시스템즈 내부의 그린 프로젝트(Green Project)에서 제임스 고슬링, 마이크 셰리든, 패트릭 노턴이 개발을 시작한 프로그래밍 언어. 셋톱박스·디지털 케이블 TV 등 가전·임베디드 기기를 목표로 설계됐으나, 당시 시장이 받아들이기에는 다소 앞선 기술이었음.
처음에는 고슬링 사무실 밖의 떡갈나무에서 이름을 딴 “오크(Oak)”로 불렸으나, 상표 문제로 사용할 수 없게 되면서 인도네시아산 자바 커피에서 이름을 따 “자바(Java)”로 개칭됨.
실행 모델
자바 소스 파일(.java)은 자바 컴파일러를 거쳐 플랫폼 독립적인 바이트코드 파일(.class)로 변환됨. 이 바이트코드는 자바 가상 머신(JVM)이 운영체제와 하드웨어 위에서 해석하거나 적시 컴파일(JIT)해 실행함.
이 중간 계층 덕분에 동일한 바이트코드는 JVM 구현이 제공되는 윈도·리눅스·macOS 등 여러 환경에서 원칙적으로 재컴파일 없이 실행될 수 있음. “한 번 작성하면 어디서나 실행한다(Write Once, Run Anywhere)”는 자바의 대표적 설계 목표도 이 실행 모델에서 나옴.
에디션과 생태계
자바는 데스크톱·범용 환경의 Java SE(과거 J2SE), 기업용 서버 환경의 Java EE(과거 J2EE), 모바일·임베디드 기기용 Java ME(과거 J2ME)로 분화해 발전함. Java EE는 2017년 Eclipse Foundation으로 이관된 뒤 Jakarta EE라는 이름으로 이어지고 있음.
HotSpot은 대표적인 JVM 구현이며, OpenJDK는 Java SE 플랫폼의 오픈소스 구현과 개발 협업의 중심 프로젝트로 자리 잡음. 코틀린·스칼라·클로저·그루비 등 여러 언어도 JVM 위에서 실행되며 자바 생태계를 확장함.
2017년 이후 자바는 시간 기반 릴리스 모델로 전환해 6개월마다 기능 릴리스를 공개하고, 일부 버전을 장기 지원(LTS) 기준점으로 제공하는 체계를 갖춤.
그 외 사실들 3건
기록
자바는 "한 번 작성하면 어디서나 실행(Write Once, Run Anywhere, WORA)"을 표방하며, 컴파일된 바이트코드가 JVM이 지원하는 모든 플랫폼에서 재컴파일 없이 동작함.
자바 언어 설계의 5대 목표는 단순·객체 지향·친숙함, 견고함·보안성, 아키텍처 중립성·이식성, 고성능 실행, 그리고 인터프리트·다중 스레드·동적 실행 지원임.
트리비아
자바라는 이름은 인도네시아산 자바 커피에서 유래했으며, 그 이전 언어명은 고슬링 사무실 밖에 있던 떡갈나무에서 딴 "오크(Oak)"였음.
