반응형

원래는 Coroutine과 Thread에 대해 알아보고 어떤 차이가 있는지, 어떻게 사용하는지에 대해 다루려고 했는데 개념에 대해 이해하려고 알아보다 보니 거슬러 올라가다가 'Java가 실행되는 방식'까지 올라오게 되었다. 좋은 기회이니 Coroutine과 Thread에 대해 다루기에 앞서 조사한 내용들을 정리하려 한다.


JVM은 뭐지?

JVM은 'Java Virtual Machine'의 약자로 '자바 가상 머신'(왜 머신만 영어지) 이라는 뜻이다.

자바는 운영체제에 종속적이지 않다고 한다. 운영체제에 종속되지 않고 실행되려면 자바를 실행시킬 무언가가 필요한데 이것이 JVM이라고 한다.

JVM를 이루고 있는 요소 중에 '런타임 데이터 영역 (Runtime Data Area)'이라는 것이 있는데 바로 이 안에서 '쓰레드(Thread)'를 찾아볼 수 있었다. 

쓰레드(Thread)
프로세스의 작업을 수행하는 주체이다. 한 프로세스 내에 여러 개의 쓰레드가 존재할 수 있다.

보다 더 자세하고 정확한 정보들은

https://doozi0316.tistory.com/entry/1%EC%A3%BC%EC%B0%A8-JVM%EC%9D%80-%EB%AC%B4%EC%97%87%EC%9D%B4%EB%A9%B0-%EC%9E%90%EB%B0%94-%EC%BD%94%EB%93%9C%EB%8A%94-%EC%96%B4%EB%96%BB%EA%B2%8C-%EC%8B%A4%ED%96%89%ED%95%98%EB%8A%94-%EA%B2%83%EC%9D%B8%EA%B0%80

 

[JAVA] JVM이란? 개념 및 구조 (JDK, JRE, JIT, 가비지 콜렉터...)

JVM이란 무엇인가 Java Virtual Machine의 줄임말. 직역하면 '자바를 실행하기 위한 가상 기계(컴퓨터)'라고 할 수 있다. Java 는 OS에 종속적이지 않다는 특징을 가지고 있다. OS에 종속받지 않고 실행되

doozi0316.tistory.com

이곳에 매우 잘 정리되어 있다.

 

이와 관련한 쓰레드(Thread)관련 정리는 후에 이어서 할 예정이다.

 

 

JDK? JRE?

먼저 JRE에 대해 알아보는 것이 좋을 것 같다.

 

JRE는 '자바 런타임 환경(Java Runtime Environment)'라는 뜻이다. 이는 JVM과 자바 클래스 라이브러리 등으로 구성되어 있다. *.java에서 *.class로 컴파일된 자바 프로그램을 실행하는데 필요한 패키지이다.

 

JDK는 '자바 개발 키트(Java Development Kit)'라는 뜻이다. 이는 자바를 사용하기 위해 필요한 모든 기능이 갖추어 있다. 때문에 자바 프로그램 실행에 사용되는 JRE도 포함하고 있으며 그밖에 컴파일러와 디버거, 문서 생성기 등도 포함되어 있다.

 

간단하게 말하자면 JRE는 자바 프로그램을 실행하는 데 사용되고, JDK는 자바 프로그램을 개발하는 데 사용된다고 생각하면 된다.

 

 

https://ko.wikipedia.org/wiki/%EC%9E%90%EB%B0%94_%EA%B0%80%EC%83%81_%EB%A8%B8%EC%8B%A0

 

자바 가상 머신 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 자바 가상 머신 사양의 자바 SE 7 에디션에 기반을 둔 자바 가상 머신(JVM) 아키텍처의 개요도. 자바 가상 머신(영어: Java Virtual Machine, JVM)은 자바 바이트코드를 실

ko.wikipedia.org

https://dzone.com/articles/jvm-run-time-data-areas

 

JVM Run-Time Data Areas - DZone Java

This is my note of reading JVM specification. I draw a diagram which helps me understand. 1. Data Areas for Each Individual Thread (not shared) Data Areas for...

dzone.com


조금 다른 이야기가 될 수도 있지만 '마인크래프트(MineCraft)'게임을 하려면 자바가 설치되어 있지 않을 경우(자바 에디션의 경우) 자바 설치를 요구하며 오라클 홈페이지로 이동되곤 했는데, 게임 자체가 자바로 만들어져서 JVM이 필요하기 때문에 그랬구나 깨달았다. 다른 사람이 생각하기에는 별 것 아닐 수도 있지만 이유도 모른 채 설치하던 것들이 왜 필요했던 건지 알게 되어 재미있었다.

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기