Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- elasticsearch
- 검색
- 인덱스
- 프로젝트관리
- 엘라스틱서치
- 웹프론트
- kibana
- spring aop
- 일감관리
- 레드마인
- 자바
- redmine
- 비전공개발자
- db
- 스프링
- java
- It
- 백엔드
- Database
- frontend
- 데이터베이스
- PM
- Si
- PreparedStatement
- 개발자
- spring
- 오라클
- 이슈관리
- backend
- AOP
Archives
- Today
- Total
리타의 저장소
JAVA | JVM이란 무엇인가? 본문

JVM (Java Virtual Machine)이란?
Java Virtual Machine.
자바 버츄얼 머신. 이름에서도 느낄 수 있듯, JVM은 자바 바이트코드를 운영체제에 맞게 해석하고 실행하는 가상 머신이다.
JAVA는 OS에 종속되지 않다는 큰 특징을 갖고 있다. OS에 종속되지 않고 실행되기 위해 OS상에서 JAVA를 실행시키는 머신이 바로 JVM 이라고 생각하면 된다.
JAVA로 코드를 짤때를 생각해보자. .java파일들이 생긴다. 이렇게 짜여진 .java 파일들은 컴퓨터가 곧바로 인식하기 어렵다. 그래서 서 컴퓨터가 인식할 수 있도록 '컴파일' 하는 과정을 거쳐줘야한다. 근데 앞서 말한 것 처럼 JAVA의 경우 OS에 종속되지 않는다. JVM을 한번 거치고 컴퓨터에 도달하기 때문에, JAVA는 JVM이 인식할 수 있는 'byte code (== .class)'로 변환된다. 이렇게 변환된 byte code를 JVM이 기계어 코드로 번역 해준다.
✅ 특징
- .java 파일 → javac 컴파일 (javac → java 언어 컴파일러) → .class (==바이트코드) → java 명령으로 JVM에서 실행 → JVM이 기계어로 번역 → CPU 도달
- javac는 .java 파일을 컴파일해서 .class 파일을 만들어주는 도구 (Java compiler가 .java 파일을 .class(bytecode)로 변환)
- 운영체제에 종속되지 않음
- Write Once, Run Anywhere 철학의 핵심 기반
✅ 주요 역할
- 바이트코드 실행 (해석 + JIT 컴파일)
- 메모리 관리 (GC 포함)
- 보안, 스레드, 네이티브 인터페이스 관리 등
'Dev > Backend' 카테고리의 다른 글
| Spring AOP | Spring AOP 주요 개념 요약 (0) | 2025.10.11 |
|---|---|
| Spring AOP | 서비스 호출 전에 로깅, 꼭 AOP에서 해야만 하나? (0) | 2025.10.11 |
| JAVA | JPA와 Mybatis에서의 PreparedStatement 동작방식 (0) | 2025.10.11 |
| JAVA | DB Call 최소화 (Feat. PreparedStatement) (0) | 2025.10.11 |
| JAVA | Spring에서의 PreparedStatement (0) | 2025.10.11 |