"합격후기" 라는 제목의 글을 작성하는 것이 이렇게나 빨리 올 줄 몰랐습니다.
기대해왔던 회사였으며, 또 역설적으로 전혀 기대하지 않았던 회사였습니다.

 

이제 막 학교를 졸업하는 쌩신입 개발자로써 토스 NEXT 개발자 챌린지 '서버' 부문에 합격한 후기와 아주 간략한 준비과정등을 많은 분들에게 공유하고 싶어서 글을 적습니다.

들어가며

저는 제 삶을 시트콤이라고 많이 말을 합니다.
항상 무언가 기억나는, 그리고 동시에 다른 사람들이 쉽게 겪어보지 못하는 에피소드들로 가득차 있고, 대다수의 사람들이 겪는 일반적인 루트와는 다른 루트를 경험하곤 합니다.

또 시트콤

전역하자마자 3학년의 신분으로써 카카오 공채의 최종 탈락도 경험해보았고,
이번에는 취준을 시작하자마자, 그리고 개강하자마자 첫날에 좋은 소식을 받게 되었습니다.

취준생의 마인드

남들보다는 조금 일찍 개발자 공채의 프로세스를 겪으면서, 아주 좋은 마인드셋을 장착하게 되었습니다.


바로 "이대로가다는 진짜 큰일 나겠다" 의 마인드였습니다.
카카오 공채 프로세스를 겪기 전에는 코딩테스트는 적당히 1~2달이면 될 줄 알았으며, 개발에 필요한 스택들은 4학년이 되면 얼추 다 알겠거니 하는 아주 naive한 마인드를 가지고 있었습니다.

 

그랬던 제가 공채를 겪고나니 정말 이대로는 안되겠다 싶어서 기존의 알고리즘 스터디를 리비젼하고, CS 스터디를 직접 모으고, 'Real MySQL' 과 같은 책으로 저만의 엣지포인트도 빡세게 준비를 했습니다.

 

그럼에도 부족한게 있었습니다.

부족한 점

다들 아시겠지만, 대부분의 빅테크 기업의 서버개발자들은 높은 확률로 Java+Spring 기반의 개발을 진행합니다. 따라서 신입 개발자를 뽑는 공고의 JD여도 Java+Spring에 대한 언급이 있더라구요.

요즘엔 Kotlin+Spring으로 보입니다.

물론, 큰 기업이기에 필수 자격요건이 아닌 회사들이 더 많지만, 최소한 우대조건에는 무조건 들어가곤 했습니다.

토스에서도 아래와 같이 기술스택을 명시하고 있습니다. 다만, 아래 기술에 대한 경험이 없어도 괜찮아요. 라는 말이 달려 있기는 합니다.

그런데, 저는 위의 기술들 중 경험해본걸 찾는게 더 빠를 정도로 할 수 있는게 없었습니다.
Spring에 대해서 아주 기초적인 부분만 알고 실제로 사용해보지는 않았거든요.

 

거기다, 일반적으로 많은 개발자들이 갖추는 알찬 프로젝트(심지어 토이도!)의 존재가 저는 없습니다.
정확히는 최근 1~2년간 했던 프로젝트라곤, 현장실습에서 진행한 프로젝트가 전부였습니다.

 

또, 저와 같은 취준생들이 가장 무시무시하게 여기는 존재, "중고신입" 들은 저런 기술을 어느정도 익히고 오기 때문에 토스 NEXT 전형에 대한 기대를 전혀 하지 않았습니다.

 

요약하자면, 쌩신입이어서 실무 경험X + 자프링 할줄 모름 + 프로젝트 없음 의 노답 3형제였습니다.

동년배들은,,,이 짤,,,다 안다,,

과정

그래도, 지원은 공짜이고, 자소서와 같은 것들을 바로 요구하지 않기 때문에 바로 지원해보았습니다.
또 지인 중에 토스에 재직하는 사람이 있어 밥도 얻어 먹으면서 "제발 지원해봐라" 라는 말을 수차례 들었기에 밥값은 해야지 하면서 지원했습니다.

상상이상의 코딩테스트(근데 서술형이 찐보스)


첫 관문은 코딩테스트 입니다.

토스의 코딩테스트 중 서버 파트는 알고리즘문제와 서술형으로 구성되어 있고
알고리즘 7문제를 1시간 30분, 서술형 5문제를 30분 동안 풀이하는 것이였습니다.

 

알고리즘 7문제에 1시간 30분이니까 매우 난이도 낮은걸 예상할 수 있었고, 서술형 5문제에 30분이니 기초적인 CS 문제라고 예상했습니다.

 

그러니까 제 생각에는 "아~ 코테는 그냥 다 붙이고 면접 왕창 보려나보다!" 라고 안일한 생각을 했습니다.

그런데, 혹시 여러분 이런거 아시나요?

