Search

기업별 코딩테스트 경향 분석 및 준비 방법

백엔드 개발자 실력의 근간은 자료구조/알고리즘입니다. 특히 신입에게는 말이죠. 국내 IT 기업에서는 이미 수 년, 수십년간의 데이터를 통해 “백엔드 개발자 실력은 자료구조/알고리즘 실력과도 같다”를 깨닫게 되었습니다.
그래서 자료구조/알고리즘의 실력을 판별할 수 있는 코딩테스트 전형을 도입한 회사는 해가 갈수록 늘고 있습니다. 이번 자료를 통해 IT 업계의 TOP-tier가 분석한 코딩테스트 경향을 확인해보세요. 개발자 취업을 준비 하고 있는 분들이 기업이 원하는, 실력 있는 개발자가 되기 위한 가이드가 되었으면 합니다.
들어가며
4차 산업혁명 시대에서 IT 관련 직종이 유망한 직종으로 떠오르며, 많은 사람들이 개발 직군에서의 업무를 꿈꾸고 있습니다. 이러한 개발 직군에서 일하기 위하여 거쳐야 하는 취업 관문 중 하나로 대표적인 것은 바로 코딩 테스트입니다. 본 서평에서는 코딩 테스트를 어떻게 준비할 수 있는지 및 기업별 예상 코딩 테스트 트렌드에 대하여 다룰 예정입니다.
서평. 제로베이스 백엔드 스쿨 출제위원 나동빈

나동빈

2021 K사 공채 코딩테스트 2문제 적중 코딩테스트 분야 1위
<이것이 취업을 위한 코딩테스트> 저자 (2020년 출판, IT 서적 종합 베스트 셀러, 83주 연속 베스트셀러 선정)

1. 코딩 테스트란?

코딩 테스트란 IT 관련 기관 및 기업에서 지원자를 선발하기 위한 목적으로 시행하는 문제 풀이 시험입니다. 특히 대기업의 경우 신입 개발자를 채용한 이후에 교육 연수 과정이 포함되는 경우가 많으며, 주어진 업무를 이해하고 효율적으로 수행할 수 있는 문제 해결 역량이 뛰어난 지원자를 채용하기를 원하죠. 그래서 지원자의 잠재력 및 문제 해결 역량을 평가하기 위하여 일반적으로 알고리즘 문제를 출제합니다.
실제로 대기업에서는 면접 이전 단계까지의 지원자의 수가 많다면, 지원자의 코드를 일일이 보고 평가하기 어렵다는 현실적인 한계가 있는데요. 그래서 국내 상당수 대기업은 다수의 지원자의 코드를 평가하기 위하여 자동 채점 시스템을 채택하고 있습니다. 다시 말해 1차적으로 알고리즘 코딩 테스트에서 다수의 지원자가 탈락하게 됩니다. 알고리즘 코딩 테스트 진행 방식은 ① 온라인 자동 채점 시스템(Online Judge, 이하 OJ)을 활용하여 지원자가 웹 사이트에 접속하여 비대면으로 시험에 응시해야 하는 방식과 ②지원자가 오프라인 시험장에 방문하여 주어진 환경에서 코드를 작성하여 시험에 응시하는 방식이 있는데, 지원자가 문제를 확인하고 코드를 제출하는 과정은 두 방식에서 대체로 동일합니다.
참고로 개발형 코딩 테스트란, 하나의 완성된 프로그램을 개발하는 것을 목표로 하는 시험으로, 짧게는 몇 시간부터 길면 2주 이상의 시간을 부여합니다. 특정한 회사에서 실제로 사용하는 언어 혹은 프레임워크를 활용하도록 요구하기도 합니다.

2. 알고리즘 코딩 테스트 준비 방법

알고리즘 코딩 테스트를 준비하기 위해서는 대표적인 알고리즘 문제 유형 위주로 준비하고 연습할 필요가 있습니다. 일반적으로 코딩 테스트는 알고리즘 대회와는 다르게 고난이도 알고리즘이나 높은 수준의 수학적 사고력을 요구하기 보다는, 실제 프로그램 개발에 필요한 역량을 물어보고자 하는 목적이 크다는 점에서 충분한 연습으로 대비할 수 있는 수준의 난이도가 주로 출제됩니다. 다시 말해 난이도가 매우 높은 수학적인 문제가출제되기보다는 구현 능력에 더 높은 비중을 두는 편이므로, 크게 걱정하지 말고 기출 문제를 풀며 연습하는것을 추천 드립니다. 알고리즘 코딩 테스트에서는 지원자가 프로그래밍 언어에 익숙하여 프로그램 구현 능력이 갖추어져 있는지 및 프로그램 작성에 필요한 기초적인 컴퓨팅 사고력이 갖추어져 있는지 종합적으로 평가하게 됩니다. 그래서 모든 경우의 수를 고려해야 하는 완전 탐색이나, 주어진 문제를 읽고 정확히 구현해야 하는 시뮬레이션 유형이 자주 출제됩니다. 코딩 테스트에서 다루어지는 알고리즘 유형을 6가지 카테고리로 묶은것은 다음과 같습니다.
이 중에서 ①기초 문제, ②그래프의 탐색, ③시뮬레이션 카테고리는 대부분의 IT 대기업 신입 공개 채용에서 중요시 되어 출제되고 있으므로, 우선적으로 학습할 필요가 있습니다. 특히 ②그래프의 탐색파트가 당락을 결정하는 경우가 많으며, 위 3가지 카테고리에 대해서 확실히 숙지가 되어 있다면 고급 알고리즘과 고급 자료구조에 대하여 익숙하지 않다고 해도 코딩 테스트에 합격하는 경우가 많습니다. 따라서 위 그림에서 제시한 6가지 카테고리를 참고하여 우선 순위에 따라 코딩 테스트를 준비하는 것을 추천 드립니다. 알고리즘 코딩 테스트 입문자라면 가장 먼저 (1) 자신이 원하는 프로그래밍 언어(Python, Java 등)를 선택한 뒤에, (2) 해당 프로그래밍 언어의 기초 문법을 공부하는 것이 좋습니다. 이후에 위에서 언급한 (3) 각 카테고리의 문제 유형마다 10개 이상씩 대표적인 문제에 우선 순위를 두어 풀어 보는 방식으로 준비하는 것을 추천합니다.

