~/tech-blog/series/gc-challenge — zsh
지금 --명이 보고 있습니다오늘 --누적 --

GC 챌린지 15 posts

Java · JVM · 다 읽는 데 약 235분

오늘 제가 즐겨보는 유튜버 중 한 분인 쉬운코드님께서 JVM에 대한 상세한 강의를 진행하신다는 소식을 듣고, 이 기회에 함께 공부하면 개발자로서 큰 성장에 도움이 될 것 같아 정리를 시작했습니다.

쉬운코드님의 강의는 항상 개발 개념을 깊이 있게 다뤄주셔서, 거의 모든 강의를 수강했을 정도로 애청하고 있습니다. 다른 개발자분들에게도 꼭 추천드리고 싶어 이 글을 작성하게 되었습니다.

항상 선한 영향력으로 많은 도움을 주시는 쉬운코드님께 감사드리며, 이 연재는 강의 내용 중 일부만 담고 있으니 전체 내용은 직접 강의를 통해 들어보시는 것을 강력히 추천드립니다.

강의 재생목록: ⛵️ GC 챌린지 (2026)

03

GC의 역할과 튜닝 기준: Ergonomics와 JVM 기본 설정

JVM 프로세스 메모리 구조와 GC가 등장한 배경, GC의 역할과 Mark·Sweep·Compact를 살펴보고, GC 선택과 튜닝이 중요한 이유, Ergonomics가 고르는 기본값과 Pause-Time·Throughput·Footprint 목표, GC 튜닝 순서를 정리합니다.

22 min
04

JVM TLAB (Thread Local Allocation Buffer)

멀티스레드 환경에서 객체 할당 경합을 줄이는 TLAB이 pointer bump로 할당하는 방식, 공간이 부족할 때의 retire와 TLAB 밖 할당, 크기 결정 방식과 주요 플래그·로그 보는 법을 정리합니다.

12 min
07

GC 종류: Serial, Parallel, G1, ZGC와 CMS, Shenandoah

Oracle JDK 25에서 쓸 수 있는 Serial·Parallel·G1·ZGC의 특징과 기본으로 선택되는 기준, generational ZGC의 버전별 변화, CMS GC가 은퇴한 과정과 Shenandoah GC를 정리합니다.

12 min
08

Parallel GC: GC 스레드, PLAB와 Ergonomics

Parallel GC의 GC 스레드 수가 정해지는 방식과 Serial GC와 다른 힙 배치, PLAB, 그리고 Ergonomics가 pause time·throughput·footprint 목표에 맞춰 generation 크기를 늘리고 줄이는 방식을 정리합니다.

19 min
09

G1 GC 핵심 원리: region, mixed collection과 concurrent marking

Serial·Parallel GC의 한계에서 출발해 G1 GC가 heap을 region으로 나눠 쓰는 방식과 Young-Only·Space-Reclamation 단계, mark stack으로 old 객체를 marking하는 과정, mixed collection이 old region을 회수하는 방식을 정리합니다.

21 min
10

G1 GC concurrent marking: SATB, pre-write barrier와 TAMS

G1 GC가 애플리케이션과 동시에 old 객체를 marking할 때 생기는 두 가지 오판과, 이를 막는 pre-write barrier·SATB buffer·mark stack·TAMS 포인터의 동작을 단계별 예제로 정리합니다.

17 min
11

G1 GC의 remembered set과 collection set

G1 GC가 young GC와 mixed GC에서 remembered set으로 collection set 밖의 참조를 찾는 방식과 Rebuild Remembered Set, Merge Heap Roots를 정리합니다.

13 min
13

G1 GC 튜닝: young generation 크기, mixed GC, IHOP

G1 GC를 디폴트 옵션과 MaxGCPauseMillis·-Xmx로 튜닝하는 방법과 heap 크기 조정, young generation 크기 옵션, young GC·mixed GC가 pause time 목표를 넘을 때의 대응, back to back GC, IHOP, full GC와 Sys 시간이 클 때의 해결책을 정리합니다.

22 min
14

ZGC 핵심 요약과 튜닝 옵션

ZGC의 특징과 generational ZGC로 바뀐 과정을 짧게 짚고, -Xmx·SoftMaxHeapSize, uncommit과 AlwaysPreTouch, OS large page 설정, ConcGCThreads 같은 ZGC 튜닝 옵션을 정리합니다.

8 min
● main 231 posts UTF-8 LF © 2026 코징 RSS · GitHub