✅ Java란?
Java는 객체 지향 프로그래밍 언어로, 1995년에 썬 마이크로 시스템즈(Sun Microsystems)에서 발표되었습니다. Java는 C++과 유사한 문법을 가지고 있지만, 포인터를 사용하지 않는 등 보다 안정적이고 안전한 언어로 개발되었습니다. Java는 컴퓨터 프로그래밍을 위한 프로그래밍 언어 중 하나로써 0과 1로 이루어진 이진수만 이해하는 컴퓨터에게 작업을 수행하는 방법을 사람이 이해할 수 있는 언어(Java)로 지시할 수 있는 방법이 프로그래밍입니다.
자바의 가장 중요한 특징은 운영체제(플랫폼)에 종속되지 않고 독립적으로 실행할 수 있다는 것입니다. 이는 JVM, 자바 가상 머신을 사용하기 때문입니다. 또한, Java는 객체 지향 프로그래밍을 기반으로 합니다. 객체 지향이란 현실 세계의 사물이나 개념을 하나의 집합으로 구성하는 것을 객체라고 합니다. JVM(Java Virtual Machine)과 자동 메모리 관리(Garbage Collection), 다양한 라이브러리(API)를 통하여 개발자들이 더 쉽게 프로그래밍을 할 수 있는 언어입니다.
✅ 특징
Java는 많은 특징을 가지고 있습니다. Java의 주요 특징은 다음과 같습니다.
- 객체 지향 프로그래밍
Java는 객체 지향 프로그래밍(OOP) 언어로 설계되었습니다. 이는 코드를 객체들의 집합으로 구성하여 현실 세계를 모델링하고 문제를 해결하는 방식입니다. 객체 지향 프로그래밍은 코드의 재사용성, 모듈화, 유지보수성을 높여주는 많은 이점을 제공합니다. Java는 클래스, 객체, 상속, 다형성 등의 개념을 지원하여 개발자가 객체 지향적으로 프로그램을 구현할 수 있게 합니다.
- 플랫폼 독립성
Java는 "Write once, run anywhere"(한 번 쓰고 어디서든 실행 가능)라는 철학을 가지고 있습니다. 이는 Java 코드를 한 번 작성하면 다양한 플랫폼에서 실행 가능하도록 컴파일되고, Java Virtual Machine(JVM)에서 실행된다는 의미입니다. JVM은 특정 운영 체제나 하드웨어에 종속되지 않으며, Java 코드를 실행하기 위한 가상의 컴퓨터입니다. 이를 통해 Java 개발자는 플랫폼에 구애받지 않고 코드를 작성하고 실행할 수 있으며, 이식성이 뛰어난 애플리케이션을 개발할 수 있습니다.
- 컴파일, 인터프린터 언어
컴파일 언어이면서 동시에 인터프리터 언어입니다. 소스를 컴파일 하여 바이트 코드( .class )로 만든 다음 JVM이 바이트 코드를 인터프리트 하면서 실행합니다. 바이트 코드로 컴파일 함으로써 인터프리터를 통해 기계어로 컴파일되기 쉽게 최적화되기 때문에 자바는 컴파일 언어에 가까운 속도와 시스템 독립성을 얻을 수 있습니다. 이는 JVM, 자바 가상 머신을 사용하고 있기 때문에 가능한 것입니다.
- 가비지 컬렉션
Java는 메모리 관리를 위해 가비지 컬렉션을 지원합니다. 개발자는 메모리를 명시적으로 할당하거나 해제할 필요가 없으며, 가비지 컬렉터가 더 이상 사용되지 않는 객체를 자동으로 감지하고 제거합니다. 이를 통해 개발자는 메모리 관리에 대한 부담을 줄일 수 있으며, 메모리 누수와 같은 일반적인 문제를 피할 수 있습니다. 가비지 컬렉션은 Java의 안정성과 신뢰성을 높이는 데 기여합니다.
- 다양한 라이브러리와 프레임워크
Java는 개발자들이 다양한 기능을 쉽게 구현할 수 있도록 풍부한 라이브러리와 프레임워크를 제공합니다. 예를 들어, Java에서는 데이터베이스 액세스, 네트워크 통신, 그래픽 처리, 웹 개발 등을 위한 다양한 라이브러리가 존재합니다. 이러한 라이브러리와 프레임워크를 사용하면 개발자는 기본적인 기능을 직접 구현하지 않고도 빠르고 효율적으로 애플리케이션을 개발할 수 있습니다. 대표적으로 SpringFramework가 있습니다.
✅ 역사
- 탄생과 초기 개발
1991년, Sun Microsystems의 James Gosling과 그의 팀은 "Green Project"를 시작하였습니다. 이 프로젝트에서 개발된 언어는 Oak라는 이름을 갖추었는데, 처음에는 가전제품에 사용되는 소프트웨어를 위해 설계되었습니다. 그러나 웹의 등장으로 인해 Oak는 웹 애플리케이션 개발 언어로 전환되었습니다.
- Java의 등장
1995년, Oak는 Java로 이름이 변경되었습니다. 이때의 Java는 객체 지향 프로그래밍, 플랫폼 독립성, 가비지 컬렉션 등의 특징을 갖추고 있었습니다. Java 1.0 버전은 웹 애플리케이션 개발을 위한 도구로 속속들이 인기를 얻었으며, 초창기에도 이미 개발자들의 관심을 받았습니다.
- Java의 확산
Java는 자바 애플릿(Java Applet)을 통해 웹 브라우저에서 실행되는 애플리케이션 개발 분야에서 큰 인기를 얻었습니다. 자바 애플릿은 웹 페이지에 포함된 작은 프로그램으로, 플랫폼 독립성과 보안성을 제공하는 Java의 장점을 전 세계적으로 알리는 계기가 되었습니다. Java는 이후 서버 측 프로그래밍, 엔터프라이즈 애플리케이션 개발, 모바일 앱 개발 등 다양한 분야에서 활용되었습니다.
- Java의 발전과 다양한 버전
Java는 발전과 함께 다양한 버전이 출시되었습니다. Java 2 Platform, Standard Edition (J2SE)는 Java의 주요 버전으로, Java 2부터는 다양한 API와 개선된 기능들이 도입되었습니다. Java 2의 등장으로 Java는 개발자들에게 더욱 효율적이고 강력한 개발 환경을 제공하게 되었습니다. 이후 Java 5부터는 제네릭스, 애너테이션, 열거형 등의 기능이 추가되었고, Java 8에서는 람다식과 스트림 API가 도입되었습니다.
- Java의 장점
Java는 객체 지향 프로그래밍, 플랫폼 독립성, 가비지 컬렉션 등 다양한 장점을 가지고 있습니다. 객체 지향 프로그래밍은 코드의 재사용성과 모듈화를 높여 유지보수성을 향상시키는 장점을 제공합니다. 플랫폼 독립성은 Java 애플리케이션이 다양한 운영 체제에서 실행될 수 있음을 의미하며, 개발자들은 코드를 한 번 작성하여 여러 플랫폼에서 실행할 수 있습니다. 가비지 컬렉션은 개발자가 메모리 관리에 대한 부담을 줄이고 메모리 누수와 같은 일반적인 문제를 방지하는 데 도움을 줍니다.
Uploaded by N2T