개요
2023 카카오 블라인드 채용 과정에서 1차 코딩 테스트에 합격해 2차 코딩 테스트와 CS 테스트에 응시하였고, 이에 대한 후기를 남깁니다.
CS 테스트
카카오 블라인드 채용 절차에서 2차 테스트의 경우 CS 테스트와 REST API를 이용한 코딩테스트로 나뉘어져 있습니다. 그 중 CS 테스트는 코딩테스트에 비해 비교적 짧게 진행되는 시험으로, 30분 동안 CS 문제 12개를 풀게 됩니다. 문제의 대략적인 유형은 다음과 같았습니다.
카카오에서 CS 문제 유출을 금하므로 추상적으로 작성한 점 양해 바랍니다
- 알고리즘 시간복잡도
- 데이터베이스 트랜잭션
- 리눅스 커널
- DISK I/O
- 프로세스
- 로드밸런싱
- TCP/UDP
저는 소프트웨어 전공자 입니다만, 난이도가 상당히 어렵고 내용이 집약적이라는 인상을 받았습니다.
들려오는 얘기로는 CS 테스트는 상대적인 점수로 평가되기보다는 특정 갯수 이상을 맞추면 문제 없는 정도로 알고 있었는데, CS 테스트를 응시한 뒤에는 CS 때문에 떨어질 수도 있겠다는 생각도 들었습니다.
지금까지도 이 정도 난이도였는지는 모르겠지만, 올해의 난이도는 전공자들이 대학에서 배우는 일반적인 CS 지식 수준으로는 부족하기 때문에 전공자라고 해서 큰 메리트를 느끼진 못할 것 같습니다. 물론 전공 수준의 CS 지식 문제도 소량 출제됩니다만, 결국 전공자나 비전공자나 준비 없이 통과하기 힘들기 때문에 큰 차이가 없을 것 같습니다. 물론 노베이스 상태에서는 비전공자 분들이 훨씬 불리한 것이 사실입니다.
코딩 테스트
2차 코딩 테스트는 프로그래머스
에 문제와 응시 환경이 그대로 제공되고 있으므로 코딩 테스트를 준비하는 환경 자체는 매우 수월했습니다. 다만, 역시 문제 자체는 그리 수월하지 못했습니다…
방식
카카오의 2차 코딩 테스트는 여느 타 코딩 테스트와는 달리, REST API를 이용하여 시험 도중에 열리는 카카오의 서버를 이용해 데이터를 주고 받으며 진행하게 됩니다. 간단히 요약하면, 카카오 서버로부터 특정 데이터를 받아온 후 해당 데이터를 통해 알고리즘을 적용하여 적절한 결과를 얻어낸 뒤 다시 카카오 서버에 보내 시뮬레이션 시켜 점수를 확인하는 방식입니다.
언어
평소에 코딩 테스트 언어로 C++
를 사용하고 있었는데, 본 테스트는 Python
으로 응시하게 되었습니다. 본 테스트에서는 IDE와 언어에 제한이 없기 때문에 어떤 환경을 사용해도 문제가 없었습니다. 따라서 평소에 개발에 사용하는 Kotlin
을 사용하는 선택지도 있었지만, 결국은 REST API
통신을 하기 위해서는 별도의 모듈과 프로젝트 환경 구성이 필요했고, 모든 개발이 그렇듯 막상 SW 개발 과정에서는 해당 언어의 표준 라이브러리와 자료구조들을 깊게 다루는 경우가 드물기 때문에 바로 코딩 테스트에서 능숙히 사용하기에는 무리가 있었습니다. 따라서 requests
를 통해 REST API
를 한 줄 컷 낼 수 있고 각종 자료구조의 학습이 굉장히 수월한 Python
을 선택하게 되었습니다. 결론적으로 시험 이틀 전에 파이썬 문법 공부와 REST API
통신 모듈 코드 작성을 하였고, 코딩 테스트에서 큰 무리 없이 사용할 수 있었습니다.
유형
올해 문제도 역시 시뮬레이션
에 기반한 문제였습니다. 특정 호텔에 예약하려는 사람이 주어지고, 해당 호텔에 사람을 배치해야 합니다. 다만 예약하려는 사람마다 요구하는 방의 갯수와 묵는 기간이 다르고, 제한된 크기의 호텔에 최대한 많은 예약을 수용할 수 있도록 특정 예약을 수락할지 거절할지에 대한 알고리즘을 설계해야 했습니다.
또한 같은 문제에 대하여 2개의 시나리오가 제시되는데, 두 번째 시나리오의 경우 첫 번째와 동일하지만 시뮬레이션의 길이가 길어지고 전체적인 입력값이 커지게 됩니다. 이때 두 번째 시나리오에 대한 결과를 테스트하는 데에만 API 통신에 의해 15분정도가 소요되어, 사실상 코드 작성을 끝내고 테스트를 반복하는 후반 과정에서는 IDE 창을 보며 멍때리는 시간이 더 많았습니다. 이때 굉장히 지치고 지루하고 힘듭니다…
그리고 2차 코딩 테스트의 경우 실시간으로 응시자들에 대한 상위권 점수를 스코어 보드 형태로 제공합니다. 이전 후기들에서는 자신이 몇 등으로 마무리 했다는 등의 글을 보아서 자신의 순위를 알 수 있는 줄 알았지만, 올해는 무조건 상위 100등 까지의 점수만 공개가 됐습니다. 따라서 100위 권에 들지 않는다면 자신의 등수를 알 수 없습니다. 저 또한 제 점수에 굉장히 많은 인원이 몰렸을 것으로 예상해서 100위와의 점수 차를 계산해봐도 등수를 예측하기 힘들었습니다.
결과
결과적으로는 합격할 수 있었습니다. 800점 초반 대로 시험을 마무리 했었는데, 정확한 커트라인을 예상할 수 없어 아슬아슬했는지 여유로웠는지는 알 길이 없었습니다… 그래도 첫 2차 코딩 테스트에서 좋은 결과를 받을 수 있어 뿌듯했습니다.
면접에서는 또 어떤 경험을 겪게 될지 기대 중입니다!