23년 ~ 24년 C# / Unity 통상 질문
객체지향에 대하여 설명 ( 필수 )
- 객체지향의 정의는 물론, 객체라는 단어의 뜻 자체를 먼저 본인만의 단어로 설명할 수 있어야 한다.
- SOLID원칙, 4대 특징에 대하여 설명하면 된다.
- 추상, 상속, 다형성, 캡슐화 등, 특성을 설명하실 때, 꼬리물기를 대비하여 캡슐화를 위한 프로퍼티 사용이나, 다형성을 활용하기 위한 오버라이딩 재정의, 인터페이스 등 활용 사례를 꼭 생각해두는 것이 좋다.
깊은 복사와 얕은 복사에 대하여 설명
- 본인만의 단어로 설명을 준비하되, 본인이 구현하였던 사례가 있다면 첨부하는 것이 좋다.
- ICloneable 을 활용했다면, 클론 및 얕은, 깊은 복사 구현 내역을 설명하시면 좋다.
- 활용한 기능은 없었지만 알고 있다는 것을 표현해도 좋다.
- 참조형과 값형에 대한 질문으로 이어질 수 있다.
박싱 언박싱에 대하여 설명 ( 필수 )
- '값을 참조 혹은 참조를 값을' 와 같은 간단한 답변 대신 object형에 대한 언급을 하면 좋다.
- 자주 일어나면 무슨 문제가 생기는지, 이를 피하기 위해 어떤 방법이 있을지 또한 추가하면 좋다.
- 스택과 힙 영역 질문, 혹은 제네릭으로 문제가 이어질 수 있다.
유니티 라이프사이클 ( 필수 )
- Unity Document에 있는 내용대로 답변을 하면 좋지만, 너무 디테일한 yield, 랜더링 부분을 빼고 흐름만 잘 외워 두면 좋다.
- FixedUpdate 혹은 LateUpdate를 어디에 쓰는지 질문하기도 한다.
- Awake와 Start를 유의미하게 나눠 쓴 경험이 있는지 질문하기도 한다.
정렬 ( 퀵소트, 머지소트, 버블소트 등 ) 의 BigO 값
- 정렬 알고리즘은 모두는 아니지만 3~4개 정도 구동 방식 및 최악 BigO, 평균 BigO 공간 복잡도, 시간복잡도를 알아 두는 것이 좋다.
- Divide and conquer 계열 정렬 방식 하나 정도는 알고 있는 것이 좋다.
- 파생 질문으로 델리게이트를 활용한 오름차순, 내림차순 문제가 이어질 수 있다.
길찾기 ( A-Star, 다익스트라 DFS, BFS등 ) 설명
- NavMesh가 포트폴리오에 있다면 A-Star를 질문할 수도 있다.
- A-Star 대답을 준비한다면 휴리스틱, 노드, 자료구조 요소를 넣어서 설명하면 좋다.
- 항상 최선의 길을 반환하는지 여부와 다익스트라의 차이를 설명에 넣어서 준비하는게 좋다.
- 시뮬레이션 계열 회사에서 오일러와 해밀턴 회로 문제가 출제된 적이 있다.
자료구조 및 각각의 장단점 ( 필수 )
- 최소 4 가지의 자료구조 ( Collection )을 언급하는 것이 좋다.
- 자주 사용되는 List 나 Dictionary의 경우, 본인의 활용 예시도 같이 추가하여 답변을 준비하면 좋다.
- 각 자료구조의 장단점 및 본인이 사용해보지 않더라도 어디에 사용되면 좋을지, 예시를 준비해두는 것도 좋은 방법이다.
- Non-Generic 자료구조와 Generic 자료구조의 차이가 출제된 적이 있다.
- Dictionary와 Hash 대답 후, 해시테이블 및 해시충돌, 해결방법이 출제된 적이 있다.
- Dictionary를 답변한다면 같이 준비하는 것이 좋다.
추상클래스와 인터페이스 차이 ( 필수 )
- 개념 설명은 물론 멤버변수 보유 가능여부, 인스턴화 가능여부, 다중 상속 가능 여부 등의 요소를 추가하면 좋다.
- 꼬리물기로 인터페이스에 프로퍼티를 넣을 수 있는지 질문이 있었다.
- 키워드 as 와 is 에 대하여 추가 질문이 나온 적이 있다.
제네릭
- 기본 개념 설명은 물론, 사용할 경우 얻는 타입 안정성과 같은 이점과, 사용 예시를 같이 추가하여 설명하면 좋다.
- 제네릭 제약조건 ( where, new() 등 )의 꼬리물기 질문이 나올 수 있다.
- Arraylist 와 List 의 차이에 대하여 설명하라고 한 적이 있다.
- 박싱과 언박싱을 묶어서 설명을 요구할 수도 있다.
코루틴은 동기인가 비동기인가 ( 필수 )
- 동기와 비동기가 무엇인지 질문으로 이어질 수 있다.
- Async / await에 대한 질문으로 이어질 수 있다.
- Photon 네트워크를 사용하였다면 어느 상황에서 비동기를 쓰면 괜찮은지 묶어서 설명하면 좋다.
- Unity Job 시스템에 대한 질문이 나올 수도 있다.
- 사용해보지 않았다면 개념만 알아 두시고 사용 해본적은 없다고 솔직하게 대답하는 것이 좋다.
- 코루틴과 invoke 차이 문제도 출제될 수 있다.
- LoadSceneAsync 를 포트폴리오에 담았다면 작동방식 및 왜 도움이 되는지 꼭 숙지하는 것이 좋다.
프로파일러 사용 여부
- 어느 목적으로 왜 사용했고, 어느 성과를 이루었는지 내용을 담아서 답변을 준비하면 좋다.
- 사용해본 적이 없더라도 질문이 그냥 넘어가지 않게끔 무엇인지, 어디에 쓰는지 설명하면 좋다.
- 프로파일러를 통해 얻은 정보를 바탕으로 어떤 최적화 액션을 했는지에 따라 추가 질문으로 유도해나갈 수 있다.
가비지콜렉터 ( 필수 )
- 역할, 작동방식은 기본이고, 힙 영역에서 특정 객체를 가비지로 판단하는 근거, 가비지를 줄이려 했던 노력도 추가하면 좋다.
- 점진적 가비지 컬렉션을 알고 있는지 질문이 나온 적이 있다.
오브젝트풀 ( 필수 )
- 기본 개념 및 왜, 어디에 사용하였는지 내용을 같이 준비하면 좋다.
- 잦은 할당 및 해제를 피하기 위해 사용했다고 하면, 왜 그 행동이 오버헤드를 유발하는지 원인까지 같이 준비하는 것이 좋다.
- 메모리 단편화 질문으로 이어질 수 있다. 외부 메모리 단편화, 내부 단편화까지 같이 준비하는 것이 좋다.
- 컴퓨터 공학 전공 혹은 CS전산지식을 요구하는 기업에선 페이징과 세그멘테이션에 대한 질문으로 이어진 적도 있다.
Partial class
- 같은 클래스를 두 작업자가 작업할 경우 충돌 방지, 협업을 위해 partial 을 사용한 이력이 있다면 이것도 좋은 예시가 될 수 있다.
- 한 클래스 내에 두 로직 ( View 와 Model 등 )이 혼재되어 있다면 가독성과 유지보수를 위해 partial 을 활용할 수 있다.
Sealed class
- 개념 및 본인이 활용한 예시가 있다면 답변을 같이 준비하면 좋다.
Call by Value, Call by Reference ( 필수 )
- 값 타입 참조타입 및 ref 키워드, 주소값과 같은 내용도 답변에 담을 수 있다.
- 키워드 ref 가 나올 때, in, out, 키워드 관련 추가 질문이 나올 수 있다.
재귀함수
- 본인 포트폴리오에 있다면 나올 수 있다. 스택오버플로우 위험성, 공간 복잡도 등의 질문으로 이어질 수 있다.
- 게임회사 엔진팀에서, 컴퓨터 공학, 타 언어 출신 지원자들에게 꼬리재귀에 대한 질문이 나온 적이 있다.
연산자 오버로딩, 형 변환, Explicit, LINQ 등 기타
- 본인이 만든 클래스에 연산자 오버로딩한 이력이 있다면 답변을 준비하는 것이 좋다.
- 익숙하지 않은 키워드가 있다면 준비하는 것이 좋다.
'📖TIL > 🎤Interview' 카테고리의 다른 글
| CS, C++ 등 기타 전산 지식 질문 (0) | 2026.04.08 |
|---|---|
| 면접 질문 (0) | 2026.04.08 |