본문 바로가기
기타/일상

1년 안에 카카오 개발자 되기

by BuyAndPray 2021. 6. 23.
반응형

들어가기에 앞서

필자는 2021년 여름 카카오 채용연계형 인턴십 개발 부문에 떨어졌다. 정말 가고 싶은 회사였기에 아쉬움도 더욱 컸던 것 같다. 하지만 본인이 준비가 덜 되었다는 점을 누구보다 잘 알고 있었고, 어떤 부분을 더욱 보완하면 좋을지 깨달을 수 있었던 기회였기에 후회되지 않고 오히려 기쁜 마음이 든다. 그리고 보완할 점을 보완하면서 본인이 1년 안에 카카오 개발자가 되는 과정을 공유한다면, 본인 스스로 정말 뿌듯할 것이고 취업을 준비하고 있는 비슷한 고민을 가지고 있는 사람들에게 도움이 될 것 같아 이렇게 글을 남기게 되었다. 즉, 이 글은 1년 안에 카카오 개발자가 되는 방법을 알려주기보다 필자 본인이 앞으로 1년 안에 카카오 개발자가 되기 위해 성장하는 과정을 담은 글이 될 것이다. 혹시라도 글에 부족한 부분이 있다면 댓글로 편하게 알려주면 됩니다.

 

가장 중요한 세 가지

본인이 현재 생각하기에 개발자로 입사할 때 가장 중요하고 필요한 세 가지는 아래와 같다.

  • 코딩 테스트
  • 프로젝트
  • CS지식

사실 정말 뻔하고 누구나 생각할 수 있지만, 카카오 인턴십을 진행하면서 더욱 뼈저리게 느꼈던 것 같다. 그리고 각각의 부분 모두 양보다는 질이 중요한 것 같다. 즉 너무 많은 것을 잡으려다 보면 단 하나도 잡지 못하는 경우가 발생하기에 한 개의 프로젝트를 하더라도 내가 어떤 기술을 사용하였고, 왜 이 기술을 사용하였는지에 대한 답을 내려보는 과정이 중요한 것 같다.

 

그리고 부가적으로 있으면 좋다고 생각하는 경험은 아래와 같다.

  • 인턴경험
  • 해커톤 및 수상 경험

이러한 경험들이 있으면 자기소개서를 적을 때(물론 면접 볼 때) 할 수 있는 말이 하나 더 생기는 것이기에 가지고 있다면 플러스 요인이 될 가능성이 크다. 하지만 결과적으로 인턴이나 해커톤을 하면서 쌓았던 경험들도 프로젝트의 한 범주에 속하기 때문에 본인이 정말 프로젝트를 잘했다면 위와 같은 경험이 없어도 무관할 것으로 생각한다. 

 

그렇다면 각각의 부분을 어떻게 하면 발전시킬 수 있을지 알아보도록 하겠다.

 

코딩 테스트 준비

코딩 테스트는 거의 모든 IT 회사의 채용과정에 포함되어 있어서 잘하는 것이 매우 중요하다.  필자 지인 중 정보올림피아드 국가대표로 선발된 사람의 말을 빌리자면, 코딩 테스트 실력을 늘리는 가장 좋은 방법은 문제를 많이 푸는 것이다. 물론 코딩 테스트라고 하지만 실제로는 지원자가 자료구조와 알고리즘을 얼마큼 이해했는가를 알아보는 과정이다. 하지만 그렇다고 가만히 앉아서 책이나 동영상 강의를 듣기보다, 보다 더 많은 문제와 부딪히고, 고민하는 과정이 더 효과적이라는 말이다. (사람마다 견해가 다를 수는 있지만 필자는 그렇게 생각한다.)

 

그리고 필자는 두 사이트를 자주 애용하는데 너무나도 유용한 백준프로그래머스이다. 두 사이트 다 굉장히 잘 되어있고, 특히 백준과 연계하여 solved.ac를 자주 활용하는데, CLASS 5까지 차근차근 풀다 보면 실력을 많이 늘릴 수 있을 것 같다. 코딩 테스트를 준비하기 위한 필자의 원칙은 아래와 같다.

 

  • 3일에 한 문제는 꼭 풀기
  • 1시간 고민해도 모르는 문제는 과감하게 정답 보기
  • 모르는 자료구조나 알고리즘 나오면 검색해서 이해하고 넘어가기
  • 문제 다 푼 뒤 다른 사람 코드 살펴보기

삼성 SW 역량테스트와 카카오 인턴십 코딩 테스트 그리고 스타트업 코딩 페스티벌 2차 진출 등 현재까지 결과는 나쁘지 않았던 것 같다. 그래도 앞으로도 원칙을 지키며 다양한 문제를 풀어보면서 실력을 더욱 키우고자 한다.

 

프로젝트 준비

필자 생각으로 여러 가지 프로젝트를 진행하는 것보다 하나의 프로젝트라도 제대로 수행하는 것이 중요한 것 같다. 물론 좋은 프로젝트를 여러 개 한다면 이야기가 달라지겠지만, 현실적으로 시간과 실력의 한계로 인해 그러기는 쉽지 않은 상황이다. 그리고 카카오 인턴십 면접을 보면서 느꼈던 점은 수박 겉할기로 아는 것은 모르는 것이라는 사실이다. 그렇기에 하나의 기술을 제대로 공부해 프로젝트를 진행하고, 그 프로젝트를 하면서 어떤 문제가 생겼고 그것을 어떻게 해결했는지 말할 수 있는 게 매우 중요하다. 필자는 서버 개발자가 되고 싶기에 아래와 같은 기술을 사용한 웹 서비스 한 개를 만들어보고, 그 웹 서비스를 개발하면서 생기는 문제점과 해결방법을 기록해보는 과정을 진행할 생각이다. 그리고 개발을 하면서 새로운 기술이 필요하다면 그 기술을 적용해보도록 하겠다.

 

  • Back-end: NodeJs
  • Front-end: ReactJs
  • DB: MongoDB or MySQL
  • Devops: AWS

 

CS 지식 준비

필자는 컴퓨터 공학 전공이 아니고 관련 수업도 많이 듣지 않았기에 필자가 제일 약한 부분이 CS 지식이었고 실제로 2021 카카오 여름 채용연계형 인턴십 면접에서도 CS 관련 지식이 현업에 바로 투입되기에 부족하다는 얘기를 들었다. 그렇기에 남은 기간 동안 꽤 많은 준비가 필요할 듯싶다. CS 지식 중에서도 개발자라면 공통으로 알아야 할 지식(자료구조, 알고리즘, 컴퓨터 구조, 운영체제 등)과 서버 개발자가 알아야 할 지식(네트워크, 데이터베이스, 보안..? 등)을 나눠서 생각해볼 수 있는데, 각각을 공부할 계획은 아래와 같다.

 

공통 지식

  • 자료구조 및 알고리즘
    • [알고리즘의 기초] 수업 수강
    • 백준 및 프로그래머스를 통한 PS
    • 시간이 되면 자료구조, 알고리즘 책 읽기
  • 컴퓨터 구조
    • [컴퓨터 구조론] 수업 재수강
    • <Computer Systems. A Programmer’s Perspective> 읽기
    • <Computer Organization and Design> 읽기
  • 운영체제
    • [운영체제의 기초] 수업 수강
    • <Operating System Concepts> 읽기
  • 컴파일러...?
    • 가능하면 [컴파일러의 기초] 수업 수강

 

서버 개발 지식

  • 네트워크
    • [데이터 통신망의 기초] 수업 수강
    • 가능하면 [네트워크] 수업 수강
    • TCP/IP 관련 책 한 권 읽기
    • <HTTP: The Definitive Guide> 읽기
  • 데이터베이스
    • [데이터베이스] 수업 수강/청강
    • 데이터베이스 관련 책 한 권 읽기
    • 데이터베이스 관련 인터넷 강좌 듣기(1회)
  • 보안...?
    • 프로젝트하면서 공부

 

기타 지식

  • <리액트를 다루는 기술> 읽기(1회)
  • <Node.js 교과서> 읽기
  • <The programming Pearls>, <The Pragmatic Programmer> 읽기
  • <Code Complete> 읽기
  • <You Don't Know JS> 읽기

 

마무리하며

적고 나서 보니 준비해야 할게 꽤 많은 것 같다. 좋은 개발자가 되는 것은 쉽지 않은 길이니 위에서 언급한 대로 준비를 잘해서 꼭 1년 안에 카카오 개발자가 되도록 해보겠다. 그리고 그 과정을 계속 공유하도록 하겠다. 위에서 언급한 내용 중에 잘못된 내용이나, 개발자가 되기 위해 더 필요한 내용이 있으면 댓글로 알려주시면 감사하겠습니다. 그럼 남은 1년간 정말 열심히 해보겠다. 파이팅.

 

반응형

댓글