최종흑막은 항상 예상치 못한 인물인것처럼, 서술형 문제가 가장 어려웠습니다.


자세하게는 말할 수 없지만, 서술형 문제는 실제 개발을 해보면서, 혹은 경험해보진 않았더라도 충분히 있을법한 상황들의 문제들로 구성이 되어 있었습니다.

 

단순 CS 문제가 아니라, 서버 개발자로써의 아주 근본적인 자질과 논리적인 사고력을 요구하는 문제들이였습니다.

특히, 신입 개발자들은 아마 이 서술형문제에서 많이 헤맸을것 같습니다. 학부생 수준의 프로젝트에서는 쉽게 겪어보지 못할 상황들이니까요.

저는 다행히 평소에 관심가지는 토픽들에 기반한 지식과 모르겠다면, 기초에 입각해서 최대한 풀려고 노력했습니다.

개발은 잘 못하지만, 여기저기 관심 가지는 저같은 유형도 이럴데는 꽤 쓸모가 있더라구요.

그래서 알고리즘 문제는 6/7문제, 서술형 문제는 5문제 중 4문제 정도는 정답에 꽤 가깝게 적었다고 생각하고, 1문제는 긴가민가 했습니다.

실제로 알고리즘 문제를 다 푸셨더라도, 서술형 문제에서 헤매신분들이 많이 떨어진것으로 보아 서술형을 꽤 비중있게 채점했다고 생각합니다.

참고로 한 문제당 정말 아무리 오래 걸려도 20분안에는 풀 수 있을법한 문제였습니다.

자괴감의 경력기술서

주변에 말은 최대한 아끼고 있었지만, 서술형을 잘 보았다는 생각을 하고 있어서 어느 정도는 예상했습니다.

흔히 말하는 연막작전이였습니다. 괜히 말했다가 떨어지면 부끄럽잖아요

토스는 어떤 특정한 포맷이 있거나, 고정적인 문항이 있는 자소서가 아닌 본인의 기술적 역량을 가장 잘 표현할 수 있는 경력기술서 형태의 이력서를 제출합니다.

 

여기서 또 난관에 봉착합니다.

위에서 언급한 대로 3무(경력없음,자프링할줄모름,개인프로젝트없음) 의 노답지원자에게는 이 과정이 정말 고통스러웠습니다.

 

그래서 마음을 비우고 딱 하나의 대전제만 세우고 접근했습니다.

  • 진짜 설명할 자신 있는것만 적고, 나머지는 적지말자.

가장 최근에 한 현장실습에서 했던 프로젝트 중에서, 자신있게 설명할 수 있는 몇가지 업무들만 적되, 수치로써 표현하자라는 마음가짐으로 작성했습니다.

개인적인 생각으로 개발자 이력서의 바이블이라고 생각하는 워니님의 개발자 이력서 작성하기를 많이 참고했습니다.

숨막히는 1차면접


기술면접은 지옥입니다. 왜냐면, 꼬리에 꼬리를 무는 질문들로 구성되니까요.


3~4단계의 꼬리질문이 이어지고, 그 과정에서 본인이 잘 모르면 솔직하게 모른다고 답하는게 좋다고 할 정도로 빡셉니다.

제가 적은 프로젝트에서 물어볼법한 예상 질문들을 약 40개정도 정리했고, 그 질문들만은 최선을 다해서 완벽하게 준비했습니다.

예를 들어서 A라는 기술을 이용해서 기존 시스템의 B라는 문제점을 파악하고 해결해 00%만큼의 수치 개선이 있었다. 라고 해봅시다.

  1. 그러면, A가 뭔지?
  2. A말고 다른 선택지는 없었는지?
  3. B가 왜 문제점이라고 생각하는지? 기준은 뭔지?
  4. 그 A라는 해결책이 어떠한 특정한 상황(예를 들면 확장시)에도 유리한지?
  5. 저 00%라는 수치는 어떻게 해서 나왔다고 생각하는지? 등등...

그냥 단순하게 적은 한 문장에서 순식간에 5개의 질문이 나올 수 있고, 각각의 질문들이 또 다른 질문으로 이어지기도 합니다.

그래서 기존의 CS 정리한 파트(PDF로 치면 거의 20-30장 이상은 나오는 분량인)와 제 프로젝트에 대한 질문들을 계속 보면서 면접을 준비했습니다.

 

코딩테스트의 서술형 문제들 역시 복기하면서 제 기존 답변들에 대한 추가적인 문제점은 없는지도 매우 깊게 고민했습니다.

이때 가장 도움이 된 책이 "가상 면접 사례로 배우는 대규모 시스템 설계 기초"라는 책인데, 이 책을 추천해주신 SK 브로드밴드의 김정모님에게 감사를 바칩니다.

