백엔드 개발 · 심화
Java의 Garbage Collection 동작 원리와 G1 GC의 특징에 대해 설명해주세요.
힌트 · 힙 메모리 구조와 GC 알고리즘을 설명해보세요.
Mark and SweepYoung GenerationOld GenerationRegionSTW (Stop-The-World)
모범답안
Java의 Garbage Collection은 더 이상 사용하지 않는 객체를 자동으로 메모리에서 해제하여 메모리 누수를 방지하는 기능입니다. 힙 메모리는 크게 Young Generation과 Old Generation으로 나뉘는데, Young Generation은 Eden, Survivor 0, Survivor 1 영역으로 구성됩니다.
GC는 Mark and Sweep 알고리즘을 기반으로 동작합니다. Mark 단계에서는 사용 중인 객체를 식별하고, Sweep 단계에서는 사용하지 않는 객체를 제거합니다. Young Generation에서 발생하는 GC를 Minor GC, Old Generation에서 발생하는 GC를 Major GC라고 합니다. GC 실행 시에는 STW (Stop-The-World)가 발생하여 잠시 애플리케이션 실행이 멈추게 됩니다.
G1 GC는 JDK 7부터 도입된 GC 알고리즘으로, 힙 메모리를 Region이라는 작은 단위로 나누어 관리합니다. 이를 통해 STW 시간을 줄이고, 예측 가능한 GC 성능을 제공하는 것이 특징입니다. G1 GC는 각 Region의 가비지 양을 추적하여 회수할 Region을 우선순위에 따라 선택적으로 처리합니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 Java / Spring 면접 질문
- Spring Security의 인증(Authentication)과 인가(Authorization)의 차이점과 동작 방식을 설명해주세요.
- JWT(JSON Web Token)의 구조와 Spring에서의 활용 방법에 대해 설명해주세요.
- Spring에서 싱글톤 빈의 동시성 문제는 어떻게 해결하나요?
- Java의 synchronized 키워드와 ReentrantLock의 차이점은 무엇인가요?
- Spring WebFlux와 기존 Spring MVC의 차이점은 무엇인가요?
- Java의 volatile 키워드의 역할과 사용 시 주의사항에 대해 설명해주세요.