반응형

안녕하세요. 이번 포스팅에서는 기술 면접 준비 방법 및 꿀팁에 대해서 알아보겠습니다. 면접이 처음이라면, 면접이 어떻게 진행되는지, 무슨 질문을 할지 하나도 몰라서 막막하고 두렵기만 할 텐데, 이런 분들을 위해 상세히 설명드리겠습니다. 저는 네이버, 카카오, 삼성전자, 네이버 클라우드, 신한은행, 당근 마켓 등 약 10개가 넘는 기술 면접을 봤었는데, 그 과정에서 느꼈던 점을 세세하게 말씀드리겠습니다.

 

https://nakco.tistory.com/entry/%EA%B0%9C%EB%B0%9C%EC%9E%90%EB%A1%9C-%EC%B7%A8%EC%97%85%ED%95%98%EA%B8%B0-CSComputer-Science

 

개발자로 취업하기 - CS(Computer Science)

안녕하세요. 이번 포스팅에서는 개발자로 취업하기 위해 공부해야하는 Computer Science 공부 방법에 대해 정리해보겠습니다. Computer Science는 컴퓨터 공학 전공 지식이라고 볼 수 있는데, 대학교에서

nakco.tistory.com

개발자 기술 면접

면접 시작

개발자 기술 면접은 말 그대로 내가 갖고 있는 프로그래밍 기술에 대한 질문을 주로 받게 됩니다. 일반적인 IT 직군이라면, 위의 CS 기반의 질문을 하게 되는데 해당 내용은 위의 링크를 참고하시길 바랍니다. 대부분의 기업이 2 ~ 4명의 면접관과 다대일로 면접이 진행됩니다. 기본적으로 처음에 자기소개를 30초 ~ 60초 정도 진행 한 후, 해당 자기소개에서 궁금한 부분을 질문하거나 아니면 자기소개서 기반의 질문으로 시작됩니다. 따라서 자기소개를 할 때 자신이 가장 자신있는 부분에 대해 궁금증을 유발하는게 하나의 꿀팁입니다. 

 

자기소개서 기반 질문

본격적으로 면접이 시작된다면, 자기소개서 기반의 질문부터 시작합니다. 대부분의 면접에서 제가 적었던 프로젝트 위주로 질문을 받았습니다.

  • 프로젝트에서 어떤 역할을 맡았는지,
  • 어떤 기술을 썼는지,
  • 해당 기술을 쓰면서 어려웠던 점은 무엇이 있었는지,
  • 배포까지 해봤는지,
  • 안했다면 왜 안했는지,
  • 아쉬웠던 점은 무엇이 있는지,
  • 더 발전시킨다면 어떤 방향으로 할 생각인지

프로젝트를 적었다면 위의 내용에 대해서는 꼭 한번 정리를 해 보시길 바랍니다. 대부분이 해당 질문들을 했었고, 현장에서 해당 질문을 받으면 생각보다 말이 술술 나오지 않았던 것 같습니다. 따라서 자기가 했던 프로젝트를 꼭 다시 리뷰해보고 해당 질문들에 대해 생각해보시길 바랍니다.

 

 네이버나 카카오같은 IT 기업이라면 좀 더 세부적으로 질문이 들어옵니다. 만약 안드로이드 앱 개발을 진행했었다면,

  • 자바를 썼는지 코틀린을 썼는지,
  • 시스템 설계는 어떤 모델을 사용해서 했는지,
  • 왜 해당 모델을 선택했는지,
  • 코틀린 or 자바의 특징은 뭐가 있는지,
  • 어떤 기능을 구현하는데 어떤 기술을 썼고, 왜 그랬는지, 다른 방법을 아는지

등 정말 내가 개발을 진행했는지, 해당 기술의 특성을 잘 이해하고 적용한 것인지 등의 내용을 파악하기 위한 질문들을 합니다. 저는 사실 프로젝트를 할 때 무슨 기술들이 있는지도 잘 모르고, 그냥 되는대로 했기 때문에 해당 질문들을 받았을 때 매우 난처했습니다. 여러분들은 꼭 미리 해당 질문들에 대해 준비해보는 것을 추천드립니다.

 

그리고 자소서에 어떤 과목에 대해서 적었다면 해당 질문도 들어올 수 있습니다. 예를 들어 '운영체제 수업을 들으면서 OS 동작에 대해 이해하게 되었고 이러한 부분을 생각하며 프로그래밍을 하여 좀 더 효율적인 코드를 작성할 수 있었다' 라고 적었다면, 

  • 운영체제 동작 중 하나를 설명해달라,
  • 어떤 부분을 생각하며 프로그래밍을 하는지,
  • 어떻게 효율적으로 코드를 짜는지,
  • 실제로 효율적으로 프로그래밍한 경험,