대망의 면접날이 되었고 기술면접은 약 1시간 30분 정도로 진행되었습니다.

 

처음에는 땀이 줄줄나는 시간이였지만 그 후부터는 긴장이 어느정도 풀려 제가 알고 있는 지식을 테스트하는 시간이 아닌, 기술적인 의견을 나누는 시간이였습니다.

물론 그 과정에서 날카로운 질문들이 들어오기도 했습니다. 진짜 날카로웠습니다.

다만, 그 과정에서 제가 몇가지 질문들에 대해서 완벽하게 답변을 못했고 울고 싶어졌습니다.

사실 그 질문들은 매우 기초적인것들이였고, 심지어 제가 그 주제들로 발표를 한적도 있는 주제여서 더 슬펐습니다.

대략 15-20분 정도의 역질문 시간이 있었는데, 이때 저는 기술적 궁금증과 더불어서 토스의 현직자들은 어떠한 생각을 가지고 일에 임하는지 등에 대한 질문을 했습니다.


또 제 면접에 대한 짧은 피드백도 요청드렸고, 감사하게도 솔직하게 말씀해주셨습니다.

 

이 글을 보시는 취준생분들은 꼭 이 역질문 시간을 잘 활용하셔서 본인의 수준에 대한 지표와 기술적 궁금증을 꼭 해결하셨으면 좋겠습니다.

고요의 2차면접


1차 면접을 보고, 개인적인 약속이 있어 외출을 하고 왔는데, 전화로 1차 합격여부를 전달받았습니다.너무 벙쪄서, 제가 아무말도 안하니 리크루터분이 오히려 당황하셨는데, 조금 죄송스러웟습니다ㅎㅎ...

 

아무튼 2차 면접을 준비하게 되었습니다.

 

토스의 2차면접은 컬쳐핏 면접으로 구성이 되는데, "이 지원자가 출중한가? 기술적으로 검증된 사람인가?" 가 아니라, "이 지원자가 우리 회사에 적합한 사람인가?" 를 가리는 면접이라고 알고 있었기에 크게 준비할 것이 없었습니다.

 

다만, 반대로 준비할것이 없었기에 더 막막했습니다.

 

그래도 어느정도는 해야했기에 토스피드와 토스유튜브를 봤는데, 제 생각에 변화가 좀 생겼습니다.

기존에는 "도대체 얼마나 높은 work-ethic을 원할까" 였는데, 토스의 문화를 소개하는 영상을 보니
"이게 진짜 회사에서 가능한 일이야?" 라고 생각하게 되었고, "이런곳에서 일하는 사람들이 매우 궁금하다" 로 생각이 바뀌게 되었습니다.

인턴을 제외하고 회사 경험이 전무한 저에게는 뭔가가 신기했습니다.

그래서 기존의 잡스럽게 준비하던 문항들을 다 치우고, 그냥 토스의 문화만 구경하면서 시간을 보냈습니다.

2차 면접은 1:1으로 진행되었고, 저녁쯤에 1시간 40분정도 진행했습니다.


끝나고나서 드는 생각은 "역시 나는 무리다" 라는 생각이 들었습니다.

토스의 현직자 지인은 컬쳐핏을 1시간 40분 진행했다는 말을 듣고 합격을 직감했다고 합니다.

왜냐하면, 제가 실무 경험이 부족한 사람으로써의 안 좋은 특징들을 많이 보여줬다고 생각했기 때문이었습니다.

그런데...

개강첫째날 엘리베이터에서

저는 아직 1학기가 남아있기에 9월 1일 첫 수업을 가기위해서 학교 건물 엘리베이터를 탔는데, 리크루터분에게 전화가 오게 되었고, 최종합격이라는 소식을 듣게 되었습니다.

 

취준이 시작되는 4-2학기의 개강 첫날의 첫 수업 시간에 합격소식을 듣게 되었습니다.

믿기지 않는 결과지만,그리고 제가 왜 합격했는지 여전히 알수가 없지만 어쨌든 핀테크 분야의 최고회사에 합격하게 되었더라구요.

 

뭔가 허무하지만 이게 끝입니다. ㅋㅋㅋ

후기

이렇게 3무의 개발취준생은 토스로 가게 되었습니다.

쌩신입이어서 실무 경험X + 자프링 할줄 모름 + 개인 프로젝트 없음

아무것도 없는 제가 합격할 수 있었던 이유를 찬찬히 생각해보았을때 이런것 같습니다.

  • 단순히 작동여부보다는 그 내면의 동작원리에 대해서 너무나 심취해있고
  • 제가 했던 것을 남들한테 설명해줄때 가장 신나는 사람이였고
  • 컴퓨터공학을 활용한 기술적 성장을 좋아하는 사람

"토스라면 경력직만을 좋아하겠지", "3년 이하의 중고신입들이랑 쌩신입인 내가?" 라는 생각이였기에 전혀 기대하지 않았습니다.

