코드 리뷰 테스트를 도입한 결과, 합격자 수와 수준을 그대로 유지하면서 인터뷰 시간을 50% 이상 감소시켰습니다. (한 달에 30시간) 코드 리뷰를 보고 높은 확신과 함께 지원자가 적절한 사람인지 판단할 수 있었고, 지원자의 부담도 적었습니다.



안녕하세요, 저는 강남언니 서버 개발자 우기입니다. 강남언니 서버 개발자 채용 과정에서 코딩 테스트를 없애고, 새로 코드 리뷰 테스트를 개발해 도입한 과정에 대해 말씀드리겠습니다.

문제

다른 많은 회사와 비슷하게 강남언니 개발자 채용 과정은 서류 → 코딩 테스트 → 인터뷰 이렇게 3단계로 이루어져 있었습니다. 코딩 테스트로 기본적인 문제 해결력과 코딩 능력을 알아보고 자세한 역량은 인터뷰로 파악했습니다. 오랫동안 안정적으로 운영되던 합리적인 방법이었습니다.

그런데 지원자 수가 계속 늘어나면서 문제가 발생했습니다. 인터뷰에 필요한 시간이 크게 늘었습니다. 인터뷰어의 수와 시간이 부족했던 저희는 대안이 필요했습니다.

일반적인 사전 테스트

많은 회사에서 인터뷰 이전에 코딩 테스트 또는 사전 과제 단계를 채택하고 있습니다. 각각의 장점과 한계는 다음과 같습니다.

  1. 코딩 테스트

    • 장점: 문제 해결력, 코딩 능력, 자료 구조 활용 능력 검증 가능

    • 한계

      • 확인 필요한 역량 중 일부만 검증 가능
      • AI를 이용한 치팅, 어뷰징이 쉬움 (ex. ChatGPT)
  2. 사전 과제

    • 장점: 직접적으로 실무 능력 파악 가능

    • 한계

      • 지원자의 시간적 부담이 큼 (3일 - 2주)

      • 낮은 과제 제출률 (과제마다 다르겠지만, 모 회사의 경우 제출률이 50% 이하라고 합니다.)

저희는 코딩 테스트에서 볼 수 있는 역량 외에도 확인하고 싶은 것이 많았기 때문에 인터뷰 비용이 많이 들었습니다. 코딩 테스트를 더 어렵게 바꾸는 것도 좋은 방법이 아니었습니다. 일부 역량의 기준을 높이는 것보다 더 많은 역량을 효율적으로 파악하는 방법이 필요했기 때문입니다. 더 많은 인재를 만나기 어려운 사전 과제도 선택할 수 없었습니다.
지원자의 부담을 키우지 않으면서, 코딩 테스트보다 다양한 역량을 파악할 수 있는 인터뷰 전 테스트를 찾고 싶었습니다.


코드 리뷰 테스트

코드 리뷰는 개발자가 매일 수행하는 실무 중 하나입니다. 코드 리뷰를 통해 설계와 구현의 문제를 찾아내고 더 나은 코드를 만들 수 있게 합니다. 적절한 코드가 주어진다면 그에 대한 코드 리뷰로 개발자의 실무 능력을 파악할 수 있습니다. 저희는 지원자가 코드 리뷰를 제출하는 테스트를 만들어보기로 했습니다.

게다가 과제 전형에 비해 지원자가 느끼는 심리적, 시간적 부담도 크지 않습니다. 집을 짓는 것보다 지어진 집에 대해 피드백하기가 더 쉬운 법이니까요. 잘 만든다면 시험으로 느껴지는 코딩 테스트보다도 덜 부담스러울 수 있습니다.

코드 리뷰 테스트의 장점과 한계

장점

  • 직접적으로 실무 능력 파악 가능

  • 문제를 인식하는 능력 파악 가능

  • 검증 항목을 유연하게 설정 가능

  • 협업 및 커뮤니케이션 능력 확인 가능

  • 지원자가 느끼는 심리적, 시간적 부담이 적음

한계

  • 코드 리뷰가 익숙하지 않은 신입 대상으로 사용할 수 없음

    → 신입의 경우는 코딩테스트나 사전 과제 등 다른 방법 사용 가능

  • 특정 언어와 프레임워크에 연관되어 개발 직군별로 테스트를 각각 만들어야 함

    → 실무 능력을 확인할 수 있는 장점의 트레이드 오프로써 감수함

    → 일반적인 주제도 많이 포함시켜 다양한 사람들이 충분한 역량을 보여줄 수 있도록 함

