[부트캠프] 개발자를 위한 JDK 설치하기
자바(Java)나 코틀린(Kotlin)으로 프로그램을 개발하거나 스프링(Spring) 또는 스프링 부트(Spring Boot)와 같은 웹 프레임워크(framework)를 이용하여 프로그램을 만들려면 먼저 개발 환경을 구축해야 합니다.
자바 기반 프로그램 개발 시 기본적으로 필요한 준비물은 다음과 같습니다.
(1) 자바 개발 키트(Java Development Kit, JDK)
(2) 통합 개발 환경(Integrated Development Environment, IDE): 이클립스(Eclipse), STS(Spring Tool Suite) , 인텔리제이(IntelliJ) 등
이번 시간에는 JDK를 준비하는 법을 알아보겠습니다.
IDE |
코드를 작성하는데 필요한 텍스트 편집기(text editor), 컴파일(compiling) 및 배포(deployment) 시 사용하는 명령 프롬프트(cmd), 디버깅(debugging) 도구 등 개발할 때 필요한 여러 작업 환경을 하나로 통합한 소프트웨어
JDK의 정의 |
JDK란 무엇일까요? JDK는 자바 기반의 소프트웨어를 개발하고 실행하는 데 필요한 도구들로 이루어진 소프트웨어 패키지입니다. 프로그램을 개발할 때는 라이브러리(library)와 컴파일러(compiler), 그리고 런타임(runtime environment)과 같은 도구들이 필요합니다. JDK는 이러한 도구들을 한 곳에 모아놓은 종합 개발 키트입니다.
| 라이브러리
자주 사용하는 코드를 모듈(modules)과 패키지(packages)로 만들어 놓은 도구 모음
| 컴파일러
사람이 작성한 코드를 컴퓨터가 이해할 수 있는 언어에 가까운 코드로 번역해 주는 도구
| 런타임
컴파일된 작업물을 실제로 구동해 주는 실행 환경
JDK의 구성 요소 |
JDK는 다음과 같은 요소로 이루어져 있습니다.
| 자바 컴파일러(compiler): javac.exe
| 자바 런타임 환경(Java Runtime Environment, JRE): 자바 가상 머신(Java Virtual Machine, JVM), JIT 컴파일러(JIT compiler), 가비지 콜렉터(garbage collector), 로더(loader), 보안 도구 등
자바 컴파일러 |
컴파일러는 사람이 작성한 고수준(high-level language)의 언어를 컴퓨터가 이해할 수 있는 저수준(low-level language)에 가까운 언어로 번역해 주는 프로그램입니다. 자바에서는 javac.exe라는 컴파일러가 자바 소스 코드 파일(.java)을 읽어 바이트코드(Bytecode) 파일(.class)로 변환해 줍니다. 여기서 고수준/저수준 언어, 기계어 등 용어에 대한 자세한 설명은 프로그래밍 언어 종류와 언어별 특징을 참조해 주세요.
바이트코드는 JVM이 읽을 수 있는 중간 언어입니다. 자바 컴파일러가 자바 소스 코드를 변환할 때 생성하는 각 명령어(바이트코드)의 크기가 1바이트여서 바이트코드라는 이름이 붙여졌습니다. 바이트코드는 아직 컴퓨터가 읽을 수 없습니다. 바이트코드는 이진 코드(binary code)로 되어있지만, 컴퓨터의 하드웨어가 해석할 수 있는 기계어(machine language)는 아닙니다.
왜 자바 파일을 컴퓨터가 이해할 수 있는 이진 코드로 바로 변환하지 않고, 중간 언어로 번역하는 과정을 거치는 것일까요? 자바 애플리케이션을 컴퓨터의 기종이나 운영체제 상관없이 사용하게 하기 위해서입니다. 일반 애플리케이션은 운영체제 바로 위에서 실행됩니다. 그래서 운영체제에 종속적입니다. 그 프로그램을 다른 운영체제에서 실행하려면 실행하려는 운영체제에 맞게 새로 변경해야 합니다.
반면, 바이트코드는 운영체제가 아니라 JVM 위에서 실행됩니다. JVM은 자바 애플리케이션과 운영체제 사이에서 인터페이스로 존재하면서, 자바 컴파일러가 컴파일한 바이트코드를 각 컴퓨터 및 운영체제에 특화된 언어로 번역해 줍니다. JVM이 바이트코드라는 일종의 플랫폼 공용어를 각 플랫폼 세상이 이해할 수 있는 언어로 바꿔주는 것입니다.
따라서, JVM이 설치되어 있기만 하다면 어떤 컴퓨터나 운영체제에서든 자바 애플리케이션을 실행할 수 있게 됩니다. 운영체제와 맞붙어 있는 JVM은 플랫폼에 의존적이지만, 자바 애플리케이션은 JVM이라는 인터페이스 덕분에 플랫폼에 독립적으로 된 것입니다. "Write Once, Run Anywhere"라는 자바의 핵심 슬로건이 바로 여기에서 나왔습니다. 그럼 JVM은 어떻게 바이트코드를 각 플랫폼에 적합한 언어로 변환할 수 있는 것일까요? JRE가 이러한 작업을 돕습니다.
자바 런타임 환경(JRE) |
JRE는 자바 애플리케이션을 실행하는 데 필요한 전반적인 환경을 제공합니다. JRE는 컴파일된 바이트코드가 다시 플랫폼에 특화된 언어로 번역 및 실행되는 작업이 진행되는 곳입니다. 바이트코드는 다음 변환 과정을 거칩니다.
먼저, 자바 런처(java.exe)는 JVM을 구동시킵니다. 이 작업은 cmd에 java [.class 파일명]을 입력하는 것과 같습니다. JVM은 자바 바이트코드(.class 파일)를 로드하고, 필요한 경우 보안 확인 과정을 거칩니다. 그리고 JRE의 JIT(Just-In-Time) 컴파일러는 로드된 바이트코드를 기계어로 변환합니다. 이 변환 과정은 실시간으로 이루어지며, 변환된 코드는 캐시에 저장되어 재사용될 수 있습니다.
JDK의 개발 과정 |
JDK는 Java Community Process(JCP) 프로그램의 전 세계 구성원들이 국제적으로 표준화하고 승인한 자바 기술 명세서(technology specifications)를 기반으로 개발됩니다. JCP는 자바 기술에 관한 의견을 공유하고 더 나은 기술을 개발하기 위해 만들어진 자바 커뮤니티입니다. 전 세계의 JDK 공급자들은 JCP가 정의한 명세서에 따라 각 회사에 적합한 JDK를 개발하고 사용자에게 제공합니다. 특정 회사가 개발한 JDK에는 그 회사의 이름을 붙입니다. 예를 들면, 오라클사가 만든 JDK는 오라클 JDK(Oracle JDK)입니다.
JDK 공급자들이 JDK를 개발할 때는 어떤 샘플 JDK를 참조해서 만듭니다. 자바 기술 명세서를 실제로 구현한 예시 JDK를 바탕으로 각 회사에 적합한 JDK를 만드는 것입니다. 이 프로토타입(prototype)의 JDK가 바로 OpenJDK(Open Java Development Kit) 입니다.
OpenJDK는 자바 스탠다드 에디션(Java Standard Edtion, Java SE)의 공식 참조 구현(reference implementation)입니다. 오라클을 포함해 OpenJDK 커뮤니티 구성원들과 Red Hat, Azul Systems, IBM, Apple 등의 국제적인 IT 기업은 OpenJDK 개발에 참여합니다. 자바 10부터는 OpenJDK 대신 JDK Project라는 이름으로 OpenJDK 버전의 흐름을 이어가고 있습니다.
| 참조 구현(reference implementation)
다른 사람들이 특정 하드웨어 또는 소프트웨어를 구현하는 것을 돕기 위해 제공하는 샘플 프로그램
JDK의 종류 |
JDK에는 유료 버전과 무료 버전이 있습니다. 유료 JDK를 사용하려면 JDK 라이브러리에 대한 라이선스 사용료를 JDK 공급자에게 지급해야 합니다. 오라클의 장기 지원 서비스(Long Term Support, LTS) 버전의 JDK가 대표적인 유료 JDK입니다. LTS가 붙은 OracleJDK는 OpenJDK에 비해 호환성과 안정성이 중요한 기업 고객에게 더 나은 선택지를 제공합니다.
무료 JDK는 오픈 소스 기반의 JDK입니다. 누구든 가져가서 자유롭게 사용할 수 있습니다. 무료 JDK에는 이클립스 어댑티움(Eclipse Adoptium), 아마존 코레토(Amazon Corretto) 등이 있습니다. 뉴렐릭(New Relic)이 발표한 '2023년 자바 생태계 현황' 보고서에 따르면, 2023년을 기준으로 시장 점유율이 가장 높은 JDK는 아마존의 코레토였습니다. 코레토는 전체 JDK 중 약 31%를 차지했습니다. 이어 오라클JDK가 29%, 이클립스 어답티움이 12%, 레드햇(Red Hat) 10.5%, 아줄 시스템(Azul Systems) 줄루(Zulu)가 5.6%로 나타났습니다. 더 많은 JDK의 종류와 각 JDK를 제공하는 JDK 공급자의 리스트는 위키피디아 OpenJDK 리스트를 참조해 주세요.
지금까지 JDK의 정의와 JDK의 구성 요소, JDK의 개발 과정 및 JDK의 종류를 알아보았습니다. 그러면 JDK를 다운로드하고 설치하는 방법을 알아보겠습니다.
JDK 다운로드 하기 |
1.오라클 웹사이트 방문
먼저, 오라클(Oracle) 공식 웹사이트에서 JDK를 다운로드해야 합니다. 오라클 JDK 다운로드 페이지에 접속합니다. 최신 버전을 사용하고 싶다면 최신 버전 다운로드 페이지로 이동하세요.
(다운로드 주소: https://www.oracle.com/java/technologies/javase/jdk18-archive-downloads.html)
2. JDK 버전 선택
페이지에 접속하면 여러 버전의 JDK가 있습니다. JDK 18.0.2.1 버전을 기준으로 설명드리겠습니다. 자신에게 맞는 운영체제(Windows, macOS, Linux)를 선택합니다. 예를 들어, Windows 64bit를 사용 중이라면 Windows x64 Installer 을 클릭합니다. 혹시 내 컴퓨터의 시스템 정보를 모를 경우에는 여기를 눌러주세요.
3. 다운로드
운영체제에 맞는 설치 파일을 다운로드합니다. 예를 들어, Windows 사용자는 jdk-18/0.2.1_windows-x64_bin.exe 파일을 다운로드합니다.
JDK 설치하기 |
1. 설치 파일 실행
다운로드가 완료되면 설치 파일을 더블클릭하여 설치 마법사를 실행합니다. Next 버튼을 클릭합니다.
2. 설치 경로 설정
설치 경로를 설정합니다. 기본 경로를 사용해도 무방하지만, 다른 경로를 설정하고 싶다면 Change 버튼을 클릭하여 원하는 경로를 지정할 수 있습니다. Next 버튼을 클릭합니다.
4. 설치 진행 및 완료
설치가 완료되면 Close 버튼을 클릭하여 설치 마법사를 종료합니다.
이제 자바 개발을 시작하기 위한 준비가 완료되었습니다! 이 글을 통해 JDK 다운로드 및 설치 과정이 조금 더 쉬워졌기를 바랍니다. 자바 개발의 첫걸음을 내딛는데 도움이 되었으면 좋겠습니다.
이 글이 도움이 되길 바랍니다.
질문이 있거나 도움이 필요하시면 언제든지 댓글로 남겨주세요. 감사합니다!
'[부트캠프] 풀스택 개발자 > [Window] 개발환경구축' 카테고리의 다른 글
[부트캠프] 개발자를 위한 IntelliJ 설치하기 (0) | 2024.07.26 |
---|---|
[부트캠프] 개발자를 위한 JDK 환경설정하기 (1) | 2024.07.24 |
[부트캠프] 개발자를 위한 Visual Studio code 환경설정하기 (0) | 2024.07.19 |
[부트캠프] 개발자를 위한 Visual Studio Code 설치하기 (0) | 2024.07.17 |
[부트캠프] 개발자를 위한 시스템정보 확인하기 (0) | 2024.07.15 |