그럼에도 그냥 기초에 입각해서 하게 되니 좋은 결과를 얻을 수 있었네요.

 

작년 이맘때쯤에 카카오 공채에 실패해서 슬퍼했는데, 올해는 행복한 한해 마무리가 될 것 같습니다.

끝으로 제 취준에 동참해주신 스터디원 3명에게 무한한 감사를......

자세한 내용은 많이 생략했으니, 저를 개인적으로 아시는 분들 중에 연락주시면 문제가 되지 않는 선에서 도와드릴 수 있습니다!!

'회고' 카테고리의 다른 글

3학년의 2022 카카오 블라인드 공채 도전기  (0) 2022.04.08

도전기? 후기? 어느단어를 써야할지 한참 고민하다가 도전기로 선택했습니다.
도전기로 선택한 이유는 결과와 상관없이 공채의 모든 과정에서 배운점이 굉장히 많았거든요.

그런면에선 개발자 취준생인 저의 성장기도 맞는 것 같습니다.

글이 굉장히,매우 호흡이 깁니다. 적당히 스크롤 내려가면서 스킵하면서 읽어주세요.. 공채 얘기만 궁금하시면 뜬금없는 블라인드 공채 목차쯤부터 보시면 됩니다.

조금 늦은 시작

저는 서울 소재 H대학교에서 컴퓨터계열을 전공하다 3학년을 수료하고 20년도 초에 사회복무요원으로 입대하게 되었습니다.
여러가지 사정들로 군 복무가 굉장히 늦어졌고, 3학년을 마칠때까지 아직 진로에 대해서 확실히 정하지 못했습니다. 분명 개발을 좋아하고 적당히 실력도 있었지만, 그만큼 컴퓨터공학에 대한 열정도 있어서 진학 후 연구도 하고 싶었습니다. 개발자와 진학 중 하나를 선택하기 위해서는 일단 군 문제 먼저 해결해야한다고 생각해 일단 복무를 시작했습니다.

그러던 중, 5월쯤 취업한 친한 과 동기를 만나서 여러가지 얘기를 하던 중, 본인의 입사동기 중 한명은 매일 백준에서 알고리즘 1문제를 꾸준히 풀었다 라는 말을 듣게 되었습니다. 일반적인 사람이라면 흘려듣거나 or 조언을 받아들일텐데 저는 태생적으로 반골기질이 있어서인지 그게 그렇게 어렵고 대단한 일인가? 라는 생각이 먼저 들게 되었습니다. 그 노력을 폄하하려는게 절대 아니라 정말 순수하게 궁금했습니다.

사실 이전까지 알고리즘 문제를 단 한번도 풀어보지 않았지만 갑자기 저런 당돌한 생각이 들더라구요.

습관 들이기와 실패

학부때 배운 알고리즘 지식을 제외하고 PS계통에 대한 지식은 전무했습니다. 자료구조와 알고리즘에 대한 조금의 배경지식은 있었지만, 그것을 제외하고는 완전한 뉴비수준이었습니다.
일반적으로 근무지에서 정해진 일을 하고 난 후에 어느정도의 개인시간이 보장되기에 노트북을 들고와 대략 6월부터 백준사이트에서 아주 난이도가 낮은 문제부터 한 문제씩 풀기 시작했습니다.

구현, 자료구조, 탐색, DP 와 같은 알고리즘 분류도 조금씩 신경쓰면서 풀었습니다. 매일 문제가 잘 풀리거나 쉬운 문제 같은 경우는 2~3문제, 어려운 문제라면 1시간씩 고민해가면서 풀고 정 풀리지 않으면 해답을 참고하되 저만의 논리구조를 머릿속에 구상해서 다시 풀어보았습니다. 평균적으로 1일 1문제 정도는 꼬박꼬박 풀었습니다.

https://github.com/BecomeWeasel/daily_algo_challenge 에 업로드하면서 성취감을 느꼈습니다. 여러분도 참고해보세용!

3개월간은 정말 재밌게, 그리고 제가 느끼기에도 성장한다는 것을 느낄정도로 열심히 했습니다. 하지만 문제가 생겼습니다. 10월쯤 되어서 조금씩 귀찮아지기 시작했고, 다시 로스트아크라는 게임에 열중하게 되면서 알고리즘을 완전 뒤편으로 미루게 되었고 시간을 좀 허비하게 되었습니다.

로스트아크는 정말 재밌게 했습니다. 진짜 재밌었어요..

다시 시작하기

