(Frontend Jr.)사전 과제 — ‘코드 읽고 설명하기’
현재 앤트팀에 풀스텍 개발자로 합류한 후 많은 부분에 고민하고 기여를 하게 되었다. 그 중 가장 리소스를 많이 할해하고 업무 시간 이외에도 고민을 많이 하게 되는 부분은 채용 관련 전반이다.
오늘은 개발팀의 신입 개발자(프론트엔드) 채용에 도입하게 된 ‘사전과제’와 ‘고민’에 대해 이야기 할 예정이다.
개발자 채용에 과제가 필요한가?
현재 나는 해외에 거주 하면서 한국 회사와 한국 시장에서 활동하고 있다. 나는 개발자로 커리어 전향을 준비하면서 부터 주기적으로 여러 채용 플랫폼에서 다양한 채용 공고를 자세히 살펴 보는 일종의 ‘취미’가 있었다. 많은 공고들과 채용 절차를 살피면서 자연스럽게 보였던 것은 개발자 채용에는 ‘사전 과제’가 따라 온다는 것이었다.
우리팀에서도 ‘좋은 분’을 모시기 위해 여러 고민들을 하다가 사전 과제를 도입하기로 했다. 도입하기 전에는 지원자와 시간을 맞추어 화상으로 많은 이야기들을 나누며 꼼꼼하게 살피곤 했는데, 그 결과 굉장히 주관적 부분으로 지원자분을 판단하게 된다는 점과 기술적인 부분을 깊게 살피지 못하는 점이 큰 아쉬움으로 남았다. 투입되는 리소스에 비해 비효율적이었으며 결과를 도출하는데 명확한 기준이 없었던 것 같다.
이로인해 우리는 과제의 필요성을 느꼈고, 과제를 통해 지원자에 대해 최대한 많은 인사이트를 얻고, 우리 또한 면접을 주관하는 입장에서 많은 것을 배우기를 바랐다.
과제를 통해 무엇을 얻고 싶은 것인가?
개발 직군의 과제는 여러가지가 있다. 코딩테스트, 손코딩, 작은 기능 개발, 특정 시스템 구현 등등 각 팀마다 무엇을 얻고자 하는지 그 관점에 따라 다르게 도입 되는 도구라고 생각한다.
과제를 단순 필터 기능처럼 사용하고 싶지 않았고, 현재 팀의 스테이지와 각각의 파트와 레벨에 따라 과제가 담당하는 역할이 무엇일지 생각하게 되었다.
신입 개발자분을 모시려면 어떤 면을 살펴야 할 지 고민이 많았고, 다른 회사들을 많이 참고 하였지만 우리 팀 상황에 맡게 새롭게 제작하기로 했다.
우리가 보고 싶은 것은 명확했다:
- 사용하는 기술의 능숙함 (문법과 베스트 프랙티스)
- 본인이 작성하지 않은 코드를 이해하는 능력
- 기술적인 설명을 잘하는지 (적절한 용어 사용 지식의 깊이)
- 꼼꼼함 (의도적으로 심어 둔 결함을 발견하는지? 디버깅?)
과제 — ‘코드 읽고 설명하기’
우리의 메인 제품인 랩노트는 베타에서 정식 버전을 준비하는 과정 중에 있었고, 소스 코드에는 레거시와 여러 기획 단계의 변화를 거친 흔적들이 남아 있었다. 만약 새로운 분이 오시게 된다면 완전 새로운 기능을 구상하고 구현하기에 앞서 레거시 코드를 읽고 이해하며 리팩토링 작업이 선행될 수 밖에 없는 시기이다. 당연히 기술 스택은 어느 정도 정해져 있으므로 새로운 것을 익히는 것보다 현재 스택을 편하게 다루는 분이길 바랐다.
과제는 이러한 맥락에서 제작 되었기에 새로운 기능을 구현하고 구상하는 능력을 확인하기 보다, 이미 정해진 스택에서 짜여진 패턴을 이해하고 설명할 수 있는지를 확인하고자 했다.
지원을 받은 후 서류 전형에 합격하신 분들 한해 사전 과제를 담은 repository 링크를 공유드린다. 프론트엔드 신입분들이 그 때 받게되는 과제는 바로 ‘코드 읽고 설명하기’이다.
우리 팀의 스택으로 짜여진 아주 간단한 앱이면서 팀에서 사용하는 폴더 아키텍처에 패턴과 프랙티스를 그대로 녹여낸 것이다. 지원자는 인터뷰 당일에 화면 공유를 통해 주어진 앱의 entry point에서 부터 그 흐름을 파악한대로 설명해야하고 리팩토링 또는 수정할 부분들을 PR로 제출하면 된다. 모든 설명을 듣고 궁금한 부분과 관련된 기술적인 질문을 드리며 지원자에 대해 알아간다.
아직 많은 지원자 분들도 계시기에 자세한 부분은 공개하지 않겠다.
결과적으로 ‘코드 읽고 설명하기’ 과제는 긍정적인 효과를 주었던것 같다. 지원자에게는 신선한 과제이고 기존에 무언가를 구현하는 리소스 보다 훨씬 수월 하겠지만 직접 설명을 해야 하기에 많은 공부를 필요로 한다는 것이다. 우리는 설명을 들으면서 해당 지원자와 협업을 한다면 어떨지에 대한 상상을 조금 더 구체화할 수 있었고, 기술적인 질문을 자연스럽게 던질 수 있어서 답답함을 해소할 수 있었다.
실제로 긍정적인 피드백을 많이 받았다:
(지원자들의 후기)
- “준비하면서 기본기를 더욱 공부하게 되었습니다.”
- “실무에서는 이렇게 코드를 짜는구나… 많이 배웠습니다.”
- “PR 리뷰를 통해 개인적으로 부족한 부분을 어떤것인지 인지하게 되었습니다."
- “너무 신선한 과제였고 재미있는 경험이였습니다.”
위 과제는 프론트엔드 신입 포지션에서 사용되는 프로세스이다. 다른 파트 또한 팀 상황과 필요에 맞게 커스텀한 과제가 준비되어 있다.
규모가 훨씬 크고 많은 지원자가 있는 회사에서는 ‘사전 과제’가 채용 프로세스 상 효과적인 필터 역할을 하는 것 같다. 하지만 아직 Early stage에 있는 스타트업에서는 한 분의 영향력이 크고, 그 기여가 소중하기에 능력이 출중한 지원자를 가르기 보다는 현 시점에서 함께 성장하기에 적절한 사람을 알아가는 것이 더 중요하다고 생각한다. 이를 위해 커스텀 과제를 제작한 것은 아직까지 꽤 효과적이고 만족스럽다.
계속해서 개인적인 ‘슈퍼스타’ 보다는 팀과 함께 성장할 ‘진지한 엔지니어’ 분들을 기다리고 있다. 더 건강한 문화와 유익한 팀을 만들때까지 고민은 계속될 것 같다.
👉오픈되어 있는 채용 공고 확인하기