DEV

2022-04-05 05:40

개발자 1차 (기술) 면접 후기

최근 이직을 준비하면서, 3 ~ 4개 정도 회사에 지원을 했다.
자세한 프로세스나 이직 관련 내용은 회사의 자산에 등록된 경우가 많으므로, 회사의 실명은 거론하지 않겠다.

개인적으로 이직을 준비하면서 또 한번 다시 공부하는 마음을 가졌다.
경험적으로도 좋은 경험이었다.

이 글에서는 1차 면접 (기술면접)에서만 다룰 예정이고, 가장 면접경험이 좋았던 하나의 회사를 골라서 글을 작성할 것 이다.

기술면접에서는 무슨 질문들이 나오는가?

1. 자신에 대한 소개

  • 자신을 어떤 개발자라고 한마디로 표현할 수 있을지?

처음 본격적인 인터뷰에 들어가기 앞서 대부분 면접관과 면접자의 어색한 기류를 없애기 위해 아이스브레이킹 타임으로 소개시간을 갖는다.
이때 면접자는 자신에 대한 소개를 하게 된다.

여기에서 단순하게 나에 대해 소개를 하였다.
ex) 모 회사에서 프런트엔드 개발자로 근무하고 있는 아무개 입니다. 현재 X년차 입니다 등
이후에 질문이 들어왔다.

자신을 어떤 개발자라고 한마디로 표현할 수 있을지?

나는 아이디어를 실현하는 것을 좋아하는 개발자라고 대답했다.
너무 횡성 수설하지 않은 간단한 이유를 덧붙이기도 했다.

좋은 질문인 것 같다. 결국 기술면접이란, 축약적으로 다음과 같은 항목을 알아보는 것이 가장 중요한 것 같다.

  • 면접자가 특정 기술에 대해서 이론적으로 혹은 실무적으로 얼만큼 알고 있는지?
  • 이 면접자가 추구하는 기술을 다루는 방향은 무엇인지?
  • 이 면접자가 당황하지 않고 돌발상황에 대처를 어떻게 하는지에 대한 태도
  • 추가적으로 면접자가 경력자라면 자신의 포트폴리오나 회사에서의 경험

2. 본격적으로 회사에서 쓰는 특정 기술을 얼마나 알고있는지 알아보는 시간

이제 소개가 끝났으니, 어느정도는 이 면접자가 어떠한 방향으로 성장해왔고 혹은 어떤 방향으로 성장하고 나아가고 싶은지 알게 되었다.
이제는 실력을 알아볼 차례.
기술 면접에서 가장 중요한 파트인 것 같은데, 회사에서 쓰는 특정 기술에 대한 깊이를 보는 시간이다.

기본적으로 자신의 파트의 기술의 백그라운드 지식도 중요하지만, 메인 기술에 대한 이론적 요소와 감각은 같이 일할 개발자에게 꼭 알아봐야 하는 과정이다.

나는 프런트엔드 개발자 중에서도, React를 이용하여 주로 개발하는 개발자 이다.
따라서 면접시간에서는 React의 기본적인 지식을 물어보는 것으로 시작했다.

  • Virtual DOM에 대해서 설명을 부탁드립니다 !

블로그를 시작하길 잘했다는 생각이 여기서 들었다. 블로그를 시작하면서 Virtual DOM에 대해서 알아보고자 글을 썼는데 참 많은 도움이 되었다.

Virtual DOM에 대한 내 블로그 글

가장 중요한 부분은 아무래도 Diffing Algorithm을 사용해서 비교하는 부분이 아닐까 싶다.
그리고 Virtual DOM을 왜 쓰게 되었는지에 대한 이유까지 알면 훨씬 좋을 것 같다.

이 파트에서 강조하고 싶은 부분은, 기본을 무시하지 말자이다.
자신이 쓰는 기술의 기본을 알고 있는지, 얼마나 탄탄하게 알고 있는지에 대해 보는 시간이므로 기술 면접전에 숙지해두고 참석하면 많은 도움이 된다.

3. 그렇다면 돌발상황에서는 어떻게 대처할까?

이것을 보는 가장 좋은 방법은 아무래도 라이브 코딩 일 것이다.
내가 보았던 면접에서는 어떻게 보면 까다로울수 있지만, 그렇게 시간이 많이 들지는 않는 알고리즘 라이브코딩을 진행 하였다.

아마 내 생각에 이 시간에서는 라이브 코딩을 하는 모습을 보면서 다음을 평가할 것 같다.

  1. 돌발 상황에서 어떻게 행동하는지?
  2. 문제를 풀어가는 과정이 합리적인지?
  3. 합리적인 판단으로 당황하지 않고 결과를 도출해 내는 능력

따라서, 평소에 시간이 남을때에 꾸준히 알고리즘 공부를 해두면 좋다.
결국 알고리즘문제 해결능력은 감각이고, 여러번 풀다 보면 감각이 자라나는 것 같다.

프로그래머스 사이트를 추천한다!

4. 좋다! 이제 라이브코딩까지 했으니, 최신 기술에 대한 관심도를 알아보자. (feat. optimization)

간단한 예로 예전에는 window에 scroll 이벤트리스너를 등록하여 무한 스크롤링을 구현하는 경우가 많았다.
사람들의 글을 보아 요즘은 IntersectionObserver로 reflow를 최적화하여 무한 스크롤링을 구현하고 있는 태세로 돌아서는 것 같다.

이러한 예시처럼 최신 기술에 대한 관심도를 측정하는 시간이었다.
또한 단순히 이론적거나 기본적인 기술보다는 조금 더 심도높은 최적화에 대한 이야기도 같이 나누었다.

최적화 부분은 개인적으로 사이드 프로젝트가 많이 도움이 되었다.
아무래도 회사 프로젝트는 최적화도 조심스럽기 때문에, 조금 더 자유롭게 최신 기술을 써가면서 최적화 까지 할 수 있는 사이드 프로젝트를 경험해보는 것이 큰 도움이 될 것이다.

단순히 런칭만 하고 끝내는 것 보다, 계속 어떻게 하면 조금 더 나은 서비스를 제공할 수 있을지에 대해 심도있게 생각하다보면 최적화 기술도 자연스레 성장하리라 본다.

마치며

간단하게 4가지의 섹션으로 개발자 기술 면접에 대한 요약 및 정리를 해보았다.