21년도 4~5월쯤 되어서야 흘러가는 시간이 너무 아깝다고 느껴서 다른 개발 공부와 알고리즘 풀이를 다시 시작했습니다. 이전의 감각을 찾기 위해서 무리하지 않고 평일에만 1문제씩 풀고, 주말은 무리하지 않고 알고리즘 공부가 아닌 다른 개발 공부를 했습니다. 또 백준뿐만 아니라 리트코드와 프로그래머스 문제들도 풀었습니다.
개인적으로 문제들의 다양성은 백준이 좋지만, 질은 리트코드가 압도적이라고 생각합니다.
또 동아리 후배 둘과 스터디를 구성해 알고리즘 스터디를 시작했습니다.
개인적으로 이게 정말 정말 많은 도움이 되었습니다. 여러분들도 단기적인 스터디 말고 긴 호흡의 스터디를 구성하는걸 추천드립니다.

같이 스터디를 하면서 함께 성장한 IS 오렌지와 CS 강민이 정말 고마웡,,🙇‍♂️

뜬금없는 블라인드 공채


알고리즘 문제를 조금씩 풀면서 스터디를 해가던 중 카카오에서 2022 신입 개발자 블라인드 채용 공고를 올린 것을 보게 되었습니다. 일반적으로 코딩테스트의 난이도를 생각했을때 문제의 질이나 난이도적인 측면에서 높은 기업이기에 이전에도 종종 카카오 코테를 참고하곤 했습니다.

입시를 준비할때도 실전모의고사가 가장 효과가 좋듯 정말 가볍게 코딩테스트만 보기로 마음먹고 지원을 해보았습니다. 모두들 아시다시피 카카오는 지원을 할때 필수적인 정보만 적고 자기소개서나 학력같은걸 일체 명시하지 않습니다.

지원자격도 학력 및 전공에 제한이 없고 남성의 경우 군필의 제한만 있었습니다.
저는 지원할때는 아직 소집해제 전이였지만, 입사전에는 소집해제를 하기 때문에 지원을 해보았습니다.


또 저는 3학년까지 밖에 마치지 않았고 졸업하기까지는 1년이 남았지만 , 일반적인 기업에서 요구하는 것처럼 졸업이나 졸업예정자 조건을 카카오는 요구하지 않았습니다.


저는 아래처럼 4개의 전형절차중에서 1단계인 1차 온라인 코딩테스트만 찍먹만 해보려고 지원을 했습니다.


지원과정에서 입사를 희망하는 계열사를 1지망 2지망으로 선택하는데 저는 카카오페이카카오 본사를 각각 선택했습니다.

1차 코딩테스트

1차 코딩테스트는 9월 11일로 지원하고 일주일 정도의 시간이 있었습니다. 엄청 대단한것을 준비하지는 않았고, 기출문제들을 풀어보면서 카카오 코테들의 경향성을 파악하는데 시간을 들였습니다. 이 경향성 분석이 조금 도움이 되었던 것 같습니다. 기본적인 자료구조와 알고리즘을 다시 복습하고, 제가 스스로 정리한 문제 분류별 해결방법을 다시 읽어보면서 기다렸습니다.

9월 11일이 되어서 5시간동안의 1차 코딩 테스트를 응시했습니다. 1차 코딩테스트의 후기는 다른 글에도 많이 정리되어있으니 크게 다루지는 않겠습니다.
총 7개의 문제가 있었고, 확실히 이전보다는 난이도가 많이 낮았습니다. 난이도는 체감상 실버 2문제, 골드 3문제, 플래티넘 이상 2문제 정도였습니다.

그렇지만 첫 코딩테스트이기도 하고 시간이 정해져있다는 압박감에 5번문제(양과 늑대) 같은 쉬운 탐색 문제나 6번문제 (구간합)문제를 보고 머리가 하얗게 변했습니다. 풀이도 잘 떠오르지 않았습니다.

결과적으로 4.5개의 문제만 해결할 수 있어서 탈락을 직감했습니다.

그렇게 지내던 중, [카카오] 2022 신입 개발자 블라인드 채용 1차코딩테스트 결과 안내드립니다. 라는 제목의 메일을 받게 되었고, 뒹굴거리면서 확인을 했는데 결과는 충격적이게도 합격이었습니다.


기쁘다는 감정보다 이때까지 공부하던것이 그렇게 헛되지 않았구나라는 감정을 먼저 느끼게 되었습니다.

2차 코딩테스트

그리고 정말 급급하게 2차 코딩테스트를 준비해야 했습니다. 2차 코딩테스트를 준비하면서 알게된 점이 2차 코딩테스트는 엄청난 알고리즘 실력보다 디자인(그 디자인이 아닌 설계)과 최적화에 집중해야 한다는 것을 알게 되었습니다.

기출 문제와 채점하는 환경이 대부분 공개되어 있기때문에 2021,2020 블라인드 공채 2차 코테문제를 스터디원 중 한명과 같이 풀어보았습니다. 그런데 아무리 해봐도 풀리지가 않았습니다. 전날까지 보고갔는데도 도저히 모르겠더라구요..
자포자기의 심정이었습니다.