3. 알고리즘 코딩 테스트 출제 경향분석 및 Tip

국내에서는 대표적으로 K기업과 S기업의 코딩 테스트가 IT 개발 직군을 희망하는 많은 사람들에게 유명하며, 실제로 응시하는 사람의 수가 매우 많습니다. 최근 5년간 S기업과 K기업의 코딩 테스트 출제 유형을 분석해 보면, S기업의 경우 80% 이상의 문제가 ① 시뮬레이션, ② 완전 탐색, ③ 그래프 탐색(DFS/BFS) 유형의 문제로 출제되었습니다. 출제되는 문제의 유형이 비교적 정형화되어 있다는 점에서 준비 과정이 용이한 편인데요. 반면에 K기업의 경우 앞서 언급한 6가지 카테고리에서 골고루 출제되어, 종합적인 알고리즘 문제 해결 역량이 요구된다는 측면에서 더 많은 준비가 필요한 편입니다.
특히 K기업의 코딩 테스트는 국내 대기업 코딩 테스트 중에서 가장 난이도가 높은 알고리즘 코딩 테스트 중 하나로 잘 알려져 있습니다. 현재까지의 K기업의 모든 기출 문제는 프로그래머스(Programmers) 사이트에서확인할 수 있으며, 난이도를 고려했을 때 K기업의 코딩 테스트에 무난히 합격할 수 있는 수준이라면, 대부분의 다른 IT 기업의 알고리즘 코딩 테스트도 합격할 수 있습니다. 요약하자면 아래 두 기업의 코딩 테스트를 적절히 준비하며 합격권에 들 수 있다면, 대부분의 타 IT 기업의 코딩 테스트에서도 높은 성적을 낼 수 있다는 점에서, 핵심 두 기업의 코딩 테스트에 초점을 맞추어 최신 출제 경향을 숙지할 필요가 있습니다. 출제 경향을 요약 하자면 다음의 표와 같습니다.
더불어 전반적인 알고리즘 코딩 테스트 유형에 대하여 익숙해진 사람이 실전 코딩 테스트에 대한 체감 난이도를 느껴보고자 한다면 추천하는 모의 테스트 루틴이 있습니다. 그것은 바로 백준 온라인 저지(BOJ) 사이트를기준으로 5시간 동안 랜덤으로 4개의 문제(2개의 실버(Silver) 난이도, 2개으 골드(Gold) 난이도)를 해결하는 도전을 해보는 것입니다. 위에서 언급한 6가지 카테고리 위주로 알고리즘 개념 숙지 및 코딩 테스트 참여 준비가 되었다면, 실제 코딩 테스트에 참여한다고 생각하고 시간을 재면서 이러한 과정을 여러 번 시도해보는 것을 추천합니다. 일반적으로 이러한 도전에 매 번 성공하게 되었을 시점에서, 대부분의 IT 대기업 알고리즘 코딩 테스트에서 무난히 합격할 수 있게 될 것입니다.
기억하고 넘어갈 종합적인 핵심 포인트를 요약하자면, 다음과 같습니다.
1.
DFS/BFS 위주의 탐색 문제 출제 경향이 유지되고 있으므로, IT 기업 코딩 테스트를 대비하여 이 유형은 꼭 연습하자.
2.
구현 문제(시뮬레이션 문제, 코드의 양이 많은 문제) 또한 출제 빈도가 높게 유지되고 있다.
3.
가장 난이도가 높은 시험인 K기업 알고리즘 코딩 테스트를 연습하기 위해서 프로그래머스 (Programmers) 사이트에 있는 6개년도 최근 기출 문제를 반복하여 풀어 보는 것을 추천한다.
4.
백준 온라인 저지(BOJ)에서 골드(Gold) 난이도의 문제를 원활히 해결할 수 있다면, 대부분의 IT 기업에 대한 코딩 테스트 합격을 기대할 수 있다.