적절한 코드 리뷰 테스트 만들기

모든 코드 리뷰 테스트가 좋은 것은 아닙니다. 효과적이고 부담 없는 테스트를 만들기 위해서는 의도적인 노력을 기울여야 합니다.

효과적인 코드 리뷰 테스트

오타에 대한 리뷰만 받을 수 있는 PR은 의미가 없습니다. 먼저 저희가 중요하게 생각하는 기술 주제들을 신중하게 골랐습니다. 시스템 디자인, 클래스 설계, 웹 서비스 고려사항, 엔터프라이즈 레벨 제품 고려사항, 테스트, Java와 Spring, DB 등이 있었습니다. 이에 대해 풍부하게 이야기할 수 있도록 프로젝트와 PR을 설계했습니다.

부담 없는 코드 리뷰 테스트

처음 보는 누구나 이해하기 쉽게 하는데 많이 신경썼습니다. 프로젝트의 전체 라인 수가 800여 줄에 불과하며 PR 크기도 작게 만들었습니다. PR에서 추가하는 전체 코드가 240줄이고 그 중 테스트 코드가 115줄입니다. 물론 README도 상세하게 적었습니다.

그 결과 사내 모의 테스트에서 1시간이면 충분히 풀 수 있다는 피드백을 받았습니다.

런칭

이렇게 준비를 마치고 2023년 3월 드디어 코드 리뷰 테스트 운영을 시작했습니다. 4월까지 40명의 지원자가 코드 리뷰 테스트를 경험했습니다. 지원자는 개인별로 만들어진 리포지토리에서 3일 동안 자유롭게 코드 리뷰를 작성할 수 있습니다.


코드 리뷰 테스트의 효과

코드 리뷰 테스트의 도입으로 인터뷰 전 테스트의 변별력이 2배 이상 올라가서 인터뷰 시간이 50% 이상, 한 달에 30시간가량 감소했습니다. 합격자 수와 수준을 그대로 유지하면서요. 지원자의 코드 리뷰를 보고 같이 일하고 싶은 사람인지 아닌지에 대해 높은 확신을 가지고 판단할 수 있었습니다.

정량적 평가

2023년 2월부터 3월 중순까지 코딩 테스트를, 3월 중순부터 4월까지 코드 리뷰 테스트를 시행했습니다. 두 테스트의 단계별 지원자 수는 다음과 같습니다. 전체 프로세스는 서류 → 사전 테스트 → 직무 인터뷰로 진행되었고, 서류와 인터뷰 평가 수준은 일정하게 유지했습니다.

응시자 수 (A) 제출자 수 (B) 통과자 수 (C) 이후 인터뷰 통과자 수 (D)
코딩 테스트 45 38 28 7
코드 리뷰 테스트 40 34 15 8

메인 지표

코드 리뷰 테스트를 통과한 사람의 직무 인터뷰 통과율이 코딩 테스트에 비해 28%p 더 높았습니다. 따라서 코드 리뷰 테스트의 변별력이 2배 이상 높다고 말할 수 있습니다.
이로 인해 테스트 평가와 인터뷰에 들이는 시간이 50%나 줄었습니다. 직무 인터뷰 통과자 한 명당 5시간 5분, 한 달 동안 총 30시간 34분을 줄일 수 있었습니다.

메인 지표 통과자의 인터뷰 통과율 (D/C) 인터뷰 통과자 한 명당 투자 시간
코딩 테스트 25% 606분
코드 리뷰 테스트 53% 301분

건전성 지표

테스트가 너무 적은 사람들만 통과시킨다면 직무 인터뷰 통과율을 쉽게 높일 수 있습니다. 좋은 사람을 놓치면서 인터뷰 시간을 줄였다고 좋아할 수는 없죠. 이를 견제할 수 있도록 전체 응시자의 인터뷰 통과율을 확인했습니다. 이 지표가 코딩 테스트보다 많이 떨어진다면 곤란합니다.

두 번째로 테스트 제출률을 확인했습니다. 지원자의 부담을 높여서 인재풀을 줄이고 싶지 않았기 때문에 제출률 또한 떨어지면 안 됩니다.