그렇게 9.25일이 되어서 2차 코딩테스트를 치루게 되었습니다. 2차 코딩테스트는 10문항 정도의 CS 객관식+주관식 문제와 하나의 문제인 시스템 설계와 최적화 파트로 구성되어 있습니다. 중간 중간 휴식시간을 포함해서 총 7시간 정도 응시하고, 캠과 화면 모니터링을 켜고 봐야합니다.

CS 문제

대부분의 문제는 CS 코어 과목에서 출제되었고 기본에 충실한 문제들이었습니다. 학부 수업을 충실하게 들은 전공자라면 큰 부담이 되지 않는 문제 8문제 정도와 살짝 헷갈릴 수 있는 2문제 정도로 구성되어 있습니다. 저는 10문제 중에서 7개 정도 맞았던 걸로 기억합니다.

CS 테스트는 점수보다 적부라는 썰이 있습니다.

설계와 최적화 문제

어차피 해설이 올라올 것이고 아직은 민감할 수 있기 때문에 자세히는 언급하지 않고 간단하게 말씀드리겠습니다.

2차 코딩테스트는 ICPC같은 대회처럼 응시자들의 점수와 나의 등수를 실시간으로 확인할 수 있기에 부담이 되었습니다. 저는 부담을 최대한 덜 받기 위해서 잘 확인하지 않았습니다.
문제가 시나리오1,2로 구성되기에 합산점수로 최종점수가 매겨집니다.

복수의 사용자들의 실력에 맞게끔 정렬하는 것이 최종 목적인데, 사용자들의 실제 실력을 알 수 없기 때문에 온라인 게임에서 많이 볼 수 있는 랭크 기반 매칭시스템을 구현하는 것이 방법입니다.

제한적인 검색이 가능하기 때문에 사례를 많이 찾아보았고 Elo 시스템을 채택하였습니다. 그 후 적당히 최적화 방법을 계속 구현해 최종점수를 조금씩 끌어올렸습니다. 응시 종료 30분전 점수판이 프리징되는데 그 때 기준으로 300등대 초반으로 마무리했습니다.

2차 코테를 끝내고 카카오가 3자리수대의 채용을 한다고 했으니 약간 희망을 품었지만,신경쓰지 않고 얼마 안남은 소집해제만 대비하며 내년 복학준비만 생각하고 있었습니다.

그러던 와중 소집해제일인 10.14일이 되었고 뭔가 기분이 묘한 감정을 느끼던 와중에
[카카오] 2022 신입 개발자 블라인드 채용 2차코딩테스트 안내드립니다. 라는 제목의 메일을 받게 되엇습니다.


1지망으로 작성한 카카오페이에 합격이었습니다. 뭔가 일이 이상하게 굴러가고 있다는 것을 느끼게 되었고 기분이 이상했습니다.

HR 인터뷰

자기소개서와 HR 인터뷰 준비하기

특이하게도 카카오페이는 1차가 기술인터뷰가 아닌 HR인터뷰였습니다.
일반적으로 최종면접이 인성면접인데 순서가 반대였습니다.

후에 알게되었지만, 다 이유가 있었습니다.

HR인터뷰 단어가 생소했지만, 컬쳐핏 면접이나 인성면접으로 생각했습니다. 소집해제 날부터 급하게 자기소개서를 준비했습니다.

공대생치고는 드림클래스나 서포터즈,교내 홍보대사같은 대외활동을 많이 해본편이어서 여러 대외활동을 위한 자기소개서는 꽤 써보았지만, 취업준비를 당연히 해본적이 없기에 자기소개서부터 걱정이였습니다. 하지만 다행히도 문항들은 평이한 수준이었고, 프로젝트 경험과 같은 일반적인 질문들로 구성되었습니다.

입대하기전 SKT에서 수상했던 AI 공모전 우승경험을 중점적으로 작성했고 그 과정에서 접근방식과 해결방식 위주로 작성했습니다. (후술하겠지만 이 부분에서 굉장히 좋은 평가를 받았습니다.) 또 아주 조그만 프로젝트도 작성했습니다.

자기소개서와 포트폴리오를 작성하면서 느낀 점이 프로젝트 경험이 많이 부족하다는 점을 절실히 깨닫게 되었습니다.

알고리즘+CS+프로젝트 이 삼박자가 완벽해야 취준에 성공할 수 있어보입니다.

자기소개서를 제출하고는 급하게 HR인터뷰를 준비했습니다. 경험이 전무하다보니 어디서부터 접근해야할지 몰라 많이 헤맸지만, 교내 홍보대사 활동을 통해서 다양한 전공의 사람들과 많이 만날수 있게 되었고, 대부분이 취업준비를 하거나 이미 취업을 한 상태여서 주변에서 정말 정말 많은 도움을 받게 되었습니다.

