본문 바로가기

생존 현황 보고 및 발전 관찰 일지

[취업준비] 행복한 다람쥐단 면접

들어가며

 생에 첫 면접이었다. 경험삼아 떨어지리라 미리 생각하고 갔던 곳이었지만 진짜 떨어졌다. 주변 사람들은 절대로 붙을 것아라 말했지만 최종에서 무언가 걸림돌이 많이 된 것 같다. 이렇게 복기 하는 것으로 되돌아보니 모른다고 답한 질문이 되게 많았다. 떨어질만 했다고 생각한다. 준비해온 만큼 무언가를 보여주지 못 한것 같아서 아쉽기도 하다. 모르는 것들 뿐이라서 더 아쉬웠다. 복기와 함께 최적의 답변을 찾아갈 것이다.

 

Q1. 최대한 준비해 온 만큼 자기 소개를 해달라.

A2. (대충 준비한 자기소개 최대로 어필했다는 뜻)

 

Q2. 네트워크에 대해 아는 대로 이야기 해보라.

A2. 포톤 엔진을 사용했으나 네트워크에 대해서는 잘 모른다. 하지만 RPC의 개념과 활용은 가능하다.

 

Q3. 이하로는 알고리즘에 관한 질문이다. DFS와 BFS에 대해 설명하라.

A3. DFS는 깊이 우선 탐색이며, BFS는 너비 우선 탐색이다. BFS  최단 경로 등에 사용되기에 적합하다. DFS는 스택 또는 재귀를 활용하여 구현할 수 있으며 BFS는 큐를 활용하여 구현할 수 있다고 알고 있다.

 

Q4. 그래프 탐색 방법에 대해 아는 대로 설명하라.

A4.  솔직히 말씀 드리자면 해당 알고리즘에 대해서는 알고 있는 것이 많이 없다. 포트폴리오에 A* 알고리즘을 적용하려다가 실패하여 내비메쉬를 사용하게 되었다.

 

Q5. OS에 대해서 관심이 많다고 했는데 Linux 명령어를 아는대로 얘기해 보라.

A5. 리눅스를 크게 사용한 적이 없어서 잘은 모르지만, pwd 정도를 알고 있다.

 

Q6. 딕셔너리에 대해서 설명하라.

A6. 딕셔너리는 키-밸류 값으로 데이터에 접근할 수 있는 그런 자료구조이다. 데이터 테이블을 관리하거나 하는 등에 주로 사용한다.

 

A7. 델리게이트에 대해 설명하라.

A7. 함수를 등록하여 사용하는 객체라고 표현하고 싶다.

 

Q8. 게임 디자인 패턴에 대해서 아는 대로 설명하라.

A8. 우선 본인의 포트폴리오에서 사용한 디자인 패턴은 싱글톤과 오브젝트 풀 패턴, 이렇게 2가지를 사용했다. 싱글톤 같은 경우에는 단일한 객체를 생성하여 자주 접근해야 할 경우에 사용하는 디자인 패턴이라고 알고 있다. 객체를 계속해서 할당 및 해제하지 않아 메모리 경제성이 올라간다는 장점이 있다. 하지만 객체들 간의 결합도가 높아질 수 있다는 단점, 나아가 테스트가 어려워지거나 불가능해질 수도 있다고 생각한다. 멀티 쓰레드 환경에서는 싱글톤 객체가 2개 이상 생성될 수 있다는 것이 단점이라고 생각한다. 오브젝트 풀링의 경우 미리 객체들을 많이 생성해 두고 재활용하는 방식으로 사용하는 패턴이라고 정의하고 싶다. 재활용하는 이유에 대해서는 메모리 단편화 문제를 들 수 있다. 객체를 생성 및 해재를 반복하면 메모리에서 가비지 컬렉션이 많이 일어날 뿐더러 메모리에 구멍(홀)이 나기 때문에 그것을 방지하고자, 또 객체를 메모리의 오버헤드에 상관없이 객체를 사용하기 위해서 오브젝트 풀링을 사용한다고 생각한다.

 

Q9. 유니티 에셋에서 본인이 사용한 것들 중 가장 어려웠던 에셋 하나만 설명하라.

A9. 솔직히 말씀 드리자면 에셋을 많이 사용해 본 적이 없습니다. 구현 등 본인이 어디까지 할 수 있을까, 좀 더 실력을 높이고자 하는 마음에 다른 외부 함수 등의 도움을 받지 않고 스스로 해결해나가고자 했기 때문에 주로 에셋은 사용하지는 않았던 편이다.

 

Q10. 수학에 관련하여 질문을 하겠다. 세 점의 좌표가 주어진 경우, 점들의 각도를 구하기 위해서는 어떻게 할 것인가?

A10.  ArcTan 을 이용할 것이다. (조금만 더 설명해달라.) 잘은 모르겠다.

 

Q11. 제2 COS 법칙에 대해서 설명하라.

A11. 잘 모르겠다.

 

Q12. 미적분은 혹시 아는가.

A12. 안다. 고등학교 대학교 모두 미적분을 했었다.