Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |
Tags
- 멀티쓰레드
- 공부
- 객체지향
- map
- std::unordered_map
- 인프런
- 트리
- MonoBehaviour
- 알고리즘
- 기술면접
- 자료구조
- rookiss
- static_cast
- list
- 스택영역
- 리스트
- thread
- c#
- 스택
- 반복문
- 배열
- 큐
- 차이점
- 힙영역
- 벡터
- std::map
- vector
- 프래그멘테이션
- Queue
- 해쉬맵
Archives
- Today
- Total
호빵의 IT 개발소
C# 가비지컬렉터란? 본문
C# 가비지 컬렉터 (Garbage Collector, GC)
|
GC의 핵심 개념: 세대(Generation)
세대 설명
| Gen 0 | 가장 최근에 생성된 객체 (수명이 짧은 객체) |
| Gen 1 | Gen 0에서 살아남은 객체 |
| Gen 2 | 오래 살아남은 객체 (대부분 수명이 긴 객체들) |
- GC는 Gen 0을 자주 수집하고, Gen 2는 자주 안 건드림 → 성능 최적화
- 대부분의 객체는 Gen 0에서 생성되고 바로 수거됨 (단명 객체)
면접 스타일 답변 예시:
C#의 가비지 컬렉터는 사용하지 않는 객체를 자동으로 감지하고 메모리를 해제해주는 시스템입니다.
.NET 런타임은 세대 기반 GC를 사용해서 최근에 생성된 객체는 자주 검사하고
오래된 객체는 덜 자주 검사하는 방식으로 성능을 최적화합니다.
개발자가 명시적으로 메모리를 해제하지 않아도 GC가 주기적으로 작동하며
더 이상 참조되지 않는 객체를 찾아 자동으로 수거합니다.
다만 수거 시점은 비결정적이기 때문에 Finalize, Dispose 패턴, using 구문을 함께 활용해 리소스를 명확히 해제하는 게 중요합니다.
'CS(전공지식) > 기술면접 준비' 카테고리의 다른 글
| 유니티 최적화 방법은 무엇이 있는가? (0) | 2025.04.15 |
|---|---|
| 유니티 라이프 사이클이란? (0) | 2025.04.15 |
| 가상 함수 테이블이란? (0) | 2025.04.15 |
| 가상 함수(Virtual)란? (1) | 2025.04.14 |
| 이터레이터(=반복자, iterator)란? (0) | 2025.04.14 |
Comments