본문 바로가기
GD's IT Lectures : 기초부터 시리즈/자바(JAVA) 기초부터 ~

[자바(JAVA)] (2) 자바 역사와 특징, 그리고 버전

by GDNGY 2023. 4. 26.

자바(Java) 프로그래밍 기초부터 하나하나

1. 자바 소개

1.1. 자바 언어의 역사
자바는 1995년 썬 마이크로시스템즈(Sun Microsystems)에서 제임스 고슬링(James Gosling)을 비롯한 개발자 팀에 의해 처음 개발되었습니다. 원래는 가전 제품에 사용되기 위해 개발된 언어였지만, 그 후 인터넷 환경에 적합한 프로그래밍 언어로 인기를 얻게 되었습니다. 현재는 오라클(Oracle)이 썬 마이크로시스템즈를 인수하면서 자바의 관리와 지원을 맡고 있습니다.

 

1.2. 자바의 주요 특징
- 플랫폼 독립성 : 자바 프로그램은 Java Virtual Machine(JVM)에서 실행되므로 다양한 플랫폼에서 동작할 수 있습니다. 이를 위해 자바 소스 코드는 컴파일을 통해 바이트코드로 변환되고, 이 바이트코드를 JVM이 해석하여 실행합니다.

- 객체지향 프로그래밍 : 클래스와 인스턴스, 상속, 다형성 등 객체지향 프로그래밍의 핵심 개념을 지원합니다. 이를 통해 코드의 재사용성과 유지보수가 용이해집니다.

- 메모리 관리 : 자바는 가비지 컬렉터(Garbage Collector)를 통해 메모리 관리를 자동으로 수행합니다. 이를 통해 개발자가 메모리 관리에 대한 부담을 덜 수 있습니다.

- 멀티스레드 지원 : 자바는 기본적으로 멀티스레드 프로그래밍을 지원하며, 동기화와 관련된 다양한 기능을 제공합니다. 이를 통해 복잡한 병렬 처리 작업을 수행할 수 있습니다.

- 네트워킹과 보안 : 자바는 원격 객체 호출(RMI), 소켓 프로그래밍 등 다양한 네트워킹 기능을 제공하며, 보안 관련 기능도 풍부합니다.

 

1.3. 자바 플랫폼 및 버전

자바는 크게 Java Standard Edition (Java SE), Java Enterprise Edition (Java EE), Java Micro Edition (Java ME)의 세 가지 플랫폼으로 구분되며, 각각의 플랫폼은 서로 다른 목적과 환경에 맞게 구성되어 있습니다.

 

1. Java Standard Edition (Java SE) Java SE
기본적인 자바 애플리케이션 개발에 사용되는 플랫폼으로, 코어 자바 라이브러리와 Java Development Kit (JDK)를 포함합니다. Java SE는 다양한 애플리케이션 개발, 웹 서버 및 기타 플랫폼에 필요한 핵심 기능을 제공합니다. 이에는 기본 자료형, 컬렉션, 입출력, 네트워킹, 멀티스레딩, 예외 처리, 리플렉션 등의 기능이 포함됩니다. Java SE의 버전은 1996년 첫 출시 이후, 여러 번 업데이트되어 현재 2021년 기준 최신 버전은 Java SE 17입니다.

2. Java Enterprise Edition (Java EE) Java EE
웹 애플리케이션, 분산 애플리케이션 및 기업 환경에 적합한 애플리케이션 개발에 사용되는 플랫폼입니다. Java EE는 Java SE의 기능에 추가적인 기능들을 포함하며, 기업 애플리케이션의 복잡성과 확장성을 다루기 위한 프레임워크와 라이브러리를 제공합니다. 이에는 웹 서비스, 분산 객체 기술, 데이터베이스 연결, 메시징, 트랜잭션 처리 등의 기능이 포함됩니다. Java EE는 현재 Jakarta EE로 재명명되었으며, 이는 오라클이 자바 EE의 관리를 이클립스 재단(Eclipse Foundation)에 이양한 뒤 발생한 변화입니다.

