Logo

코딩 테스트가 정말 중요할까요? 🤔

예전에는 주로 구글, 아마존, 마이크로소프트와 같은 주로 글로벌 빅테크 기업에서 채용 과정에서 코딩 테스트를 했었는데, 이러한 추세가 점점 업계 전반으로 퍼지더니 요즘에는 한국에서도 어렵지 않게 코딩 테스트를 하는 회사들을 볼 수 있습니다.

그런데 개발자 채용 프로세스에서 코딩 테스트가 정말 필요한지에 대해서 의구심이나 회의감을 느끼시는 분들이 많습니다. 코딩 테스트가 비단 신입 개발자로 취업할 때 뿐만 아니라 현직 개발자들도 이직할 때 마다 상당히 부담이 되는 부분이거든요. 저도 예전에는 아무 생각없이 지원자 입장에서 코딩 테스트를 보기만 하다가 최근에는 채용 결정에 참여하는 입장에서 코딩 테스트를 좀 더 다양한 측면에서 바라보게 되었습니다.

대부분의 코딩 테스트는 주로 지원자의 알고리즘/자료구조 지식과 이를 활용한 문제 해결 능력을 평가하도록 설계되었습니다. 따라서 대학교나 전문 교육 기관에서 관련 CS(computer science) 과정을 이수하지 못한 비전공자나 독학으로 프로그래밍 공부를 하신 분들에게는 매우 불리하죠. 요즘에는 꼭 전공자가 아니라도 소프트웨어 개발 분야로 들어오려고 하시는 분들이 많은데 개인적으로 코딩 테스트가 불합리한 진입 장벽이 되고 있다고 생각하고 있습니다.

게다가 코딩 테스트에서 평가하는 능력은 실제 현장에서 개발 업무를 수행하는데 필요한 역량과 연관성이 크지 않은 경우도 많습니다. 예를 들어서 실제로 진행되는 많은 프로젝트에서는 이미 검증을 마친 안정된 라이브러리를 사용하거나 프레임워크를 기반으로 주로 비지니스 로직을 구현하게 됩니다. 따라서 개발자가 직접 자료구조를 이용하여 어떤 알고리즘을 구현해야 하는 경우는 흔치 않으며 오히려 경우에 따라 위험한 발상이 될 수도 있습니다. 이러한 지식은 소프트웨어에서 병목 지점을 찾거나 전반적인 최적화를 수행할 때 도움이 될 수 있지만 이 역시 신입 개발자에게 요구되는 역량이라고 보기는 어렵습니다.

그럼 이러한 문제점에도 불구하고 왜 이렇게 많은 회사들이 코딩 테스트를 하고 있을까요? 이 부분에 대해서는 지원자 입장이 아니라 회사 입장에서 생각해보시면 이해가 쉬우실 것 같은데요. 채용 프로세스도 회사에게는 하나의 비용이며 대부분의 회사는 최대한 우수한 인재를 최소의 비용으로 채용하기를 원합니다.

따라서 기본 자격이 되지 않는 지원자들을 가급적 채용 프로세스의 초반에 걸러내는 것이 유리한데요. (보통 이 단계를 HR에서는 screening이라고 부르죠.) 왜냐하면 면접 전형까지 가게 되면 인사 담당자 뿐만 아니라 현업 엔지니어나 매니저까지 면접관으로 채용 프로세스에 참여해야하기 때문입니다. 이렇게 어렵게 실무자의 시간을 빼고 있는데 대부분의 지원자가 기초적인 기술 소양이 부족하여 맨날 탈락되고 있다면 회사 차원에서는 큰 기회 비용의 손해로 이어지겠죠?

기본적으로 코딩 테스트는 특히 온라인으로 진행되고 채점되는 코딩 테스트는 이렇게 낭비될 수 있는 채용 비용을 최소화하는데 큰 도움을 주는데요. 많은 분들이 꿈꾸시는 구글, 아마존, 마이크로소프트와 같은 글로벌 빅테크 기업이나 국내 네카라쿠베와 같은 기업에는 항상 감당하기 벅찰 정도 지원자들이 몰리고 있습니다. 따라서 자동화된 코딩 테스트 만큼 짧은 시간에 많은 지원자를 효과적으로 걸러낼 수 있는 방법이 현실적으로 없는 것이지요. 물론 부작용으로 실제 개발 역량이 띄어나지만 코딩 테스트를 준비하지 않은 우수한 인재들을 놓칠 수 있다는 단점도 있지만 어차피 이러한 레벨의 회사들은 평균 이상의 많은 엔지니어가 필요한 것이지 몇 명의 슈퍼스타를 찾는 게 아니라서 큰 문제가 되지는 않습니다.

다행이도 이런 코딩 테스트의 비실효성과 불합리성에 대해서는 여러 커뮤니티에서 활발한 논의가 이루어지면서 조금씩 개선하려는 시도가 보입니다. 실제로 코딩 테스트 대신에 포트폴리오나 과제로 대체하려는 스타트업들이 점점 늘어나고 있는데요. 여기서 한 가지 딜레마는 이러한 스타트업도 나중에 덩치가 커지게되면 일일이 지원자의 작업물을 검사하는데 결국 한계가 올 거라는 것입니다. 아무래도 업계 전반에서 글로벌 빅테크 기업을 따라가는 경향이 있기 때문에 이렇게 선도하는 기업에서 딱히 좋은 해결책을 내놓지 않는 이상 바뀌기가 어려울 것 같기도 하네요.

정리해보자면 코딩 테스트는 단지 지원자를 효과적으로 거르기 위해서 많은 회사에서 채택하고 있는 채용 단계일 뿐입니다. 코딩 테스트에서 평가하는 능력은 실제 현업에서 필요로 하는 실무 개발 능력과 상당한 거리가 있으며 그래서 코딩 테스트가 좋은 개발자를 뽑는데 중요한 역할을 한다고 보기는 어렵습니다. 그래서 보통은 면접 전형과 같은 채용 프로세스의 남은 단계에서 코딩 테스트로는 측정이 어려운 지원자의 실제 역량을 추가적으로 검증한 후에 채용 결정을 하게 되지요. 좋은 싫든 코딩 테스트는 현재 업계에서 관행처럼 어느 정도 굳어진 채용 과정의 일부이기 때문에 우리는 개발자로서 코딩 테스트를 피하기 어려운 현실에 있습니다. 🥲