내가 당한 Job Interview Questions

지금까지 받은 인터뷰 질문들 중 기억나는 것들과 사견들. (사람 일은 모르는 거니까 앞으로 업데이트 될지도…)

비 기술관련 질문들

이 회사(또는 position)에 지원하는 이유는?
: 이걸 안 묻는 인터뷰도 있을까 싶을 정도로 classic 한 질문이다. 설령 너와 나 모두가 상황을 뻔히 아는 예외적인 경우일 지라도. 경험에 따르면 나는 이 질문에 대한 답으로 깊은 인상을 주는 재능이 없다. 고작해야 ‘어떤 어떤 이유 땜에 이 일이 꼭 하고 싶어요’ 정도 밖에 답을 못하기에…

지금까지 살아오면서 가장 중요한 성취가 있다면 무엇인가?
: 이 질문에 대한 기술적인 답변을 시도한 적이 있었는데, 이 질문을 한 사람이 같은 분야를 종사해서 매우 공감이 깊은 상황이 아니라면 원하는 만큼의 결과를 얻기는 힘든 편이다. 더구나 비 기술자가 이런 질문을 했다면 기술적 답변으로 10덕하다는 인상을 주는것 보다 실제 경험에 기반한 답변이 오히려 좋은 인상을 줄 수 있다. 의외로 꼰대 인증인 ‘내가 군대에 있을 때 말야…’ 같은 것도 국방의무가 없는 나라에서 라면 도움이 될 수 있다.

5년 뒤에 넌 뭘 하고 있을것 같니?
: 이 질문을 ‘뽑아주면 우리 회사에 오래 있을 거지?’로 받아 들이는 사람들도 있던데, 그것 보다 중단기 계획을 묻는 질문으로 생각하는게 더 합당하지 않을까 싶다. 포지션에 합당한 중장기 성장계획을 생각해 보자.

네가 생각하는 스스로의 강점(약점)은?
: 아.. 이건 뭐… (할많하않)

이전에 했던 일 중에서 가장 기억에 남는 어려운 일은 무엇이고 해결 했다면 어떻게 했는가?
: 기술자와 비기술자가 모두 가능한 질문인 만큼 답변의 범위가 넓다. 경험상, 내 심각한 인격적 결함을 가릴 수 있는(?) 기술적 해결 경험을 너무 깊지 않게 답변하는 것을 선호한다.

우리 부서에 대해서 혹시 질문 있어?
: 어느 인터넷 글에선가 읽었던 것 같은데, 인터뷰 말미에 자주 등장하는 이 질문에 “아뇨, 없어요. 빨리 끝내주세요.” 보다는 “당신 조직에 관심이 있다.”는 의도를 보일 수 있는 너무 티나지 않는 질문을 한 두개쯤 준비 해 두는게 좋다는 말에 공감한다.

기술 관련 질문

Application이 화면에 display 되기까지의 과정을 설명해 봐라.
: Graphics 관련 component들과 전체적 흐름을 이해하고 있는지 묻는 질문이다. 다른 분야에서도 전체적인 흐름을 파악하고 있는지에 대한 질문은 자주 묻는다. 각 software component들에 대한 이해가 있고 각각이 왜 필요하고 무슨 역할을 하는지 알고 있다면 flow에 따라 설명하면 된다. Graphics의 경우 IPC, compositor, user/kernel space driver 그리고 관련 hardware의 역할에 대해 숙지해 두자.

네가 Linux distribution을 하나 만들려고 한다면 어떤 절차로 진행 해야 할까?
: 위의 질문과 같은 맥락의 전체 compnent에 대한 이해하고 있는지 묻는 유형이다. 주제가 다를 뿐.

다른 OS(Windows)에서 구현된 어떤 driver solution이 있을 때 이것을 Linux에 porting 하려 한다면 어떤 절차를 걸쳐서 진행하는게 좋을까?
: 생각지도 못했던 질문이었는데, 나중에 알고 보니 질문한 사람이 실제로 이러한 일을 담당하고 있었다고 한다. 당시에 답변을 제대로 하지 못했었는데, driver는 OS에 따라 매우 구현이 다른 부분이고, Windows는 Linux와 매우 다른 driver model을 가지고 있는데, 이것을 호출하는 OS가 아닌 호출받는 driver 측에서 해결하는 방법이 떠오르지 않았기 때문이다. 아씨.. 그 때 그 사람은 어떻게 했는지 물어볼 껄… 궁금해 죽겠네.

Video play가 안되는 문제가 있다면 component들 중 어느 부분 부터 확인 할 텐가? 그 이유는?
: 내 답변은 디코딩 method (software/hardware decoding)를 바꿔서 제대로 동작하는 지 부터 확인해 보겠다는 거였는데 답변에 대한 피드백이 없어서 원하던 답변이었는지는 모르겠다.

Linux kernel을 어떻게 디버깅 할 것인가?
: 커널 디버거 설정 방법을 고상하게 설명한다. 마지막에 무심한 듯 고작 printk() 따위를 쓰는 애들도 있는것 같더라는 말을 덧붙인다. 현실은 그게 대부분 일지라도.

임의의 algorithm (주로 sorting)에 대해 설명하고 시간 복잡도를 설명해라.
: 질문에 등장하는 algorithm은 새로운 것보다는 이미 대학에서 배운 것들이다. 따라서 해당 algorithm에 대한 부가 설명도 없다. Algorithm들을 미리 복습해 두고 세트 메뉴 마냥 따라오는 big O notation도 숙지해 두자. 스스로 작성한 algorithm을 평가할 수 있어야 한다.

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다