☕Java

🖥️ 자바에서 명령어가 메모리를 활용하여 구동되는 원리 (완전 쉬운 설명!)

itstory(Booho) 2024. 12. 10. 20:35
728x90

 

자바 프로그램이 실행될 때, CPU와 메모리가 함께 협력해서 동작해요.
이를 쉽게 설명하기 위해 요리하는 과정과 비교해볼게요! 🍳👨‍🍳

 

1️⃣ 자바 프로그램이 실행될 때 필요한 것들

자바 프로그램을 실행하려면, 3가지 중요한 요소가 필요해요.

  1. 코드 (레시피) 📜 → 우리가 작성한 자바 프로그램
  2. CPU (요리사) 👩‍🍳 → 프로그램을 실행하는 역할
  3. 메모리 (주방) 🍽️ → CPU가 일할 수 있도록 재료를 준비하는 공간

💡 CPU(요리사)는 메모리(주방)에서 데이터를 꺼내서 요리(명령어 실행)해요!


2️⃣ 자바 프로그램이 실행되는 과정 🍛

우리가 자바 프로그램을 실행하면, 다음과 같은 과정이 진행돼요.

① 코드가 메모리에 올라감 📜 → 🍽️

자바 파일(.java)을 실행하면, 프로그램의 명령어(코드)가 **메모리(주방)**로 올라가요.
즉, "레시피(코드)를 주방에 펼쳐놓는 것"과 같아요.

② CPU가 명령어를 가져와 실행 👩‍🍳 → 🔥

CPU(요리사)는 메모리에서 하나씩 명령어를 가져와 실행해요.
예를 들어, System.out.println("Hello!"); 같은 코드가 있다면:

  1. CPU가 메모리에서 "Hello!"를 가져옴
  2. 화면에 출력함

③ 변수와 데이터 저장 🍆🥩🍚

자바 프로그램에서 변수를 만들면, 그것도 메모리에 저장돼요!
예를 들어:

java
복사편집
int a = 10; // 변수 a에 10 저장

👉 메모리에 "a = 10"을 저장하고, 필요할 때 CPU가 꺼내서 사용해요!

④ 불필요한 데이터 정리 (Garbage Collector) 🗑️

필요 없는 데이터는 Garbage Collector가 자동으로 치워줘요.
마치 요리를 하면서 쓰레기를 버리는 것과 같아요!


3️⃣ 자바 프로그램이 사용하는 메모리 공간 (초보자용)

메모리는 크게 4가지 공간으로 나뉘어요.
이해하기 쉽게, 주방의 역할에 비유할게요! 🍳

메모리 구역 설명 비유(주방)
코드 영역 실행할 코드가 저장됨 📜 레시피(요리 방법)
힙(Heap) 객체(데이터)가 저장됨 🥕냉장고 (요리 재료 보관소)
스택(Stack) 실행 중인 메서드와 변수 저장 🔪 조리대 (요리 도구 & 재료 준비)
PC 레지스터 CPU가 현재 실행 중인 명령어 저장 👀 요리사의 손 (현재 실행 중인 작업)

4️⃣ 그림으로 보기 (자바 프로그램 실행 과정)

이해를 돕기 위해 그림을 만들어 볼게요! 🎨✏️
(곧 생성해서 보여드릴게요!)

 
 

위 그림을 보면, 자바 프로그램이 실행되는 과정을 요리하는 과정과 비교해서 쉽게 이해할 수 있어요! 🍽️👩‍🍳

  • CPU(요리사) → 코드를 실행하는 역할
  • 코드(레시피) → 프로그램이 실행될 명령어
  • Heap(냉장고) → 프로그램이 사용하는 데이터 저장
  • Stack(조리대) → 실행 중인 변수 및 메서드 저장
  • Garbage Collector(쓰레기통) → 필요 없는 데이터를 자동으로 정리

 

 

 

 

 

 

728x90