전문연구요원이 되기까지
저는 컴퓨터 비전 연구실에서 Object detection과 tracking 관련 연구를 진행해서 컴퓨터 비전분야의 ML Researcher, Engineer 포지션으로 전문연구요원 편입을 준비했습니다. 운이 좋게 2021년 3월 10일로 NCSOFT Game AI Lab Motion AI에 석사 전문연구요원으로 신규 편입되어 복무중입니다. 이 글에서는 제가 전문연구요원으로 편입되는 과정과 후기에 대해 서술하려고 합니다. 전적으로 제가 겪은 경험을 기반으로 하기 때문에 CS, ML Research에 편향된 글일 수 있습니다.
전문연구요원이란?
석사과정을 졸업한 이공계 학생은 전문연구요원(이하 전문연) 제도를 통해 병무청이 지정한 기관 또는 업체에서 3년간 재직하는 것으로 군 복무를 대체할 수 있습니다. 기본적으로 1-3급의 현역은 TO가 배정되어 있는 회사에 입사를 해야 하지만 4급 보충역의 경우 본인이 TO를 가지고 있는 것으로 판단되어 입사 절차만 밟으면 됩니다. 관련 정책이 자주 바뀌고 TO 배정에도 정확한 정보가 필요하므로 여러 채널을 통해 확인하시는 게 좋습니다. 전문연구요원 공고를 보면 현재 전문연 TO가 감소하는 추세입니다.
대부분의 회사에서는 지원 공고에 전문연으로 별도로 표시한 공고가 있는 편이며, 아니라면 전문연으로 지원 가능한지 문의해 보아야 합니다. 또한 전문연 공고가 올라오는 여러 사이트를 참조할 수 있습니다.
- 병무청 산업지원 병역 일터
- 전문연구요원 인원 배정
- 김박사넷 전문연구요원
- 잡코리아, 사람인 등 채용정보 사이트
- 전문연에 편입한 선배에게 물려 받은 목록
전문연은 대부분 일반 입사 프로세스와 동일한 과정을 거치지만, 전문연 TO가 제한되어 있고 누구나 가고 싶어하는 좋은 회사는 더더욱 자리가 부족하기 때문에 실력과 성과가 훌륭한 사람들이 전문연 제도를 활용하기 위해 많이 지원하기 때문에 경쟁이 치열합니다.
전문연구요원으로 편입되었더라도 1달간 훈련소를 다녀와야 합니다. 이는 편입 시점으로부터 6개월 내에 자유롭게 선택할 수 있습니다.
일단 신규 편입으로 전문연을 시작하게 되면 1년 6개월후에 전직할 수 있습니다. 전직시에는 본인이 전문연 TO를 들고 이직하는 것이기 때문에 좀 더 많은 기업들을 선택지로 고려할 수 있습니다. 물론 이 때에도 보통 전문연구요원(전직)으로 채용공고가 별도로 올라오게 됩니다.
무엇을 준비했나요?
전문연구요원 신규 편입은 전문연구요원으로 신규 편입이 가능한 회사인지만 확인하면 일반적인 취업과정과 크게 다르지 않습니다. IT업계의 대다수 회사는 대부분 서류전형, 코딩테스트, 면접 순으로 채용 프로세스가 진행됩니다.
먼저 전문연 기업 목록을 알아보고 지원하고 싶은 포지션과 회사를 정리했습니다. 졸업은 2월이지만 보통 10월부터 채용 공고가 발표됩니다. 저는 ML Researcher / Engineer 포지션에 흥미가 있었고, 이론의 모델 구현과 실제 서비스에서의 모델 활용의 간극을 줄이고 정제되지 않은 데이터를 활용하는 방법에 대해 직접 경험을 가장 중요하게 생각했습니다. 따라서 유저 데이터를 많이 확보하고 있고 머신러닝을 활용해서 서비스 단계의 문제를 해결하고자 하는 기업에 우선적으로 지원하고자 했습니다.
대학원 기간에는 연구 외에는 별다른 활동을 하지 못해서 resume에 추가할 내용이 생기지는 않았습니다. 저는 좋은 저널에 논문을 게재하는 성과가 가장 중요하다고 생각하여 석사 기간동안 여러 연구를 진행하면서 논문을 작성했지만 아쉽게도 좋은 저널에 통과하진 못했기 때문에 졸업 논문 등을 작성하면서 진행했던 연구 내용을 간단하게 준비하기만 했습니다. 운이 좋게도 저는 이전에 인턴을 진행했던 회사에서 좋은 기회를 얻게 되어 교수님께 양해를 구하고 2학년 여름 방학에 2달간 인턴십을 진행할 수 있어 업무 경험을 쌓을 수도 있었습니다.
그 다음은 코딩테스트를 준비해야 합니다. 학부때부터 알고리즘 대회에 관심이 많았기 때문에 급하게 코딩테스트를 준비하기 보다 기초적인 내용을 복습하고 연습문제를 조금 풀어보는 것으로 준비를 하고 ML Researcher / Engineer 로서의 역량을 검증하는 테스트에 초점을 맞춰 준비했습니다. 보통은 프로그래머스나 백준온라인저지에서 문제를 풀어보며 준비하는 것 같습니다.
면접 준비는 기존의 연구내용을 간략하게 정리하고 이론적으로 부족하다고 느낀 통계와 선형대수, 머신러닝에 관한 공부를 하였습니다. 학부 수업; 자료구조, 알고리즘, 시스템 프로그래밍, 운영체제 등에 대한 복기도 진행하였습니다. 생각보다 자연스럽게 사용하던 이론적 지식들을 상대방에게 자세하게 설명하는 것은 꽤 어려웠기 때문에 이 부분의 준비를 좀 더 철저히 했어야 한다고 생각합니다. 김태훈(carpedm20)님이 잘 정리해주신 머신러닝 인터뷰 준비 문서를 참고하면 좋습니다.
실제 경험은 이랬어요.
매주 코딩테스트와 미팅을 보았던 2020년 10월
저는 10여개 회사에 입사 지원서를 제출했고 대부분 최종 면접단계에서 탈락했습니다. 운이 좋아 최종 합격한 곳이 두 곳이었고 좋은 경험을 쌓을 수 있을 것이라 판단해 NCSOFT Game AI Lab으로 커리어를 확정했습니다.
저는 기본적으로 baseline이 될 수 있는 RESUME를 하나 작성해두고 입사 지원서를 조금씩 수정하면서 지원했습니다. 대부분 회사의 자기소개서는 아래와 같은 비슷한 항목을 요구하는 것 같습니다. 저는 비슷한 포지션과 업무내용을 기준으로 선택했기 때문에 대부분의 서류에는 비슷한 내용을 작성했습니다.
- 자신에 대한 간략한 소개
- 자신의 경쟁력
- 프로젝트 성과 및 기여, 교훈 등
- 지원 직무 프로젝트 경험
- 입사 포부 및 어떻게 기여할 수 있을 지
기본적인 틀을 완성해두고 제 경험에 기반해 말하고자 하는 스토리라인을 정한 후 관련된 경력을 추려 정리하고 회사에 어떤 기여를 할 수 있는지, 제가 어떻게 성장하길 기대하는지에 대해 설명했습니다. 초고를 작성한 후에 친구들과 같이 일했던 동료들에게 첨삭을 부탁드려 내용을 다듬을 수 있었습니다. 물론 외부 활동이나 인턴활동과 같은 직무경험, 대회 수상도 중요한 실적이 될 수 있지만, 석사과정동안 본인이 진행한 연구에 대해 지원한 포지션과 연관지어 설명하는것이 가장 좋아보입니다. 본인이 왜 이런 연구를 선택했고 어떤 방법을 설계했으며 중간에 발생한 이슈들을 어떻게 해결했으며 그래서 어떤 성취를 얻고 다음에는 무엇을 할 수 있을지 등 본인의 연구를 진행하면서 배운점을 잘 말할 수 있다면, 훌륭한 연구자로 성장했다고 말할 수 있을것 같습니다.
몇몇 회사는 간단한 형식의 연구 요약 포트폴리오나 진행했던 프로젝트 코드에 대한 리뷰, 또는 머신러닝 직군을 위한 별도의 인터뷰 페이지를 추가로 요구했고 과제나 면접에서 라이브 코딩을 필요로 하는 회사도 있었습니다.
자기소개서 및 기타 서류를 제출해 서류전형에 합격하게 되면 코딩테스트를 응시하게 됩니다. COVID-19 감염증으로 인해 모든 코딩테스트는 온라인에서 진행되었습니다. 대부분 코딩 테스트는 프로그래머스에서 진행되었으나 별도의 플랫폼에서 진행되는 경우도 있었습니다. 보통 2-3시간정도의 시간을 주고 3-5개 정도의 문제를 해결하면 되었고, 기초적인 구현문제와 변별력 있는 알고리즘 문제가 출제되는 형식이었습니다. 프로그래머스 기준 레벨 3-4 수준이면 충분히 풀 수 있는 수준이었다고 생각합니다. 일부 회사는 머신러닝직군을 위한 별도의 코딩테스트를 준비하기도 했습니다. 익숙하지 않았던 Activation이나 Normalization 구현 또는 간단한 회귀 모델을 작성하는 부분이 있긴 했지만 다행히 제한 시간 내에 구현할 수 있는 수준이었습니다. 일부 회사에서는 1주일 정도 진행해야하는 규모의 기술 과제를 출제하기도 했습니다. 저는 자연어처리와 추천시스템 구현과 같은 기술 과제를 진행했습니다. 기존에 공부하면서 작성해본 경험을 참고해 진행 했습니다.
COVID-19 감염증으로 인해 대부분의 면접 프로세스는 화상으로 이루어졌습니다. 기술면접은 자신의 경험에 대해 설명하고 Resume를 간단히 검증한 후 업무 관련 지식을 물어보셨던 것 같습니다. 보통 다대일이나 일대일 면접을 연속해서 진행하고, 각 파트별로 디테일한 부분의 지식을 물어볼 수 있습니다. 본인의 경험과 진행했던 프로젝트, 연구에 대한 내용도 충실하게 알아가야 하지만 기본적인 컴퓨터 공학 질문부터 업무나 경험에 관련된 세세한 질문까지 폭 넓게 기술 면접에서 다뤄집니다. 어떤 회사에서는 아키텍쳐 설계나 데이터 구조 설계를 물어보았고 어느곳에선 간단한 트랜스포머 모델을 작성하기도 했습니다. 면접은 보통 여러차례 진행되는데, 기술면접 후에는 회사의 문화와 잘 맞을지 확인하는 컬쳐 인터뷰 등을 진행합니다. 보통은 기술 면접까지 통과한다면 마음을 편하게 가지셔도 좋습니다.
저는 단기간내에 많은 회사에 지원해서 빡빡한 일정을 소화해야 했습니다. 조급한 마음에 일단 합격을 해 두고 선택지를 고르고 싶었지만 대부분의 회사에서 최종면접에서 탈락하면서 심리적으로 매우 힘들었습니다. 코딩 테스트 본 날에 면접을 보러 가는 경우도 있었고 졸업 논문과 조교일을 병행하면서 로드를 조절하기 쉽지 않았습니다. 저는 원래 면접과 같은 대면 대화에서 말을 잘 하지 못하고 준비했던 내용을 쉽게 잊어버려 힘들어하기 때문에 더욱 그랬던것 같습니다. 시간적 여유가 없는 상태에서 채용 프로세스는 정신적 스트레스가 크게 작용하므로, 다음에 준비해야 한다면 충분한 기간을 두고 여유롭게 준비하고 싶습니다.
드디어 합격했어요!
축하해요!
전문연에 합격하셨다면 이제 회사에서 전문연구요원 편입을 위한 서류를 병무청에 전달해야 합니다. 이때 다음과 같은 서류가 필요하지만 보통 회사에서 양식과 필요한 서류를 요청합니다.
- 전문연구요원 편입 신청서
- 성실복무 서약서
- 성적증명서
- 학위수료 증명서
보통은 회사에 서류를 제출한 후 처리기간에 따라 2주 내로 병무청에 신청서를 접수하게 되고 편입이 완료되었다고 연락이 오게 됩니다.
국방부의 시계가 시작하는 메세지
전문연 근무 중에는 출퇴근 시간이 정해져 있고, Day-off 와 같은 사내 유연 출퇴근 제도를 활용할 수 없을 가능성도 있습니다. 휴가는 사규에 따라 사용가능 하지만 재택근무시에 일일 출퇴근 보고와 재택근무 계획을 미리 전달해야 할 수도 있습니다.
기본적인 복무와 관련된 내용은 병무청에서 서류로 전달됩니다. 간단한 몇 가지를 톺아보자면,
- 전문연구요원은 근로시간 중에 개인 영리 활동이 금지됩니다.
- 출장 파견을 갈 수 있는 기간이 정해져 있고 승인을 받아야합니다.
- 다른 업체로 전직하기 위해 별다른 문제가 없는경우에는 1년 6개월 이상 복무하여야 합니다.
- 1일 기준 근로시간은 8시간이며, 8일 이상 무단 결근 시 편입취소 및 형사처벌 대상입니다.
하지만
어쩌면 중소기업에서 근무하면서 같거나 비슷한 수준의 연봉을 보장받고 제약이 조금 있지만 군대에 비할 수 없을 정도의 자유가 주어지기 때문에 전문연을 대체복무로 많이들 고려하는 것 같습니다. 하지만 3년이란 긴 복무기간은 조금 불편하고, 좋은 회사에 편입하기 위한 경쟁이 치열하기 때문에 신중하게 고민해야 하고, TO가 점점 감소하는 추세이기 때문에 제도의 변화에도 민감하게 대처할 수 있어야합니다.
석사를 졸업했다고 모두가 전문연으로 복무를 시작할 수 있는것은 아닙니다. 분명히 누구나 가고싶어하는 좋은 회사의 자리는 매우 적고 뛰어난 사람들이 지원하고 있어 일반적인 취직보다 힘들수도 있습니다. 분명 많은 부분에서 현실과 타협하고 가끔은 정말 운이 좋아야 하는것 같기도 합니다. 저는 쉽지 않은 길이었지만 만약 다시 선택해야 한다고 하더라도 전문연구요원을 도전해볼것 같습니다. 마지막에 합격하기 전까지 계속 불합격 소식을 들으면서 정말 힘들었는데, 결국엔 좋은 기회를 얻게되었지만, 운이 좋지 않았다면 실패했을 것 같습니다. 여러분도 더 많이 알아보시고 준비하시어 좋은 기회를 얻게 되셨으면 좋겠습니다.