두 지표에서 모두 오히려 코딩 테스트보다 좋은 값이 나왔습니다. 따라서 코드 리뷰 테스트는 높은 건전성을 가지며 효과는 뛰어난 방법이라 말할 수 있습니다.

건전성 지표 응시자의 인터뷰 통과율 (D/A) 테스트 제출률 (B/A)
코딩 테스트 15% 84%
코드 리뷰 테스트 20% 85%

정성적 평가

코드 리뷰 테스트에 대한 채용 담당자들의 만족도가 정말 높았고, 지원자들의 반응도 긍정적이었습니다.

채용 담당자 피드백

  • “지원자의 코드 리뷰를 보고 같이 일하고 싶은 사람인지 아닌지에 대해 높은 확신을 가지고 판단할 수 있었어요. 다양한 기술적 관점이 한눈에 보였으니까요.”
  • “애매한 경우를 제외하면 대부분 10분 이내에 판단이 가능했어요. 더 적은 시간을 투자하고도 훌륭한 개발자들을 뽑을 수 있었죠.“
  • “이전보다 더 정제된 지원자들만 다음 단계로 보냈기 때문에, 인터뷰 횟수가 많이 줄었어요.”
  • “인터뷰에 올라오는 지원자들의 수준이 높아졌다는 것이 느껴졌어요.”
  • “더 빠르게 인터뷰 일정을 잡을 수 있어서 처음부터 최종 합격까지 걸리는 시간이 짧아졌어요.”
  • “인터뷰에서 활용할 수 있는 구체적인 자료가 생겼어요. 코드 리뷰에서 시작해 깊이 있는 대화를 할 수 있었어요.”

지원자 피드백

  • “제 기술 역량을 충분히 보여줄 수 있어서 좋았어요.”
  • “참신했어요. 다른 데서 보지 못한 신선한 방법이에요.“
  • “좋은 개발자를 채용하기 위해 고민한 게 느껴져서 회사에 대한 좋은 인상이 생겼어요.”
  • “코드 리뷰를 제대로 하려고 하는 좋은 개발 문화를 가진 회사라고 느껴졌어요.”

결론

많은 회사에서 코딩 테스트 또는 사전 과제 단계를 채택하고 있습니다. 저희의 경우 코딩 테스트를 포함한 전형은 추가로 검증해야 하는 역량이 많아서 인터뷰 비용이 많이 들었습니다. 사전 과제는 더 많은 역량을 빠르게 확인할 수 있지만 지원자의 부담이 커서 제출률이 낮다고 알려져 있습니다. 이처럼 변별력과 지원자의 부담은 트레이드 오프 관계였습니다.

저희는 코드 리뷰 테스트로 효과와 부담의 트레이드 오프를 넘어설 수 있었습니다. 코드 리뷰를 보고 높은 확신과 함께 지원자가 적절한 사람인지 판단할 수 있었고, 지원자의 부담도 적었습니다. 코드 리뷰 테스트를 도입해서 더 효율적인 채용 과정을 만들 수 있었습니다.

긴 글 읽어주셔서 감사합니다. 더 궁금한 점이 있으시거나 생각을 나누고 싶으신 분들은 healingpaper.woogie@gmail.com 으로 연락주시면 감사하겠습니다.


끝.



여담) 코드 리뷰 테스트는 ChatGPT에 안전한가요?

저는 쓸모 있게 이용하기 어려웠습니다. 여러 번 시도해 봤는데 ChatGPT는 지우면 안 되는 코드를 지우라 하거나, 문제가 많은 코드를 훌륭하다고 이야기했습니다. 실제 지원자들과는 다르게 의도했던 많은 주제를 인식조차 하지 못했습니다.

물론 질문에 따라 답이 달라지니 누군가는 잘 사용할 수 있을지 모릅니다. 또 AI는 하루가 다르게 발전하고 수많은 모델이 존재하므로 앞으로는 물론 지금도 AI에 대해 안전하다고 말하기 어렵습니다.

그렇지만 확실히 ChatGPT가 정말 잘 푸는, 알고리즘 코딩 테스트보다는 더 안전하다라고 할 수 있습니다.

아 혹시 강남언니 지원자님이 보고 계신다면, 코드 리뷰 테스트에서 ChatGPT를 사용하는 것은 금지되어 있습니다. :)

Woogie
Server Developer
가치있고 어려운 문제를 발견하고 푸는 일을 좋아합니다.