Java의 역사 및 특징

이재현·2024년 7월 22일

Java

목록 보기
1/15

개발 언어의 역사

A언어

첫 개발언어라는 의미에서 A Programming Language라 한다. 1960년대에 발표가 났으며, 입/출력 및 문맥 기능을 지원했다. 즉, 프로그램 작성을 위한 최소한의 기능만 구현되어 있다.

B언어

Bell사가 개발한 언어로 A언어와 마찬가지로 60년대에 개발되었다. A언어의 기능에 더해, 기계식 데이터 타입과 연산기능, 그리고 메서드를 지원했다.

C언어

B언어보다 더 좋은 언어라는 의미에서 C언어가 되었는데, 70년대에 발표되었다. B언어 기능에 다양한 데이터 타입을 정의하고 자료구조에 담을 수 있는 언어의 형태이다.


Java

어디서나 마시는 커피처럼 동작할 수 있는 자바 커피에서 이름을 따서 제작하였다. (Java의 아이콘이 커피인 이유를 이제야 알았다…)
1990년대에 발표되었으며, C언어의 기능에 공통실행환경, 클래스, 객체 기능을 지원한다.

자바를 배워야 하는 이유

현재까지 가장 많이 사용되는 개발 언어로서 웹, 앱 등 다양한 분야에서 쓰인다.

1. 자바는 공통 실행환경을 통해 여러 기기에서 실행할 수 가능
여러 기기의 운영체제에서 실행할 수 있는 언어이다.
특히, 앱 개발에 적합하다.

2. 인간이 이해하기 쉬운 개발 언어로 이해가 쉽고 유지보수가 간편하다.
-> 객체지향 언어

3. 높은 안정성으로 프로그래밍 오류 방지 및 안전한 보안
Compilrr가 오류를 먼저 체크하여 주기 때문에 방지가 잘 된다.
Java에서 다양한 보안 기술을 지원하고 있습니다.

4. 대규모 앱 개발 가능
네트워크 및 데이터베이스 연결 및 통신 등의 작업을 처리하는 API를 제공해준다.

5. 다양한 개발 도구 및 라이브러리
다양한 작업을 보다 쉽게 처리할 수 있다.


JVM

Java Virtual Machine의 약자로 여러가지 기기 위에 가상 기기를 만들어주는 것을 의미한다.
JVM은 다음과 같은 장치들로 구성되어 있다.

JVM 구성 장치

1. Bite 코드
Java 프로그램 변환 코드로, Java 컴파일러가 변환한 코드이다.

2. Interpreter
Java .class 코드해석기, 운영체제가 읽은 바이트 코드를 기기가 실행할 수 있는 기계어로 번역해주는 장치

3. JIT 컴파일러
빠른 Java .class 코드 해석기, 인터프리터의 효율을 높여주기 위한 서포트 해석기

4. 메모리 영역
Java 데이터를 저장하는 영역으로, 운영체제로부터 JVM이 할당 받은 메모리 영역을 의미한다.

5. Class loader
Java .class 바이트 코드를 메모리 영역에 담는 운반 장치, JVM으로 class를 불러와서 메모리에 저장한다.

6. Garbage Collector
메모리 영역에서 안 쓰는 데이터를 주기적으로 흡수해가는 장치이다.

JVM 내부 흐름

Java .class 파일 -> Class loader -> JIT Compiler -> Interpreter -> Runtime Sys -> 출력
Runtime은 프로그램이 실행 중인 상태를 의미한다. 즉, Runtime System이란 프로그램이 실행 중인 상태를 관리하는 시스템이다.


JRE

Java Runtime Environment의 약자로 자바 실행 환경을 의미한다. JRE(JVM)만 있다면 Java 프로그램을 실행만 시킬 수 있다.
JRE는 .class 파일만 실행할 수 있으며, JDK가 javac 명령을 통해 .java 파일을 실행가능한 .class 파일로 변환해준다.

JDK

Java Development Kit의 약자로 자바 개발 환경을 만들어주는 장치이다.
JDK는 .java 파일들을 .class 파일로 변환해주는 Java Compiler(javac) 기능을 갖고 있다.
또한, 코드를 디버깅하는 jdb 등의 기능도 갖고 있다.

0개의 댓글