brunch

You can make anything
by writing

C.S.Lewis

by 엄지현 Feb 11. 2022

개발자의 면접 공부법

면접 하나를 봐도 제대로 보자

영국에 와서 내가 처음으로 택한 구직 전략은 ‘면접의 모수를 늘리자’였다. 힘들게 많은 회사와의 면접을 몰아서 진행한 것도, 한 회사와 최종 면접이 잡혔음에도 다른 회사와의 면접을 멈출 수 없었던 것도 다 그 때문이었다. ‘이 중 하나는 되겠지’라는 안일한 생각을 가지고 부족한 실력을 면접 횟수로 커버해 보려 했다. 하지만 수많은 회사에서 2차 기술 면접 단계에 탈락하고, 그나마 초대받은 최종 면접까지 떨어지고 나니 이 전략의 실패를 인정할 수밖에 없었다.


예상대로 런던에 개발자 수요가 높은 것은 사실이었으나, 아무 개발자나 채용하는 회사는 없었다. 모든 회사는 실력을 갖춘 개발자를 원하고, 서류 단계 이후에는 면접만이 지원자의 실력을 증명할 유일한 방법이다. 면접이 꼭 이렇게 길고 어려워야 하는지 의문이 들기도 했지만, 면접 프로세스가 얼마나 합리적인지를 따지는 데 시간을 낭비하기보다는 그 시간에 면접을 통과할 수 있도록 충분한 준비를 하는 쪽이 더 효율적이다.


그래서 내가 채택한 새로운 전략은 ‘면접 하나를 봐도 제대로 보자’였다. 닥치는 대로 보던 면접을 잠시 멈추고, 기술 면접에 대비하기 위해 공부하는 시간을 가졌다. 당시 백수 신분으로 구직 준비만 한 지 이미 한 달이 지난 시기였으므로 가져온 돈이 점점 떨어져 가면서 그만큼 면접 준비를 새롭게 시작할 마음의 여유도 줄어들었다. 하지만 제대로 준비되지 않은 상태로 계속 면접만 봤다가는 남은 회사도 다 탈락할 기세였기에 별다른 선택지가 없었다. 앞으로의 면접은 양보다 질로 승부해야겠다고 판단했고, 이를 위해 본격적으로 공부에 돌입했다.




영국 개발자 면접 과정 총정리

영국 개발자 면접 과정

전체 면접 과정을 다시 짚어보기 위해 간단한 다이어그램을 만들어 보았다. 각 단계에 대한 설명은 이전 글에 보다 자세히 나와 있으니 참고하길 바란다.

영국식 CV 잘 쓰는 법

1단계 채용 담당자 미팅 및 2단계 기술 면접

3단계 최종 면접



개발자의 면접 공부법


1. 기본 자료구조 공부하기

기술 면접에서 가장 흔하게 접할 수 있는 방식은 실시간 코딩 면접이다. 이 면접에서는 한 시간 안에 알고리즘 문제를 코드로 구현해야 하는데, 자료구조는 이런 알고리즘 문제를 풀 때 꼭 알아야 하는 기본 개념이다. 어떤 자료구조를 선택하느냐에 따라 같은 문제라도 몇 배 더 효율적인 솔루션을 구현할 수 있기 때문에 자료구조에 관한 지식은 면접 퍼포먼스에 큰 영향을 미친다.


자료구조에 관해 공부할 때 개인적으로 많은 도움을 받았던 건 HackerRank의 유튜브 채널이었다. 이 채널에서는 코딩 면접의 바이블이라 불리는 <코딩인터뷰 완전정복(원제: Cracking the Coding Interview)>의 저자 Gayle Laakmann McDowell이 직접 자료구조에 대한 설명을 해준다. 더불어 어떤 알고리즘 문제를 풀 때 해당 자료구조를 쓰면 좋은지 실질적인 예제를 통해 보여주기 때문에, 실제 문제를 풀 때 참고하기 좋다.

자료구조 영상

알고리즘 영상


2. 알고리즘 문제 풀어보기

기본 자료구조 개념을 이해했다면 알고리즘 문제를 풀어볼 차례다. 알고리즘 문제는 많이 풀어볼수록 좋다. 면접에서 처음 보는 문제를 푸는 것보다는 한 번이라도 풀어본 유형의 문제를 접했을 때 훨씬 수월하게 풀 수 있기 때문이다. 대표적으로 개발자들이 사용하는 코딩 기출문제 웹사이트는 HackerRankLeetCode가 있다. 2,000개가 넘는 문제의 개수에 압도당하기 십상이지만, 다행히 두 사이트 모두 면접에 자주 출제되는 문제의 목록을 제공하니 이 목록에 있는 문제 위주로 풀면 된다.

HackerRank Interview Preparation Kit

LeetCode Top Interview Questions


3. 프로그래밍 컨셉 공부하기

이론적 기술 질문이 출제되는 면접에 대비하기 위해서는 중요한 프로그래밍 컨셉에 관해서 미리 공부해 두어야 한다. 대표적으로 자주 출제되는 주제로는 전반적인 웹 작동 방식, 객체 지향 프로그래밍 혹은 함수형 프로그래밍 컨셉 (지원하는 직무에 맞게 선택), 테스팅, 보안 등이 있다. 또한 특정 프로그래밍 언어에 국한된 직무에 지원한다면 그 언어에 관한 공부도 철저히 하고 가는 게 좋다.


공부 방법으로는 관련 주제의 책을 읽는 것이 가장 좋지만, 책을 다 읽을 시간이 부족하다면 검색을 통해서 면접 질문 위주로 정보를 찾아보는 방법도 있다. “주제 + interview questions”(예를 들면 Java interview questions)라고 검색하면 관련 주제의 예상 면접 질문을 쉽게 찾을 수 있다. 그렇다고 정확한 이해 없이 예상 질문과 답만 달달 외운다면 실제 면접에서 제대로 답하지 못할 확률이 높기 때문에, 관련 주제에 대해 제대로 공부하고 예상 질문은 마지막으로 실제 면접 직전에 연습용으로 사용하는 것이 좋다.




보다시피 공부할 내용이 굉장히 많다. 하나씩 배우면서 지식을 늘려나가는 건 좋았지만, 공부해야 할 내용이 너무 많은 탓에 지치기도 했다. ‘이걸 언제 다 공부해서 최종 면접에 합격하지?’ 하는 걱정이 들었다. 계속 백수 신세로 공부만 할 수 있는 금전적 여유가 없었기 때문이다. 조급한 마음을 가다듬으며 면접 준비를 하는 건 정신적으로 꽤나 힘든 일이다. 그래서 이직 계획이 있는 개발자라면 몇 개월의 시간을 확보하고 준비하는 걸 추천한다.


타임머신을 타고 몇 달 전으로 돌아가고 싶은 마음이었다. 영국에 오기 전 실컷 놀고 있었던 나에게 ‘지금 이럴 때가 아니야, 미리 공부해야 해!’라고 외치고 싶었다. 그러나 현실에는 이미 지나간 시간을 되돌릴 타임머신 따위는 없었다. 지금부터라도 열심히 하면 된다고 스스로를 다독이며 애써 불안한 마음을 다잡아 보았다. 오늘의 공부가 언제쯤 면접 합격으로 이어질지 알 수 없었지만, 오늘 할 수 있는 일은 공부뿐이었다.


브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari