2024 카카오 겨울 인턴십 전환 후기

개발자 성열·2024년 9월 10일
post-thumbnail

인턴십 지원서를 쓸 때부터 전환 면접을 마치고 나올 때까지 배우고 느낀 것들을 공유합니다.

소개

안녕하세요🙌 지난 8월 카카오 FE플랫폼팀에 입사한 프론트엔드 개발자 이성열입니다. 합격은 3월에 했지만 한 학기 학교를 다니고 입사했어요.

저는 지난 2023년 11월 모집한 카카오 채용 연계형 겨울 인턴십에 합격 후 전환에 성공했어요. 그 과정에서 들은 조언들과 개인적으로 배우고 익힌 것들을 모아 간단히 공유해보고자 합니다.

미루고 미루다 합격 반 년만에 쓰는 합격 후기 시작!

서류 전형

서류에 써야할 것들이 이것저것 있었지만 개인적으로 프로젝트가 중요하다고 느꼈습니다. 개발에 대한 스스로의 열정, 전문성, 장점을 했던 프로젝트를 근거로 설명했습니다. 제가 뭘 했는지 기억해내는데에는 이전에 썼던 개발 동아리 지원서와 개인 블로그가 큰 도움이 됐습니다. 블로그든 노션이든 사소하더라도 그때그때 실수하고 배운걸 정리해두는 습관이 중요하다고 생각합니다.

이렇게 예전에 적어둔 자료들로 제가 뭘 했는지 정리한 뒤, 여러 종류의 경험들을 모아 기업이 추구하는 방향에 맞게 쓰도록 노력했습니다. 예를 들면 '가보지 않은 길을 두려워 하지 않습니다'라는 인재상이 있다면 프로젝트에서 문제를 해결하기 위해 새로운 기술을 스스로 배워 적용한 경험을 서술하는 것입니다. 스타트업과 대기업이 필요로하는 인재가 다를 수 있는 것처럼 기업마다 원하는 인재상이 다르니 지원하시는 곳에 따라 꼭 한 번 확인해보세요.

지원 자격과 우대 사항에 있는 것을 잘 포함시키기 위해 노력했습니다. 사용해본지 좀 된 것도 욕심부려서 넣었는데 피그마 면접 준비하다 눈물났으니 조심하세요😅. 아직 취준을 하지 않더라도 채용 공고에 있는 자격/우대 사항들을 보는건 앞으로의 공부 방향을 잡는데 큰 도움이 된다고 생각해요.

처음에는 뭘 써야할지 막막했는데 이렇게 이것저것 넣다보니 오히려 뭘 빼야할지 고민됐습니다. 다음날 다시 읽어보니 정보의 나열일 뿐 내용은 많은데 방향성은 없는 느낌이더라고요. 이때 인스타 DM으로 한 분께서 제가 어떤 사람인지를 한 문장으로 기억할 수 있게 쓰라 조언해주셨어요. 너무 맞는 말인게 과한 정보는 없는 정보나 마찬가지고 기억에 안남는 서류가 될 수 있기 때문이지요. 따라서 이후에 제 서류에서 노이즈를 줄이기 위한 작업을 했습니다.

이렇게 쳐내고 정리하길 반복하니 전날 새벽에 쓴 자소서가 스레기로 보였답니다. 자소서는 꼭 며칠동안 쓰고 여러명의 검토를 받읍시다.

자소서를 처음 쓸 때는 뭘 써야할지 막막할 수 있는데, 열심히 인터넷 서핑을 하며 다른 사람들의 후기글을 보는게 큰 도움이 됐습니다. 합격글 뿐만 아니라 불합격 글에 특히 진심어린 성찰이 담겨있는 경우가 많아 많은 인사이트를 얻었어요. 어떤 글에서는 '서류에서 질문을 유도하라'라는 팁을 봤었는데 처음에는 그게 가능한가 싶었지만 면접을 보고 생각해보니 제3자의 입장에서 제 서류를 봤을 때 어떤 부분이 궁금할지 어느정도는 예측할 수 있는 것 같기도 합니다. 그래서 물어보고 싶음직한 부분을 서류에 넣고 그 부분을 대비하는건 말이 안되는 얘기는 아니라고 생각해요.

처음 써보는 자소서라서 개발 인스타 계정(재밌는거 많이 올려요 구경오세요)에 도움을 요청했었는데요, 감사하게도 많은 분들께서 팁을 주셨습니다. 여기서 특히 기억에 남는 내용을 요약하면 다음과 같아요.

채용 공고를 꼼꼼하게 읽으며 회사가 원하는 능력들 중 내가 어떤 것을 가지고 있는지 체크하고, 이에 연관된 실제 경험과 사례가 있으면 정리해두며, 지원서는 이 내용이 잘 보이도록 불필요한 내용을 덜어내어 작성한다. 내가 어떤 사람인지를 한 문장으로 기억할 수 있게 정리하고 스스로 보기에도 멋질 때까지 계속 첨삭합니다.

도움주신 분들 다시 한 번 감사드립니다 덕분에 합격했어요🙇. 전체 팁들과 제가 인턴십에 합격해 전환되기까지의 흔적은 아래 KAKAO 스토리 모음에서 확인하실 수 있습니다.

코딩 테스트

준비

서류를 제출한 모든 사람이 코테에 참여합니다. 이번 코테에서는 2시부터 7시까지 5시간동안 5문제를 풀어야했고 프로그래머스 플랫폼에서 진행했습니다. 히든 테케가 따로 없기에 주어진 테케를 모두 통과하면 문제를 맞춘 것을 확신할 수 있었습니다.

2023년 여름방학에 플레1 찍을때까지 백준을 미친듯이 푼 덕분에 코테는 무난하게 넘어갔습니다. 5문제 올솔했어요 🎉

solved.acCLASS라고 백준 문제들을 난이도/유형별로 큐레이션해둔 시스템이 있는데 많이 도움을 받았어요. CLASS 레벨별로 따라 풀면 알고리즘적으로 문제를 이해하는 능력을 키우기 좋다고 생각해요. CLASS5까지 풀면 왠만한 코테 유형들은 다 익힐 수 있는 것 같습니다. 다만 중국인의 나머지 정리나 유클리드 호제법처럼 수학스러운 문제는 기업 코테에는 잘 나오지 않는 것 같으니 적당히 건너뛰며 푸는 것도 좋은 것 같아요.

저는 주변에 알고리즘 괴수 친구가 한 명 있어 모르는 문제 있을 때마다 도움을 청했어요. 백준에서 문제 유형을 확인할 수는 있지만 이건 과한 스포일러라고 생각해서 "이 문제 트리로 푸는거 맞음?"와 같이 간접적으로 친구에게 물어보는 식으로 도움을 받았네요. 여담으로 이 친구가 추천한 문제중에 Lopsided Lineup이 있는데, 코테와는 큰 상관 없겠지만 풀이가 신박하고 간단하니 시간나실 때 풀어보세요. 2-3일 고민하다가 해답 물어봤는데 너무 간단해서 눈물이 흘렀습니다. 억울해서 아래 사진처럼 난이도 높여야된다고 기여도 했어요🙄

복기

제가 당시에 풀었던 코딩 테스트 문제는 프로그래머스에서 확인하실 수 있습니다. 까다로운 알고리즘을 알아야하는 것은 아니었고 개념을 잘 적용하면 풀리는 문제들로 구성되었어요. 시험 풀다가 코드가 너무 복잡해지는 것 같으면 잘못 풀고있을 가능성이 높으니 심호흡하고 처음부터 돌아보는게 좋을 것 같습니다.

당시에 두 번째 문제였던 '도넛과 막대 그래프'에서 막혀 다음 문제로 넘어갔다가 다시 풀었던 기억이 나네요. 의외로 마지막 문제가 가장 어렵지는 않았는데 학교 알고리즘 시험 범위와 겹쳐서인 것 같습니다. 개인적으로 제일 어려웠던 문제는 'n+1 카드게임'이었네요.

코테 진행 시간이 5시간이었는데 다 푸는데 2시간 49분 걸렸습니다. 남은 시간동안은 문제마다 다른 언어로 다시 풀어 제출했습니다. 히든 테케가 없으니 만점인게 확실한 상황이었고 남은 시간 버리기도 아깝고 눈에 띄기 위해 뭐라도 하고 싶었습니다. 그래서 처음에는 익숙한 C++로 풀었는데 문제 순서대로 JS, Java, C++, Swift, Python으로 다시 풀었습니다. 언어별로 C++의 __builtin_popcount나 Python의 데코레이터 등 언어별로 특이한거 하나씩 보여드리려고 노력했어요.

코테는 꾸준히 하는게 가장 마음 편한 방법인 것 같습니다. 알고리즘에는 그래프와 트리같은 개념이 도구로 쓰이는 셈인데 도구의 사용법 자체는 비교적 쉽지만(예를 들어 큐는 선입선출 한마디로 설명이 끝나죠) 문제마다 눈치껏 올바른 도구를 선택하고 잘 변형해 쓰는 것이 어려운 것 같아요. 꾸준히 문제를 풀면서 맥락에 익숙해지는게 중요한 것 같습니다.

그나저나 백준 3-4문제만 더 풀면 다이아 찍는데 그새 까먹어서 그런 날이 올지...

인터뷰

준비

서류를 합격해도 면접 날짜가 기말고사 기간과 겹칠 수밖에 없어 걱정을 좀 했습니다. 시험과 겹치면 눈물의 이지선다를 해야되기 때문이죠. 심지어 중간고사도 아닌 기말고사라서 자칫하면 한 학기 공부한걸 통째로 F로 날릴 위기였습니다. 집가는 길에 홍대 입구역에서 합격 알림 보고 조마조마하게 면접 일정을 확인했던 기억이 나네요.

시험 없이 비어있는 요일이 화요일밖에 없어 제발 화요일로 되라고 빌었는데...

짜잔! 인턴십 과정에서 가장 운이 좋았던 순간...이라고 볼 수도 있겠습니다. 하지만 화요일만 시험이 없다는건 다른 날에 모두 시험이 있다는 뜻🥲 아래와 같은 정신나간 일정이 시작되었습니다.

컴공 복수전공을 늦게 시작해서 컴공 과목만 5전공 16학점(자료구조, 알고리즘, 시스템 프로그래밍, 운영체제, 인공지능)을 듣던 때였습니다. 전공 시험 공부 + 면접 준비 + 사전 과제 콤보로 정신이 나갈뻔한 2주였어요. 당연히 시험 공부를 제일 대충했고 살면서 이렇게 가성비로 시험공부한건 처음이었네요. 면접 준비용 깃허브 레포들도 별만 달아뒀지 보지는 못했어요. 그래도 CS 면접 질문은 시험공부하면 되니 일석이조 럭키비키잖아?라는 마인드로 살았습니다. 그렇게 면접에서는 CS 대신 FE 질문이 쏟아지는데

사전 과제는 코드를 짜서 제출해야되는데 사전 과제와 면접 준비의 균형을 맞추는 것도 아주 어려운 일이었습니다. 코드는 최선을 다해 짜고 싶은데 면접 준비를 못하면 또 안되니 둘 다 급한 마음으로 준비했었네요. 과제 제출해놓고 혹시나 빌드 안될까봐 다운로드해서 다시 빌드해보고 제출하고 그랬었습니다.

이번에도 면접을 준비하며 인스타에 도움글을 올렸고 많은 분들께서 도움을 주셨습니다. 여기서 특히 기억에 남는 내용을 요약하면 다음과 같아요.

무조건 모의 면접 많이하기. 스스로 고민해본 질문과 안해본 질문은 다르니 예상 질문과 답변 많이 생각하기. 나의 장점을 보여주거나 나를 각인시킬 수 있는 경험을 3개 정도 뽑아서 어떤 질문에든 활용할 수 있게 준비해두기.

다시 한 번 감사드립니다🙇🙇 모의 면접 많이하기는 시간이 촉박해 실천하지 못했는데 면접 끝나고 부족함이 느껴져 너무 아쉬웠었네요.

사전 과제를 제출하고, 제출한 사전 과제와 자소서 기반으로 면접 준비하고, 대충 시험 공부를 하다보니 어느새 면접 일자가 다가왔습니다. 면접 전날에는 잠을 잘지 면접 준비를 할지 수백번 고민했는데 잠 안자면 바보가 되는걸 알아서 그나마 일찍 잠들었었어요.

아래 사진은 면접 끝나고 받은 면접비 카드에요. 판교역 투썸에서 면접 복기하며 찍었어요😚. 하루만 지나도 기억이 휘발되니 힘들어도 당일에 복기하세요.

복기

면접 들어갔다 나와서 든 생각을 요약하면 입으로 설명하는건 정말 어렵다라는 겁니다. 지금 생각해도 너무 부끄러워요... 당시에는 제가 생각해도 너무 어버버거려서 정말로 떨어진 줄 알았습니다. 지금 글 쓰면서 옛날에 복기한거 다시 읽어보는데 소름이 돋네요.

면접 준비할 때 준비도가 높은 순으로 나열하면 다음과 같다고 생각합니다.

  1. 입으로 말하면서 연습한 내용
  2. 마음속으로라도 답변을 생각해본 내용
  3. 시험에 나오면 풀어서 맞출 수 있는 내용
  4. 옛날에 배웠던게 기억나는 내용

면접에 있어서는 이것저것 공부한 지식보다 중요한 주제 몇개라도 입으로 직접 설명해본 지식이 더 유용하다고 생각해요. 면접 준비하려고 이리저리 찾아보고 커다란 면접 관련 레포들을 둘러보다보면 그 양에 압도되어 넓고 얕게 공부하실 수 있는데, 나의 것으로 만들어 스스로 설명할 수 있는 지식이 면접에 있어서는 더 도움이 된다고 생각합니다.

아 그리고 입으로 설명하면서 손으로 코딩하는건 더 어렵습니다. 사전 과제는 면접 며칠 전에 직접 열심히 고민하고 짰던 코드라서 잘 이해하고 있다고 생각해서 우선순위를 낮게 잡고 준비했는데요, 면접에서 어떤 코드가 어디있는지 우왕좌왕 찾아다니고 설명도 잘 못해서 정말 어디 숨고 싶었습니다 ㅠㅠ. 직접 짠 코드든 뭐든 면접 준비하면서 말한 단어만 면접장에서 말할 수 있다는 마인드으로 준비하세요.

사전 과제 관련 질문에서 대답을 라이브로 코드로 보여드렸으면 좋았을텐데 어버버거리다가 못했어요. 어쩌면 어떤 코드가 어디에 위치할지 자연스럽게 생각해낼 수 있는게 아키텍처, 구조의 중요성일지도 모르겠습니다. 저는 구조짜는게 익숙하지 않고 어려워서 인턴 때도 고생했네요. 면접 때는 나름 그림으로 설명해본다고 화이트보드에 이것저것 그렸는데 1분만에 다시 앉았어요. 그러고 나갈 때 화이트보드 지우지도 않고 나갔답니다🤗 글 쓰다보니 생생하게 기억나는데 오늘 밤에는 악몽꾸게 생겼습니다.

학교 시험 공부하느라 CS는 빠삭하다고 자신했지만 생각보다 프론트엔드 쪽 질문을 많이 하셨고 대답을 못한게 꽤나 많이 있어 아쉬웠습니다. 프론트엔드 직무인 인턴을 뽑는건데도 프론트엔드쪽 준비를 덜 해서 아쉬웠어요. 면접 질문을 들으면서 아직 모르는 내용이 많음을 깨달았습니다. 첫 면접이라서 개인적으로 가장 거리감 있었던 인성 면접 질문도 꽤나 준비했는데 이거 할 시간에 프론트엔드 공부 좀 더 할 걸 그랬네요.

아 그리고 사소하지만 어려운건데 모르는거 있으면 솔직하게 모른다고 하는게 낫습니다.

인턴 2개월

떨어지든 붙든 이상하지 않았을 것 같은데 감사하게도 합격했습니다🎉

첫 날 오티 때 지하철이 생각보다 더 걸려서 10분 일찍 가야될걸 정시에 도착했네요. 이름표 받으려고 시큐리티 데스크에 갔는데 제 이름을 아시길래 놀랐어요. 어떻게 아셨냐고 여쭤보니 이름표가 하나 남았다고 ㅠㅠㅠ 꼴등 당첨!

첫 주에 인턴 공통 교육을 듣고 마지막 날에 멘토님들께서 데리러 오셨습니다. 이때부터 진짜 부서 생활 시작이에요. 순식간에 지나간 두 달간 어떤 것들을 배웠는지 공유할게요. 일정상에 특이한 점은 없어서 시간순으로 풀기는 애매하고 정리한대로 나열해보겠습니다.

회고

프론트엔드 개발자면 상태 관리를 꼭 깊게 공부하세요. 저만 안한 것 같긴 한데,,, 저는 했던 프로젝트 중 복잡한 상태 관리가 필요한만큼 거대한게 없어서 게으르게 context + useState 조합으로 먹고 살았는데 이때문에 상태 관리에 대한 고민을 해본 적이 없어 고생했네요. 프론트엔드에서 상태 관리가 왜 필요하며 어떤 라이브러리가 있는지 찾아보세요.

프로젝트할 때 적당히 돌아간다고 넘어가지 말고 남들은 어떻게 해결했는지 구경하고 문제가 거대해지면 어떻게 해야할지 고민해보세요.

자신의 의도를 프로젝트 구조에 담는 연습을 하세요. 어떤 시나리오를 고려했고 어떤 문제에 어떻게 대응하려고했는지 구조로 설명하는 연습을 하세요. 그렇다고 MVC, MVVM, FLUX 같은 유명한 구조들을 외우는데 매몰되지 마세요. 구조는 그 자체로 정답이지 않고 올바른 상황에 사용됨으로 가치를 가집니다. 구조 자체에 얽매이면 알게모르게 그 의미를 끼워맞추게 되는 것 같아요. 구조외에 라이브러리나 프레임워크를 사용할 때도 고민하면서 사용하세요.

유명한 도구라고 해결하고자하는 문제에 필요한 도구인건 아닙니다. 생각없이 리덕스 따라했다가 힘들었네요. 하필이면 복잡한 리덕스를 골라서;;

문서 작성하고 회의 참여하고 설명하는데 시간이 정말 많이 쓰입니다. 벼락치기로 학교 과제 혹은 동아리 프로젝트하는거 생각하면서 일정 짜면 시간이 정말 많이 부족할거에요. 멘토분들께 PR을 올리고 회의에 참석할 때마다 내 의도를 정리하고 이를 코드로 표현하며 설득의 언어를 준비하는 마음가짐으로 합시다. 너무 원대한 목표를 세우지 말고 현실적으로 계획을 세워보세요. 2024년 2월에는 쉬는 날이 참 많았는데 모순적이게도 할 일 많은 인턴 입장에서는 숸다고 마냥 좋지는 않았네요.

퍼트릴만한 가치가 있는 아이디어는 멘토분들과/주변 인턴들과 나누세요. 시간이 될때마다 기록하고 소개해보세요.

고민해도 모르겠는게 있으면 문제 상황과 생각해본 해결책등을 잘 정리해서 적극적으로 멘토/조직장께 여쭤보세요. 인턴을 돕기위해 계시고 짧은 인턴 기간동안 잘못된 방향으로 가는 것보다 일찍 여쭤보는게 낫습니다.

제가 못했고 아쉬웠던 것들을 모아놓은거니 이걸 다 해야 붙는다고 생각하지 마세요😚

전환 면접

전환 면접 관련해서는 부서나 과제에 대한 관련성이 커서 제가 크게 말할건 없는 것 같아요. 인턴 기간 동안 고민하고 해결했던 내용을 부지런히 기록하세요. 저는 인스타에 게시물 올린 경험 덕에 피피티 만드는데에는 시간을 덜 썼네요.

여담

인턴 막바지에 두 번 실수하지 말자는 무시무시한 명언이 생겼는데요... 제가 입사하면 인턴 동기분 책상에 프린트해서 붙이기로했는데 아직 실천을 못했어요.

팀 분위기 정말 좋았어요. 점심시간마다 즐거웠고 떠나기 정말 아쉬웠습니다. 특별히 오트밀 챙겨드시는 누구누구... 덕분에 점심시간이 특별히 즐거웠습니다 감사합니다. 인터뷰 글 봤는데 어떻게 그렇게 음성지원이 되던지.

인턴 중간중간 다른 부서의 인턴 분들을 만날 기회를 만들었는데 부서마다 과제나 분위기가 정!말! 달라서 신기했습니다.

인턴하는 두 달 내내 즐거웠지만 은은하게 불안함이 있었네요. 불안한게 당연하니 불안함에 더 불안해지지 말고 꾸준히 할 일을 합시다. 정말 되도않는 사소한 일에 신경쓰고 걱정할 수 있는데 거기에 빠지지는 말아요.

합격

개강하고 학교가는 길이었는데 10시 반 즈음이었나 카톡이 왔어요. 평소에 못보던 사람이 카톡을 보내서 누구지?했는데 카카오 영입팀인걸 보고 바로 영입 홈페이지에 들어가서 확인했습니다. 셔틀타러가다말고 학교 정문에 몇 분간 서서 가족들과 지인들에게 카톡과 전화를 돌렸던 기억이 나네요. 예정일보다 하루 일찍 발표했어요.

마치며

긴 글 읽어주셔서 감사합니다! 궁금한 점 있으시다면 댓글에 남겨주시면 시간나는대로 답장해드릴게요. 글에 다 담기 위해 노력하긴 했는데 놓친 부분이 분명히 있을거라서 질의응답하며 글을 더 완성시킬 수 있을 것 같습니다.

제 인스타그램 계정인 @yeolyii에서 인턴할 당시 올린 게시물/스토리들을 사진과 함께 확인하실 수 있습니다.

이제 정말로 실무를 시작하는데 멋진 프론트엔드 개발자가 되기 위해 노력해야겠습니다. 취준하시는 분들 좋은 기회와 좋은 결과가 오길 응원합니다 화이팅🔥

제가 속한 FE플랫폼에서 FE 개발자(경력)를 모집합니다! 카카오 영입 홈페이지에서 확인해보세요 🧑‍💻

profile
유익하고 바보같고 화가나는 개발 일상

15개의 댓글

comment-user-thumbnail
2024년 9월 11일

항상 인스타로 보는데, 정말 대단하신것 같아요! 꿀팁들도 물 흐르듯 재미있게 써주서서 읽으며 많이 도움됐습니다☺️👍🏻

1개의 답글
comment-user-thumbnail
2024년 9월 11일

후기 잘 봤어요. 축하드립니다!

1개의 답글
comment-user-thumbnail
2024년 9월 11일

좋은 정보 압도적 감사드립니다 ..

1개의 답글
comment-user-thumbnail
2024년 9월 11일

인스타로 뵙던 분을 벨로그 트렌드에서 뵙네요...! 정말 축하드립니다! 좋은 정보도 늘 잘 보고 있어요, 정말 감사드립니다. 꽃길만 걸으시길~

1개의 답글
comment-user-thumbnail
2024년 9월 12일

👍👍👍👍

1개의 답글
comment-user-thumbnail
2024년 9월 12일

회고 문단에서 짧지만 담백한 말들이 인상 깊네요. 잘 읽었습니다 🤗

1개의 답글
comment-user-thumbnail
2024년 9월 19일

"JS, Java, C++, Swift, Python으로 다시 풀었습니다. 언어별로 C++의 __builtin_popcount나 Python의 데코레이터 등 언어별로 특이한거 하나씩 보여드리려고 노력했어요"
여기서 터졌네요 ㅋㅋㅋ 진짜 광기가 보이는...

저와 닉네임이 같네요 입사를 축하드립니다 :)

1개의 답글
comment-user-thumbnail
2024년 9월 26일

잘 읽고 갑니다!

답글 달기