원문 캡처 · mtyurt.net
원문 캡처 · mtyurt.net

소프트웨어 엔지니어 채용을 8년간 진행하며 수백 건의 과제를 검토했다. AI 시대에는 지원자가 과제 명세를 코딩 에이전트에 입력해 결과물을 제출할 수 있으므로 채용 과제가 쓸모없다는 의견이 늘고 있다. 하지만 과제를 없애기보다 평가 방식을 바꿔야 한다고 본다.

채용 과제를 면접 단계 사이에 놓인 별개의 절차로 사용한 적은 없다. 면접관이 지원자의 제출물을 전혀 모르거나, 과제가 무엇을 다루는지조차 모르는 경우를 여러 번 봤다. 과제를 기술 심층 면접의 출발점으로 활용하는 편이 낫다.

AI 지원 코딩이 보편화하면서 면접 질문도 바꿨다. 제출물의 약 95%는 어차피 과제 요구사항을 충족한다. 문법이나 특정 언어에 관한 질문을 덜어내면 물어볼 수 있는 주제가 많아진다. 입사자도 일상 업무에서 코딩 에이전트를 사용할 것이므로, 평가에서는 에이전트를 활용하는 능력도 확인해야 한다.

코딩 에이전트가 명세에 맞는 문제를 해결할 수는 있지만, 지원자는 선택에 따른 절충점과 설계 결정의 이유를 이해해야 한다. 장기적으로 함께 일하려면 이런 이해가 중요하다. 정답을 정확히 말하는지보다 관련 쟁점을 알고 근거를 들어 판단할 수 있는지를 살핀다. 질문에 대한 답변보다 지원자가 이어서 하는 질문을 더 주의 깊게 듣는다.

과제 제출물을 바탕으로 물을 질문

의존성

  • 이 라이브러리를 사용한 이유는 무엇인가? 다른 선택지도 살펴본 뒤 결정했는가?
  • MySQL 대신 PostgreSQL을 사용한 이유는 무엇인가? 둘 중 무엇을 선택할지는 어떻게 판단하며, 어떤 조건이 달라지면 결정을 바꾸겠는가?

도메인 설계

  • 두 모듈로 구현했는데, 모듈 사이의 경계는 어디인가?
  • 그 지점에 경계를 둔 이유는 무엇인가?
  • 애플리케이션을 서로 다른 두 서비스로 분리해야 한다면 어떻게 하겠는가?

확장성

  • 이 애플리케이션의 병목은 어디라고 보는가? 동기 처리를 비동기 처리로 바꿔야 한다면 어떻게 접근하겠는가?
  • 이 솔루션은 상태를 저장하지 않는 구조인가? 상태 데이터는 어디에 보관하는가? 재시작 뒤에도 데이터가 유지되며 여러 복제본을 실행할 수 있는가?

이 질문들은 지원자의 관련 전문성뿐 아니라 코딩 에이전트에 지시할 때 중요한 쟁점을 고려하는지도 살핀다. 실제 질문은 맥락과 분야, 직무, 경력에 따라 달라진다. 코딩 에이전트로 과제 답안을 만들 수 있다는 이유만으로 과제가 쓸모없어지는 것은 아니다. 오히려 평가할 새로운 영역이 열린다.