면접 질문 모음 - 21~25

한재민·2025년 4월 30일

용어정리

목록 보기
28/33

스파르타 내일배움캠프 유니티 7기
면접 질문 모음

C# 문법


21. 인터페이스와 추상클래스의 차이는 무엇인가요?


22. 가비지 컬렉터란 무엇인가요?

가비지 컬렉터는 더이상 사용하지 않는 메모리를 자동으로 탐지하고 해제하여 메모리 누수를 방지하고, 개발자가 직접 메모리를 관리할 필요 없이 안정적으로 동작할 수 있도록 돕는 시스템이다.


23. 가비지 컬렉터의 장점과 단점에 대해 설명해주세요.

장점
개발자가 동적으로 할됭된 메모리 전체를 관리할 필요가 없어지고, 불필요한 객체를 자동으로 해제해서 메모리 누수를 줄인다.

단점
가비지 컬렉션이 수행되는 정확한 시점을 알 수 없다. GC가 실행될때 성능 저하가 발생할 가능성이 있다.

성능저하 이유
1. GC가 발생할때 Stop-The-World 현상 발생
2. 이 현상은 프로그램의 모든 스레드를 일시적으로 중단시킨다.
3. 이 중단은 오버헤드를 일으키고, 성능 저하의 원인이 될 수 있다.


24. 가비지 컬렉터의 세대 개념에 대해 설명해주세요.

힙 영역에 할당된 메모리들은 0, 1, 2세대 세가지로 구분된다.
가장 처음 생성된 객체는 0세대에 속하며, 가비지 컬렉션이 실핼될 때 살아남은 객체는 다음 세대로 넘어간다.

가비지 컬렉션은 0 세대부터 수행되며, 0 세대 수집은 0세대 객체만을 대상으로 메모리를 해제한다.
필요 시 1세대, 2세대 까지 확정하여 수집이 진행될 수 있다.

대부분의 객체가 수명이 짧다는 특성을 활용하여, 짧은 생존 주기의 객체만 자주 검사함으로써 가비지 컬렉션의 오버 헤드를 줄이는 전략이다.


25. 박싱, 언박싱을 사용할 때 주의해야 할 점은 무엇일까요?

박싱/언박싱은 힙 할당과 값 복사 과정을 추가로 발생시켜 자주 하게되면 성능이 저하될 가능성이 있다.

언박싱 시 타입이 맞지않으면 예외가 발생한다. 반드시 정확한 타입으로 언박싱 해야한다.

박싱된 객체가 많아지면 힙 사용량이 늘어 가비지 컬렉터가 자주 동작할 수 있다.

profile
유니티 클라이언트 취업준비중입니다..

0개의 댓글