바이블이라고 제목을 짓긴 했지만, 많이 부족합니다. 귀엽게 봐주시면 감사하겠습니다.
당연한 얘기지만, 글의 내용이 무조건 정확한 것은 아니기 때문에 가볍게 참고만 해주세요!
들어가기 전에
저는 2022년, 2023년 카카오 신입 공채에 지원하여,
모두 최종 단계까지 갈 수 있었으나,
모두 최종 단계에서 불합격했습니다 ㅜㅜ
불합격자이긴 하나, 전체 전형을 전부 2번씩 겪어본 사람으로서,
앞으로 공채를 지원하실 분들에게 팁을 남겨드리고자
이렇게 글을 작성하게 되었습니다.
2022, 2023 년도의 세부 전형들에 대한 후기는 각각 게시글로 남겨두었으니,
Career 카테고리의 게시글을 참고해주세요!
카카오 신입 공채란?
모두가 아는 테크 기업 "카카오" 본사 및 계열사에
신입 개발자로서 입사할 기회를 얻을 수 있는 공개채용 방식의 입사 전형.
학력, 전공, 나이, 성별을 입력하지 않는 블라인드 방식으로 진행됩니다.
2017년부터 매년 하반기에 실시하며, 절차는 아래와 같습니다.
접수 -> 1차 코딩테스트 -> 2차 코딩테스트 -> 1차 면접 -> 2차 면접 -> 합격
각 전형은 이전 전형 합격자에 한해 진행됩니다.
수행한 프로젝트 및 자기소개서는
2차 코딩테스트 합격자에 한해, 1차 면접 전에 작성합니다.
2022년 공채는 카카오 본사 및 여러 계열사들이 공동 주관하여,
2차 코테까지는 공통으로 진행되고, 1차 면접부터 원하는 계열사로 흩어져 진행되었습니다.
2023년 공채는 계열사 없이 본사만 진행되었습니다.
지난 공채 일정
대략적인 일정을 파악하기 쉽도록, 2022, 2023 공채 일정을 공유해드립니다.
2022 공채 일정
- 지원 접수 : 8/19 - 9/6
- 1차 코딩테스트 : 9/11(토)
- 1차 코테 결과 : 9/17(금) 오후 5시
- 2차 코딩테스트 : 9/25(토)
- 2차 코테 결과 : 10/14(목) 오후 3시
- 1차 면접 기간 : 10/26 - 10/29
- 1차 면접 결과 : 11/3(수) 오후 6시
- 2차 면접 기간 : 11/9-11/12
- 2차 면접 결과 : 11/18(목) 오후 5시
2023 공채 일정
- 지원 접수 : 9/1 - 9/19
- 1차 코딩테스트 : 9/24(토)
- 1차 코테 결과 : 10/4(화) 오후 8시
- 2차 코딩테스트 : 10/8(토)
- 2차 코테 결과 : 10/17(월) 오후 7시
- 1차 면접 기간 : 10/21 - 10/26
- 1차 면접 결과 : 10/29(수) 오전 11시
- 2차 면접 기간 : 10/31 - 11/3
- 2차 면접 결과 : 11/24(목) 오후 3시
1차 코딩테스트
전국민 코딩테스트입니다.
카카오에 입사하고 싶은 취준생 분들도,
졸업이 많이 남은 재학생들도,
본인 실력이 녹슬었는지 체크해보려는 현직 개발자 분들도,
심지어는 카카오 재직자분들도!
다양한 분들이 신청하여 응시합니다.
별도의 지원 양식 없이 클릭 몇 번으로 지원이 완료되기 때문에 어찌 보면 당연한 현상인 것 같습니다.
진행 방식
5시간동안 진행되며, 7문제가 출제됩니다.
1-2문제는 쉽다고 느껴지며,
1문제는 이걸 대체 어떻게 풀지? 라는 생각이 듭니다.
4-5문제는 적당히 쉬우면서 어렵습니다.
다른 기업 코테와는 다르게, 히든 테케에 대한 해결 여부를 모두 공개합니다.
테케는 보통 30개이며, 그 외의 히든 테케를 고민하지 않아도 됩니다.
30개 다 맞았다면, 그 문제는 완전히 해결한 것입니다.
하나라도 틀리면 그 문제는 틀린 것입니다 ㅜ (부분 점수 없습니다.)
전반적인 난이도에 따라 합격 커트라인은 보통 3-4솔 정도입니다.
2023년의 경우, 문항별 배점이 공개되었습니다.
부분점수가 주어지는 것은 아니며, 문제 풀이 수 동점자가 많을 경우
득점이 높은 순으로 컷하기 위해 사용했다고 합니다. (카더라)
기출 문제, 해설
과거 기출문제는 프로그래머스에서 풀어볼 수 있습니다.
기출문제에 대한 해설도 카카오 테크 블로그에서 확인할 수 있습니다.
2023년 공채 해설은 아직 올라오지 않은 것 같습니다.
구글에 2023 카카오 공채 1차 코테 후기
와 같이 검색하면
여러 블로그 글이 나오니 이를 참고하셔도 좋을 것 같습니다.
공부 방법
0. 기본
본인 실력에 따라 적절한 방법으로 학습하시면 될 것 같습니다.
문제는 풀었다고 끝이 아닙니다.!
더 나은 해결 방법이 없을지 고민해보시고,
검색해서 다른 사람들의 풀이도 참고하면서 비교하는 과정을 통해 성장할 수 있습니다.
맞았다고 그냥 넘어간다면, 시간낭비한 것입니다.
부족한 부분을 찾아 보완하기 위해 문제를 푸는 것입니다.
1. 기출문제
제일 확실한 방법입니다.
카카오의 과거 기출문제들이, 앞으로 출제될 문제들과 유형이 가장 비슷합니다.
매년 7문제씩 밖에 제공되지 않기 때문에,
기초 알고리즘 능력을 다른 방식으로 먼저 쌓으시고
실제 코테 1-2개월 전부터 푸시는 것을 추천합니다.
2. 도서
코딩테스트 문항 유형별로 이론과 실전 문제를 정리해둔 책들입니다.
코테 문제를 푸는 것 이상으로, 알고리즘 사고 능력에도 도움이 됩니다.
아래 두 책을 추천합니다. (둘 다 볼 필요는 없고, 마음에 드시는 것 선택하시면 될 것 같습니다.)
3. 알고리즘 풀이 사이트
여러 플랫폼이 존재하는데, 본인 스타일에 맞는 곳 선택해서 푸시면 될 것 같습니다.
저는 JS로만 코테를 푸는데, 백준은 js용 환경이 열악하여,, 선택하지 않았었습니다.
프로그래머스는 전체 문항 수가 적습니다.
하지만 그래서 초보자 입장에서는 오히려 좋습니다.
유형은 나름 골고루 있기 때문에, 적은 문항들로도 전체적인 흐름과 풀이 방식을 익힐 수 있습니다.
저는 프로그래머스 LV1부터 3까지 모든 문제를 풀고 (레벨 4는 굳이..? 라는 생각이 들었습니다)
리트코드로 넘어와 내부 커리큘럼 따라서 문제를 풀었습니다.
실리콘밸리 빅테크 기업별로 문항을 분류할 수 있어서
나~중에 빅테크를 가고자할 때에도 유용할 것 같습니다.
- 백준 : https://www.acmicpc.net/
- 프로그래머스 : https://school.programmers.co.kr/learn/challenges
- 리트코드 : https://leetcode.com/
2차 코딩테스트 + CS 시험
CS 전공지식 테스트를 약 15-20분간 진행하고, 2차 코딩테스트를 5시간 진행합니다.
CS 시험
자료구조, 운영체제, 데이터베이스, 네트워크
크게 4가지 분야의 지식을 묻는 문항들이 고루고루 출제됩니다.
2022년에는 10문항
2023년에는 12문항이 출제되었습니다.
난이도가 그렇게 어려운 문항들은 아니긴 하지만,
모르면 찍어야 합니다. 고민한다고 풀 수 있는 문제는 아닙니다.
개념을 알면 빠르게 풀리는 문제들이었습니다.
2022년에는 10문제 중 5-6문항 맞았고, 커트는 4문제 정도
2023년에는 12문제 중 7-8문항 맞았고, 커트 역시 4문제 정도
CS 시험 결과가 크리티컬하게 반영되지는 않습니다. 과락만 결정하는 것 같아요.
커트라인 이상이라면 전부 만점이라고 생각해도 무방합니다.
2차 코테 결과가 중요해요 ㅋㅋ
2차 코딩 테스트
1. 주제
- 엘리베이터 3대로 효율적으로 다수의 사람들을 운반하는 것
- 사용자 이용률을 극대화하기 위해 택시를 미리 배차해두는 것
- 사용자들의 게임 MMR을 실제 실력과 비슷하게 측정하는 법
위와 같이 실생활에서 겪는 경험들 중 정형화할 수 있는 item이 출제됩니다.
이론상 최적의 알고리즘이, 실제 경험에서도 최적인 것은 아니기 때문에,
이 둘을 적절히 조율할 수 있는가? 를 평가합니다.
주제를 예상해보는 것도 나쁘지는 않지만,
생각못한 주제가 나올 확률이 매우 크므로
굳이 추천하지 않습니다.. ㅋㅋ
2. 서버 통신 코드 작성 ★
문제에 명시된 API를, 본인들의 언어/프레임워크로 구현해야 합니다.
당연하게도 API를 연결하지 못하면 문제 진행 자체가 안됩니다.
테스트가 시작된 다음 작성하면 많이 헤맬겁니다.
URL
, method
, body
, header
등,
이걸 이렇게 넣는게 맞나 이것저것 테스트하면서 시간을 많이 잡아먹습니다.
GET
, POST
, PUT
, PATCH
메소드를 사용할 통신 코드를 미리 작성해두시면,
테스트 시작 후 공개되는 URL과 token 등으로
디테일한 부분만 변경한 다음 바로 문제를 푸실 수 있습니다.
템플릿 예시는 아래와 같습니다. (Javascript, axios)
사용하시는 언어에 맞게 미리 구성해두시길 바랍니다.
코딩테스트 안내 메일 내용 중
이 단계에서 2시간까지 헤매는 사람을 주변에서 봤습니다 ㅜ
문제 조건 구현하는 데에도 시간이 부족한데 여기서 시간을 최대한 아껴야겠죠??
프로그래머스에 과거 2차 코테 문제가 동일한 환경으로 구성되어 있으니,
체험해 보시고, 템플릿을 작성해 두세요.
3. 문제 조건 구현
하나의 큰 주제 아래 2가지 시나리오를 구현해야 합니다.
- 시나리오 1은 일반적인 환경입니다.
- 시나리오 2는 1에 비해 공간과 트래픽이 크고, 특수한 상황이 발생하는 경우입니다.
게임 MMR 배치 알고리즘을 구현해야 했던 2022년 공채를 예시로 들면 아래와 같습니다.
- 시나리오 1 : 전체 유저 50명 / 1분당 신청인원 평균 1명 / 어뷰징 유저 없음
- 시나리오 2 : 전체 유저 900명 / 1분당 신청인원 평균 20명 / 어뷰징 유저 존재 (패작 가능)
전체적인 흐름은 시나리오 1,2 모두 동일하기 때문에, 별도의 코드를 2개 작성해야 하는 것은 아닙니다.
점수 조정 계수나, 세부 조건 등이 살짝 다른 정도일 겁니다.
일단 주어진 시나리오 한 사이클을 에러 없이 수행 완료해내는 것을 목표로 하세요.
모든 case를 제일 기본적인 경우로만 처리하여 수행 완료해도, 점수가 생각보다 낮게 나오지 않습니다.
정상적으로 돌아가기만 한다면, 절반 이상은 먹고 들어가는 것이고
기본적으로 받은 그 점수가 생각보다 마음에 안정을 가져다 줍니다.
기본 옵션으로만 작성된 코드를 시나리오 1,2에서 모두 실행시켜서 기본 점수를 받고,
세부적인 코드를 수정하면서 점점 점수를 올려나가세요.
제 경험상, 전혀 다른 2개의 아이디어를 알고리즘으로 구현할 시간은 없습니다.
처음에 생각했던 아이디어로 점점 발전시켜 나가다 시간이 끝납니다.
일단 기본 점수는 받았으니, 마음을 차분히 하고 주어진 조건을 잘 구현해내시길 바랍니다.
4. 실행 및 점수 확인
풀이 제출하면 수초 내에 모든 결과가 나오는 기존 알고리즘 문제들과 달리,
서버 요청을 직접 해야 하기 때문에 전체 요청을 처리하고 결과를 보는 데에 적어도 5분 정도 걸렸던 것 같아요.
이 말은 곧 코드를 수정할 수 있는 기회가 많지 않다는 것!
그래서 결과를 확인하고, 최대한 고칠 수 있는 부분을 다 고친 후에 테스트를 재개해야 합니다.
코드를 1차적으로 작성 완료했다면 2시간 정도 남을텐데,
[코드 최적화 + 다른 풀이 방법 고려]를 하시면 됩니다.
근데 시간이 주는 압박감이 심해서 아예 새로운 풀이 구현하는 것은 거의 불가능하고,,
풀이 과정 내 작은 기능들 각각의 구현을 다르게 하는 정도일겁니다.
cmd 창을 여러개 띄워서 병렬적으로 실행하세요.
작성한 코드로 시뮬레이션 시작하고, 그게 수행되는 동안
코드 수정해서 다른 cmd 창에서 start 입력하면 여러 코드가 동시에 진행됩니다.
근데 서버 통신량에 제한 있어서 5개 초과하여 동시 진행은 불가능했습니다.
코드 내에서 사용한 계수를 다양하게 조절하세요. 계수 조정하는 과정이 매우 중요합니다.
예를 들자면, 진 유저에게 점수를 80점 깎고, 이긴 유저에서 점수를 100점 추가하는 식으로 작성한 경우
80과 100이라는 숫자 자리에 10점 단위로 이것저것 조합해 보세요.
점수가 진짜 많이 차이납니다. 해본 조합 중 높은 점수를 기록한 조합을 선택하세요.
저 숫자들을 살짝씩 변경하면서 코드를 돌려보면 점수가 떡상하는 구간이 존재합니다 ㅋㅋ
로또하는 기분이긴 한데,, 전혀 다른 아이디어로 알고리즘을 구현해낼 것이 아니라면
점수를 올리는 길은 이것밖에 없습니다.. ㅋㅋ
시나리오 1과 2의 배점이 보통 동일합니다.
시나리오 2가 문제 조건이 좀 더 까다롭지만, 그 추가 조건을 다 구현안해도 감점되는 폭이 그렇게 크지 않습니다.
시나리오 1을 잘 구현했다면, 2에서도 높은 점수를 받을 수 있습니다.
리더보드
2022년에는 응시자 점수 현황을 실시간으로 확인할 수 있게 해줬었습니다.
총 600만점에 500점을 넘긴 분이 1분 정도 계셨던 것 같아요.
보드 응시자 총원은 1,500명 정도였습니다.
500부터 400 사이에는 점수가 균일하게 분포했던 것 같습니다.
저는 400 정도였고, 300등 즈음이었네요.
남은 30분동안 기를 쓰고 숫자 조절을 해서 440점까지 올리는 데에 성공했습니다.
아마 최종 등수는 250/1500 쯤이지 않았을까요? ㅋㅋ
(합격했습니다. 합격 컷은 몰라요 ㅜ)
2023년 공채때는 리더보드를 100등까지만 확인할 수 있었습니다.
시나리오 1,2 합쳐서 1,000점이 만점이었고, 900점이 100등 컷이었습니다.
전체 응시인원은 확인할 수 없었지만, 계열사 공채가 폐지되었으니 작년(1,500명)보다 많았을 것으로 예상됩니다.
저는 905 점 정도로 100등 안에 들었습니다. (1년 새에 실력이 늘었네요.. 뿌듯)
700점 초반이었던 분도 합격한 것을 봤습니다.
생각보다 합격 컷이 여유로웠던 것 같아요!
자기소개서 (서류)
1차 면접을 진행하기 전에,
2차 코테 합격자에 한해 서류를 작성하는 기간이 주어집니다.
구성은 크게 아래와 같이 2가지로 구분됩니다.
- 진행했던 프로젝트 설명
- 자기소개 항목
프로젝트 개수는 본인이 원하는 만큼 작성할 수 있고,
프로젝트마다 1,500자 제한이 있습니다.
- 프로젝트 개요 (어떤 서비스인지, 왜 시작했는지)
- 사용한 기술 설명
- (팀프로젝트라면) 본인이 담당한 기능
- 어려웠던 점. 해결 과정
- 배포 성과
등을 바탕으로 전체적인 흐름을 파악할 수 있게 작성하는 것을 추천드립니다.
너무 두루뭉술하게 작성하면 전문성이 떨어져 보이고,
너무 지엽적으로 디테일하게 작성하면 면접관이 잘 모를 수 있으므로
그 정도를 잘 조절하여 작성하세요!! (너무 애매하죠..? ㅋㅋ)
프로젝트 경험이 없으면 작성하지 않아도 된다고, 불이익 없다고 설명은 해주시지만
0개 작성해서 떨어진 분들을 종종 봤습니다!
그래도 1개 이상의 프로젝트는 작성하시는 것을 추천합니다.
자기소개 항목은
- 개발 관련하여 관심있게 수강한 전공과목 or 외부강의
- 열정, 기술적 전문성을 나타낼 수 있는 경험/이력
으로 구성되고, 문항 합쳐서 2,500 자 제한이 있습니다.
이건 뭐,, 본인의 상황에 맞게 잘 작성하시길 바랍니다.
포트폴리오 첨부는 선택사항입니다.
제 포트폴리오 링크 첨부합니다.
1차 기술 면접
1차 면접 구성의 큰 틀은 매년 동일합니다.
CS + 2차 코테 리뷰 + 프로젝트 경험 질문
크게 3가지로 분류되고, 약 20분씩 진행됩니다.
당연히 칼같이 배정된 시간은 아니므로,
면접관 재량으로 4-5분 정도 차이가 날 수 있습니다.
아래 내용을 참고하여 스스로 준비하시면 됩니다.
면접 스터디도 많은 도움이 되니 잘 활용하세요!
기술 면접 준비
CS 지식 공부
제일 중요합니다.
크게 4과목으로 나누어 준비했습니다.
- 자료구조(+알고리즘)
- 네트워크
- 운영체제
- 데이터베이스
저는 비전공자라 CS 지식이 제로에 가까웠기 때문에, 바닥부터 찬찬히 쌓아올려야 했습니다.
과목 내부 개념을 전반적으로 훑되,
지엽적인 개념은 빠르게, 가볍게 학습하고,
중요한 개념은 꼼꼼히 익히자! 는 마인드로,
아래 순서대로 공부했습니다.
[공부 순서]
- 온라인 대학 강의 수강 - 과목의 전반적인 흐름 파악
- 도서 학습 - 개념별 집중 학습
- 주요 개념, 질문 정리
아래는 과목별로 제가 참고한 강의, 도서 목록입니다.
[자료구조]
비전공자로서 학교에서 수강했던 유일한 CS 과목입니다.
교수님이 강의를 매우 잘하셔서,
면접 준비할 때 따로 추가적으로 공부한 부분은 없습니다.
자구 과목의 경우는 크게 도움 되는 정보를 드리지 못해 죄송합니다. ㅜ
다만 면접에서 정말 비중있게 질문이 나오니 깊이 있게 공부하시는 것을 추천합니다.
[운영체제]
- SNUON 서울대 홍성수 교수님 강의
- 운영체제 도서 (반효경)
- 운영체제 도서 (구현회)
[네트워크]
- KOCW 한양대 이석복 교수님 강의
- 모두의 네트워크 도서
- HTTP 완벽 가이드 도서
- 유튜브 우테코 - 네트워크 관련 영상들
[데이터베이스]
- 데이터베이스 개론 도서 (김연희)
CS 주요 개념, 질문 정리
한재엽님 깃허브를 많이 참고하였습니다.
그 외에, 구글에 "CS 면접 질문" 으로 검색하여 나오는 수많은 깃허브, 블로그를 참고했습니다.
과목별로 주제를 쭉 리스트업하고, 자주 등장하는 질문들을 추립니다.
각 질문, 개념별로 작성할 수 있는 부분은 다 조사해서 적습니다.
★정의, 특징, 종류, 등장 배경, 장점, 단점, 단점 극복 방법, 사용 예시★
적은 이후에는 중얼중얼거리면서 외웁니다.
커널이 무엇인가? 라는 질문에
정의는 뭐고~ 왜 필요하며~ 어떤 특징이 있고~ 이런게 좋고~
면접이라고 생각하고 대답하는 연습도 합니다.
이정도만하면 꼬리질문이 10개까지 들어올 수 있다고 했을 때
6-7개까지는 커버 가능합니다 ㅋㅋ
각 과목별로 제가 정리했던 개념들은 다음과 같습니다.
세부 설명은 개인적으로 검색해서 익히시는 것을 추천합니다.
[자료구조, 알고리즘]
- 시간복잡도 분류
- 재귀 알고리즘
- 정렬 (시간 복잡도, stable, in-place)
- 본인이 사용하는 언어/프레임워크의
.sort()
method는 어떤 알고리즘을 사용하는지
- 본인이 사용하는 언어/프레임워크의
- 스택, 큐
- 스택으로 큐 구현하기, 반대로도
- DFS vs BFS
- List 비교 (Array List, Linked List)
- 우선순위 큐, 힙
- 해시, 충돌 해결법
- greedy 알고리즘이란
- Tree(Binary Tree, BST)
- 그래프
- 표현 방법 비교 (인접 행렬, 인접 리스트)
- 위상 정렬 방법
- 최단 경로 탐색 방법 비교(다익스트라, 벨만 포드, 플로이드 와샬)
- spanning tree, min spanning tree (크루스칼, 프림 비교)
- 선택 심화 개념 (trie, red-black tree 등)
[운영체제]
- OS (정의, 사용 목적, 구조)
- 커널 (정의, 구성, 역할, 기능, 종류)
- CPU (정의, 구성)
- 메모리, I/O 기기
- system bus
- I/O 입출력 제어 방식 (폴링, 인터럽트, DMA, 채널)
- 프로세스, 멀티 프로세스, 프로세스간 통신
- 스레드, 멀티스레드
- Critical Section, Mutex, Semaphore, Monitor
- Deadlock
- Context Switching, PCB, dispatcher, policy
- 메모리 관리, 할당
- 동적 할당, free list, garbage collecting, MMU
- Segmentation, Paging, Paged Segmentation
- Demand Paging
- 정의, 목적, page fault handling, replacement policy
- File, File System, buffer cache
- thrashing
- cache, 레지스터 (지역성, miss)
- 프로그램 컴파일 과정
[데이터베이스]
- 데이터베이스란
- Key
- 데이터베이스 제약 조건 (개체 무결성, 참조 무결성)
- 릴레이션 합병 가능성
- 데이터 독립성 (논리, 물리)
- 뷰(정의, 사용 이유, 특징, 장단점)
- 이상현상(정의, 갱신, 삽입, 삭제)
- 함수 종속
- 정규화, 역정규화
- 조인
- 트리거, 주장
- 트랜잭션
- LOCK, 데드락
- NoSQL vs RDBMS
- 인덱스
- GraphQL
[네트워크]
- CSR vs SSR
- URL 입력시 발생하는일
- TCP vs UDP
- RESTful API란
- URL vs URL
- Web Cache
- Proxy
- Cookie vs Session vs Token
- CORS, SOP
- HTTP, HTTPS, socket
- 암호화 (원리, 단방향, 양방향 + HTTPS 암호화 과정)
- GET vs POST
- OAuth
- 로드 밸런싱
- 브라우저 저장소
- 서버 응답 코드
- NAT, DHCP
- MAC, CSMA, ARP
2차 코테 리뷰
1. 문제 복기
코테가 끝난 이후 문제는 다시 확인할 수 없으니, 문제 내용을 글로 정리합니다.
API 종류, 점수 산정방식, 문제 개요, 시나리오 1,2 조건 등 기억나는대로 싹 적습니다.
문제 복기 내용 총정리
2. 풀이 분석
풀이에 대해 정리합니다.
어떻게 푸셨나요? 라고 두루뭉술하게 질문이 들어올 것이므로,
어떤 생각으로 접근했는지부터 시작하여 설명 flow 대로 쭉 적습니다.
이런 부분까지 설명해야 하나? 싶을 때까지
최대한 디테일하게 코드 한줄 한줄 왜 이렇게 짰는지 이유를 적었습니다.
- 전체적인 코드 흐름
- 이렇게 짠 이유
- 숫자의 의미
- 발생할 수 있는 문제점
- 해결방안
- 시나리오 2 해결법
- 계수 조정했을 때 점수가 올라간 이유는 무엇이라고 생각하는지
어떠한 질문이 나오더라도 다 상세하게 답할 수 있게끔 진짜 최대한 자세히 작성합니다.
3. 외부 레퍼런스 참조
문제 상황을 분석해둔 외부 자료를 공부합니다.
2021년 공채 - MMR 알고리즘의 경우를 예시로 들자면,
게임 알고리즘이므로 넥슨, 블리자드 등 다양한 회사에서 구현을 해두었겠죠..?
그들은 어떤 알고리즘을 사용하는지 검색해봅니다.
ELO라는 평점 시스템을 주로 사용했고,
여러 게임 회사들이 독자적인 방식으로 살짝씩 변형하여 사용하고 있었습니다.
해당 시스템의 원리는 무엇인지, 차근차근 이해해 나갑니다.
본인의 로직과 다른점은 무엇이고, 어떤 점이 나은지,
이 로직을 사용해도 발생할 수 있는 문제는 무엇일지 정리합니다.
이 문제의 경우를 예시로 든 것이고, 본인들의 채용 전형년도 문제에 맞게 분석하시면 됩니다.
주변 친구, 선배 개발자 분들에게 조언을 구하는 것도 방법입니다.
프로젝트 경험 정리
이건 뭐 별거 없습니다.
프로젝트 시작 이유, 사용한 기술, 수행하면서 어려웠던 점, 배포 과정, 성과 등
버스 탑승 없이 온전히 1인분 이상 했다면 다 기억이 날만한 질문들입니다.
다만, 사용한 기술 관련해서는 깊이 있게 공부해가시는 것을 추천합니다.
프로젝트 경험이 없다구요?
최소한 1개 정도는 깔끔하게 마무리하는 것을 추천합니다.
프로젝트 경험이 없어도 괜찮다고 카카오는 말하지만,,
실제로 공백으로 제출했는데 탈락하신 분들이 많았습니다. (유의미한 상관관계)
인성 질문 준비는 선택
인성 관련 질문은 지난 2년간 크게 받지 않았고,
주변에서도 딱히 받았다는 걸 듣지 못했습니다.
비중있게 준비는 안해도 된다고 생각하지만,
세상에 무조건은 없으니,, 기본적인 질문은 준비해 가시는 것을 추천합니다.
저 같은 경우에는 이직 사유 + 지원 동기, 성격(+업무)상 장단점 정도만 준비했습니다.
근데 안물어보셨어요! ㅋㅋ
기술 면접 당일
신분증 검사, 면접 안내와 함께 시작됩니다.
1시간 정도 본다 하는데, 50-70분 사람마다 다양합니다.
앞서 말씀드린대로, 구성은 다음과 같습니다.
2차 코테 설명 + CS 질문 + 프로젝트 질문
1. 2차 코테 설명
2차 코테 코드 어떻게 짜셨어요? 와 같이 두루뭉술한 질문으로 시작됩니다.
준비한 시나리오대로 설명하시면 됩니다.
전체 코드 흐름부터 주요 생각 포인트를 개략적으로 설명하고 나면,
면접관님들이 궁금한 내용 + 꼬리질문이 이어집니다.
준비하신대로라면, 대답 못할 질문은 크게 없습니다.
긴장하지 않으셔도 됩니다.
2. CS 질문
여기는 오히려 반대입니다.
아무리 열심히 준비해도, 대답 못할 질문이 무조건 나옵니다.. ㅜㅜ
자료구조의 비중이 높았습니다.
그외에 OS, DB, 네트워크 골고루 물어봅니다.
너무 딥한 질문은, 당연히 못맞출거라 생각하기 때문에 큰 기대 안하십니다.
하지만 적당한 깊이의 꼬리질문에는 답할 수 있도록 준비합시다.
3. 프로젝트 질문
앞서 말한대로 크게 어려운 질문은 나오지 않습니다.
본인의 생각을 잘 정리해서 말씀드립니다.
2차 최종 면접
최종 면접 준비
여기까지 오신 분들 축하드립니다. 마지막 관문이네요.
보통 최종면접==인성면접==개꿀 이라는 이미지가 살짝 있죠..?
저도 2차 면접까지 왔을 때는, 다 끝난 줄 알았습니다.
인성면접이라고 들었고, 소신껏 잘 말하면 되지 싶었습니다.
사실은 절대 그런 것이 아니기 때문에, 방심하지 말고 준비 열심히 하시길 바랍니다.
준비할 내용은 크게 인성 + 프로젝트입니다.
파트별로 제가 준비한 질문은 아래와 같습니다.
인성 질문
- 1분 자기소개
- 지원동기 (+이직 사유)
- 카카오 서비스 중 마음에 드는 서비스 + 고쳐보고 싶었던 부분
- 어떤 서비스를 만들고 싶은지
- 개발을 시작하게된 계기, 개발자로서 커리어를 쌓고자 하는 이유
- 개발 공부 과정
- 열정을 보여줄 수 있는 사례
- 성장을 위해 한 노력
- 본인의 부족한 부분. 보완 방법, 과정
- 본인만의 개발 습관
- 어려움에 처했을 때 해결 방법
- 협업 경험
- 의견 충돌, 불화 발생시 해결 방법
- 업무적, 성격적 장단점
- 주변사람들이 평가하는 본인의 모습
- 동기부여가 되는 때
- 어떤 개발자가 되고 싶은가
- 리더 vs 팔로워
- 존경하는사람, 좌우명, 취미, 특기
- 스트레스 해소 방법
- 목표 달성 경험
- 창의성을 발휘한 경험
- 꾸준히 무언가를 해온 경험
- 중대한 실수 경험
프로젝트 질문
앞서 1차 면접 파트에서 말씀드린대로, 별거 없습니다.
프로젝트 시작 이유, 사용한 기술, 수행하면서 어려웠던 점, 배포 과정, 성과 등
두루두루 준비하시되, 사용한 기술 관련해서는 깊이 있게 공부했습니다.
최종 면접 당일
면접관으로는 2분이 참석하십니다.
40분 정도 진행된다는 안내와, 신분증 검사 후 면접 시작합니다.
가볍게 인성질문만하다 끝날 수도 있고,
프로젝트 관련하여 깊이 있게 물어볼 수도 있습니다.
면접관마다 면접은 천차만별입니다.
열심히 준비하셨다면, 준비하신대로 말씀하시면 되고,
어려운 질문이 나왔다면 어차피 준비 못했을 질문이니 마음 편하게 대답하시면 됩니다.
저는,
잘 대답했다고 생각했고 면접관 분위기도 정말 좋았는데
떨어졌습니다.
작년에 IT 채용 시장이 급격하게 얼어붙었기 때문이라고 스스로를 위로했지만,,
제가 많이 부족했던 거겠죠? ㅎㅎ
반대로,
망했다고 생각했는데 붙으신 분들도 주변에 많아요.
면까몰이잖아요!
마음 편하게 준비하고, 준비한 것 다 보여주시고 오시면 됩니다.
마치며
IT 대기업에서 커리어를 시작하고 싶은 마음이 있었습니다.
그래서 카카오 공채를 2번이나 도전했었는데, 좋은 결과를 얻지 못했네요.
그래도 2년간 많이 배울 수 있었습니다.
개발 실력도 많이 성장했고, 지식도 많이 쌓을 수 있었습니다.
무엇보다, 부족한 부분이 무엇인지 잘 파악할 수 있었어요!
IT 채용 시장 한파는 당분간 지속될 것 같으니,,
이제 신입 공채는 떠나보내주고
일 열심히 해서 경력을 착실히 쌓아 이직하는 것으로 생각을 굳히고 있습니다.
(그래도 공고가 뜨면 지원해볼 수도..?)
카카오 공채가 계속 진행될지는 미지수이지만,
이 글을 보시는 분은 잘 준비하셔서 좋은 결과 얻어내시기를 진심으로 기원하겠습니다.
문제될만한 부분이나, 궁금한 점은 댓글 남겨주시면
수정/답변해드리겠습니다.
긴 글 읽어주셔서 감사합니다.
오늘 하루도 행복하세요 :)