지원자가 알고 있는 자료 구조와 알고리즘을 이용하여 문제를 해결하는 능력을 평가하는 시험입니다. 보통 C/C++, 자바, 파이썬을 기본 언어로 제공합니다. 일반적으로 4~5문제를 3시간 정도 내 해결해야 하며, 난이도는 기업마다 다릅니다.
실무 개발자는 서비스가 요구하는 기능을 구현하는 능력이 중요합니다. 요구 조건에 맞는 기능을 빠르게 구현하는것도 중요하지만 코드가 번잡하고 비효율적이라면 실력 있는 개발자로 보기 힘듭니다. 서비스 규모가 작을 때는 별 문제없이 작동될 수 있어도, 서비스가 점차 커짐에따라 추가해야 하는 기능들이 늘어나기 때문에 처음부터 기존 코드를 잘 설계하는 것이 중요합니다.
처음에 충분한 고민과 설계 없이 코드를 짜기 시작하면 프로젝트를 진행하다가 미처 생각하지 못한 것이 발견되어 이를 해결하는 로직을 계속 추가하게 됩니다. 이때 각 객체의 역할과 가독성을 고려하지 못한 채로 누적되면 결국 유지보수가 어려운 스파게티 코드가 됩니다.
코딩테스트를 통과하려면 제한 시간내에 문제를 파악하고 요구사항에 맞게 효율성을 고려하며 자료 구조를 선택하고 코드를 작성해야 하는데, 이 과정에서 개발자가 갖춰야할 최소 역량을 확인할 수 있기에 코딩테스트를 본다고 할 수 있습니다.