본문 바로가기
won2dev-log
HomeArchiveTagsCategoriesAboutProjects
HomeArchiveTagsCategoriesAboutProjects
won2dev-logwon2dev-logwon2dev-log

비전공 개발자의 로그 | won2dev-log

Navigation
  • Home
  • Archive
  • About
  • Projects
Categories
  • Docs
  • TIL
  • Automation
  • Git · GitHub
  • Project
Tags
  • TIL
  • Java
  • Spring
  • Backend
  • n8n
더보기
About

기록을 거름 삼아 공유는 성장을 만든다.

LicensePrivacy
© won2dev 2026. All rights reserved.
Home›Docs›TIL - Java 기초 : JDK와 JVM
Docs

TIL - Java 기초 : JDK와 JVM

won2dev·2025년 03월 01일
#Java#TIL
TIL - Java 기초 : JDK와 JVM
⚠️ 이 글은 저작권 이슈로 인해 일부 내용이 수정 또는 제거되었습니다.

💬 배운 기술 / 지식

  • JDK (Java Development Kit) 구성 요소
  • JVM (Java Virtual Machine)의 역할과 동작 원리
  • 바이트코드(Bytecode)와 플랫폼 독립성
  • JRE (Java Runtime Environment)와의 차이

☕ JDK (Java Development Kit)

  • 구성 요소
    • javac 컴파일러: Java 소스 코드를 바이트코드로 변환
    • java 실행기: JVM을 실행하는 명령어
    • 다양한 라이브러리와 도구 포함
  • 역할
    • Java 애플리케이션 개발에 필요한 모든 도구 제공
  • 개발 환경 설치 시 보통 JDK를 설치함

🖥️ JVM (Java Virtual Machine)

  • 역할
    • 바이트코드를 실제 실행 가능한 머신 코드로 변환하고 실행
    • Java 프로그램이 어느 운영체제에서나 실행되도록 플랫폼 독립성 제공
  • 동작 과정
    1. Java 소스코드 (.java) → JDK의 javac 컴파일러 → 바이트코드 (.class) 생성
    2. JVM이 바이트코드를 로드하여 실행
  • 메모리 구조
    • 메서드 영역, 힙, 스택 등으로 구성되어 메모리 관리 수행

📦 JRE (Java Runtime Environment)와의 차이

  • JRE는 JVM과 기본 라이브러리만 포함하여 Java 프로그램 실행만 가능
  • JDK는 JRE 포함 + 개발 도구(컴파일러, 디버거 등) 포함
  • 개발 시 JDK 필요, 실행만 할 때는 JRE로 충분

⚙️ 바이트코드 (Bytecode)와 플랫폼 독립성

  • Java 컴파일러가 생성하는 중간 코드
  • JVM이 설치된 모든 플랫폼에서 동일하게 실행 가능
  • "Write Once, Run Anywhere" (WORA) 실현의 핵심

💡 느낀 점 / 참고 사항

  • JVM 덕분에 Java가 플랫폼 독립적이라는 점이 매우 강력함
  • JDK 설치는 Java 개발 환경 구축의 시작점
  • JRE와 JDK의 차이를 명확히 이해하면 환경 설정이 쉬워짐
  • JVM 내부 메모리 구조와 실행 과정에 대해 더 깊이 공부할 필요성 느낌
공유하기
이전 글TIL - Java 기초: 이름 규칙과 패키지, 클래스 완전 정복

목차

  • 💬 배운 기술 / 지식
  • ☕ JDK (Java Development Kit)
  • 🖥️ JVM (Java Virtual Machine)
  • 📦 JRE (Java Runtime Environment)와의 차이
  • ⚙️ 바이트코드 (Bytecode)와 플랫폼 독립성
  • 💡 느낀 점 / 참고 사항

카테고리

Docs

태그

#Java#TIL

최근 글

Git 요약 (1) - Rebase, Stash, Squash MergeTIL - MSA 핵심 요소 정리TIL - (4) Spring 어노테이션 정리: Mockito를 활용한 단위 테스트TIL - (3) Spring 어노테이션 정리: Lombok Getter, Setter와 생성자TIL - (2) Spring MVC와 WebFlux의 차이: 블로킹과 논블로킹