코딩테스트란 개념, 배경, 종류, 준비
코딩테스트란
최근 IT 기업의 채용과정에서 코딩테스트의 비중이 커가고 있습니다. 코딩테스트는 '기업/기관에서 직원이나 연수생을 선발하기 위한 목적으로 시행되는 일종의 문제 풀이 시험'을 말합니다. 줄여서 '코테'라고 부르기도 하고, 미국에서는 Coding Interview라고도 합니다.
개발 직군은 기본적으로 코딩능력을 갖추어야 하므로, 이전부터 코딩테스트를 진행하는 기업이나 기관이 많이 있습니다. 최근에 들어서는 공개채용을 하는 기업에서 응시자의 수를 효과적으로 줄이기 위한 방법으로 코딩테스트를 이용하여 채용 과정의 효율성을 높이고 있는 추세입니다.
상당수 회사는 온라인 저지 사이트에 제공되는 알고리즘을 통한 문제해결 스킬을 측정하기도 하지만, 일부 회사는 자체적으로 프로젝트 과제를 만들어 지원자의 소스 코드를 받아 분석하여 적합한 지원자를 채용하는 경우도 있습니다.
코딩테스트 배경
코딩테스트는 1990년 대 마이크로소프트의 빌게이츠가 처음으로 개척하여, 이후 아마존, 페이스북 및 구글을 비롯한 대형 기술회사들이 도입했습니다.
코딩테스트 종류
코딩테스트는 크게 온라인과 오프라인으로 나뉘어집니다.
온라인 코딩 테스트
온라인 코딩 테스트는 공채 채용 과정에서 응시자가 많을 때 인터넷을 활용하여 프로그래밍 역량을 평가하여 응시자를 선별하는 데 사용합니다. 정해진 시간에 응시자가 사이트에 접속해 문제를 읽고 해답을 소스코드 형태로 작성하여 제출하면 온라인 저지 서비스가 정답 여부를 알려주고 점수를 부여합니다. 보통 저지 시스템에서 연습할 때는 제출 횟수 제한이 없으나, 실제 코딩 테스트에서는 횟수 제한이 있으므로, 주의해야 합니다.
대부분 코딩테스트나 알고리즘 대회에서는 테스트가 끝나면 참가자들이 제출한 소스코드를 검토합니다. 혹여 부정행위를 저질렀는지 확인하기 위해서 입니다. 따라서 인터넷을 참고할 만한 소스코드를 찾더라도 필요한 내용만 확인하여 이를 현재 풀고 있는 문제에 적용 가능하도록 자신만의 코드로 표현하여 작성하는 능력이 필요합니다. 만약 인터넷에서 참고한 소스코드를 그대로 문제에 적용하다간 부정행위로 간주될 가능성이 있습니니다.
오프라인 코딩 테스트
오프라인 코딩테스트는 응시자가 시험장에 방문하여 치르는 시험을 말합니다. 대체로 인터넷 검색이 허용되지 않으며, 회사에서 제공하는 컴퓨터 환경에서 바로 시험을 응시하는 경우가 많습니다. 환경이 낯설다보니 응시자 대부분이 온라인 코딩테스트에 비해 부담감을 느끼는 편입니다.
때에 따라 응시자가 자주 사용하는 소스코드를 가져올 수 있도록 허용하는 경우가 있으므로 기관이 규정하는 바에 따라 알맞게 테스트를 준비하면 됩니다. 대체로 오프라인 코딩 테스트 할 때는 응시자가 많이 좁혀진 상태이므로 코딩테스트를 본 뒤에는 별도의 면접실로 안내되어 화이트보드 혹은 종이와 함께 자신이 문제를 해결한 과정 등에 대한 설명을 하기도 합니다.
코딩테스트 준비
코딩테스트를 위한 온/오프라인 강의 또한 눈에 띄게 많아졌습니다. 삼성전자가 2015년 하반기부터 소프트웨어 관련 직군은 SW 역량테스트를 시행한 것과 연관 지을 수 있습니다. 게다가 2016년에는 알파고가 등장하여 바둑기가 이세돌을 이긴 뒤로 한동안 주요 키워드는 인공지능, 알고리즘, 코딩이 주를 이루었습니다.
이후 백준, 코드업, 프로그래머스 등 다양한 온라인 저지 사이트가 등장했습니다 .이 부분에 관해서는 다음 글에 상세하게 올리겠습니다.