이번 Step에서 잡아야 할 것

  • CPU: 연산 담당 (빠르지만 기억 못 함)
  • RAM: 실행 중 필요한 코드/데이터 임시 저장 (빠르지만 휘발성)
  • SSD/HDD: 파일 보관소 (느리지만 비휘발성)
  • RAM 영역: Code / Data / Heap / Stack이 역할을 나눠 가짐

CPU

  • 역할: 명령어를 해석하고 연산한 뒤, 결과를 다시 메모리에 기록
  • 강점: 굉장히 빠른 계산
  • 한계: 데이터를 오래 들고 있지 못함 → 옆에 RAM이 필요
  • 쿨러: CPU 과열 방지, 고속 동작 유지

RAM (메모리)

  • 역할: CPU가 바로 꺼내 쓸 수 있게 실행 중인 코드/데이터를 올려두는 작업대
  • 비유: 계산기 옆 메모지(저장소) — CPU가 수시로 읽고 씀
  • 특성: 휘발성 → 전원이 꺼지면 데이터 소실
  • 용량: 32GB, 64GB 등

CPU + RAM만 잘 동작하면 게임이라고 해도 과언이 아님.

  • 이 말은 게임의 “현재 상태(HP/좌표/몬스터 상태 등)”가 결국 RAM의 데이터로 관리된다는 의미
  • 실행 파일은 보통 SSD에 있지만, 실행 순간 RAM으로 로드되어 CPU가 처리
[CPU(연산)]  <───(끊임없는 협업)───>  [RAM(데이터/코드 저장)]  <──(실행 시 로드)──  [SSD/HDD(반영구 저장)]

SSD / 하드디스크

  • 역할: 반영구적 저장 (전원 꺼져도 유지)
  • 용량: 1TB, 2TB 등 대용량
  • 특징: RAM보다 접근이 느림 (CPU에서 더 멀리 있음)
  • 실행 흐름 예: 롤 설치(SSD) → 실행(필요한 것들을 RAM으로 로드) → CPU가 RAM을 읽고/쓰며 동작

메모리(RAM) 4가지 영역

같은 RAM 안에서도, “무엇을 어디에 둘지”를 역할별로 나눠 관리

높은 주소 (HIGH ADDRESS)
┌─────────────────────────┐
│ Code (Text) : 실행 명령 │
├─────────────────────────┤
│ Data       : 전역/정적  │
├─────────────────────────┤
│ Heap       : 동적 할당  │
│                         │
│        (여유 공간)      │  ← 실행 중 Heap/Stack이 커지며 공유
│                         │
│ Stack      : 함수 호출  │
└─────────────────────────┘
낮은 주소 (LOW ADDRESS)
영역용도(핵심)예시
Code (Text)실행할 명령어(기계어)가 올라가는 곳함수 코드
Data프로그램이 시작부터 끝까지 유지되는 데이터전역/정적 변수
Heap실행 중 필요할 때 요청해서 쓰는 공간동적 할당(new/malloc)
Stack함수 호출 시 자동으로 쌓였다가 돌아오면 정리지역 변수, 매개변수

0과 1

  • 컴퓨터는 전기 신호 유무로 모든 것을 판단 → 0과 1
  • 롤 설치 파일(SSD) 안도 0과 1로 저장된 데이터
  • 일부는 실행 코드, 일부는 캐릭터 아트, 사운드 같은 리소스

체크 질문 (스스로 답해보기)

  • 게임을 “실행”할 때, SSD의 내용은 왜 RAM으로 올라갈까?
  • CPU가 빠른데도, 왜 RAM이 없으면 프로그램이 제대로 동작하기 어려울까?
  • Heap과 Stack은 “언제/누가” 주로 관리하는 영역일까?

profile
李家네_공부방

0개의 댓글