Java 완전 정복: 정의, 특징, 플랫폼 개요 & 버전 역사
Java란 무엇인가?
Java는 이식성, 속도, 보안을 강조하는 다재다능한 클래스 기반 객체지향 프로그래밍 언어입니다. 모바일 앱과 엔터프라이즈 서버부터 과학용 슈퍼컴퓨터와 게임 콘솔까지, 거의 모든 하드웨어 플랫폼에서 실행되며 광범위한 애플리케이션을 구동합니다.
Java 플랫폼이란?
Java 플랫폼은 개발자가 Java 애플리케이션을 효율적으로 작성, 컴파일, 실행할 수 있게 하는 포괄적인 도구와 라이브러리 세트입니다. Java Development Kit(JDK), Java Virtual Machine(JVM), Java Runtime Environment(JRE)로 구성됩니다. 제임스 고슬링이 썬 마이크로시스템즈에서 처음 구상했으며, 나중에 오라클이 인수했습니다.
Java의 정의와 의미
Java는 객체지향 설계의 강력함과 견고한 보안 기능을 결합한 멀티플랫폼, 네트워크 중심 언어입니다. 확장 가능하고 안전하며 고성능 애플리케이션 구축을 위해 가장 널리 채택된 언어 중 하나입니다.
Java는 어디에 쓰이나?
- 안드로이드 앱 개발
- 엔터프라이즈 소프트웨어와 미들웨어
- 모바일 및 임베디드 애플리케이션
- 과학 컴퓨팅과 시뮬레이션
- 빅데이터 분석 프레임워크
- Java ME를 통한 하드웨어 레벨 프로그래밍
- 서버 사이드 기술 (Apache, JBoss, GlassFish)
Java의 역사
- 초기에는 Oak — 휴대용 기기 프로그래밍 초기 시도.
- 1995년 웹 붐을 활용해 Java로 리브랜딩.
- 2009년 오라클이 썬 마이크로시스템즈 인수, Java, MySQL, Solaris 통합.
Java 버전 역사
| Java 버전 | 출시일 |
| JDK Alpha & Beta | 1995 |
| JDK 1.0 | 1996년 1월 23일 |
| JDK 1.1 | 1997년 2월 19일 |
| J2SE 1.2 | 1998년 12월 8일 |
| J2SE 1.3 | 2000년 5월 8일 |
| J2SE 1.4 | 2002년 2월 6일 |
| J2SE 5.0 | 2004년 9월 30일 |
| Java SE 6 | 2006년 12월 11일 |
| Java SE 7 | 2011년 7월 28일 |
| Java SE 8 | 2014년 3월 18일 |
| Java SE 9 | 2017년 9월 21일 |
| Java SE 10 | 2018년 3월 20일 |
| Java SE 11 | 2018년 9월 25일 |
| Java SE 12 | 2019년 3월 19일 |
| Java SE 13 | 2019년 9월 17일 |
| Java SE 14 | 2020년 3월 17일 |
| Java SE 15 | 2020년 9월 15일 (최신) |
Java의 핵심 특징
- 명확한 문법으로 배우기 쉽고 읽기 쉬움.
- 한 번 작성, 어디서나 실행 — 플랫폼 독립적 바이트코드.
- 강건한 객체지향 설계.
- 내장 멀티스레딩과 자동 가비지 컬렉션.
- 네트워크 분산 애플리케이션에 최적화.
- 풍부한 표준 라이브러리와 생태계.
Java 언어 구성 요소
Java 프로그램은 사람이 읽을 수 있는 소스 코드로 시작해 Java 컴파일러에 의해 기계 실행 가능한 바이트코드로 변환됩니다.
Java Development Kit (JDK)
JDK는 Java 애플리케이션 개발에 필요한 모든 도구 — 컴파일러, 디버거, 런처, Java Runtime Environment — 를 제공합니다. 윈도우, 맥OS, 리눅스, 솔라리스용으로 제공되며 여러 버전이 한 머신에 공존 가능합니다.
Java Virtual Machine (JVM)
JVM은 Java 바이트코드를 실행하며, Just-In-Time(JIT) 컴파일러로 플랫폼 전반에서 고성능을 보장하며 네이티브 기계 명령어로 실시간 변환합니다.
Java Runtime Environment (JRE)
Java 애플리케이션 실행만 필요한 최종 사용자를 위해, JDK에 번들된 개발 도구 없이 필요한 클래스 라이브러리와 JVM을 제공합니다.
Java 플랫폼 유형
- Java SE (Standard Edition) — 데스크톱/서버 애플리케이션, 네트워킹, GUI, XML 파싱용 핵심 API.
- Java EE (Enterprise Edition) — 대규모 다중 계층 엔터프라이즈 솔루션용 고급 API.
- Java ME (Micro Edition) — 모바일/임베디드 기기용 경량 VM.
- JavaFX — 하드웨어 가속 그래픽으로 리치 인터넷 애플리케이션용 현대적 UI 툴킷.
Java Virtual Machine 동작 원리
- Java 코드 작성, 예:
System.out.println(1+2);, Example.java로 저장.
javac Example.java로 바이트코드 컴파일, Example.class 생성.
- 클래스 파일을 JVM에 로드.
- OS 메모리에 상주하는 JVM이 호스트 플랫폼 식별 후 바이트코드를 네이티브 기계 코드로 변환해 실행.
Java가 플랫폼 독립적인 이유
Java 컴파일러는 플랫폼 독립적인 바이트코드를 내놓으며, 어떤 JVM이든 해석 가능해 단일 소스 코드 베이스가 윈도우, 맥OS, 리눅스, 안드로이드 등에서 원활히 실행됩니다.
요약
- Java는 안드로이드, 엔터프라이즈, 분산 컴퓨팅에 이상적인 강력하고 멀티플랫폼인 객체지향 언어.
- JDK, JVM, JRE로 구성된 Java 플랫폼은 개발과 배포를 위한 견고한 생태계 제공.
- 출시 이래 수많은 릴리스를 거쳤으며, Java SE 15가 최신 안정 버전 (2020년 9월).
- 네 가지 주요 플랫폼(SE, EE, ME, JavaFX)이 광범위한 애플리케이션 도메인 대응.
- Java 아키텍처는 플랫폼별 컴파일러 필요성을 제거해 진정한 크로스 플랫폼 솔루션 실현.