상반기 회고는 이전 포스트에 작성했다.
2021년 하반기는 공채 지원한 것밖에 쓸 내용이 없다. 그래서 크게 세 카테고리로 나누고자 한다.
작성 순서는 전형 진행 순서(최종 합격 연락 순서)이다. 라인과 카카오는 모든 전형이 서로 비슷한 시기에 진행됐었고, 라인이 아주 조금씩 일렀다. 네이버는 공채 모집 시작 날짜가 한달 가량 늦어 가장 늦게 결과가 발표되었다.
Career Path?
카카오브레인 인턴십에서 정규직 전환에 실패하고 나니 꽤 멘탈적인 타격이 컸었다. 떨어질 것 같다는 생각을 했지만, 그와 동시에 조금이나마 기대감도 있었고, 아무리 예상하고 있었다지만 막상 메일을 받고 나니 기분이 정말 좋지 않았다. 그래도 주변에서 많은 조언과 위로를 준 덕분에 이틀 정도 쉬고 다시 취준 의욕을 다잡을 수 있었다. 정말 다행이었던 것이 정신차린 날이 라인 공채 지원 마감 전날이었다. 만약 며칠 더 멘탈 회복을 했었다면 아마 라인 2021 하반기 공채는 지원도 못했을 거다.
기본적으로 나는 ML-side engineer로 성장하는 career path를 목표로 하고 있었다. ML modeling을 하는 ML engineer가 될 수도 있을 것이고, ML model을 활용해 실제 서비스를 개발하는 back-end engineer가 될 수도 있을 것이다. 또는 ML 모델 학습 또는 배포 pipeline을 구축하는 MLOps engineer가 될 수도 있을 것이다. 구체적으로 이 중 어떤 것을 목표로 하지는 않았지만, 어쨋든 그동안 공부해온 ML 도메인 지식을 활용할 수 있는 직무를 희망하고 있었다.
사실 일반적인 ML engineer는 보통 학사 졸업 후 구직을 하지는 않는다. 최소 석사 이상을 요구하기 때문이다. 논문을 읽고 이해하고 이를 재현하는 능력 등을 기본으로 요구한다. 또 engineer라 하더라도 꽤 높은 수준의 research insight를 요구하기도 한다. 일반적인 학부 과정을 따라왔을 때에는 얻기 힘든 지식들이기에 어찌 보면 당연하다. 그래도 나는 연구실에서 논문만 읽는 것 보다는 바로 업계에서 실무를 배우며 성장하고 싶었고, researcher가 아닌 engineer를 목표로 한다는 것은 명확했기에 대학원 진학 보다는 취업을 선택했었다.
하지만 네이버 / 카카오의 ML engineer 포지션의 인턴십에 수없이 지원했음에도 대부분 서류 탈락의 고배를 마셨었고, 현실의 벽을 쎄게 느끼고 있었다. 수시 채용에서 요구하는 지식의 수준도 매우 높았기에 내가 도달하기에는 다소 무리가 있는 수준이었다. 그러던 중 일반적인 학사 졸업 후 취직 루트인 공채로 입사를 하고 난 뒤에(그 과정에서 최대한 ML-side에 위치할 수 있는 포지션을 찾아가며), 입사 후 직무 변경 등을 할 수 있지 않을까 하는 생각에 공채 지원을 결심했다.
사실 나는 공채로 취업을 할 생각이 전혀 없었기에 이에 대한 대비(PS, CS 등)를 전혀 하지 않았었다. 때문에 바로 취직을 할 것이라는 기대를 스스로 하지 않았고, 우선은 모두 지원을 하며 취준 경험을 쌓아보고자 했다. 보통 처음 기준치는 높게 잡아서 차근차근 내려간다고 하기에 흔히들 가장 좋은 IT 서비스 기업이라 말하는 네카라에 지원을 하기로 마음먹었다.
LINE PLUS
2021년 하반기 라인플러스 신입 공개 채용 공고 |
서류
라인플러스는 기본적으로 기술력이 엄청 좋은 회사라는 평을 듣고 있었다. 코로나 이후에도 완전 전면 재택 근무를 채택했다는 점에서 이끌리기도 했다(현 거주지에서 판교 근방까지 출퇴근이 꽤 오래 걸린다). 무엇보다 모집 직무에서 JD 중 “Big Data, ML, Cloud Platform에 대한 이해 및 관심”을 요구하는 직무가 있었기에 ML 관련 engineering을 해 볼 수 있겠다는 생각이 들어 지원을 결심했다.
내가 지원했던 포지션의 job description |
- 서류 문항
- 본인이 끝까지 파고들어 본 가장 의미있었던 개발 경험 또는 개발 활동에 대해 얘기해 주세요.
- 지원하신 포지션과 연관지어, 학교 수업 또는 대외활동 등을 통해 습득한 ‘CS 지식’이나 ‘기술적 역량’에 대해 설명해 주세요. (최대 3개)
- 본인의 SW개발 활동 경험 중 다른 사람과 함께 같은 목표를 위해 노력한 경험 또는 어려운 기술적 문제를 해결한 경험에 대해 얘기해 주세요. (활동 기간, 주요 내용, 문제 접근 방식, 극복해가는 과정, 사용 언어와 기술 설명 등 타인과 협업하고 문제를 해결하는 과정 속 본인이 주도적으로 참여한 부분을 중심으로 작성해 주세요. 결과나 성과 등 참고 가능한 URL이 있다면 본문에 포함해 주셔도 좋습니다.)
사실 개발자에게 서류 문항은 크게 중요하지 않다고 생각했다. 그래서 성실하게 작성은 하되, 각 문항에 대해 며칠 동안 고민하거나 하지는 않았다. 어느 IT기업이든 그렇겠지만 기본적으로 기본기, 기술적 깊이를 많이 묻는다는 느낌을 받았다. 서류에서 내가 작성한 내용은 이후 면접에서의 “소재거리”로 사용되기 때문에, 내 전문성 또는 기술적 깊이를 어필할 수 있는 키워드들을 중심으로 자소서를 작성했다(면접에서 이 내용을 질문해주세요! 하는 것들).
코딩테스트
지원 마감 주 토요일 오전에 코딩테스트가 진행되었다. 따로 캠이나 화면 공유를 요구하지는 않았다. 검색도 허용되었다. 때문에 큰 부담 없이 코딩테스트에 임했다. 하지만 오전10시라는 매우 이른 시간 때문에 집중력이 떨어졌었고, 6문제 중 4문제 정도를 해결했었다. 앞의 2문제 정도는 아주 단순한 구현이어서, 바로바로 풀었었고 이후 두 문제에 시간의 대부분을 쏟았던 것으로 기억한다. 히든케이스가 존재하기 때문에 제출이 정답을 보장하진 않으므로 새로운 문제 해결이 어려울 만큼의 적은 시간이 남았다면, 이전에 풀었던 문제들을 다시 되짚으며 처리 불가능한 예외 케이스들을 최대한 찾아보려 했다.
결과 발표는 그 다음주 수요일, 즉 시험 당일 4일 뒤에 메일로 받았다.
필기테스트
라인 공채의 후기를 살펴보면 필기테스트가 정말정말 어렵다는 후기가 많았다. 그래서 걱정을 정말 많이 했었다. 그런데 공부할 양은 너무 많았고, 따로 대비가 불가능한 수준이었다. 그래서 그냥 평소의 실력을 믿어보자 마음을 먹고 공부를 하지 않는 자신에 대해 합리화를 했다..ㅎ 시험 일정은 코딩테스트 정확히 일주일 뒤, 동일한 시간에 진행되었다. 코딩테스트와 다르게 프로그래머스 시스템 상에서의 캠 및 화면 공유를 요구했다. 아무래도 필기 문제이다 보니 cheeting에 더 수월하다 판단했던 것 같다.
시험 시간은 90분이었다. 막상 시험을 봐보니 생각처럼 난이도가 미친듯이 어렵지는 않아서 시험 시간이 20분가량 남았다. 다만 출제 범위가 넓다는 느낌은 받았다. 일반적으로 CS과목으로 생각하는 운영체제, 네트워크, 데이터베이스, 자료구조, 알고리즘 중 알고리즘을 제외한 범위에서 문제가 출제되었으며, 추가적으로 오토마타(컴파일러의 연장선이라고 볼 수도 있다), 소프트웨어 공학 과목에 대한 문제도 출제되었다. 모르는 영역에 대한 질문이 출제되었다고 해서 걱정안해도 되는 것이, 한 두 문제에 따라 당락이 갈리는 수준은 아니다. 커트라인이 매우 낮은 것으로 짐작한다. 아마도 대부분 좋은 점수를 받지 못하는 것으로 추측한다. 개인적인 느낌으로는 학부 과정을 성실히 이수했다면 무난히 통과할 수 있는 난이도라고 생각한다! CS 전공자가 아니더라도 주요 CS 과목들에 대해 충실히 강의 및 서적을 통해 공부한다면 통과할 수 있을 것이라고 본다. 설령 운이 좋아 필기 테스트를 통과한다고 하더라도, 라인의 경우 이후 면접에서 물어보는 지식의 깊이가 매우 깊으므로 어차피 운으로 필기 테스트를 통과했다면 최종 합격은 어려울 것 같다. 그러니 따로 필기테스트를 준비한다기보다는 여타 면접 대비와 동일하게 일반적인 CS 공부를 열심히, 그리고 충실히 하면 된다.
결과 발표는 약 2주 뒤에 받았다.
1차 면접
면접 일정은 필기 테스트 후 약 3주뒤부터 시작해 10일 가량 진행되었다. 그 중 한 날의 시간을 배정받아 1시간 동안 면접이 진행된다. 면접관은 3분이 들어오신다.
공채 지원 후 첫 면접이기에 난이도가 짐작도 가지 않았다. 그래서인지 살면서 가장 열심히 CS 공부를 했던 시기 같다. 이후에는 이 때 쌓은 지식을 바탕으로 각 면접에서 어려웠던 부분을 보충하고 심화하는 느낌으로 보완만 했다.
첫 면접이라 정말 많이 떨었는데, 다행히 들어오신 면접관 분들이 모두 친절하시고 인상도 좋으셨다. 그래서 금방 긴장이 풀렸다. 하지만 질문은 친절하되 매우 고난이도의 날카로운 질문들이었다. 나는 개인적으로 CS의 각 과목 중 OS에 가장 자신이 있었기에 OS 질문 쪽으로 최대한 유도를 했던 것 같다. 인턴십 프로젝트를 소개하면서 OS 지식을 활용해 개선했던 점 등을 어필하며 면접이 OS 위주로 이뤄지도록 노력했고, 큰 효과를 보아서 거의 40분 가량을 OS에 대해 질의응답이 진행되었다. 가장 당황했던 질문 중 하나는 “전공 서적을 제외하고 개발 관련 가장 인상깊게 읽었던 책”에 대해 소개해달라는 것이었는데, 당황한 나머지 기억나는 책이 없어 얉게 읽었던 시스템 아키텍쳐 관련 책을 얘기했었다. 이후 아키텍쳐(MSA vs Monolithic)에 대한 질문이 꽤 오래 진행되었는데, 잘 모르는 분야이다보니 정말 진땀을 뺐었다. 이후 지원한 직무에서 사용할 수도 있는 기술 스택에 대한 사용 경험에 대해 여쭤보셨는데, 사용 경험이 없는 것들이 대부분이었고 솔직하게 말씀드렸다. 면접관님도 신입을 뽑는 자리이기에 이러한 기술을 써 본 것이 특이한 경우라고 언급을 하셨기에, 이에 대해서 감점을 하시지는 않는 것으로 판단한다.
OS 질문을 계속 주고 받다보니 면접 시간은 1시간을 10분 정도 초과했었고, 급 마무리가 되었었다. 마지막에 면접에서 아쉬웠던 점을 이야기해달라고 하시기에, 네트워크 관련 공부를 해왔는데 이에 대한 질문이 없어서 아쉬웠다 말씀드리니 (지금 생각해도 무슨 객기였는지 모르겠다..) 2차 면접관 분께 이러한 내용을 꼭 전달해주겠다고 하셨다. 이 얘기를 듣고 1차 면접은 확실히 합격이구나 판단했고, 이후 비교적 편안한 마음으로 시간을 보냈다.
결과 발표는 약 10일 간의 면접 일정이 끝난 바로 다음날 메일로 전달받았다.
2차 면접
2차 면접 일정은 1차 면접 기간 약 2주뒤부터 시작해 10일 가량 진행되었다. 나의 경우 1차 면접은 마지막 날짜에 진행되었고, 2차 면접은 거의 첫 날짜에 진행되었기에 면접 사이 텀이 상대적으로 짧은 편이었다.
면접은 1차 면접과 동일하게 3:1로 진행되었는데, 면접관 분들이 직책이 높아보였다(나중에 알고 보니 실제로 2차/3차 리드 분들이 들어오셨었다). 보통 공채의 2차 면접은 기술 면접 보다는 인성 면접의 성격이 강하다고 하는데, 라인은 예외였다. 기술 질문이 90%를 차지했고, 질문의 난이도가 정말정말 많이 높았다. 1차와 동일하게 1시간 동안의 면접이었는데, 1차 면접도 난이도가 꽤 있었는데 2차 면접은 하나 하나 쉬운 질문이 없었다. 내가 서류에서 주로 소재로 썼던 프로젝트가 실제로 내가 온전히 구현한 것인지 검증을 위해서 세부적인 내용도 물어보셨고, HW 스펙까지 구체적으로 여쭤보셨다. 그 외에 CS 질문에서도 정말 깊은 질문들이 들어왔는데 OS 질문도 내가 예상했던 depth보다 2~3번은 더 들어갔기에 정말 식은 땀을 흘리며 답변했다. 내 답변이 맞았음에도 “정말 그런가요? ~~한 경우에 있어서 ~~하지 않나요?”와 같이 내 답변이 오답이라고 생각되듯이 반응을 해주시는 분이 계셔서, 또 정말 설득력있게 말씀해주셔서 듣고 보니 내 답변이 틀린 것 같다. 하며 정정하기도 했다. 임기 응변을 어떻게 하는지, 어느정도 깊이있는 이해를 하고 있는지를 검증해보시는 것 같았다. 네트워크 질문도 간단한 수준이 아니라 정말 깊게 들어왔다. 1차 면접관 분이 “네트워크 질문이 없어서 아쉬웠다”는 피드백을 꼭 전달해달라고 했다며 웃으셨는데, 그 당시 나는 이미 멘탈이 나간 상태였기에 과거의 나를 정말 때려주고 싶었다… 솔직히 나는 학부 과정에서 네트워크 수업을 1도 듣지 않았다(특이하게 숭실대 컴퓨터학부는 네트워크가 전공필수 과목이 아니다!). 그래서 면접 대비로 유튜브에서 강의를 들으며 기초를 다졌었는데, 잘 모르는 상태에서 강의 하나만 듣고 기초를 탄탄하게 쌓았다며 자만했던 상태였다. 그런데 면접에서 들어오는 네트워크 질문은 시작부터 매우 높은 난이도였고, 그래서 제대로 답한 것이 정말 1도 없었던 것 같다. 그래서 정말이지 답도 잘 못한 것이 많았고, 아예 틀린 이야기를 하거나 모른다고 얘기한 것도 많아서 후회가 많이 되는 면접이었다.
그럼에도 그나마 긍정적인 부분이라면 모르는 질문에 대해서도 최대한 어떻게든 답을 해내려고 시도하고 고민했다는 것이었고, 어찌저찌 다소 틀릴지언정 대답은 했다는 것이다. 또 기술 질문을 주고 받다보니 면접 시간이 초과되어 급하게 마지막 종료 직전에 인성 질문을 짧게 몰아서 했던 것 같다. 면접 시간이 부족한 것이 일반적으로는 긍정적인 시그널이라고 하더라.
합격
라인 플러스 최종 합격 메일 |
최종 합격 발표는 2차 면접 기간 후 약 일주일 뒤에 메일로 받았다. 일반적으로 오후에 메일을 보내는 것과 달리 이번에는 오전에 메일이 발송되었다! 첫 합격 발표였기에 정말 기뻐했었고, 실감이 안나기도 했다. 사실 지원 당시에는 경험을 해보자는 마인드였고, 최종 합격까지는 기대도 하지 않았었는데 좋은 결과를 받게 되어 놀라웠다. 이후에는 면접이든 결과 발표 대기든 맘 편히 지낼 수 있었던 것 같다. 붙어놓은 곳이 있고, 붙은 곳이 또 라인이니까!
합격 후 HR에서 축하 전화를 주셨고, 입사 일정을 조율하는 과정을 거쳤다. 이후 축하 선물(꽃다발 + 샴페인)을 보내주셨는데, 이는 훌륭한 인재를 키워주신 부모님께 보내드리는 감사의 선물이라고 했다. 부모님이 받고 정말정말 좋아하셔서 나도 많이 뿌듯했다!
라인 플러스 입사 축하 꽃다발 & 샴페인 |
이후 사용할 업무 기기 및 여러 기념품들을 보내주셨는데, 디자인이 정말 이뻤다. 특히 이름표나 티셔츠가 좋았다. 라인의 고유 색상인 초록색이 정말 디자인적으로 이쁘다는 생각이 들었다.
라인 플러스 굿즈 |
Kakao
2021년 하반기 카카오 신입 공개 채용 공고 |
카카오는 블라인드 채용으로 유명하다. 어떠한 서류 작성도 받지 않고 바로 코딩테스트를 응시할 수 있어 간편 지원이 가능했다. 카카오 공동체 내 여러 회사에서 모집을 했는데, 모집 회사는 1지망 / 2지망을 선택할 수 있었다. 사실 코딩테스트 경험 삼아 지원을 한 것이기 때문에 별 고민을 하지 않고 카카오 본사 / 카카오 엔터프라이즈 를 선택했다. 본사를 고른 것은 대단한 이유가 있어서가 아니고, 그저 안에서 ML을 사용하는 어느 팀이라도 있지 않을까? 하는 안일한 생각으로, 엔터프라이즈는 AI 연구 및 기술 개발을 활발히 하는 회사이므로 이를 지원했다.
1차 코딩테스트
카카오 공채는 서류 작성 없이 바로 응시가 가능하기 때문에 전국민 코딩테스트라고도 불리운다. 그러나 그만큼 코딩테스트 난이도가 극악으로 유명하다. 국내 IT 기업의 공채 코딩테스트 중 압도적으로 가장 높은 난이도를 자랑한다. 나는 사실 2021년 상반기에 카카오 인턴십 코딩테스트에 응시한 적이 있었다(카카오는 대개 상반기는 대규모 채용 연계형 인턴십으로 공채를 대신한다). 그런데 매우 어려운 난이도 때문에 커트라인에 0.5솔 정도 부족해 탈락을 했었다. 사실 내가 남들처러 코딩테스트를 열심히 대비하면서 백준 문제를 꾸준히 풀고 이런 것이 전혀 아니었기 때문에 당연한 결과라 생각하고 받아들였던 것 같다. 그래서인지 이번 코딩테스트에서도 당연히 탈락을 예상하고 있었고, 큰 기대를 하지 않고 편한 마음으로 응시했다.
하필 라인 공채 코딩테스트와 날짜가 겹쳤는데, 그나마 다행인 것은 시간은 겹치지 않았다는 것이다. 그런데 라인 공채 코딩테스트를 오전에 2시간 보고, 그 이후 1~2시간 지난 뒤에 바로 5시간의 카카오 공채 코딩테스트가 진행되는 매우 빡빡한 일정이었다. 그래도 라인과 마찬가지로 별도의 캠 녹화 및 화면 공유를 요구하지는 않아 편하게 시험을 응시했다.
카카오는 5시간 내 총 7문제가 주어지며, 특이하게 모든 히든케이스에 대한 통과 여부를 보여준다. 즉, 제출 == 정답 이 성립한다. 그래서 내가 찾지 못한 히든 케이스가 있지는 않을까 하는 불안감은 없다. 난이도는 내가 생각했던 것보다는 조금 더 수월했는데, 이후 다른 분들의 평을 들어보니 대체로 같은 생각을 하셨다. 평소 카카오 공채 코딩테스트에 비해서는 난이도가 낮았다. 일반적으로 1~2번은 정말 수월하게 풀리는 단순 구현문제이고, 이후 2~3문제 정도가 고난이도 문제, 이후 2~3문제 정도가 초고난이도 문제이다. 나는 3번까지 수월하게 풀고, 4번에서 막혔었는데 꽤 오랜 시간 공들여가며 풀었음에도 자꾸 오답이 나와 애를 먹었다. 최종적으로는 코드가 좀 지저분해지더라도 직접 sort를 구현해서 해결했었는데, 이 문제에만 2시간 가까이 쏟았던 것 같다. 5~7번은 일반적으로는 절대 알 수 없는 알고리즘을 사용해 풀어야 하는 것 같았고, 구현의 난이도도 정말 높아보였기에 애초에 내가 풀 수 있는 문제가 아니라 판단하고 포기했다. 특이하게도 6번의 경우 정확성 점수 / 효율성 점수가 구분되는 문제인데, 정확성 점수를 획득하는 것은 대학교 1학년 수준만 되더라도 손쉽게 해결 가능한 수준이었다. 효율성은 부분합 이라는 매우 특이한 알고리즘을 사용해야 한다고 이후에 들었는데, 그 당시 나는 그런 알고리즘의 존재 자체도 몰랐으므로 당연히 해결할 수 없었다. 최종적으로 4.5문제를 해결했고(0.5는 정확성만 해결한 6번) 다들 커트라인을 4~4.5로 예상했으므로 합격을 예상하고 있었다.
결과 발표는 일주일 뒤에 메일로 받았다.
2차 코딩테스트
카카오는 독특하게 2차 코딩테스트를 따로 본다. 1차 코딩테스트 이후 2주 뒤에 보는데, 정확히는 30분의 필기 테스트 + 5시간의 코딩테스트이다. 필기테스트는 라인의 것과 유사한 방식인데, 검색해 본 결과 10문제의 적은 문제이면서 난이도가 크게 어렵지 않다는 후기가 대부분이어서 걱정을 하지 않았다. 그런데 막상 시험 당일에 느낀 체감 난이도는 정말 어려웠다!!! 라인 필기테스트보다 훨씬 더 어려웠다. 내가 가장 취약한 CS 과목인 네트워크 / 알고리즘 문제가 다수 있어서 그랬는지도 모르겠다.
2차 코딩테스트는 일반적인 알고리즘 문제 풀이(Problem Solving)이 아니라, REST API를 활용한 시스템 구현이다. 주어진 문제에 대해서 REST API 명세가 주어지고, 이를 server에 전송해 그 결과를 종합하며 실시간으로 랭킹이 갱신되는 competition 방식이다. 그래서 정말 재미있게 문제를 풀었다. 문제는 회고 작성 당시에는 아직 공개가 되지 않아 언급이 불가능하지만, 추후 카카오 공식 기술블로그에 공개될 예정이다. 현재 문제 및 공식 풀이는 카카오 기술블로그에 공개되었고, 나의 풀이 code도 GitHub에 공개했다. 100점 만점이라고 한다면 100점을 맞는 것은 불가능하고, 최대한 높은 점수를 획득할 수 있도록 좋은 logic을 고민하며 짜야 한다. 나는 현재의 추정치 값을 그대로 사용하지 않고, 신뢰도(reliability)를 부여한 뒤 이를 곱하는 방식으로 최대한 ground truth의 error를 줄여나가는 방식으로 접근했다. 최종적으로는 약 3시간 만에 매우 높은 점수를 달성해서 합격 안정권이라는 생각이 들었고, 이후에는 code 품질을 높이는데 시간을 썼다. 최종적으로 약 1200명 중 60등대에서 종료되었다.
결과 발표는 많이 늦었는데, 약 3주 가까이 지난 시점에 메일을 받았다. 주변의 얘기를 종합해보니 생각보다 매우 많은 인원을 합격시켰다. 코딩테스트 결과를 종합해 처음 지원 당시 지망했던 1지망 / 2지망 회사 중 한군데에 배정했다. 나는 카카오 본사를 1지망으로 지원했었기에 그 이후로는 카카오 본사와 채용 절차가 진행되었다.
서류
카카오 채용은 코딩테스트 이후에 처음으로 서류를 작성한다. 그 전에 본사의 경우 FE / BE / Data 중 1개의 분야를 선택하도록 했는데, 나는 Data를 선택해 지원했다.
- 서류 문항
- 졸업(예정) 시기 & 입사 가능 시기
- 개발과 관련하여 관심있게 들었던 전공과목 혹은 외부강의를 기재해주세요.
- 자신의 열정과 기술적인 전문성을 나타낼 수 있는 경험/이력/생각을 자유롭게 기술해주세요.
- 자신이 다뤄본 경험이 있는 플랫폼이나 프로그래밍 언어에 대해 1~4 단계로 표현해주세요.
(예 : iOS - 1 / 안드로이드 - 4 / Java, Spring - 3)
서류 작성 마감 후 약 3일 뒤에 면접 일정이 안내되었다. 면접은 코딩테스트 결과 발표 후 약 2주 뒤부터 4일 간 진행되었다.
1차 면접
1차 면접은 면접관 2명이 들어오셔서 60분동안 기술 면접을 진행했다. 일반적으로 공채 면접에서는 CS 주요 5대 과목 중 알고리즘, 자료구조에 대해서는 잘 물어보지 않는다고 한다. 특히 알고리즘이 심한데, 공채 프로세스 중 코딩테스트를 거치면서 이는 이미 검증되었다고 보기 때문이다. 이러한 사실을 나는 알고 있었기에 운영체제, 네트워크, 데이터베이스에 대한 준비는 했으나 알고리즘 및 자료구조에 대해서는 면접 전까지 전혀 생각도 하고 있지 않았다. 이 시기는 내가 지원했던 모든 회사들의 코딩테스트가 끝난 후였으므로 알고리즘은 머릿속에서 아예 지워놓고 있었다.
그런데 막상 본 면접에 들어가니 알고리즘에 대해서 엄청나게 많은 질문을 해주셨다. 카카오는 유독 코딩테스트 난이도가 극악이었고, 또 코딩테스트를 2번이나 볼 만큼 알고리즘에 진심인데, 면접에서도 알고리즘 위주의 질문만 들어오니 정말 문제 해결 능력을 중요시 하는 회사라는 생각이 들었다. 평소에 당연히 알고 있던 개념이었음에도 완전히 잊어버려 제대로 답을 못하거나 틀리게 대답한 내용들이 많이 있었고, 때문에 나는 면접 결과에 회의적이었다. 그래도 아주 조금 나왔던 OS 질문이나 인턴십 관련 경험 질문에 대해 답변을 잘 했다는 점, 또 카카오 공동체 내의 카카오브레인에서의 인턴십 경험 등 때문에 합격할 수 있었던 것 같다.
결과 발표는 1차 면접 기간이 끝난 후 약 5일 뒤에 나왔다.
2차 면접
2차 면접은 1차 면접 후 2주 뒤에 3일간 진행되었는데, 40분의 인성면접이라는 안내를 받았다. 인성 면접에 대한 경험이 전혀 없었고, 또 준비한다고 준비되는 내용도 아닌 것 같아 부담을 갖지 않고 편하게 기다렸던 것 같다.
면접관은 1차 때와 동일하게 2명이 들어오셨는데, 좀 더 리더급 분들이 들어오셨다. 주로 두 분이 파트를 나눠가며 질문을 해주셨는데, 앞에 먼저 질문을 해주셨던 면접관 분은 내 답변을 마음에 들어하셨고, 학부 생활 도중 배웠던 내용들을 말씀드리니 학교의 커리큘럼이 정말 마음에 든다고 칭찬까지 해주셨다. 하지만 다른 면접관 분은 매우 시니컬하셨고, 그동안의 내 성장 과정 및 히스토리를 언급하시면서 많은 비판을 하셨다. 처음 겪어보는 면접 방식이라 매우 당황했고, 솔직히 당시에 화가 나기도 했었는데, 그럼에도 인정할 부분은 인정하면서도 해야 할 말은 빠뜨리지 않고 다 했던 것 같다.
결과 발표는 2차 면접 기간 후 약 일주일 뒤에 나왔다.
합격
카카오 최종 합격 메일 |
라인 공채 합격 발표 후 바로 다음날 카카오 합격 발표를 받았는데, 두 회사 사이에서 고민을 많이 했었다. 정말 감사하게도 입사 고민을 하니 각 회사에서 내가 배치될 팀의 리더 분들께서 전화를 주셨고, 맡을 업무에 대해서 설명도 주셨다. 둘 다 내가 원하던 업무에 가까웠기에 정말 많은 고민을 했는데, 라인의 완전 재택 근무가 큰 영향을 끼쳐 라인을 선택했다.
Naver
2021년 하반기 네이버 신입 공개 채용 공고 |
네이버는 공채 모집이 세 회사 중 가장 늦었다. 따라서 이후 모든 전형도 늦게 진행되었다. 대신 코딩테스트 1회 이후 바로 면접으로 진행된다는 점이 차이가 있다. 즉, 다른 회사 대비 전형이 1단계 짧다.
서류
이전의 타회사 공채 지원에서의 문항과 많이 유사했기에 이를 활용해서 금방 작성할 수 있었다. 인턴십 프로젝트 위주로 작성했다.
- 서류 문항
- 다음 중 자신 있는 분야를 우선순위 별로 작성해 주세요. 최대 3순위까지 작성 가능합니다. ■ FE 개발 ■ iOS 개발 ■ Android 개발 ■ BE 개발
- 작성예시 : 1) FE 개발 2) iOS 개발 3) BE 개발 (← 꼭 예시와 같이 작성해 주세요) #채용전형 진행에 참고할게요 #잘 어필할 수 있는 분야로 작성해 주세요
- 가장 자신 있는 또는 좋아하는 컴퓨터공학 관련 이수 과목명과 성적, 그리고 해당 과목을 택한 이유를 각각 기재해 주세요. 최대 6개까지 작성해 주세요. 비전공자여서 학교에서 이수한 과목이 없을 경우, 개발자가 되기 위해 별도로 공부했던 컴퓨터공학 관련 학습내용을 작성해 주세요.
- 작성예시 : 컴퓨터구조 / A / 컴퓨터 구조 전반에 대한 탄탄한 기본기를 갖출 수 있는 수업이었습니다. #관심분야와의 연관성 #기본에 대한 관심 #탄탄한 기본기
- 기술적으로 어려운 문제를 해결한 경험을 상세히 작성해 주세요. (학교수업/프로젝트/경진대회/대외활동 등) 맞닥뜨렸던 문제를 ‘구체적’으로 기술하고, 본인의 접근 방법과 해결 과정, 그리고 실제 결과를 ‘상세히’ 기술해 주세요. 문제를 잘 해결하셨다면 그 경험에서 아쉬운 점 혹은 더 나은 방법은 없었을지에 대한 고민 과정을 함께 작성해 주세요. 해결하지 못한 경험이더라도 해결을 위해 얼마나 깊이 있게 고민을 했는지 그 과정에 대해 이야기해 주세요. 코드로 설명해 주셔도 좋습니다. #해결 못한 경험도 좋아요 #과정을 보고 싶어요
코딩테스트
코딩테스트는 총 2시간동안 4문제를 푸는 시험이었다. 라인, 카카오와는 다르게 프로그래머스 상의 화면 공유 및 캠 녹화가 필수적이었다. 부정 행위를 확실히 방지하고자 하는 것으로 보였다. 라인과 마찬가지로 모든 히든 케이스에 대한 결과를 보여주지 않으므로 제출 != 정답 다.
난이도는 라인, 카카오 대비 크게 어렵게 느껴지지는 않았다. 4문제 중 3문제를 무난하게 풀었고, 전략적으로 오래 걸릴 것 같은 3번을 넘기고 4번을 풀었다. 4번은 특정 알고리즘을 알면 접근 방법이 명확해지는 문제였는데, 해당 알고리즘이 요새 출제 빈도가 높다고 주워들은 바가 있어 알고 있었기에 다행히 금방 풀 수 있었다. 2시간이라는 시간이 매우 짧아 시간 분배가 중요하다는 느낌을 받았다.
합격 발표는 약 3주 뒤에 나왔는데, 단순하게 코딩테스트로 합불을 가리지 않고 서류 문항까지 함께 고려해 선발한다고 들었다. 그래서 코딩테스트 커트라인이 명확하지 않은 편이다만 그럼에도 대개 2문제 이상 푼 경우 모두 면접에 간 걸로 알고 있다.
1차 면접
면접은 코딩테스트 후 5주가 지난 뒤에야 진행되었다. 매우 오랜 시간이 걸렸다.
네이버는 면접에서 사용할 면접 키트를 배송해준다. 면접 키트에는 노트와 펜이 들어있는데, 해당 펜을 컴퓨터와 블루투스로 연동한 뒤에 노트에 펜으로 작성을 하면, 컴퓨터 상에서 동일하게 출력된다. 이를 활용해 면접관 분들이 화면 공유로 내가 노트에 필기한 내용을 바로바로 확인하실 수 있다. 그 외에도 네이버 웹툰 쿠키 쿠폰, 바이브 쿠폰 등 여러 서비스 이용권들을 함께 받아서 잘 사용했다.
그 외에 면접 이전에 온라인으로 기업문화적합도 라는 인성검사 비슷한 설문조사를 진행하는데, 매우 특수한 경우가 아니면 이로 인해 불이익을 받는 경우는 없는 것 같다.
네이버 1차 면접은 여타 공채 면접과 다른 점이 있다. 일반적인 기술 면접 질문도 있지만, 창의 수리 문제가 포함된다. 정확히는 면접 진행 방식이 면접관 분께서 여러 문제 중 1개를 뽑아 피면접자에게 제시한 후, 피면접자는 이를 읽고 푸는 방식이다. 문제는 CS 문제일 수도, 손코딩 문제일 수도, 창의 수리 문제일 수도 있다. 1시간 30분동안 3명의 면접관 분들께서 번갈아가며 문제를 제시해주신다. 문제 제시 이전에 잠깐동안 각 면접관 분들께서 돌아가며 자기소개서 기반으로 궁금하신 점을 여쭤보시는 시간도 있다. 내 면접관 분들은 모두 CLOVA 소속이셨는데, 그래서인지 인턴십 프로젝트에 대해서 더 정확히 이해해주시고 질문도 많이 해주셔서 감사했다.
나는 사실 일반적인 공채에서 진행하는 CS 개념 질문에 대해서 꽤 자신이 있는 편이다. 그런데 네이버 면접의 CS 질문은 그런 방식과는 다소 차이가 있어 적응하기 힘들었다. 그래서인지 잘 대답하지 못한 부분도 있다. 손코딩 문제는 매우 쉬운 난이도였는데, 주 사용 언어인 python을 사용했으나 객체지향 문법을 잊어 요구 사항을 작성하지 못하기도 했다. 하지만 다행인 점은 면접관 분들께 문법을 잊었다 말씀드리니 개념에 대해서 여쭤보시고 넘어가주셨다.
창의 수리 문제가 정말 당황스러웠는데, 이건 어떻게 대비한다고 대비가 되는 것도 아니다. 간단하게 생각하면 중학교 수리 문제 수준으로 단순한가 싶다가도, 깊이 따져보면 생각할 부분이 많다. 면접관 분들은 내가 문제 푸는데 얼마나 오래 걸리든 신경쓰지 않고 기다려주신다. 하지만 피면접자는 당연히 초조해질 수밖에 없고, 평정심을 잃으면 머리도 더 안돌아간다. 나는 그러지 못했지만 나름의 팁이라면, 문제가 모호할 경우 문제에 대한 질문을 많이 하면서 문제를 구체화시키는 것이 중요하다. 또, 도저히 풀리지 않을 문제 같다면 힌트를 요청드려도 도움을 주신다. 문제 정답 여부를 보기보다는 풀이 과정을 본다는데, 정말로 그럴 목적이라고 생각된다.
문제들을 매우 잘 못풀었었기에 나는 탈락이라고 생각하고 있었다. 그런데 믿기지 않게도 합격했었다!! 그 당시 이미 라인 / 카카오에 최종 합격을 한 뒤였기에, 면접을 더 진행할지 잠깐 고민했었으나 주어진 기회를 버리는 것은 아쉽다는 생각이 들어 2차 면접도 진행하기로 마음 먹었다.
결과 발표는 1차 면접 기간 후 2주 뒤에 나왔다.
2차 면접
2차 면접에 응시한다고 하니 면접비로 네이버페이 5만원을 받았다. 네이버가 여타 회사 대비 이런 쪽으로 많이 챙겨준다는 긍정적인 인상을 받았다. 1차 면접 때 받은 웹툰 쿠키도 정말 잘 썼다!
2차 면접은 1차 면접 후 3주 뒤에 진행되었다. 1시간 동안 2명의 면접관 분과 진행했는데, 역시나 책임 리더 분들이 들어오셨다. 지금까지 가장 느낌이 좋았던 면접을 꼽으라면 네이버 2차 면접이 좋았다! 질문 주신 내용에 대해 매우 만족스러운 수준으로 막힘 없이 다 대답했다. 특히나 한 면접관 분께서는 내가 진행했던 인턴십 프로젝트를 매우 만족해하시면서 본인 부서의 업무와 유사한 점이 많다고 얘기해주셨고, 나중에는 2개월동안 혼자 진행한게 맞냐고까지 물어보셨다. 물론 사실이었고 프로젝트 관련 깊이있는 기술 질문에 대해서 잘 대답했기에 의심하는 것은 아니셨고, 난이도나 볼륨이 크다고 생각하셨던 것 같다. 인턴십 때 밤새워가며 했던 걸 생각하며 뿌듯함을 느꼈다.
결과 발표는 면접 종료 후 일주일 뒤에 나왔다.
합격
네이버 최종 합격 메일 |
네이버는 부서 및 직무 배치가 결정되지 않은 상태에서 우선 입사시킨 후, 내부에서 지원을 받고 배치하는 과정을 거친다고 한다. 즉, 부서 배정에 대한 리스크가 있는 선택이었다. 그래서 사실 입사를 하지 않는 쪽으로 기울었었는데, 네이버 HR팀에서 많은 설득을 해주신 덕분에 네이버로 최종 결정을 하게 되었다.
네이버는 최종 합격과 동시에 네이버페이 20만원을 준다. 단순 신입에게도 여러모로 지원을 아끼지 않는다는 생각이 들었다. 고급진 꿀수제청 세트도 선물로 보내주셨는데, 안타깝게도 사진도 찍기 전에 가족들이 맛있게 먹는 바람에 사진이 남아있지 않다.
네이버는 공채 온보딩 중 직군(FE/BE/AOS/IOS/DE/ML 등)과 조직에 대해 매우 상세하게 소개를 하고, 지망을 조사해 배치한다. 이 과정에서 원하지 않는 직군이나 조직에 배치되지는 않을까 걱정할 수밖에 없었다.
정말 다행히도, 내가 입사 전부터 가장 희망하던 Search CIC에 ML 직군으로 배치되었다. 조직과 직군 모두 내가 1지망으로 작성했던 곳이어서 매우 만족했다!
취준 팁
-
멘탈
인턴십에서 전환에 실패하고 좌절을 했었지만, 곧바로 멘탈을 다잡고 준비를 했던 덕분에 시간을 낭비하지 않고 효율적으로 준비할 수 있었다. 멘탈 관리에 있어서 따로 요령이 있던 것은 아니지만, 취준에 있어서는 어느 정도의 자기합리화 + 행복회로가 필요한 것 같다.
-
코딩테스트
PS(알고리즘 문제 풀이)는 따로 취준 때 대비를 하지 않아서 걱정이 있었지만, 기본적으로 평소에 코딩을 많이 하면서 개발 피지컬을 키웠었고, 이전에 교내 PS 대회(장학금을 위한!!)를 위해 완탐/시뮬/BFS/DFS 와 같은 문제들만 한 달 동안 주구장창 풀었던 경험이 이후 많은 도움이 되었던 것 같다. 따로 고난이도 알고리즘을 공부하고 외우는 것보다는 기본 구현 능력을 평소에 키웠던 것이 지름길이었던 걸로 생각한다.
-
기술 면접
기술 면접 준비는 학교 수업을 정말 충실히 들었던 것이 정답이었다. 내 개인적으로는 ML 공부를 많이 했지만 학교 수업을 허투로 들은 적은 없었다. 특히 1학년 때부터 4학년까지 이어지는 C언어 → 리눅스 시스템 프로그래밍 → 운영체제 → 시스템보안 과 같은 과목들을 시험을 위한 단순 암기가 아닌 이해를 하려고 하면서 깊게 공부를 했었는데, 이 것이 정말 많은 도움이 되었던 것 같다. 만약 비전공자라면, 주요 CS 과목에 대해 매우 깊이 있는 공부를 해야 하고, 평이 좋은 강의나 서적을 찾아보는 것이 좋다. 또, 공부할 때 단순 암기는 절대 지양하고 원리를 이해를 하는 것이 중요하다. 면접 일정이 잡힌 뒤에는 각종 깃허브에 공개된 기술 면접 질문지들을 종합해 정리했는데, 이 때 질문에 대한 적혀있는 답변을 단순히 암기하는 것이 아니라 자기 스스로의 말로 풀어 작성해보고 직접 말해보는 연습이 필요하다고 생각한다. 또 꼬리 질문이 계속 들어오기 때문에 적힌 질문들에서 더 깊은 depth까지 가면서 스스로 질문을 만들어보고 답변을 달아보는게 좋다. 진행했던 프로젝트가 있다면, 해당 프로젝트에서 겪었던 어려움들과 해결방법에 대해서 제시할 수 있어야 하고, 또 진행 과정에서 발생했던 모든 의사 결정(언어 / 프레임워크 / 알고리즘 / 아키텍쳐 등)에 대해 근거를 들 수 있어야 한다(수치 근거라면 최고).