Spring Boot를 시작하기에 앞서 Java 언어의 기초를 배워야 합니다. Java는 프로그래밍 언어의 일종으로서, 일반적으로 High-Level Language라고 부릅니다. 비슷하게 High-Level Language라고 불리는 언어들은 C, C++, Javascript, Python 등 다양하게 존재합니다.
High-Level Language라는 것은 사람, 개발자에게 친화적인 언어라는 의미입니다. 저희가 사용하는 컴퓨터는 실제로는 기계어만 이해할 수 있습니다. 흔히 컴퓨터는 0과 1로 이뤄져있다는 의미의 연장선으로 생각하시면 됩니다.
기계어는 0과 1의 조합으로 이루어진, CPU에 실제로 전달되는 언어입니다. 컴퓨터 구조를 공부할때 CPU에 전달되는 전자 신호의 조합입니다. 저희가 작성하는 대부분의 프로그램, 소프트웨어 등도 결국에는 기계어로 바뀌어 컴퓨터로 전달됩니다.
0과 1의 조합으로 작성된 기계어는 한줄이 CPU에 전달되는 명령어 하나와 동일합니다. 각각의 명령어에 대하여 대응되는 인간이 이해하는 간단한 명령어로 해석한것이 기계어와 High-Level Language 중간 단계 정도로 생각할 수 있는 Assembly 언어입니다.
Java와 JDK
마찬가지로 저희가 앞으로 Spring Boot를 공부하면서 사용할 언어는 Java이며, 이 Java 언어 역시 컴퓨터가 이해할 수 있는 기계어의 형태로 변환이 되어야 합니다. 이때 등장하는 개념이 Java Bytecode, JVM, JRE, JDK 등의 개념입니다.
Java Bytecode는 Java 언어를 해석하여 만든 Assembly 언어와 유사한 언어입니다. 일반적으로 Java 언어의 소스 코드 파일은 *.java 의 형태로, Bytecode 파일은 *.class 의 형태로 컴퓨터에 저장됩니다. Java 언어는 JDK로 인해 JVM이 이해할 수 있는 언어인 Java Bytecode로 변환되어 실행됩니다. JRE는 Java Bytecode로 이루어진 프로그램이 실행될 수 있는 최소의 조건을 만족하는 환경입니다.
JVM
JVM은 Java Virtual Machine의 약자입니다. Java Virtual Machine은 Java Bytecode를 해석하여 컴퓨터로 전달하는 역할을 합니다. Java언어 자체를 실행하는 것이 아니라, Java 언어를 비롯한 언어로 인해 생성된 Bytecode를 실행하는 것입니다.
JRE
JRE는 Java Runtime Environment의 약자입니다. 일반적인 컴퓨터에서 Java 언어로 만들어진 소프트웨어를 실행하기 위한 대표적인 도구입니다. JRE에는 JVM과 함깨 다양한 Java Bytecode의 실행을 위한 라이브러리들이 포함되어 있습니다.
JDK
JDK는 Java Development Kit의 약자입니다. Java 언어를 Java Bytecode의 형식으로, 또는 Bytecode를 모아 실행 가능한 형태로 모으는 역할을 합니다. Java 언어를 사용하여 개발을 진행할때 필수적인 소프트웨어라고 생각할 수 있습니다. JVM을 실행하기 위한 java 명령어, Java 코드를 Java Bytecode로 바꾸기 위한 javac 명령어 등이 포함되어 있습니다.
JVM - JRE - JDK의 관계는 위의 그림과 유사하게 생각할 수 있습니다. 기본적인 실행의 주체인 JVM, JVM이 사용하기 위한 도구를 모아둔 JRE, 그리고 JRE에서 실행하기 위한 기초를 다지기 위한 JDK라고 생각할 수 있습니다.
OpenJDK
그래서 Java 언어를 이용한 개발을 할때는 JDK가 필요합니다.
Java 언어를 활용한 개발을 할때는 일반적으로 OpenJDK를 많이 사용하게 됩니다. Java 언어는 발전을 거듭하여 많은 버전을 가지고 있는데, 가장 대중적으로 사용되던 버전은 Java 8 버전이지만, 현재는 Java 8 버전은 LTS(Long Term Support, 장기 지원 버전) 기간이 종료되어서 지원이 종료될 예정입니다. 그래서 현재는 11버전을 많이 사용하게 됩니다.
상기의 링크에서
링크 중 자신의 OS에 맞는것을 선택하게 될 경우 zip 파일의 형태로 JDK가 다운로드 됩니다. 이 ZIP 파일을 압축 해제하면 안에 포함된 다양한 파일들이 JDK의 역할을 합니다.
앞서 언급한 java 및 javac 의 Windows 용 버전입니다.
Macos의 경우 Homebrew를 이용하여 AdoptOpenJDK를 다운받는 방법이 흔히 활용됩니다.
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Bash
복사
상기 명령어를 Terminal에 입력하여 homebrew를 설치한 후
brew update
brew tap adoptopenjdk/openjdk
brew install adoptopenjdk11
Bash
복사
의 명령어를 순서대로 활용하여 JDK를 설치하면 됩니다.