등에 대해 질문할 수 있습니다. 여러분이 자소서에 적은 내용들에 대해서는 따라서, 정말 꼬리의 꼬리를 물며 스스로에게 질문해보시고 답변을 미리 준비하시길 바랍니다. 자소서에 적은 내용인데 대답을 못한다면, 자소서를 과장되게 썼다는 인상을 줄 수 있습니다.

 

CS 기반 질문

 cs 기반 질문은 개발자로 취업하기 - CS 편을 보셨다면 잘 준비되어 있을거라고 생각합니다. 일반적인 IT 직군이라면, gyoogle의 있는 항목들 위주로 질문이 들어 올 것이고, 좀 더 세분화 된 직군 (앱 개발자, 백엔드 개발자, 프론트엔드 개발자 ...) 이라면 관련 지식을 주로 질문할 것입니다. CS 기반 질문에서 정말 중요한 점은, 질문에 대해 먼저 선수를 쳐서 아주 세세한 것 까지 자신이 아는 모든것을 뱉어 버리는 것입니다. 물론 너무 길게 대답하면 안되겠지만, 질문에만 대답하는 것이 아니라, 그 이후에 나올 수 있는 질문들에 대해서도 미리 선수쳐서 대답하면 긍정적인 반응을 이끌어 내실 수 있을 것입니다. 


ex) 해쉬가 무엇인지 설명해주세요

 

답 : 해쉬란 데이터를 다루는 기법으로 저장 및 검색이 매우 빠르다는 장점이 있습니다. key 와 value가 한 쌍으로 존재하고 ~~~ 저장의 시간 복잡도는 O(1)입니다. -> 여기까지가 질문에 대한 답변입니다.

추가 : 하지만 한정된 인덱스로 바꾸게 된다면 충돌이 발생 할 수 있고 이를 위한 해결책으로는 체이닝 기법과 매핑 개선 기법이 있습니다. 자바에서는 Seperate Chaining 방식으로 충돌을 해결하는 hash를 사용합니다.


 

여기까지 답한다면 이미 충분히 잘 알고 있다고 느낄 것이고, 꼬리 질문이 들어온다면, chaining 방식이 뭔지, open address가 뭔지, 매핑 개선 기법엔 뭐가 있는지 등이 나올 수 있겠지만, 보통은 저정도까지 얘기하면 이미 알고있다고 생각하고 물어보지 않을 것이고, 제 생각에도 저정도 얘기했으면 이후 질문도 쉽게 답하실 수 있을 것이라고 생각합니다. 질문자가 해당 내용으로 계속 질문하지 않게, 한번에 만족스러운 답변을 해내시길 바랍니다.

 

 

마무리

 보통 기술면접은 현업을 하고 있는 개발자들이 참여하고, 그 분들도 대부분 CS 지식을 까먹었을 것입니다. 그러니 너무 긴장하지 말고! 그분들도 인터넷을 찾아 질문을 가져오거나, 현업에서 하는 내용들에 대해 물어볼터이니, 자신의 직무에 맞게 잘 준비하시길 바랍니다. 자신이 알고있는 모든 것을 다 말하는 것이 중요하고, 자기소개서에 있는 모든 내용을 잘 숙지하시는 것도 중요합니다. 개발자 면접은 경험상 그렇게 딱딱하지 않고, 다들 편하게 해주는 경향이 있어 너무 긴장하지 마시고 자신있게 표현하시길 바랍니다.

 자기소개서와 마찬가지로 말을 할 때 항상 두괄식으로 말하고, 바로바로 답변하지 말고 조금 생각을 정리한 후 답변하시길 바랍니다. (네 답변 드리겠습니다 라고 하면서 생각을 하거나, 질문을 그대로 말하며 네 ~ 해쉬테이블이란~~ 하면서 생각을 정리) 또한 말하다가 잘못말하고 있다고 느끼면, 죄송합니다. 다시 답변드리겠습니다. 하고 다시 말해야지, 틀린 것을 계속 고집하시면 안됩니다.

 이상으로  개발자 기술 면접 포스팅 마치도록 하겠습니다. 더 궁금한 점 있으면 댓글로 남겨주시면 성실히 답하겠습니다. 개발자, 취준생 여러분 항상 응원하겠습니다. 감사합니다.

반응형

+ Recent posts