학교생활을 하면서 다양한 전공의 사람들과 교류하며 인맥을 넓히는 것은 확실하게 도움이 됩니다.

또 카카오페이라는 테크핀 기업에 대한 분석과 결제&송금 도메인에 대한 지식을 공부하게 되었습니다. 여러 유튜브를 참고하면서 인성면접 빈출문제에 대한 답변과 개발회사에 국한되는 가치관 질문을 거의 다 준비했습니다.

인터뷰를 마치고

HR인터뷰는 10월 말경에 화상으로 진행되었습니다.


덜덜 떨면서 참여했는데, 면접관분이 긴장을 풀어주시려고 많이 노력해주셨고 면접관의 태도나 질문에서 따뜻함을 느낄 수 있어서

결과에 상관없이 카카오페이에 대한 이미지가 매우 좋게 각인되었습니다.


인터뷰는 다행히도 일반적인 수준과 익숙한 질문들로 구성되었지만 면접관분이

가끔 정말 날카로운 질문으로 답변 내용을 확인하고는 하셨습니다.

 

1,2차 코딩테스트를 마치고는 둘다 탈락했다고 생각했지만, HR인터뷰를 마치고는 합격에 대한 아주 조금의 확신을 가지게 되었습니다.
자세히는 말씀드리기 어렵지만, 복수의 파트에서 좋은 평가를 받게 되어 조금의 희망이 생겼습니다.

 

1,2차 코딩테스트를 응시할때는 정말 모의고사 느낌으로 보자, 경험만 쌓자 였지만,
HR인터뷰를 마치고부터는 정말 진심모드로 최선을 다해서 준비해야겠다는 생각을 하게 되었습니다.

 

면접을 마치고 일주일쯤 뒤에 메일 제목부터 강한 스포일러를 당했습니다.
[카카오페이] HR 인터뷰 전형 합격을 축하드립니다! 라는 메일을 받게 되었습니다.
이제 그렇게 열망하던 카카오 입사까지 1단계만 남았다는 것이 실감나게 되었습니다.

기술 인터뷰

기술인터뷰 준비하기

기술 인터뷰, 2차 인터뷰, 최종 면접 다 맞는 말이지만 기술 인터뷰라고 하겠습니다.

얼렁뚱땅 시작한 공채 지원도 이제 마지막 단계, 그리고 가장 어려운 단계만 남기고 있었습니다.
당연하게도 기술면접 경험이 없었기에 주변의 개발자들에게 조언을 많이 구했고 캐치카페와 같은 사이트도 참조하면서 기술면접을 준비했습니다.

일반적으로 기술면접은 포트폴리오에 명시한 프로젝트+CS 기본기로 진행됩니다. 저는 포트폴리오가 처참할정도로 빈약하기에 CS 기본기에 올인했습니다.

CS 기본기는 github 저장소에 정말 많은 자료들이 있습니다. 예를 들자면

  1. 한재엽님의 CS 질문 저장소 : 대체적으로 많이 참고되는 저장소입니다.
  2. Woovicotry님의 CS 질문 저장소 : 1번과 비교해서 상대적으로 덜 알려져 있지만 퀄리티는 뒤지지 않습니다.
    이런 저장소들을 참고해서 공부했습니다.

단, 반드시 명심해야할 것이 인터넷의 자료는 완벽하지 않고 실제로 명백하게 틀린 부분도 꽤 많아서

저는 저장소에서는 질문을 참고했고 실제 답변은 영문 공식문서나 원서를 주로 참고했습니다.

 

또 기술 면접은 DFS로 준비해야 한다는 말을 많이 들었습니다.

그래서 단순히 안다 or 모른다가 아니라 아래와 같은 기준으로 깊게 준비했습니다.

  • 왜 이 기술이 사용되었는지
  • 내부 구조는 어떻게 되어있는지
  • 왜 A가 아닌 B를 선택해야 하는지
  • 실제 활용은 어떻게 되는지

제가 가장 좋아하는 자료구조인 HashTable을 예로 들어서 설명드리겠습니다.

  • 왜 이 기술이 사용되었는지일반적으로 $$O(1)$$ 시간복잡도로 조회,삽입,수정이 가능하다.
  • 내부 구조는 어떻게 되어있는지 : hashtable은 충돌을 잘 관리해야하는데, 일반적으로 개방주소법/분리연결법이 사용된다.
  • 왜 A가 아닌 B를 선택해야 하는지 : 개방주소법은 구현이 간단하고, 캐시에서의 이점이 있지만 로드팩터에 민감하고 삭제가 어렵지만 분리연결법은 로드팩터에 영향을 조금 덜 받고 hashtable의 확장이 더디게 일어나지만 추가적인 오버헤드가 있다.
  • 실제 활용은 어떻게 되는지 : Python 3에서는 개방주소법,Java에서는 분리연결법을 사용한다.부족함사실 위는 꽤 자세하게 준비한 것 같지만 저는 절대적으로 부족하다고 생각합니다.
    예를 들어 개방주소법은 왜 캐시효율이 좋을까요? 또 개방주소법에서도 여러가지 기법이 있고, 그에 따른 추가적인 트레이드오프가 있습니다. 분리연결법에서도 버킷에 연결리스트를 구성하는 방법과 트리로 구성하는 방법등이 있습니다.

