2021 카카오 인턴 합격 후기
2021 카카오 여름 인턴 합격 기념 약 6개월 동안의 취준 기간을 되돌아보려고 한다. IT기업 개발 직군을 준비하는 많은 취준생들에게 도움이 되길 바라며 카카오의 전반적인 채용 프로세스와 나는 어떻게 준비했는지 정리해보았다 :)
나는 어떤 사람인가
스타트업에서 직접 서비스를 개발해보면서 내가 가진 기술력으로 세상에 선한 영향력을 끼치고 싶다는 생각이 들었다. 특히 데이터 엔지니어가 되어 더 많은 유저가 서비스 내에서 맞춤형 서비스를 경험하고, 데이터에 기반한 의사결정을 할 수 있도록 하고 싶었다. (스타트업 인턴 생활이 궁금하다면 인턴 회고록을 참고하세요!)
나의 장점
내가 생각했을때 나의 장점은 ‘꾸준함’과 ‘겸손함’ 이다. 이러한 나의 장점은 끊임없이 공부해야하는 개발자에게 가장 필요한 자질이라고 생각한다. 본인의 실력에 겸손하기 때문에 부족함을 느낄 수 있고, 부족함을 느끼기 때문에 꾸준히 공부할 수 있기 때문이다. 개인적으로 나는 개발자라는 직업과 찰떡인 사람이라고 생각한다 :)
회사 선택 기준
- 회사가 가진 기술력/데이터로 새로운 가치를 창출하고 선한 영향력을 끼치는가
- 함께 공부하고 성장하는 동료/문화가 있는가 (ex. 기술 컨퍼런스/블로그, 사내 스터디)
- 대용량의 데이터를 다룰 수 있는가 (하둡을 사용하는 정도)
나에게 직장은 일상의 대부분을 보내는 곳이자 자아실현을 하는 곳이기 때문에 위 기준을 바탕으로 회사에 지원하였다. (주로 IT 대기업에 지원하였다.)
상반기다보니 신입보다 채용 연계형 인턴 공고가 많았고, 나는 둘 다 지원했다. 인턴 채용은 인턴 기간동안 전환 여부에 대한 불안감이 있지만, 신입 채용보다 오랜 시간 나의 장점/실력을 보여줄 수 있기 때문에 정직원으로 전환될 자신이 있었다.
카카오
카카오는 상반기에 채용 연계형 인턴, 하반기에 신입 공채를 통해 신입을 채용하고 있다. 수시 채용으로 신입을 뽑기도 하지만 지원하는 팀에서 사용하는 기술 스택에 대한 깊은 이해를 요구하기 때문에 공고에서 요구하는 역량이 준비되어있다면 지원해보는 것도 좋을듯 하다. (수시 채용은 쟈미님의 공채없이 카카오 개발자 취준기를 참고하세요!)
카카오는 나에게도 가고싶은 회사 중 한 곳이었고, 공고가 떴을때 망설임없이 바로 지원했다. 참고로 스타트업에서 데이터 엔지니어 인턴으로 근무했지만 hadoop, spark, hive와 같은 하둡 에코 시스템을 사용해본 경험이 없기 때문에 카카오 수시 채용으로 지원하기 어렵다고 판단하여 지원하지 않았다.
코딩 테스트
학교 다닐 때부터 알고리즘 공부를 좋아하는 편이 아니었기 때문에 작년 하반기부터 취준을 위한 알고리즘 공부를 시작했다. 그때 나의 실력은 프로그래머스 기준 level 1과 쉬운 level 2 정도 풀 수 있는 수준이었다.
1) 알고리즘 책으로 기초 다지기
알고리즘 공부를 어떻게 시작하면 좋을까 고민하던 중에 ‘파이썬 알고리즘 인터뷰’ 책을 추전받아 바로 구매하였다. 책에 나와있는 leetcode 문제를 혼자 풀어보고 책의 해설과 비교해보면서 전체적인 자료구조/알고리즘을 복습했다. 책의 내용을 완전히 내 것으로 만들기 위해 3회독 정도 하였고, 책에서 스스로 풀지 못한 문제들은 포스트잇으로 표시한 뒤 까먹을쯤 다시 풀어보았다.
2) 자주 출제 or 부족한 알고리즘 문제 뿌수기
동빈나님의 코딩테스트 공부 순서 영상을 참고하여 자주 출제되거나 잘 못푸는 알고리즘 문제만 백준에서 집중적으로 풀었다. 나같은 경우 탐색(dfs/bfs/다익스트라) 유형을 거의 풀지못했기 때문에 약 3개월동안 매일 3시간씩 탐색 문제만 뿌셨다. 백준 사이트에서 탐색 문제만 골라둔 문제집을 북마크 해놓고 하나씩 풀었다. 이렇게 풀다보니 탐색 문제가 더이상 두렵지 않고, 오히려 나를 합격선으로 이끌어주는 천사 문제가 되었다.
참고로 백준에서 문제를 풀 때 1시간 정도 고민해보고 풀이방법이 생각나지 않으면 바로 solved.ac에서 해당 문제의 난이도를 찾아보았다. 만약 난이도가 플래티넘 이상이라면 코딩테스트에서 출제되기 어렵다고 생각해서 풀지않고 넘어갔다. (코딩테스트는 100점을 맞기 위한 시험이 아니다!!)
3) 실제 시험처럼 다양한 문제를 시간재고 풀어보기
어느정도 알고리즘 문제에 익숙해진 후에는 무조건 시간을 재면서 정해진 시간동안 문제를 빠르고 정확하게 푸는 연습을 했다. 예를 들어, 다음주에 볼 코딩테스트가 2시간에 4문제를 풀어야 한다면 프로그래머스의 고득점 키트에서 서로 다른 유형의 4문제를 골라 2시간을 재고 풀었다.
시험때 긴장하는 스타일인 나에게 실제 시험처럼 정해진 시간동안 정해진 문제를 푸는 연습은 정말 많이 도움되었다. 이렇게 공부하다가 만약 자주 틀리는 유형이 생기면 다시 백준에서 해당 유형 문제만 골라서 풀었다.
4) 코딩테스트 사이트에 익숙해지자
보통 코딩테스트 2–3일 전에 메일로 테스트 링크를 받게 된다. 회사/전형마다 코딩테스트를 보는 사이트(프로그래머스, hackerrank, codility)가 모두 다르기 때문에 시험전에 시험볼 사이트에 익숙해지는 것이 중요하다. 또한 테스트마다 외부 ide 사용/인터넷 검색/화상감독 여부 등 환경이 모두 다르기 때문에 내 실력을 최대한 발휘하기 위해 시험 전에 꼼꼼하게 확인하여 대비했다.
카카오 대비
카카오 코딩 테스트는 모든 IT기업의 코딩 테스트 중에서 가장 어렵지만 가장 친절하다고 생각한다. 그 이유는 프로그래머스에 역대 기출 문제가 올라와있고, 카카오 테크 블로그에서 공식 해설을 제공하기 때문이다.
카카오 코딩테스트 일주일 전부터 역대 기출 문제를 반복해서 풀면서 모든 기출 문제마다 접근 방식을 정리했다. 해당 문제는 어떤 알고리즘 문제이고, 왜 이렇게 풀었는지 등을 정리하면서 비슷한 문제가 응용되어도 풀 수 있게 대비하였다. 스스로 혼자 풀어보고, 공식 해설과 비교하면서 최대한 출제자의 의도대로 문제를 풀기 위해 노력했다.
카카오 기출 문제를 살펴보면 대부분 아래 카테고리 내에서 출제된다.
- 문자열
- 완전 탐색
- 이분 탐색
- 최단거리
- (가끔) 투포인터 / DP / union-find / 트라이
이중에서 본인이 부족한 부분이 있다면 해당 부분을 보충하고, 기출 문제를 반복해서 풀어보는 것을 추천한다.
서류 작성
이번 카카오 인턴 전형은 작년과 달리 코딩테스트 합격자만 서류를 제출하였다. 서류는 크게 자기소개와 프로젝트 수행 이력으로 구성되어있었다.
자기소개에는 내가 어떤 사람이고 개발자가 되기 위해 어떤 노력을 해왔는지를 중점적으로 작성하였다. 블로그에 작성한 글 중에서 어필하고 싶은 글이 있다면 해당 글의 링크도 함께 제출하였다.
프로젝트 수행 이력에는 인턴때 진행한 프로젝트 2개와 토이 프로젝트를 적었다. 내가 어떻게 문제를 접근하고 해결하는지 어필하기 위해 단순히 기술적으로 어떤 기능을 구현했는지(What)만 나열하는 것을 지양하고,
- 상황 / 목표
- 해결 방식 / 기술 아키텍쳐
- 결과 / 성과 / 느낀점
Why와 How를 포함해서 위와 같이 세부분으로 나눠 작성하였다.
면접
대부분의 기술면접은 일대다 + 1시간 + 비대면(코로나로 인해) 으로 진행된다. 나같은 경우 깔끔한 배경과 조용함을 위해 집 근처 스터디룸을 빌려 면접을 봤다.
내가 생각했을때 기술면접 꿀팁은 면접관과 대화한다고 생각하고 쫄지않는 것이다. 면접관은 내가 무엇을 잘하는지 궁금한 것이지 나를 떨어뜨리려는 분들이 아니다!
1) CS지식 탄탄하게 공부하기
인턴/신입 채용 면접에서는 기본적인 cs지식을 물어보기 때문에 최대한 깊고 넓게 공부해야 한다. 보통 자료구조, 알고리즘, 네트워크, 운영체제, 데이터베이스 내에서 물어본다.
처음에는 한재엽님의 interview question for beginner를 바탕으로 각 과목별 자주 출제되는 개념 위주로 공부했다. 하지만 면접에서는 공부했던 것보다 훨씬 더 깊게 꼬리에 꼬리를 물고 물어보셨고, 이것만으로는 부족하다는 생각이 들었다.
전공 과목을 처음부터 다시 복습하자는 마음으로 KOCW에서 반효경 교수님의 운영체제와 이석복 교수님의 컴퓨터네트워크 강의를 들었다. 면접 전에는 강의를 들으면서 정리해둔 내용을 바탕으로 교수님처럼 설명하는 연습을 했다. 해당 과목의 전체적인 흐름을 알고있으니 확실히 면접에서 덜 외운듯하고 깊이있는 답변을 할 수 있었다.
2) 자소서/포트폴리오에 적힌 내용 공부하기
- 왜 해당 기술을 사용했고, 왜 그렇게 구현했는가
- 사용한 기술의 특징 및 장단점
- 어떤 기술적 어려움이 있었고, 어떻게/왜 그렇게 해결했는지
- 아쉬운점 / 다시 진행한다면 어떻게 할 것인가
면접을 앞두고 위 질문들을 바탕으로 자소서/포트폴리오에 적은 프로젝트들을 정리했다. 특히 답변 키워드를 바탕으로 꼬리질문 형식으로 최대한 깊게 공부했다.
나 같은 경우 자소서에 인덱스 생성과 쿼리 최적화로 인해 응답 속도 개선한 경험을 적었다. ‘인덱스’ 라는 답변 키워드 하나만으로도 나올 수 있는 질문은 정말 많다.
- 인덱스란 무엇인가요? 왜 사용하나요?
- 인덱스는 어떤 자료구조로 저장되나요? 왜 해시를 사용하지 않나요?
- 인덱스의 단점은 무엇인가요?
- 인덱스 scan 방식은 무엇이 있나요?
당연히 면접에서 모든 질문을 대답할 수는 없겠지만 그래도 할 수 있는 한 답변 키워드에 대해서는 깊게 공부하려고 노력했다.
3) 면접 스터디하기
학교 커뮤니티에서 기술 면접 스터디를 구해서 약 3달동안 매주 1시간씩 면접 스터디를 진행했다. 처음에는 라이브 코딩과 CS지식을 서로 꼬리 질문으로 물어봤고, 면접 일정이 정해지면 자소서와 포트폴리오 바탕으로 질문을 주고 받았다.
면접 스터디가 끝나면 받은 질문들과 개선할 점을 적어두고 다음 스터디까지 보충해갔다. 면접 스터디때 아는 내용을 물어보면 머리속에 있는 내용을 전달하는 연습을 할 수 있고, 모르는 내용을 물어보면 내가 어떤 것을 모르고 있는지 알 수 있다. 이래저래 정말 많은 도움이 되었다. (면접 스터디때 받은 질문을 실제 면접에서 받은 적도 있었다!)
4) 지난 면접을 복기하자
면접이 끝나면 까먹기 전에 바로 어떤 질문들을 받았는지 기억나는대로 모두 적었다. 대답을 아예 하지 못했거나 아쉬웠던 질문들은 따로 표시해두고 다음 면접 전까지 보충해갔다. 면접관의 시각이 비슷한 경우가 많기 때문에 같은 질문을 하는 경우가 많았고, 복기한 덕분에 면접을 볼 때마다 면접 실력이 느는 것을 체감할 수 있었다.
카카오 대비
면접 날짜가 정해지고 나서 공고에 적힌 지원자격/우대조건을 보고 그와 관련하여 내가 어필할 수 있는 부분을 정리했다. 예를 들어, 카카오 공고를 보면 지원자격/우대조건에 ‘데이터 분석/시각화에 관심이 있는 분’ 이 적혀있는 것을 볼 수 있다.
스타트업 인턴 시절 대부분 데이터 엔지니어링 업무를 했지만, 인턴 초반 데이터 분석/시각화를 했던 적이 있었다. 면접때 기회가 된다면 인턴시절 데이터 엔지니어링은 물론 (얕지만) 데이터 분석/시각화 경험도 있다고 어필하기 위해 해당 내용을 정리했다.
실제로 면접때 데이터 분석/시각화를 해본 경험을 어필했고, 면접관께서 해당 내용과 관련하여 꼬리질문으로 이것저것 물어보셨다. 만약 기술 면접 전날 무엇을 해야할지 모르겠다면 지원한 공고에 적힌 조건/기술 스택과 본인의 경험을 최대한 연결시켜 어필할 점을 찾는 것을 추천한다.
또한 본인만의 어필 카드를 만드는 것도 추천한다. 나같은 경우 면접때마다 파이썬을 깊게 공부한 것을 꼭 어필했다. 대부분 꼬리질문으로 파이썬 관련 질문을 하였고, 공부한 내용였기 때문에 잘 대답할 수 있었다. (파이썬을 어떻게 깊게 공부했는지 궁금하다면 글또 5기 회고록을 참고하세요!)
절반 취뽀를 마치며
취준 기간동안 더 열심히 하자고 스스로 다그치기만 했는데 이렇게 회고록을 작성하다보니 그 누구보다 열심히 준비했다는 생각이 들었다. 취준 덕분에 CS지식을 다시 공부할 수 있었고, 면접 스킬도 늘었다. 그리고 내가 어떤 사람인지 되돌아볼 수 있는 값진 시간이었다.
코딩테스트와 면접에서 떨어지고 이유없이 불안할 때마다 일기장에 제일 많이 적었던 말은 ‘미래를 바꿀 수 있는 것은 오늘의 나밖에 없다!’ 였다. 이 글을 보고있는 취준생분들에게 오늘의 꾸준함이 쌓이면 분명 좋은 날이 올 것이라고 말하고 싶다.
채용 연계형 인턴이라 백프로 취뽀는 아니지만 인턴 기간동안 열심히해서 두달 후에 인턴 및 전환 후기로 돌아오고 싶다 :)
근황
1) 정규직으로 전환
감사하게도 정직원으로 전환이 되어서 2021년 9월 달부터 근무하고 있다. 두 달 동안 내 영혼을 갈아 넣었기 때문에 전환이 되지 않아도 후회 없을 거라 생각했는데 전환이 되어서 넘 기쁘다. 아직은 신입이라 정신없지만 그래도 다시 블로그를 시작할 생각하는 나를 보니 조금은 적응한 듯하다.
2) 블로그 유목민 생활하다 다시 미디엄으로
githubio, tistory 다 끄적대다가 결국 미디엄으로 다시 컴백했다. 요새 개인 노션에 정리하는게 편해서 블로그 글을 안썼는데 다시 블로그에 하나씩 정리해보려고 한다 :)