코딩 테스트는 다양한 기업의 출제 경향을 파악해 관련 개념과 풀이 등 보다 집중적으로 시간을 할애해 준비해야 하는 전형입니다.
IT 기업은 보통 면접자 1명당 최소 2명의 시니어 개발자가 1시간 이상의 시간을 투입해 면접을 진행합니다. 면접에 소요되는 시간을 절감하기 위해 지원자의 실력을 1차 코딩 테스트로 평가해 실제 면접을 진행하는 지원자의 수를 제한하곤 합니다.
흔히 코딩 테스트를 하나의 넘어야 할 시험처럼 따로 준비하는 경우가 많습니다. 그러나 코딩 테스트는 실제로 많이 개발해 보면서 테스트를 통과할 수 있는 역량을 갖추는 것이 가장 이상적인 준비 방법이긴 합니다. 물론 말처럼 쉽지만은 않습니다. 지원자가 많아지면서 코딩 테스트의 커트라인도 높아졌기 때문이죠. 코딩 테스트는 벼락치기로 실력을 갖추기 어려우므로 미리미리 준비하는 것이 좋습니다.
프로그래머스 사이트에서 제공하는 코딩 테스트 중 레벨 3 정도의 문제를 풀 수 있는 실력이라면 국내 기업에서 진행하는 대부분의 코딩 테스트에서 좋은 결과를 기대할 수 있습니다. 코딩 테스트에 자신 없는 사람이라면 공개 채용보다는 수시 채용을 노려보는 것도 좋습니다. 공개 채용은 한꺼번에 많은 지원자가 몰리기 때문에 변별력을 가리기 위해 어려운 문제가 출제되는 경향이 있습니다. 상대적으로 수시 채용은 문제의 난이도가 쉬운 편입니다.
과제 테스트 역시 코딩 테스트와 마찬가지로 채용 프로세스에서 면접을 보게 될 지원자의 수를 제한하기 위한 목적이 있지만, 거기에 더해 지원자의 코드 작성 스타일이나 구현 능력 등 여러 개발 능력을 좀 더 심층적으로 파악한다는 목적을 가지고 있습니다.
코딩 테스트에는 주로 알고리즘 문제가 출제된다면, 과제 테스트(백엔드)에는 주로 API 서버를 개발하는 문제가 출제됩니다. 과제 테스트는 보통 메일로 지원자에게 전달되는데요, 다음은 과제 테스트에 제시되는 요구사항의 예시입니다.
과제 테스트 요구사항(예시)
지원자는 이 모든 요구사항을 만족하는 코드를 작성해야 합니다. 모든 개발이 끝난 후에는 자신이 만든 API 서버가 과제의 요구사항을 충실히 따르는지 반드시 확인해 봐야 합니다. 예를 들어 단축된 URL의 키는 8글자여야 한다고 했는데 10글자로 만들면 안 된다는 것이죠. ‘8글자보다 10글자가 더 나을 것 같은데요?’와 같이 요구사항에 대한 자의적인 해석이나 의도가 있더라도 그것을 설명할 기회 없기 때문입니다. 면접일 경우 그 자리에서 이야기하면 괜찮겠지만, 과제 테스트에서는 불가능하므로 주어진 요구사항대로 개발하는 것이 최우선입니다.
만약 부여받은 과제에 오류나 모순되는 내용이 있다면 메일로 담당자에게 문의하세요. 실제로 그러한 내용이 있다면 정정해 줄 것입니다. 다시 한번 강조하지만, 중요한 것은 요구사항을 충실히 만족하는 것입니다. 코드의 퀄리티나 성능 향상 등으로 여러분의 능력을 어필하는 일은 그 다음 단계입니다.
자신만의 다양한 웹 애플리케이션을 개발하며 실전 경험을 쌓는 것이 매우 중요한데요, 깃허브에는 대기업에서 진행했던 많은 과제 테스트들이 공개되어 있습니다. 구글에서 ‘기업명 + 과제’를 키워드로 검색하면 많은 자료를 참고할 수 있습니다. 비슷한 유형의 문제가 출제될 가능성이 높으므로 반드시 찾아보고 과제 테스트에 임해보세요. 다음 링크에 접속해 프로그래머스에서 제공하는 여러 기업의 과제 테스트 연습 서비스를 활용할 수도 있습니다.
https://school.programmers.co.kr/skill_check_assignments
과제 테스트는 크게 두 가지 유형으로 출제됩니다. 하나는 다수의 지원자가 플랫폼을 통해 과제 테스트를 푸는 것이고, 다른 하나는 소수의 지원자에게 요구사항을 부여하고 완성된 프로젝트를 메일로 보내도록 하는 것입니다.
전자의 경우 코딩 테스트 플랫폼 등에서 자동으로 채점이 되는데, 주로 응시자 수가 많을 경우 이러한 방식을 취합니다. 면접관이 모든 테스트 결과를 직접 확인할 수 없기 때문입니다. 이 경우에는 제한된 시간 내에 과제 테스트를 풀어서 제출해야 하므로 빠르게 개발물을 구현할 수 있는 능력이 중요합니다. 따라서 더더욱 과제 테스트의 요구사항에 충실하는 것이 좋습니다. 사람이 아닌 채점 스크립트나 테스트 코드를 통해 채점하기 때문이죠.
반면 메일을 통해 완성된 과제를 제출하는 경우에는 보통 일주일 정도의 시간이 부여됩니다. 상대적으로 시간이 넉넉하기 때문에 구현하기까지 시간이 오래 걸릴 만한 주제들이 출제되거나, 최종 UI까지 구현해야 하는 경우가 많습니다. 채점과 평가가 사람에 의해 이루어지기 때문에 기본 요구사항만 충족한다면 자신이 생각하는 더 좋은 코드나 기능을 추가해 본인의 능력을 더 보여줄 수 있습니다.
카카오는 신입 개발자 공개 채용에서 1차 코딩 테스트, 2차 과제 테스트를 실시합니다. 지원자의 알고리즘 역량과 서비스 구현 능력을 함께 검증하기 위함이죠. 그 외에도 카카오페이, 네이버웹툰, 무신사 등 다양한 기업에서 과제 테스트를 채용 전형에 포함하고 있으며, 코딩 테스트를 생략하고 과제 테스트만 진행하는 곳도 많습니다. 깃허브 등에 공개된 자료가 많이 있으니 ‘과제 테스트’를 키워드로 찾아보세요.
2022년 주요 기업 과제 테스트 유형 분석
2021년 주요 기업 과제 테스트 유형 분석
✔️과제 테스트의 평가 요소
여러 번 강조했다시피 제시된 요구사항을 만족하는 것이 가장 중요합니다. 코드의 퀄리티나 편의성 및 성능에 대한 고려, 동기화 처리 등의 추가 요소는 그 다음 문제입니다. 제출한 코드에 모든 요소를 다 반영하지 못했더라도, 면접에서 이 부분에 대해 질문할 수도 있으므로 철저히 준비해야 합니다. 면접에 들어가기 전에는 자신이 과제 테스트에서 작성한 코드에 대해 반드시 숙지한 상태여야 하며, 왜 그렇게 작성했는지 면접관 앞에서 설명할 수 있어야 하니까요.
위 콘텐츠는 『이것이 취업을 위한 백엔드 개발이다 with 자바』를 재구성하여 작성하였습니다.
최신 콘텐츠