그러면 왜 트리를 사용할까요? 또 Java는 왜 분리연결법을 사용할까요?

Java 8 부터 사용하는 분리연결법은 트리와 연결리스트를 동시에 사용하는데, 이때 균형이진트리인 RB 트리를 사용합니다.
AVL이나 Splay도 있는데 왜 RB 트리일까요?


이렇게 준비할때도 끊임없이 하나씩 의문을 제기하면서 deep 하게 준비했습니다.

이처럼 노션을 활용해서 대략 50개 정도의 질문들 하나하나를 깊게 준비했습니다.

포트폴리오는 제가 했던 프로젝트의 설계와 DB 모델링을 다시 점검하고,

특정 기술을 사용한 이유에 대해서 고민하며 준비했지만 매우 빈약했습니다 ㅠㅠ

기술 인터뷰

기술 인터뷰 역시 화상으로 진행되었으며 1:N 방식으로 1시간 가량 진행되었습니다.


단순히 이거 알아요? 보다는 이 기술을 사용한 이유가 뭐에요? 부터 시작하는 꼬리물기 형태의 질문으로 인터뷰 전체가 흘러갔습니다.

또 포트폴리오 질문은 단순히 포트폴리오 질문이 아니라 CS로 자연스럽게 이어지는 질문이었습니다.

 

다만 CS 질문이 다른 계열사처럼 폭포수처럼 쏟아지지는 않았고 핵심적인 부분만 질문하셨습니다.

또 흥미로운게 제가 제출한 블로그의 글들을 보시고 그와 관련된 질문들을 하셨는데, 이것도 굉장히 깊숙히 질문하셨습니다.


인터넷에 정말 많은 기술글들처럼 단순히 글을 실어 나른것인지 가 아니라 내부구조부터 깊게 고민해보았는지 에 대한 질문들이셨습니다.

면접이 끝나고 사실 반반의 심정이였습니다. 아쉽게도 제가 준비한 모든것을 보여드리진 못했지만, 급급하게 준비한거치고는 방어를 적당히 한것 같다라는 느낌이였습니다.

 

꽤 긴 기다림의 시간끝에 [카카오페이] 안녕하세요. 카카오페이입니다. 라는 제목의 메일을 받게 되었습니다.


아쉽게도 결과는 불합격이었습니다. 어찌보면 당연한 결과라고 생각했습니다. 준비를 하면서 알게된 점이 입사하시는 분들의 공통점은 꾸준함과 탁월함임을 알게되었는데, 저는 두 부분 모두 빈약했던것 같습니다.

과정을 끝내고

얼렁뚱땅 시작된 공채지원이였지만, 최종면접까지 가게 되었습니다. 저는 최종탈락이라는 결과에 주목하기보다는 그 과정까지 가면서 준비하면서 제가 부족한 점이 무엇인지 확실히 깨닫게 되었습니다.
또 여러 과정, 특히 인터뷰를 하면서 카카오라는 기업이 정말 젠틀하고, 지원자 중심에서 생각해주는 기업이라는 점을 알게 되어 카카오에 입사하고 싶은 열망이 더 커지게 되었습니다.

내년에도 다시 1,2차 코테부터 할 생각하니까 아찔하긴 합니다.

3학년을 갓 마치고, 조금의 특수성은 있지만 군 복무를 마친 직후에 해본 첫 시도가 가장 챌린징스럽고 배운점이 많아 굉장히 뿌듯했습니다. 아마 이제는 복학을 준비하면서, 제가 부족했던 부분을 돌아보면서 그 부분을 개선하는 방식으로 진행할것 같습니다.

굉장히 긴 글이여서 쓰는 저 만큼이나 읽으시는 분들이 부담스러울텐데 투머치토커의 기질을 숨기기 쉽지않네요. 이 글을 읽으시는 모든 분들이 모두 원하는 회사에 합류하기를 기원합니다🙏

진짜 소집해제 한날부터 면접날까지 제대로 쉰 날이 없엇기에 이젠 좀 편하게 쉬면서 공부하려구요..

'회고' 카테고리의 다른 글

쌩신입의 토스 NEXT 2022 서버 직군 합격 후기  (28) 2022.09.10

+ Recent posts