JDK, JRE 무엇을 설치해야하나요?..

skyepodium·2021년 4월 27일
1
post-thumbnail
post-custom-banner
  1. 개발자라면 JDK를 설치하시고,
  2. 개발 목적이 아니라면 JRE를 설치하시면 됩니다.

1. 긴장되는 순간 😱

Java를 다운받으려고 들어왔는데 JDK, JRE 둘중 하나를 선택하라고 합니다.

생긴것은 비슷하고


구글링 해봐도 모르겠고

잘못설치하면, 지우고 다시 받을 생각에

벌벌떨리고 손발이납니다.

결론을 바로 말씀드리면
1. 개발자라면 JDK를 설치하시고
2. 개발 목적이 아니라면 JRE를 설치하시면 됩니다.

2. Java가 실행되는 과정 🕵️

자바가 실행되는 과정을 간략하게 말하면 3가지로 나눌 수 있습니다.

1) 자바 소스코드 작성

텍스트 에디터에 자바 소스코드를 작성합니다.

Main.java 로 파일명과 확장자를 설정했습니다.

2) javac 컴파일

자바 컴파일러(javac)가 1번에서 작성한 소스코드(Main.java)를 컴파일해서 자바 바이트 코드(Main.class)를 만듭니다.

3) JVM 실행

JVM의 인터프리터가 2번에서 만든 자바 바이트 코드(Main.class 파일)를 해석하고 실행합니다.

왜 이것까지 알아야한다고 생각이 들면, 바로 다음을 봐주세요!

3. 포함관계 👨‍💻


자바 소스코드를 컴파일하는 javac는 JDK에 포함되어 있습니다.
자바 바이트코드를 실행하는 JVM은 JRE에 들어있습니다.

그리고

JDK에는 JRE가 포함되어 있고
JRE에는 JVM이 포함되어 있습니다.

따라서, JDK를 설치하면 JRE 까지 설치됩니다.

정리하면,

  • JDK
    만약, 자바 소스 코드를 작성하고 컴파일하고, 실행할 목적이라면 JDK를 설치합니다.

  • JRE
    자바로 만들어진 프로그램을 실행만 한다면 JRE만 설치해도 충분합니다.

4. openJDK는 또 뭐지유? 🤷

만약 여러분이 자바를 설치하는 곳이 회사라면 openJDK 을 사용해주세요.

Oracle이라는 회사에서 배포하는 oracleJDK 11 이후 버전을 상업적 용도로 사용할때는 유료입니다.

1) 자바의 역사

자바의 역사에 대해 간략하게 말씀드리면.

1. 썬마이크로 시스템즈

썬마이크로 시스템즈에서 Java를 만들고 배포합니다.

2. 오라클

오라클(Oracle 데이터베이스 회사) 에서 썬마이크로 시스템즈를 인수하면서 자바의 권리 또한 획득합니다.

3. JDK 정책 변경

오라클에서 앞으로 상업적 용도로 JDK를 사용하기 위해서는 돈을 지불해야하는 라이센스 정책을 발표하였습니다.

4. openJDK

openJDK을 사용하게 되었습니다.

2) 정리

만약 회사에서 오라클과 라이센스 계약을 맺어서 사용해도 괜찮으시다면 사용하시고, 아니라면 openJDK를 사용합니다.

그리고 openJDK를 설치할 때는 zulu라는 회사에서 만든 배포판을 사용하는것이 편리합니다.

3) zulu openJDK 설치 방법

  • windows
    개인적으로 msi로 설치하는게 버튼 몇번 누르면 되기 때문에 깔끔한 것 같습니다.
  • mac
    homebrew 사용해서 설치합니다.
brew search zulu
brew cask install zulu8
  • linux
    ubuntu일때
apt-get install zulu-8

5. cafe babe ☕

그냥 여담...

1) cafe babe

자바 소스코드를 컴파일 하면 만들어지는 자바 바이트 코드(.class 파일)을 편집기로 열어보면 cafe babe라는 단어를 볼 수 있습니다.

2) 매직넘버 (시그니처 넘버)

파일은 고유한 16진수로 구성된 매직넘버를 가지고 있습니다.

PNG의 매직넘버는 89 50 4E 47 입니다. PNG 파일을 Hex 에디터로 열면 확인할 수 있습니다.

3) 히스토리

위키피디아 에 따르면 CAFEDEAD라고 부른 장소가 있었는데, 이것이 4글자 16진수로 만들어질 수 있다는것을 깨달았다.....중략.....나중에는 DEAD를 대신 BABE를 붙였다.

0x를 붙였을때 16진수가 되는 단어에는 0XDEADBEEF가 있습니다.

4) 16진수

우측은 자바 바이트 16진수를 아스키로 변환했을때의 문자열입니다.

소스코드에 적었던 Install JDK or JRE !!!! 도 볼 수 있습니다.

profile
callmeskye
post-custom-banner

0개의 댓글