JDK, JRE, JVM

나무·2024년 6월 7일

JAVA

목록 보기
2/3
post-thumbnail

🛠️ 자바 개발자를 위한 도구 모음

목수가 나무를 자르고 가구를 짜기 위해서는 여러가지 도구들이 필요하다. 자로 길이를 재고 톱으로 나무를 자르고 수평계로 수평도 맞춰줘야한다. 개발자들도 마찬가지다. 그냥 컴퓨터만 가지고 있어서는 개발을 할 수가 없다.

도구가 필요하다!! 그래서 자바는 개발자들을 위해 도구와 장비들을 지원해주는데 그게 바로 JDK 이다.

The Java Development Kit (JDK) is a cross-platformed software development environment that offers a collection of tools and libraries necessary for developing Java-based software applications and applets.

JDK 는 여러가지 툴과 자바 기반 어플리케이션 개발을 위한 필수 라이브러리들을 제공하는 크로스 플랫폼 소프트웨어 개발 환경입니다.

그냥 자바 개발자들을 위한 도구 모음이란 말을 길게 늘여쓴것이다. 일단 이름부터 Development Kit 니깐 말 다했다. 실제로 개발자들을 위해 여러가지 툴이나 라이브러리들을 담아서 제공해주는 것을 SDK(Software Development Kit) 라고 부르는데 JDK 니깐 자바를 위한 SDK 인 것이다.

그럼 어떤 연장들을 우리를 위해 제공해주는지 한번 언박싱 리뷰를 해보자.

🎁 JDK 언박싱

JDK 안에는 굉장히 많은 도구들이 존재하는데 대표적으로 JRE가 있다.

📌 JRE(Java Runtime Environment)

JRE는 이름에서도 알 수 있다시피 자바 실행 환경이다.

실행 환경이 뭐냐면 말그대로 자바언어로 짜여진 코드,,,아니 좀 더 정확히말하면 자바 바이트 코드로 작성된 코드를 실행하는데 필요한 것들을 제공 해주는 녀석이다.

그리고 이 JRE 에 그 유명한 JVM 이 포함된다.

✅ JVM (Java Virtual Machine)

자바공부를 하면 반드시 들어봤을 녀석이다. 기능 부터 간단히 말하자면 .class 파일을 읽어들여 자기가 가지고 있는 인터프리터와 컴파일러로 OS가 읽을 수 있는 네이티브 코드를 만드는 것이다. 이를 통해 .class 파일만 있으면 어떤 OS에서든지 자유롭게 프로그램을 실행 시킬 수 있는것이다. (물론 JVM 자체는 OS에 종속적이다.)

✅ Java API 라이브러리

자바 프로그램이 다양한 기능을 수행할 수 있도록 도와주는 표준 클래스 라이브러리들이 포함되어있다.

  • java.lang: 기본 클래스 : String, Math, Integer

  • java.util: 유틸리티 클래스 : ArrayList, HashMap, Date

  • java.io: 입출력 클래스 : File, InputStream, OutputStream

  • java.nio: 비동기 I/O 클래스 : Buffer, Channel, FileChannel

  • java.net: 네트워크 클래스 : Socket, URL, HttpURLConnection

  • java.sql: 데이터베이스 연결 클래스 : Connection, Statement, ResultSet

JRE는 프로그램이 실행되는데 필요한 모든 것들이 포함 되어있는 모듈인셈이다. 즉 굉장히 핵심적인 도구인셈이다.

📌 JRE 외 나머지

그럼 JRE 말고 나머지는 뭐가 있을까?

JRE가 프로그램을 실행하는데 필요한 도구라면, 나머지들은 프로그램을 개발, 모니터링, 디버깅, 배포 하는 데 필요한 도구 들이다.

대표적인것만 소개를 하자면

✅ javac

자바 컴파일러로이며 사람이 작성한 자바코드를 JVM 이 읽을 수 있는 자바 바이트코드로 컴파일을 해준다.

✅ javap

바이트코드로 변환된 파일을 디스어셈블하여 어셈블리어로 변환해주는 디스어셈블러이다. 바이트코드를 분석하기위해 사용한다.

✅ javadoc

자바 소스 코드에서 자동으로 API 문서를 생성해준다.

✅jar

클래스 파일과 관련 리소스를 하나의 아카이브 파일로 묶을 때 사용한다.

등이 있다.

🤷‍♂️ SE와 EE 의 차이

JDK 를 다운 받으려고 보면 SE버전이 있고 EE 버전이 있는 것을 확인 할 수 있다.

간단히 말하면 SE(Standard Edition) 는 정말 핵심적인 기능을 담고 있으며, EE(Enterprise Edition) 은 기업용으로 더욱 많은 기능들이 담겨져있으며 특히 웹 서버 어플리케이션 개발을 위한 여러 기능들을 제공해준다.

✍️ 정리

  • JDK 는 자바 어플리케이션을 개발하기 위해 제공되는 자바 개발 툴 이다.

  • JDK 에는 프로그램 실행을 위해 필요한 JRE 와 컴파일, 디버깅, 배포,문서화와 같이 개발에 도움을 주는 나머지 도구 들이 있다.

  • JRE는 JVM 과 API라이브러리를 포함한다.

  • JRE외에는 javac, javadoc, jar 등이 포함되어있다.

📚 참고 자료

백기선 님의 더 자바, 코드를 조작하는 다양한 방법

profile
🍀 개발을 통해 지속 가능한 미래를 만드는데 기여하고 싶습니다 🍀

0개의 댓글