컴퓨터 프로그래밍 언어(Programming Language)

<aside> ✅ 자바가 쓰이는 곳

<aside> ✅ 자바의 특징

(1) 객체지향언어 (EX. C++, Java, Python, JS, etc.) ****: 기존의 절차지향 프로그래밍 언어에 객체지향 개념을 도입한 것으로, 객체지향 프로그래밍(Object Oriented Programming, OOP)을 위한 최적의 언어

(2) JVM(Java Virtual Machine)으로 인해 운영체제에 독립적 : 자바로 작성된 소스코드는 모든 운영체제(Operating System, 플랫폼)에서 실행 가능

(3) 자동 메모리 관리(GC, Garbage Collection) : 자바에는 가비지컬렉터가 메모리(RAM)를 자동 관리하여 따로 메모리 관리를 하지 않아도 되서 아주 편리하다. 또한, 개발자에게 메모리 관리를 할 수 있는 수단이 제공되지 않기도 하다.

(4) 풍부한 클래스 라이브러리(Java API) 제공

(5) 멀티 쓰레드 지원 : 하나의 프로그램에서 동시에 여러 작업을 할 수 있게끔 해주는 기능이다. 예를 들어, 채팅 프로그램으로 채팅을 하면서 파일을 주고 받을 수 있는 상황 등이 멀티 쓰레드 기능에 의해 가능한 것이다. 요즘 대부분의 프로그램은 멀티 쓰레드로 작성되기 때문에 최신 프로그래밍 언어라면 필수로 제공되어야 하는 기능으로, 자바 또한 이를 지원한다.

(6) 동적 로딩(Dynamic Loading) 지원 : 보통 자바로 작성된 애플리케이션은 여러 개의 클래스로 구성되어 있어, 동적 로딩을 지원한다. 그렇기 때문에 실행했을 때, 모든 클래스가 한번에 로딩되지 않고 필요한 시점에 맞추러 클래스를 로딩하여 사용할 수 있다는 장점이 있다. 또한, 일부 클래스가 변경되어도 전체 애플리케이션을 다시 컴파일하지 않고, 애플리케이션의 변경사항이 발생하여도 적은 작업만으로 처리 가능한 flexible한 애플리케이션을 만들 수 있다.

(7) 속도가 느린 편 : 바이트코드(byte code)를 하드웨어의 기계어로 바로바로 변환해주는 JIT 컴파일러와 Hotspat과 같은 최신 기술이 도입되면서 JVM의 기능이 많이 향상되어 속도 문제는 상당 부분 개선된 상태이다.

(8) 꾸준한 성능 개선 및 새로운 버전 발표 : 모바일이나 대규모 기업환경, XML 등의 다양한 최신 기술을 지원하도록 개선함으로써 활용할 수 있는 영역이 더욱 넓어지고 있다. 모던 프로그래밍언어 (객체지향 + 함수형)로써 최신 기술을 담고 있다.

(9) 다양한 분야에서 사용 가능하며 20년간 프로그래밍 언어 1, 2위였다는 사실을 통해 많이 사용되었다는 것을 알 수 있다. 그렇기 때문에 학습자료 또한 많아 배우기도 수월하며, 취업에 유리한 언어 즉, 실무에서도 제일 많이 사용하는 언어다.

</aside>

<aside> ✅ 자바의 역사

자바의 역사란, 곧 JDK 발전의 역사라고 할 수 있다.” ****: 썬 마이크로시스템즈에서 개발하여 공식 발표(1996년 1월)한 후 현재(2010년 이후) 오라클 회사로 인수하였다. 자바 언어로 된 프로그램을 제작하려면 무조건 JDK를 이용해야 한다. 따라서

<aside> ➡️ CF. JDK(Java Development Kit)란? (자세한 설명은 개발환경구축 페이지에서 진행)자바 기반 소프트웨어를 개발하기 위한 도구들로 이루어진 패키지

자바 기반 프로그램을 작성한다는 것은 이 JDK라는 도구 패키지를 이용한다는 의미

: JDK는 리눅스처럼 라이센스 때문에 회사마다 출시하면서 종류가 다양해졌다. 또한 각 종류별로 발전의 과정에 따라 계속 새로운 버전이 생겨나 각 회사별 JDK 제품별로도 버전도 다양하다. JDK11 버전부터는 JDK 안에 있는 JRE가 무조건 함께 설치하도록 되어 있으며, 그러한 자바 실행 환경인 JRE에는 JVM이 포함되어 있다. 결국 JDK의 운영체제 선택에서 JRE, JVM 모두 비롯된다는 것이다.

<aside> ➡️ CF. JDK 버전 표기

: 회사별 JDK들의 버전 표기는 통일화되어 있으며, 사람들이 Java라고 하고 Java11이라 하는것은 결국 JDK의 버전을 의미한다고 볼 수 있다. 그래서 Java를 설치한다 라는 것은 JDK를 설치한다 라고 할 수 있다.

</aside>

<aside> ➡️ CF. JDK(Java Development Kit)란? (자세한 설명은 개발환경구축 페이지에서 진행)자바 기반 소프트웨어를 개발하기 위한 도구들로 이루어진 패키지

자바 기반 프로그램을 작성한다는 것은 이 JDK라는 도구 패키지를 이용한다는 의미

: JDK는 리눅스처럼 라이센스 때문에 회사마다 출시하면서 종류가 다양해졌다. 또한 각 종류별로 발전의 과정에 따라 계속 새로운 버전이 생겨나 각 회사별 JDK 제품별로도 버전도 다양하다. JDK11 버전부터는 JDK 안에 있는 JRE가 무조건 함께 설치하도록 되어 있으며, 그러한 자바 실행 환경인 JRE에는 JVM이 포함되어 있다. 결국 JDK의 운영체제 선택에서 JRE, JVM 모두 비롯된다는 것이다.

<aside> ➡️ CF. JDK 버전 표기

: 회사별 JDK들의 버전 표기는 통일화되어 있으며, 사람들이 Java라고 하고 Java11이라 하는것은 결국 JDK의 버전을 의미한다고 볼 수 있다. 그래서 Java를 설치한다 라는 것은 JDK를 설치한다 라고 할 수 있다.

</aside>

</aside>