3. Java Micro Edition (Java ME) Java ME
제한된 자원을 가진 임베디드 시스템, 모바일 장치 및 IoT 기기에서 사용되는 애플리케이션 개발을 위한 플랫폼입니다. Java ME는 Java SE의 일부 기능을 최적화하여 작은 메모리 크기와 낮은 처리 능력을 가진 장치에서도 동작할 수 있도록 설계되었습니다. 이를 위해 Java ME는 기본적인 자바 기능을 지원하는 Connected Limited Device Configuration (CLDC) 와 Mobile Information Device Profile (MIDP)와 같은 기능을 제공합니다. CLDC는 작은 메모리 크기와 낮은 처리 능력을 가진 장치에서 사용할 수 있는 최소한의 자바 가상 머신 (KVM) 및 핵심 클래스 라이브러리를 포함하며, MIDP는 특히 모바일 장치에 최적화된 사용자 인터페이스, 통신, 지속성을 위한 라이브러리를 제공합니다. 그러나 현재 Java ME의 중요성은 스마트폰의 발전과 함께 점점 감소하고 있습니다.

※ 자바 버전에 대한 상세 설명

자바 버전은 JDK 1.0부터 시작하여 여러 차례의 업데이트를 거쳐 JDK 17까지 이르렀습니다. 각 버전마다 새로운 기능 및 성능 개선이 이루어졌습니다. 일부 중요한 버전과 그 특징은 다음과 같습니다.

 

- JDK 1.0 (1996) : 자바의 최초 버전으로, 기본적인 자바 언어 기능과 라이브러리를 제공합니다.
- JDK 1.1 (1997) : 이벤트 리스너, 리플렉션, 자바 빈즈(JavaBeans) 등의 기능이 추가되었습니다.
- Java SE 1.2 (1998) : 컬렉션 프레임워크, 스윙(Swing) GUI 프레임워크 등이 도입되었습니다.
- Java SE 5 (2004) : 제네릭스, 오토박싱/오토언박싱, 가변인자, 정적 임포트, 향상된 for문 등의 기능이 추가되었습니다.
- Java SE 7 (2011) : try-with-resources 문, 다이아몬드 연산자, 스위치문에 문자열 사용 등의 기능이 추가되었습니다.
- Java SE 8 (2014) : 람다 표현식, 메소드 참조, 스트림 API, 인터페이스의 디폴트 메소드와 정적 메소드 등이 도입되었습니다.
- Java SE 9 (2017) : 모듈 시스템(JPMS)이 도입되어, 코드의 재사용성과 유지보수성이 향상되었습니다.
- Java SE 11 (2018) : LTS(Long Term Support) 버전으로, var 키워드, HTTP 클라이언트 API 등의 기능이 추가되었습니다.
- Java SE 17 (2021) : 패턴 매칭, sealed 클래스, 강력한 인코딩 및 디코딩 API 등의 기능이 추가되었습니다.

 

이처럼 자바는 시간이 지남에 따라 지속적으로 발전해 왔으며, 새로운 기능과 개선 사항들을 도입하여 프로그래밍 언어로서의 강력함을 유지하고 있습니다. 자바의 업데이트는 이제 6개월마다 주기적으로 이루어지며, 이를 통해 자바 생태계는 활발한 발전을 이어가고 있습니다.

자바의 최신 버전들은 더욱 짧은 주기로 릴리스되고 있으며, 이를 통해 빠르게 변화하는 기술 트렌드에 대응할 수 있게 되었습니다. 그러나 이러한 빠른 업데이트 주기로 인해, 많은 프로젝트와 개발자들은 각 버전의 특성과 적용 여부를 고려하여 선택해야 합니다. 특히 LTS 버전은 기업 및 대규모 프로젝트에서 안정성과 지원 기간을 중시하는 경우에 주로 사용됩니다.

앞으로도 자바는 프로그래밍 언어로서의 지위를 유지하고 발전해 나갈 것으로 예상됩니다. 자바 생태계는 거대하고 다양한 라이브러리, 프레임워크, 커뮤니티를 갖추고 있어, 개발자들은 이러한 생태계의 혜택을 누리며 효율적이고 안정적인 애플리케이션 개발을 지속할 수 있을 것입니다.

 

반응형

댓글