😥 Java를 설치하려는데 JDK, JavaSE, JavaEE 이게 다 뭐야??
Java(자바)의 명칭이 헷갈리는 부분이 많다.
입문자가 보기에는 내가 맞게 쓰는 것인지 몰라서 검색을 계속 하는 경우가 많은데
"Java 6 설치하라는데 JDK 1.6버전이 깔렸는데 제대로 된 건가요??"
이런 질문을 많이 보기도 하였고, 저도 처음에는 뭔지도 모르고 설치하고 일단 되서
그냥 했던 적이 있어서 자바에 대해 제대로 정리해보려고 한다.
자바란 무엇인가?
썬 마이크로시스템즈(Sun Microsystems)에서 개발하여 1996년에 공식적으로 발표한 객체지향 프로그래밍 언어이다.
자바는 안드로이드 플랫폼에서 애플리케이션을 개바하는 기본 언어이기도 하다. (Kotlin 과 함께)
가장 중요한 특징은 운영체제에 독립적이라는 것이다.
즉, 한번만 작성하면 코드를 변경하지 않아도 다양한 종류의 컴퓨터에서 실행이 가능하다는 것이다.
자바의 특징은?
1. 자바는 단순하면서도 방대하고 풍부한 라이브러리를 제공한다.
C++ 장점만 가져왔고, 거기에 없는 자동 메모리 관리 기능, 멀티 스레드, 객체지향적인 방법으로 제작된 많은 라이브러리를 제공한다.
2. 자바는 객체 지향적(Object-Oriented)이다.
객체별로 코드를 작성하고 객체들을 조합하여 전체 프로그램을 완성하는 프로그램 설계 방법론이다.
3. 분산처리 지원
자바는 네트워크상에서 동작되는 것을 기본으로 설계된 언어로 다양한 네트워크 프로그래밍 라이브러리(Java API)를 가지고 있다. 즉, 네트워크 관련 프로그램을 쉽게 개발할 수 있도록 지원한다.
4. 컴퓨터 구조에 중립적이다.
이 특징은 따로 블로그 글을 적을 정도로 중요하다.이것은 운영체제에 독립적이다라는 말이다.
자바 언어로 작성한 프로그램을 자바 컴파일러가 바이트 코드(byte code)라는 이진 파일로 변환한다.
바이트 코드를 실행하기 위해서는 자바 가상 기계(JVM, Java Virtual Machine)라는 특수한 가상 컴퓨터 S/W가 필요하다. 이것이 바이트 코드를 한 줄씩 읽어서 해석한 후 실행한다. 따라서 자바로 개발된 프로그램은 운영 체제의 종류에 관계없이 자바 가상 기계를 설치할 수 있는 시스템에서는 어디서나 실행 가능하다.
간단하게 그림을 보자면 아래와 같다.
5. 멀티스레딩 지원
멀티스레딩(MultiThreading)을 지원한다.
이것은 여러 작업들을 동시에 할 수 있다는 것이다.
여러 쓰레드에 대한 스케줄링(scheduling)을 자바 인터프리터가 담당한다.
6. 동적 로딩(Dynamic Loading)을 지원
자바는 실행되기 직전에 라이브러리를 동적(Dynamic)으로 링크하므로 실행할 때 변경된 라이브러리가 자동적으로 참조된다.
따라서 수많은 클래스를 가진 자바 애플리케이션을 실행할 때 전부 읽지않고, 필요할 때마다 '동적'으로 클래스를 로딩하여 사용하게 된다.
🤔 자바 특징은 이제 알겠는데 설치는 어떻게 하지?
먼저 JDK(Java Development Kit)를 설치해야 한다.
JDK에는 자바가상머신(JVM)과 자바클래스 라이브러리(Java API) 외에 개발하는데 필요한 프로그램이 설치된다.
어? JRE도 있는데 이건 뭔가요?
JRE(Java Runtime Environment)는 자바 프로그램을 실행하기 위한 라이브러리, 자바가상머신,기타 컴포넌트들을 제공하는데 이것은 자바 프로그램만 실행하고 개발하지 않는 일반인들을 위한 환경이라고 보면 된다.
https://www.oracle.com/java/technologies/
본격적으로 Oracle 사이트에 들어가서 다운로드를 할 준비를 하자.
참고로 썬 마이크로시스템즈는 오라클(Oracle)에 인수되어서 자바는 오라클의 제품이다.
JavaSE, Java EE .... 아직도 이상한 것들이 많이 남아있다??
이것은 자바의 종류로써 개발 분야에 따라 좀 더 나뉘어서 제공하고 있다. 아래 이미지를 참고하자.
Java SE(Standard Edition)
자바 언어의 핵심 기능을 제공한다. 보통 일반 개발자들이 다운받는 자바 표준 배포판이라 이것을 선택하면 된다.
Java SE API는 자바 언어의 기본적인 자료형과 객체에서부터 고수준의 클래스까지 모두 정의한다.
여기에 추가하여서 Java SE 플랫폼은 JVM, 컴파일러와 같은 개발 도구, 자바 웹 스타트와 같은 배포 기술 등을 포함한다.
다음 이미지는 Java SE의 구성이다.
Java EE(Enterprise Edition)
기업용 배포판이다. 기업용 애플리케이션을 개발하는데 필요한 여러 도구 및 라이브러리를 모아놨다.
Java ME(Micro Edition)
모바일용 배포판이다. Java SE의 부분 집합에다가 모바일 장치를 위한 특수한 클래스 라이브러리가 추가되었다.
Java FX
애플리케이션 개발자들이 더 쉽게 리치-인터넷-애플리케이션(RIA, Rich Internet Application)을 생성 및 배포하기 위한 자바 클라이언트 플랫폼이다.
자바 종류에 대해 알게되었으니 계속 설치해보자.
보통 빨간색으로 표시된 것들을 다운로드하여 자바를 설치한다.
위에서부터 Java 17, 11, 8 버전이다.
LTS (Long Term Support)는 지원기간이 긴 버전이라고 보면 된다. 그래서 보통 8, 11, 17버전을 많이 쓴다.
Java 언어에 대한 지원기간도 중요한 점인데 그 때문에 Java 8 버전이 제일 인기가 많다.
그리고 지원기간 때문에 11 업데이트를 하지 않고 8을 계속하거나 17로 넘어가는 경우가 많은 것 같다.
Oracle JDK 지원 기간
- Java 8 : 2030년 12월
- Java 11 : 2026년 9월
- Java 17 : 2029년 9월
만약 Java SE 8u311 을 눌렸다면 다음과 같은 화면이 보이는데 자신의 컴퓨터 운영체제 비트로 다운로드하면 된다.
Java 버전에 맞는 JDK 이름??
아래는 Oracle에서 지원했던 예전 Java 들인데 이것으로 명칭을 알 수 있겠다.
JDK 1.5부터 Java 5라고 명칭한 것을 알 수 있겠다.
Java8 까지는 JDK 1.8로 다운받지만 Java9부터는 JDK 9로 명칭을 바꾸어 Java 17이면 JDK 17이다.
설치를 하면 다음과 같은 폴더들이 보일 것인데 이 글을 다 읽었다면
이제는 무서워하지 말고 어떤 것을 써야할지 잘 골라서 해보자!!!
'프로그래밍 > Java' 카테고리의 다른 글
Java(자바) API 문서 다운받기 (0) | 2022.01.11 |
---|---|
Java(자바) 환경변수 설정하기 (0) | 2022.01.11 |
Java 삼항 연산자(조건 연산자) - 응용 (0) | 2022.01.06 |
Java 삼항 연산자(조건 연산자) - Conditional Operator (0) | 2022.01.05 |
Java(자바)를 꼭 배워야할까? (0) | 2022.01.03 |