---
id: P-REINFORCE-AUTO-4E47A6
category: "10_Wiki/💡 Topics/Programming & Language"
confidence_score: 0.90
tags: [auto-reinforced]
last_reinforced: 2026-04-20
github_commit: "[P-Reinforce] Continuous Worker - 마이너 가비지 컬렉션(Minor GC)"
---

# [[마이너 가비지 컬렉션(Minor GC)|마이너 가비지 컬렉션(Minor GC)]]

## 📌 한 줄 통찰 (The Karpathy Summary)
> 지식 요약 정보 추출 중...

## 📖 구조화된 지식 (Synthesized Content)
**발생 조건 및 메모리 공간**
마이너 가비지 컬렉션은 V8 엔진의 '새로운 공간(New Space)' 혹은 '젊은 세대(Young Generation)'에 객체를 할당할 때, 할당 포인터가 공간의 끝에 도달하여 여유 메모리가 고갈되면 트리거됩니다 [1, 2, 7]. 이 공간은 빠르게 가비지 컬렉션이 이루어지도록 보통 1MB에서 64MB 사이의 비교적 작은 크기로 유지됩니다 [1, 2, 8]. 

**Scavenge 알고리즘 동작 방식**
마이너 GC는 '스캐빈저(Scavenger)' 알고리즘을 통해 수행되며, V8은 새로운 공간을 정확히 반으로 나누어 'From-Space'와 'To-Space'라는 두 개의 세미 스페이스(Semi-space)로 운영합니다 [2, 5]. 
- **식별(Marking):** GC는 루트 객체(스택, 전역 변수 등) 및 구세대에서 신세대를 참조하는 포인터들(쓰기 장벽(Write barrier)을 통해 기억 집합(Remembered set)으로 추적됨)에서 출발하여 살아있는(Live) 객체를 식별합니다 [6, 9, 10].
- **대피 및 복사(Evacuation):** 살아남은 객체들은 From-Space에서 To-Space의 연속적인 메모리 청크로 복사되며, 이 과정을 통해 메모리 단편화(Fragmentation)가 제거됩니다 [5, 6, 11].
- **승격(Promotion):** 두 번의 마이너 GC 사이클을 거치면서도 살아남은 객체는 수명이 긴 객체로 간주되어 구세대(Old Space)로 승격됩니다 [1, 4, 6].
- **스왑(Swap):** 복사가 완료되면 From-Space에 남은 내용은 모두 가비지로 간주되어 완전히 비워지고, 두 스페이스의 역할이 서로 바뀝니다 [6, 9, 12]. 이후 새로운 객체 할당은 비워진 From-Space에서 재개됩니다 [9].

**병렬 처리 및 최적화**
과거의 마이너 GC는 체니 알고리즘(Cheney's algorithm)에 기반하여 동기식(Synchronous)으로 동작하며 메인 스레드를 멈추게(Stop-the-world) 했습니다 [7, 13]. 하지만 최신 V8 엔진(예: Orinoco 프로젝트)은 병렬 스캐빈저(Parallel Scavenger)를 도입하였습니다 [13, 14]. 이 방식은 메인 스레드와 여러 헬퍼 스레드에 걸쳐 작업을 분산시키며, 각 스레드가 객체를 동시에 식별, 복사, 대피시키고 포인터를 업데이트합니다 [10, 14, 15]. 이러한 병렬화를 통해 가비지 컬렉터가 메인 스레드에서 차지하는 시간을 20%~50%까지 크게 단축하여 애플리케이션의 일시 정지(Pause) 현상을 줄였습니다 [16, 17].

## ⚠️ 모순 및 업데이트 (Contradictions & RL Update)
- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요.
- **정책 변화:** Programming & Language 분야의 자동 자산화 수행.

## 🔗 지식 연결 (Graph)
- **Related Topics:** [[새로운 공간(New Space)|새로운 공간(New Space)]], 구세대(Old Space), [[세대별 가설(Generational Hypothesis)|세대별 가설(Generational Hypothesis)]], [[스캐빈저(Scavenger)|스캐빈저(Scavenger)]], [[쓰기 장벽(Write Barrier)|쓰기 장벽(Write Barrier)]]
- **Projects/Contexts:** [[V8 JavaScript Engine|V8 JavaScript Engine]], Orinoco Garbage Collector
- **Contradictions/Notes:** 초기 V8 버전에서는 마이너 GC를 위해 단일 스레드로 동작하는 동기식 체니 알고리즘(Cheney's algorithm)을 사용했지만, 최신 버전에서는 멀티코어 환경에 맞춰 작업 훔치기(work stealing) 기법을 활용하는 병렬 스캐빈저(Parallel Scavenger)로 발전했습니다 [7, 13]. 

---
*Last updated: 2026-04-19*
- Raw Source: 00_Raw/2026-04-20/마이너 가비지 컬렉션(Minor GC).md
---
