AmberAx

20년 차 개발자가 바라본 코딩테스트의 문제점

· 6 min read
20년 차 개발자가 바라본 코딩테스트의 문제점

개발자 채용 과정에서 코딩테스트는 이제 기본 관문이 되었습니다. 대기업 IT 기업뿐 아니라 중견 기업까지 채택하면서, 신입은 물론 경력직 채용에서도 이를 요구하는 경우가 늘어나고 있습니다.

하지만 20년 현업 개발자의 시선에서, 코딩테스트가 과연 실무 역량을 평가하는 데 얼마나 효과적일까요? 최근 몇 년간 코딩테스트가 빠르게 확산된 이유는 분명합니다. 채용 과정에서 지원자의 프로그래밍 능력을 객관적으로 평가할 도구가 필요했기 때문입니다. 하지만 단순히 문제를 푸는 과정을 통해 개발자의 실력을 온전히 평가할 수 있을지는 의문입니다.


코딩테스트, 과연 실무에 도움이 될까? #

최근 한 코딩테스트 문제를 풀며 느꼈던 점은, 이러한 시험이 실무와 상당히 동떨어져 있다는 사실이었습니다. 문제 자체는 흥미로웠지만, 이를 푸는 과정이 실무에서의 업무와는 거리가 멀었습니다.

실제 업무에서는 복잡한 알고리즘을 처음부터 구현하기보다는 이미 검증된 라이브러리나 프레임워크를 활용하는 경우가 대부분입니다. 또한, 팀워크, 비즈니스 요구사항 분석, 유지보수 가능한 코드 작성 등 실무에서 요구되는 역량은 코딩테스트에서는 평가되지 않습니다. 결과적으로 코딩테스트는 개인의 문제 해결 능력에 초점을 맞추지만, 실무에서 중요한 역량들은 배제되고 있는 현실입니다.


암기 중심의 시험으로 변질되는 코딩테스트 #

더 큰 문제는 코딩테스트가 단순 암기 시험으로 변질되고 있다는 점입니다. 알고리즘 문제를 반복적으로 풀다 보면 특정 풀이 패턴에 익숙해지고, 이는 단순히 정해진 풀이법을 암기하는 과정으로 이어질 수 있습니다.

  • 다양한 문제를 풀어도 패턴의 한계: 실질적으로 실무에서 자주 사용하는 패턴이 아닌, 코딩테스트에서 자주 등장하는 특정 알고리즘을 익히는 데 초점이 맞춰지는 경우가 많습니다.
  • 창의적 사고 저하: 지원자가 특정 알고리즘을 배우고 암기하는 데 시간을 쓰는 동안, 실제 창의적으로 문제를 해결하는 능력은 상대적으로 배양되지 않을 수 있습니다.

물론 코딩테스트는 지원자의 기본적인 문제 해결 능력을 평가하는 데 유용하지만, 단순 점수만으로 지원자의 실력을 판단하기는 어렵습니다.


코딩테스트의 필요성과 한계 #

채용하는 기업 입장에서는 수많은 지원자 중에서 객관적인 기준을 통해 효율적으로 평가해야 합니다. 그런 면에서 코딩테스트는 어쩔 수 없는 선택일 수 있습니다. 특히 신입 개발자 채용에서는 과거 경력이나 포트폴리오가 부족한 지원자들의 역량을 평가하는 유일한 도구로 작용하기도 합니다.

하지만 코딩테스트 점수에만 의존하여 지원자의 실력을 판단할 경우, 중요한 인재를 놓치거나 실제 업무와의 괴리가 발생할 가능성이 큽니다.

  • 실무 역량의 맹점: 실무에서는 협업, 커뮤니케이션, 코드의 유지보수성 등이 더 중요한 역량임에도 불구하고 코딩테스트는 이 부분을 전혀 평가하지 못합니다.
  • 지원자 경험의 과소평가: 코딩테스트는 종종 실질적인 프로젝트 경험이나 과거 성과를 충분히 반영하지 못합니다.

코딩테스트와 실무를 연결하는 대안은? #

코딩테스트의 한계를 극복하고 실무 역량을 평가하기 위해 다음과 같은 대안들이 고려될 수 있습니다:

1. 실제 프로젝트 기반 평가

코딩 문제 풀이 대신, 지원자에게 짧은 시간 동안 간단한 프로젝트를 완성하게 하거나 기존 프로젝트를 개선하는 과제를 부여할 수 있습니다. 이를 통해 실무 환경에서의 문제 해결 능력과 협업 역량을 평가할 수 있습니다.

  • 장점: 실무와의 연관성이 높아 실제 업무 적합성을 평가 가능.
  • 단점: 시간과 리소스가 더 많이 소요됨.

2. 기술 인터뷰 강화

기존 코딩테스트에 더해 기술 인터뷰를 강화해야 합니다. 지원자가 작성한 코드의 설계 철학, 선택한 알고리즘의 이유, 문제 해결 과정 등을 심층적으로 묻는 과정을 통해 단순 점수가 아닌 사고 과정을 평가할 수 있습니다.

  • 장점: 코드 작성 과정과 사고력을 평가 가능.
  • 단점: 인터뷰어의 전문성에 따라 평가의 공정성이 달라질 수 있음.

3. 포트폴리오 중심 평가

코딩테스트 외에 지원자가 과거에 진행했던 프로젝트나 작업물을 분석해 실무에서의 적합성을 평가할 수 있습니다. 이는 특히 경력직 개발자를 채용할 때 더욱 효과적입니다.

  • 장점: 지원자의 실제 경험과 실무 능력을 직접 평가 가능.
  • 단점: 신입 지원자들에게는 포트폴리오가 부족할 수 있음.

4. 협업 중심의 팀 과제

지원자들에게 팀을 이뤄 문제를 해결하거나 프로젝트를 수행하게 하고, 협업 능력과 소프트 스킬을 평가하는 방식입니다.

  • 장점: 실무와 가장 유사한 환경에서 평가 가능.
  • 단점: 진행 및 평가 과정이 복잡할 수 있음.

국내외 주요 코딩테스트 플랫폼 #

코딩테스트는 국내외 여러 플랫폼을 통해 이루어지고 있습니다.

  • 국내 플랫폼
    • 프로그래머스(Programmers): 국내 기업에서 가장 널리 사용하는 플랫폼으로, 채용 과정뿐 아니라 코딩 대회도 활발히 개최합니다.
    • 코드스테이츠(CodeStates): 교육 및 실전 중심의 테스트를 제공합니다.
    • 코드잇(Codeit): 학습과 테스트를 병행할 수 있는 플랫폼으로, 실무자와 학습자를 동시에 타겟으로 합니다.
  • 해외 플랫폼
    • 해커랭크(HackerRank): 전 세계적으로 사용되는 플랫폼으로, 알고리즘 문제뿐만 아니라 SQL, 시스템 설계와 같은 다양한 영역의 평가가 가능합니다.
    • 리트코드(LeetCode): 유명 IT 기업 면접 준비에 최적화된 문제들이 많아 실전 연습에 유용합니다.
    • 코드포스(Codeforces): 알고리즘 대회를 중심으로 한 플랫폼으로, 고난도 문제를 접할 수 있습니다.
    • 코딜리티(Codility): 기업 채용용으로 설계된 테스트와 평가 도구를 제공합니다.

위 사이트들을 조사하면서 몇 개의 사이트에서 테스트를 진행해보았는데, 불편한 사이트도 있었지만 전반적으로 퀄리티가 꽤 높았습니다. 그만큼 수준이 많이 올라간 것을 느낄 수 있었습니다. 코딩 테스트를 대비한다면, 프로그래머스해커랭크를 기준으로 준비하는 것이 좋을 것입니다. 두 플랫폼은 문제의 난이도와 유형이 다양하고, 실제 기업 면접에서 자주 출제되는 문제들을 다루고 있어 실전 감각을 기르기에 유용합니다.


결론: 코딩테스트를 준비하는 신입/주니어 개발자들에게 #

현재 IT 채용 시장에서 코딩테스트는 거의 필수적인 과정으로 자리 잡았습니다. 신입 개발자나 주니어 개발자라면, 이를 소홀히 하지 말고 열심히 준비해야 합니다. 하지만 단순히 알고리즘 문제 풀이에만 매몰되지 말고, IT 기술 트렌드와 실무에 필요한 기술도 꾸준히 익혀야 합니다.

코딩테스트 외에도 오픈소스 프로젝트에 참여하거나, 개인 GitHub Repository를 공개하고 관리하는 습관을 기르는 것이 중요합니다. 실력을 쌓고 나면, 다른 개발자들과 협업을 통해 코드 리뷰를 받고, 피드백을 주고받는 경험이 실무에 큰 도움이 됩니다. 또한, 체계적인 Commit 습관을 들이고, 코드에 적절한 주석을 달며, 코드 리팩토링을 통해 유지보수 가능한 코드를 작성하는 연습도 필수적입니다.

결국 중요한 것은 코딩테스트 점수실무 역량 간의 균형을 맞추는 것입니다. 기업 역시 채용 과정에서 이 두 가지를 적절히 평가하는 방법을 고민해야 할 시점입니다. 코딩테스트가 단순히 통과해야 하는 장벽이 아니라, 개발자로서의 성장 과정에서 의미 있는 경험이 되기를 바랍니다.

Did you find this post helpful?
Share it with others!