주절주절

면접에 대한 회고록

술단고 2025. 4. 9. 16:49

 

오늘 거의 처음으로 게임 개발 클라이언트 직무 면접을 보았다.

당연히 예상 질문들에 대해 준비를 잘 해갔지만,

면접 경험이 많이 없는 나에게 몇 가지 시련이 찾아왔다.

 

면접장을 나오자마자 이렇게 대답할걸, 하고 후회하는 사항들을 몇가지 적어보려고 한다.

추후 미래에 또 다른 면접을 보는 나에게 전달하는 메시지임과 동시에 회고록이다.

 


 

1. 버텍스(Vertex) 쉐이더와 프레그먼트(Fragment) 쉐이더

렌더링 파이프라인을 공부하면 거의 처음에 배우는 개념 중 하나로,

쉐이딩을 하는 과정에서 나오는 단계 중 유명한 두 가지이다.

 

나는 버텍스 쉐이더에 대해 아주 조금 주워들었던 것이 있었기에,

정점이라는 키워드를 꺼내긴 했지만, 프레그먼트 쉐이더에 대해선 거의 아무것도 몰라 말을 많이 절었다.

가장 크리티컬하게 실수를 한 질문 중 하나라고 생각한다.

 

버텍스 쉐이더는 정점을 화면에 어떻게 배치할 것인지 계산하는 단계이다. 즉, 형태를 만드는 스케치 단계이다.

프레그먼트 쉐이더는 정점으로 만든 폴리곤 픽셀 하나하나에 색칠을 하고 텍스처를 입히는 단계이다. 즉, 채색 단계이다.

 

우선 버텍스 쉐이더는 정점과 간선을 활용한 쉐이딩 작업입니다.
그리고 프레그먼트 쉐이더는... 음, 잘 모르겠습니다.

 

내 답변은 위와 같았다. 프레그먼트 쉐이더를 모르는 것은 아무래도 그래픽 지식이 부족했기에 내 공부 부족이었고,

만약 프레그먼트 쉐이더를 몰랐다 하더라도 아래와 같이 답하는 것이 정석이었을 것이다.

 

버텍스 쉐이더는 정점을 화면에 배치하는 쉐이딩 작업입니다.
프레그먼트 쉐이더는 버텍스 쉐이더와 다른 쉐이딩 작업인것은 인지하고 있으나, 아직 그래픽 렌더링에 대해 지식이 부족해 잘 이해하지 못하고 있습니다.

 

말을 절기보다는 내가 아는 부분은 확실하게 말하되, 모르는 부분은 솔직히 모른다고 인정을 깔끔하게 하는 편이 더욱 좋았을 것이다.

 

2. 플레이어와 몬스터가 있을 때, 플레이어가 몬스터를 바라보는 방향을 어떻게 알 것인가

플레이어와 몬스터의 트랜스폼 포지션을 알고있을 때,

플레이어가 몬스터를 바라보기 위한 방향을 어떻게 얻을 것인가? 라는 질문이었다.

 

면접장에서 나오자마자 이 질문의 답이 바로 떠올랐고, 정말 다시 들어가 대답하고 싶은 마음이 굴뚝같았다.

우선 답은 아래와 같다.

 

목표 지점 벡터에서 현재 위치 벡터를 빼면, 현재 위치에서 목표 위치까지의 방향 벡터를 구할 수 있습니다.
만약 이동 등의 로직을 원한다면 해당 방향 벡터를 노멀라이즈해 단위 벡터를 구한 후 로직을 추가로 작성할 수 있습니다.

 

 

하지만 나는 많은 질문들을 처리하는 긴장되는 상황 속에서,

플레이어 앞, 옆, 뒤에 몬스터가 있을 때 그걸 어떻게 알아내느냐고 잘못 이해해버렸다.

내 대답은 아래와 같았다.

 

플레이어로부터 출발하는 레이캐스팅을 하여, 충돌한 오브젝트를 감지합니다.
만약 몬스터를 찾고 싶었다면 몬스터에게 레이어마스크를 씌워, 충돌한 오브젝트를 필터링해낼 것 같습니다.

 

레이캐스팅에 대해 알고 있다는 것을 말한 것은 좋았으나,

무엇이 되었든 질문에 대한 명확한 답이 아니었고, 이는 동문서답이다.

동문서답을 할 바엔 그냥 모른다고 하는 편이 훨씬 낫다. 모른다는건 0점이고, 동문서답은 감점이다.

 

복잡한 질문이 들어왔을 때, 내가 이해한 것이 맞는지 반드시 면접관에게 한 번 더 질문하는 버릇을 들여야겠다.

내가 이해한 것이 맞는지 먼저 소통해보고, 다르다면 다른것에 대한 생각을 한 번 더 하면 된다.

 

3. 유니티에선 해시 충돌이 일어났을 때 어떻게 해결하는가

분명 공부했었는데 기억이 나질 않았었다.

그래도 이건 막 머뭇거리며 이상한 얘기를 하다가 모르겠다고 흐트리진 않은 질문이었다.

깔끔하게 모른다고 하였으나, 나오자마자 후회했던 부분이었다.

 

유니티와 C#에서는 해시 충돌이 일어난 경우, 해시 체이닝으로 해결한다.

즉, 같은 해시값을 가진 키들은, 연결리스트로 값을 저장한다.

 

따라서 Key를 해싱했을 때 나오는 연결리스트로 들어가서, 해당 연결리스트 안에서 검색을 시작한다.

그만큼 성능 저하가 일어나겠지만 유연하게 해시 충돌을 방지하는 방식이다.

 

 


 

 

위 직무면접들의 사항과는 별개로, 내 몇 가지 안좋은 습관을 알아냈다.

 

1. 긴장을 하게 되면 말을 머뭇거리고 빨리 한다. 그래서 절게 된다.

2. 내가 잘 모르는 것이 있을 때 어떻게든 대답하려고 하다가 실패한다. 이럴 때는 ~ 까지는 알고있지만, 자세하게는 잘 모르겠습니다. 하고 솔직하게 얘기한다.

3. 동문서답을 하게 된다. 내가 이해한게 조금이라도 확실하지 않으면, 소통과 질문을 하여 이해한것이 맞는지 확인하자.

 

정말 좋게 보았던 회사였지만 내 면접 경험이 부족했던 만큼 개선할 점 역시 많이 찾을 수 있는 자리였다.

추후 면접을 보게 되는 경험이 또 오게 된다면 그때는 이번 경험을 발판삼아 더 좋은 면접을 보리라 다짐한다.