면접 하나를 봐도 제대로 보자
영국에 와서 내가 처음으로 택한 구직 전략은 ‘면접의 모수를 늘리자’였다. 힘들게 많은 회사와의 면접을 몰아서 진행한 것도, 한 회사와 최종 면접이 잡혔음에도 다른 회사와의 면접을 멈출 수 없었던 것도 다 그 때문이었다. ‘이 중 하나는 되겠지’라는 안일한 생각으로 부족한 실력을 면접 횟수로 커버해 보려 했다. 하지만 수많은 회사에서 2차 기술 면접에 탈락하고, 그나마 초대받은 최종 면접까지 떨어지고 나니 이 전략의 실패를 인정할 수밖에 없었다.
예상했던 것처럼 런던에 개발자 수요가 높은 것은 사실이었다. 구직 플랫폼에 채용 담당자의 메시지가 쌓여가는 걸 보며 알 수 있었다. 하지만 회사는 아무 개발자나 채용하지 않는다. 모든 회사는 실력을 갖춘 개발자를 채용하고 싶어 하고, 지원자는 오직 면접을 통해서 자신의 실력을 증명할 수 있다. 면접이 꼭 이렇게 길고 어려워야 하는지 의문이 들기도 했지만, 면접 과정이 얼마나 합리적이냐를 따지기보다는 주어진 면접을 통과할 수 있도록 충분한 준비를 하는 쪽이 더 합리적이다.
그래서 내가 채택한 새로운 전략은 ‘면접 하나를 봐도 제대로 보자’였다. 닥치는 대로 보던 면접을 잠시 멈추고 기술 면접을 위한 공부를 하는 시간을 가졌다. 이미 백수 신분으로 구직 준비만 한 지도 한 달이 지나 주머니 사정이 넉넉하진 않았지만, 제대로 공부하지 않고 계속 면접만 봤다가는 남은 회사도 다 탈락할 기세였기에 별다른 선택지가 없었다. 지금까지 본 면접에서 나온 문제들을 참고해서 최소한으로 공부해야 할 내용을 추려 보았다.
기술 면접에서 가장 흔하게 볼 수 있는 방식은 한 시간 안에 알고리즘 문제를 코드로 구현해야 하는 실시간 코딩 면접이다. 예를 들면 A 위치에서 B 위치로 가는 가장 짧은 경로를 구하는 문제를 한 시간 안에 코드로 구현해야 하는 방식인데, 자료구조는 그런 알고리즘 문제를 풀 때 꼭 알아야 하는 기본 개념이다. 어떤 자료구조를 선택하느냐에 따라 같은 문제라도 몇 배 더 효율적인 솔루션을 구현할 수 있고, 정반대의 경우가 될 수도 있기 때문에 자료구조에 관한 지식은 면접 퍼포먼스에 큰 영향을 미친다.
자료구조에 관해 공부할 때 개인적으로 많은 도움을 받았던 건 HackerRank의 유튜브 채널이었다. 코딩 면접의 바이블이라 불리는 <코딩인터뷰 완전정복(원제: Cracking the Coding Interview)>의 저자 Gayle Laakmann McDowell이 직접 자료구조에 대한 설명을 해주는 영상이 있는 채널이다. 더불어 어떤 알고리즘 문제를 풀 때 해당 자료구조를 쓰면 좋은지 예제를 통해 보여주어서 실제 문제를 풀 때 참고하기 좋다.
기본 자료구조 개념을 이해했다면 알고리즘 문제를 풀어볼 차례다. 실제 면접을 보기 전 비슷한 유형의 문제를 풀어본 적이 있다면 당연히 처음 보는 문제를 푸는 것보다는 훨씬 수월하게 면접을 볼 수 있다. 그래서 알고리즘 문제는 많이 풀어볼수록 좋은데, 대표적으로 개발자들이 사용하는 코딩 기출문제 웹사이트는 HackerRank와 LeetCode가 있다. 2,000개가 넘는 문제의 개수에 압도 당하기 십상이지만, 다행히 두 사이트 모두 면접에 자주 출제되는 문제의 목록을 제공해서 이 목록에 있는 문제 위주로 풀면 된다.
HackerRank Interview Preparation Kit
LeetCode Top Interview Questions
이론적인 기술 질문을 하는 면접에 대비하기 위해서는 중요한 프로그래밍 컨셉에 관해서 미리 공부해 두어야 한다. 대표적으로 자주 출제되는 주제로는 객체 지향 프로그래밍(OOP), 테스팅, 보안 등이 있다. 특정 프로그래밍 언어를 사용하는 직무에 지원한다면 그 언어에 관한 공부는 철저히 하고 가는 게 좋다. 자바 개발자 직무에 지원한 사람이 자바에 관한 질문을 제대로 대답하지 못한다면 면접관은 그 지원자의 실력을 의심할 수밖에 없을 것이다.
공부 방법으로는 관련 주제의 책을 읽는 것이 가장 좋지만, 책을 다 읽을 시간이 부족하다면 검색을 통해서 면접 질문 위주로 자료를 찾아보는 방법도 있다. “주제 + interview questions”(예를 들면 OOP interview questions)라고 검색하면 관련 주제의 예상 면접 질문을 쉽게 찾을 수 있다. 그렇다고 정확한 이해 없이 예상 질문과 답만 달달 외운다면 실제 면접에서 제대로 답할 확률이 상당히 낮기 때문에, 관련 주제에 관해 제대로 공부를 하고 예상 질문은 마지막으로 실제 면접 직전에 연습용으로 사용하는 것이 좋다.
공부를 하면서 조금씩 지식을 늘려나가니 준비되지 않은 상태로 면접만 볼 때보다는 덜 불안했다. 하지만 그러다가도 공부해야 할 내용이 너무 많은 탓에 지치곤 했다. ‘이걸 언제 다 공부해서 최종 면접에 합격하지?’ 하는 걱정에 다시금 초조해졌다. 마음 같아서는 몇 달 전으로 타임머신을 타고 돌아가 영국에 오기 전 실컷 놀고 있었던 나에게 ‘지금 이럴 때가 아니야, 미리 공부해야 해!’라고 외치고 싶었다. 그러나 현실에는 이미 지나간 시간을 되돌릴 타임머신 따위는 없었다. 지금부터라도 열심히 하면 된다고 스스로를 다독이며 애써 불안한 마음을 다잡아 보았다. 오늘의 공부가 언제쯤 면접 합격으로 이어질지 알 수 없었지만, 오늘 할 수 있는 일은 공부뿐이었다.
엄지현 님이 브런치에 게재한 글을 편집한 뒤 모비인사이드에서 한 번 더 소개합니다.