Articles

2학년 학부생의 신입 개발자 취업기

산업기능요원 결심부터 합격까지 3개월의 기록

Table of Contents

“네가 군대 갈 때는 통일이 되어 있을 거란다.”

초등학교 4학년 때 삼청공원에서 농구를 하고 있었다. 지나가던 스님이 갑자기 내가 군대에 갈 때는 통일이 되어 군대에 가지 않을 것이라고 말씀하셨다. 길 가던 스님이 뜬금없이 미래를 예견하는 게 너무 민속 설화스러워서 지금도 기억이 난다.

대학교 2학년이 되면 대부분의 친구들이 군대에 간다. 작년까지만 해도 군대는 남의 일 같았지만, 올해 주변 친구들이 하나둘 입대하면서 내게도 운명의 순간이 다가오고 있음을 느낄 수 있었다. 아직 통일은 안 됐지만 스님이 말한 '군대 갈 때’가 된 것 같았다.

🤯 어디서부터 손을 대야 할지…

병역특례의 일종인 산업기능요원이 되면 회사에서 일하며 군복무를 대신할 수 있다는 것을 알고 있었다. 운이 좋게 난 개발을 할 줄 아는 보충역이었다.

한편 산업기능요원을 하지 말라는 조언도 있었다. 모교 선생님께서는 병특을 했다가 착취당한 사례가 있으니 고민을 해보라고 하셨다. 상담을 해주신 교수님께서는 공익으로 가서 남는 시간에 프로젝트를 하거나, 공무조직의 비효율적인 업무를 개선하는 것은 어떻냐고 하셨다. (그리고 몇 개월 뒤 반병현님을 알게 됐다.)

사회복무요원(공익)과 산업기능요원(병특) 중 하나를 선택해야 하는 상황이었다. 그러나 공익근무를 하려면 사회복무요원 장기 적체 때문에 기약없는 기다림을 감수해야 했다. 물론 당장 사회복무요원을 할 수 있다고 해도 내 진로와 전혀 관련이 없는 공익 근무로 시간을 보내는 것보다는 회사에서 일을 하는 것이 더 의미있을 것 같았다. 무엇보다 14년을 학교라는 공간에서 보내던 중 터닝포인트를 하나 만들고 싶었고, 학교 수업에 염증을 느끼고 있던 참이기도 했다. 대학원에 가기 전에 현장에서 구체적인 문제를 찾아보라는 감동근 교수님의 글도 참고가 됐다.

산업기능요원 시작하기

그냥 막연하게 "산업기능요원하고 싶다!"하던 상황이라서 아는 건 전혀 없었다. 산업기능요원 제도에 관한 정보는 찾기 쉬웠지만, 구체적으로 IT분야 산업기능요원의 취업에 대한 자료는 찾기 힘들었다. 취업기나 복무 후기도 거의 없고 학부생 취업에 관한 자료는 더욱 없었다. 그냥 맨땅에 헤딩하는 수밖에 없었다.

일단 매년 산업기능요원 수를 감축하고 있어서 TO가 엄청 줄어든 상태인데, 보충역은 장기 적체로 인해 걸어다니는 TO와 같다. 적체가 너무 심해서 종종 병무청에서 산업기능요원 편입하라는 우편이 올 정도다. (보충역 사회복무요원에서 산업기능요원으로 '편입’하는 것이다.) 심지어 산업기능요원 복무 기간도 1년 11개월로 단축되어 나에게는 정말 좋은 기회였다.

조건도 현역보다 널널하다. 현역의 경우 자격증이나 경력이 필요하지만, 보충역은 전산 관련 전공 전문학사 학위만 있으면 조건을 충족할 수 있다. 4년제 학부의 경우 2년 이상 수료하면 된다. 따라서 2018년 10월까지 회사를 알아보고 입사 지원을 한 뒤, 2019년 1월부터 복무를 시작하면 딱 적당했다. 이때가 9월이었다.

산업기능요원 관련 행정 절차는 회사에서 처리하기 때문에 일단 병역 지정 업체에 입사해야 산업기능요원으로 편입할 수 있다. 즉, 취업을 먼저 해야한다. 하지만 두 가지 중요한 문제가 있었다: 내가 전산관련 전공인가? 내가 취업할 정도의 실력이 되나?

디지털미디어 전공

다른 사람에게 디지털미디어 전공을 설명할 때마다 곤경에 빠진다. (보통 미디어학과라고 하면 신방과를 생각한다.) 학과소개 페이지는 기획, 디자인, 개발을 아우르는 '융합적 인재’를 양성하는 학과라며 장황하게 설명하고 있지만… 적당히 '컴퓨터공학도 배우고 시각디자인도 배우고 인문학도 적절히 배우는 학과’라고 하면 구구절절 설명할 필요가 없다.

암튼 확실하게 전산관련 전공이라고 할 수는 없었다. 개발쪽으로 가는 사람들도 있지만 기획이나 디자인, 애니메이션, 방송쪽으로 방향을 잡는 사람들도 있으니까. 산업기능요원 관련 자료에 ‘정보처리 직무분야 관련학과’ 목록과 ‘애니메이션 및 게임 직무분야 관련학과’ 목록이 정리되어 있었는데, 이게 정말 모호하게 적혀있어서 따로 병무청에 민원을 보냈다.

다행히 디지털미디어 전공은 전산 관련 전공이 맞았다.

신입사원의 실력

더 큰 문제는 내 실력이었다. 프로그래밍을 처음 시작한 건 중1이고, 중3 때 웹 프로그래밍 수업을 들은 걸 빼면 항상 독학을 해왔다. 대학에서는 원론적인 내용만을 배웠기 때문에 내 실무 능력에 대한 피드백을 받을 기회가 많지 않았다. 더불어 프로젝트는 많이 했지만, 대회에 나가거나 자격시험을 본 적이 없으니 내 실력이 어느 정도인지도 감을 잡기 힘들었다.

병특도 일반적인 신입사원과 똑같은 수준의 실력을 요구한다는데, 내가 그 정도가 될까? 신입사원에게 어느 정도의 실력을 기대할까? 산업기능요원은 성장 가능성보다 당장 실무에 투입할 수 있는지를 먼저 보지 않을까? 나는 아직 2학년인데 졸업생들이랑 비교하면 한참 모자라지 않을까? 사실 내가 자질이 없는 건 아닐까? 생각이 너무 많아서 취업 활동을 계속 미루기만 했다.

하지만 내가 시니어급은 돼야 답을 찾을 것 같아서 고민을 그만뒀다.

🔭 좋은 회사를 찾아보자

병역 지정 업체는 많지만, 아무 곳에나 들어갈 수는 없다. 워낙 주변에서 착취당했다는 얘기를 많이 들어서 걱정이 많았다. 일단 나만의 기준을 생각해봤다.

  • B2C 서비스를 만드는 회사
  • 개발자 문화와 오픈소스 문화에 기여하는 회사
  • 기술 경험 공유에 적극적인 회사
  • 퇴사율 25% 이하, 코드리뷰 문화, 수평적인 문화 등 (페넥여우님의 트윗을 참고했다.)

사실 좋은 회사의 기준이라기 보다는 개인적인 취향에 가깝다.

어떻게 찾지?

가장 좋은 방법은 '내가 사용하는 서비스를 만드는 회사’의 채용 공고를 찾는 것이었다. 물론 이 경우에는 해당 회사가 병특 업체인지, 내가 원하는 직군을 채용하고 있는지, 신입을 채용하는지 따져야 했다. 이때 아래 서비스들을 활용했다:

  • 로켓펀치: 병특 업체에 스타트업이 많기 때문에 큰 도움이 됐다.
  • 잡플래닛: 회사 리뷰나 면접 후기, 복지 정보를 확인할 수 있다.
  • 원티드: 원하는 회사를 북마크해두면 채용 공고가 떴을 때 알림을 받을 수 있다.
  • 크레딧잡: 연봉이나 입사, 퇴사 추이 등 구체적인 정보를 얻을 수 있다.
  • 플래텀, 블로터: 회사 관련 기사나 대표 인터뷰를 찾아볼 수 있다.
  • THE VC: 투자 정보를 찾아볼 수 있다.
  • 병역일터: 병특 업체를 찾아볼 수 있지만, 정부 사이트답게 매번 본인 인증을 해야한다.

회사 리크루트 페이지에서 지원 자격과 우대 사항도 살펴봤다. 프론트엔드 엔지니어의 경우 대부분의 회사가 HTML/CSS/JS는 기본이고 타입스크립트, 리액트, 리덕스, 디자인패턴 지식을 지원 자격으로 제시했다. 추가로 SPA 개발 경험이나 CI/CD 경험을 요구하는 회사도 있었고, 공채를 하는 큰 회사에서는 기본적인 CS 지식을 요구했다.

해당 기술을 사용해 서비스 가능한 어플리케이션을 완성해본 경험이 있으면 자격을 충족한다고 (멋대로) 생각했다. 기술 스택은 대부분 만족했으나, 디자인패턴이나 자료구조, 알고리즘 등 조금 부족하다고 느끼는 부분은 지원 전에 추가로 공부했다.

기술 문화는 회사에서 진행하는 오픈소스 프로젝트나 기술 블로그를 통해 알 수 있었다. 또한 그 회사가 어떤 개발자 행사에 참여했는지, 후원했는지 보며 내가 이 회사에서 기술적으로 얼마나 성장할 수 있을지 추측했다.

산업기능요원으로도 지원 가능한가요?

채용공고에 산업기능요원을 채용한다고 명시한 회사도 있었지만, 그렇지 않은 회사도 많았다. 여러 곳에 메일을 보내 산업기능요원으로도 지원할 수 있는지, 내년 초부터 일해도 괜찮은지 문의했다. 일단 지원해보라는 회사도 있었고, 병역특례 업체가 아니라는 회사도 있었다. 정말 좋아하는 회사였는데 채용 문의 메일에 답장이 오지 않아서 실망하기도 했다.

가장 큰 걸림돌은 많은 회사가 경력직만 뽑고 있었다는 것이다. 거의 모든 회사들이 2년 이상의 경력을 요구했다. 또한 병특업체지만 산업기능요원이 아닌 전문연구요원만 채용하는 회사도 많았다. 점점 지원할 수 있는 회사가 줄어들었다.

연봉의 경우 내가 얼마나 받아야 하는지 감이 잡히지 않았다. 특히 산업기능요원은 급여를 제대로 안 주는 사례가 많아서 원티드의 직군별 연봉을 확인하고 평균 정도만 받자는 생각을 했다. 회사의 연봉 정보는 크레딧잡에서 확인할 수 있었다.

그 외에 평가와 위치, 지원자격 등을 모아 스프레드 시트에 정리했다.자격을 충족하지 못하거나 나와 잘 맞지 않는 경우 빨간색으로 강조했다. 산업기능요원 지원 여부가 불확실한 회사는 노란색으로, 당장 지원할 수 있는 회사는 초록색으로 구분했다.

📮 이력서 만들고 지원하기!

그때그때 재밌는 프로젝트만 해왔기 때문에 취업 대비 같은 건 하나도 되어있지 않았다. 사실 준비만 안 된 정도가 아니었다.

새내기 때 필수로 참여하라는 학교 행사에 갔는데, 무려 1학년을 대상으로 취업 특강을 했다. '내가 취업하려고 대학에 온 게 아닌데’라는 생각이 들어 몰래 행사를 빠져나왔다. 이후로도 쓸데없는 반항심 때문에 취업이나 스펙같은 말만 들으면 거부 반응을 일으켰다(…)

그런데 덜컥 취업을 하게 된 것이다. 일단 이력서를 만들어야 했다.

담백한 이력서

막막했다. 주변에서 인정받을만한 성과는 고등학교까지였던 것 같고, 대학에 와서는 딱히 이룬 게 없다고 생각했다. 어디선가 이력서에 고등학교 때 활동은 넣지 말라는 내용을 본 것 같은데, 대학에 입학한 지 2년밖에 안 된 입장에선 고등학교 활동을 빼면 넣을 수 있는 내용이 많지 않았다. 이러다 입사 지원도 못하고 망할 것 같다는 생각까지 들었다.

이수진님의 신입 소프트웨어 엔지니어의 영문 이력서 작성하기와 원티드의 인사담당자가 직접 말하는, 서류 통과가 잘 되는 이력서를 참고해 간단히 이력서를 만들었다. 꾸역꾸역 뭘했는지 생각해내며 한줄 한줄 채우니 나름 의미있는 활동은 해온 것 같았다.

처음에는 technical skills를 front-end, back-end, others로 세 줄에 걸쳐 썼지만, 별로 의미있는 것처럼 보이지 않았다. 그냥 한 줄로 줄이고 부가 설명은 하지 않았다. C, Java, Python 등 지원하는 직군과 상관없는 기술도 모두 생략했다.

프로젝트에 대해서는 해당 프로젝트에서 내가 한 일, 프로젝트를 진행하며 배운 것, 그리고 성과를 적었다. 프로젝트의 규모나 성과는 모두 구체적인 수치로 나타냈다. 자기PR을 잘하는 성격이 아니라서 성과를 표현하는 게 좀 힘들었다.

나중에 로켓펀치링크드인에 올린 이력서를 통해 면접 제의가 오기도 했다. 그중 한 곳은 정말 큰 회사라서 깜짝 놀랐다. 아쉽게도 이미 다른 회사 전형이 막바지여서 바로 확답할 수 없었다.

두근두근 입사 지원

입사 지원을 한다는 생각만으로 떨렸다. 너무 소심해서 지원을 계속 미뤘다. 컴퓨터 구조 과제 끝나면 지원하자, 이번 프로젝트만 마무리하고 지원하자, 중간고사 끝나면 지원하자, 그렇게 11월이 되어버렸다.

더 이상 미룰 수 없었다. 첫 번재로 이력서를 보낸 회사는 좋은 기술 문화를 갖췄다고 알려진 스타트업(A회사)이었다. 아직 유명하지는 않지만 잡플래닛 평가나 기술 블로그 내용이 좋았다. 그리고 결과는…

서류에서 광탈이었다. 지금이야 소년만화 클리셰가 떠오르지만, 그때는 역시 안 되는 걸까 자괴감에 빠졌다. 겁이 나서 다음 회사(B회사)는 2주가 지나서야 지원할 수 있었다. B회사는 이미 잘 알고 있는 회사였다. 내가 직접 서비스를 사용하지는 않지만, 주변에 물어보면 사용하는 사람이 꽤 많은 것 같았다. 두 번째 지원도 여전히 떨렸다.

이번에는 이력서와 함께 자기소개서도 보냈다. 대학 입시 때 쓴 자소서와 재작년 우아한 테크캠프 지원할 때 쓴 자소서를 참고했다. 베이스가 있어서 하루만에 끝낼 수 있었다. 내용은 단순했다. 프로그래밍을 시작한 계기부터 시작해 각 프로젝트에 어떤 기여를 했고, 어떤 것을 배웠는지 썼다. 마지막에는 해당 회사에 지원한 이유와 산업기능요원을 선택한 이유를 적었다.

종종 자소서를 존댓말로 써야 한다는 조언이 보였다. 몇 년 전 대입 자소서 초안을 존댓말로 썼는데, 존댓말로 글을 쓰면 구어체가 되어 문장이 자연스럽지 않게 늘어져 버렸다. 애초에 자소서가 존댓말이 아니라서 예의없다고 생각하는 회사는 안 가는 게 낫다고 생각했다.

일주일 뒤, 집에 가던 중 메일이 왔다. 합격이었다.

🎢 정신없이 흘러간 채용 프로세스

B회사의 입사 전형은 1차 서류, 2차 온라인 과제, 3차 기술 인터뷰, 4차 임원 인터뷰로 진행됐다. 뭐 이렇게 많아…싶었지만 오히려 사람을 대충 뽑는 회사는 아니라서 한편으로는 다행이었다. (넷플릭스는 면접만 9번 본다고 한다.)

입사 과제 vs 기말 프로젝트

모든 전형이 학기 중에 이루어졌다. 온라인 과제로 일주일의 기간과 알고리즘 문제 2개, 인터페이스 구현 문제 3개(택1)가 주어졌다. 하필 이때 기말 프로젝트가 시작되던 시기라서 본격적으로 바빠지기 시작했다. 학점과 병특 중 하나를 선택해야 했다.

둘 다 잡기로 했다. 딱 일주일만 버티자는 생각으로 자투리 시간을 끌어모아 온라인 과제를 했고, 잠을 줄여 기말 프로젝트를 했다. 알고리즘 문제는 크게 어렵지 않아 이틀 만에 끝냈다. 그리고 나머지 5일은 인터페이스 구현 문제에 집중했다. 문제 3개의 난이도는 다 비슷해서 가장 재밌어 보이는 SPA 구현 과제를 선택했다.

개발에는 리액트와 styled components를 사용했다. 가벼운 채팅 어플리케이션이기 때문에 webpack을 사용하지 않고 parcel로 빌드했다. 시간 관련 기능에도 moment.js가 아닌 day.js를 사용했다. 패키지 선택도 그렇고 로직 구현도 그렇고, 입사 과제라고 생각하니 괜히 더 신경쓰게 됐다.

제출일이 다가올수록 내 과제물에서 부족한 점만 보이기 시작했다. 그런 부분을 보완하다가 과제 지시사항에 없던 부분까지 구현해서 제출했다. 불안하고 후련했다. 한편 기말 프로젝트는 기대치보다 낮은 완성도로 마무리하고 말았다. 부족한 점이 많은 채로 제출해서 A+를 기대하기는 어려울 것이라고 생각했다.

어쨌든 둘 다 끝내긴 했지만, 그때는 정말 죽을 뻔했다. 학교 다니면서 취업 활동하는 선배들은 어떻게 하는 걸까, 회사 다니면서 이직하는 사람들은 정체가 뭘까 싶었다.

회사가 나를 평가할 때 나도 회사를 평가한다

온라인 과제를 통과하고 일주일 뒤 1차 면접을 진행했다. 이력서와 자소서를 바탕으로 기술적 경험을 이야기했고, 과제에 대한 이야기도 했다. (의외로 CS 기본 지식에 관한 질문은 없었다.) 대입 면접과 비교하면 정말 떨리지 않았고, 면접 분위기도 편했다. 그럼에도 내 능력을 평가받는 건 긴장할 수밖에 없는 일이다. 질문이 꼬리에 꼬리를 물며 들어올 때는 조금 횡설수설했다. 그러다 보니 마지막엔 생각해뒀던 질문도 잊어버렸다. 찝찝한 마음으로 강남역에서 쌀국수를 먹었다.

2차 면접 역시 이력서와 자소서를 바탕으로 이야기했으나, 기술적인 내용은 없었다. 첫 인터뷰에 비해 훨씬 편했다. 마지막에 1년 11개월 근무 이후 바로 복학해야 한다는 점이 조금 아쉽다고 말씀하셨는데 잘 대답하지 못했다. 그날 밤 잠들기 전 '아 이렇게 말할걸’하는 생각이 계속 들었다.

B회사 전형 중간에 지원한 다른 회사(C회사)는 내가 자주 쓰는 서비스를 만드는 회사로, 고등학생 때 인턴을 하고 싶다고 생각했을 정도로 애정이 있었다. C회사는 서류 합격 후 전화 인터뷰를 진행했다. 브라우저의 동작이나 네트워크에 대한 질문, 리액트, 리덕스같은 프론트엔드 기술에 대한 질문, 그리고 디자인 패턴에 대한 질문이 쏟아졌다.

간단한 전화 인터뷰라고 해서 이력서나 자소서 사실 확인 정도인 줄 알았는데, 기술 인터뷰라서 엄청 당황했다. 질문을 받을 때마다 오래전 본 수업 강의 노트와 기술 아티클들이 주마등처럼 스쳐가며 배경지식과 질문 속 단서들이 결합해 새로운 지식을 생산하는 경험을 했다. 더 최악은, 동아리 방에서 통화하는 바람에 다른 사람이 내 면접을 모두 듣고 있었다는 것이다.

입사 전형은 회사가 나를 평가하는 동시에 내가 회사를 평가하는 과정이었다. 간접적으로나마 회사 분위기를 알 수 있었고, CEO와 CTO의 생각도 들어볼 수 있었다. B회사의 경우 온라인 과제에서 불합격해도 피드백을 준다고 해서 굉장히 좋은 인상을 받았다.

🎉 꿈에 그리던 휴학

12월 셋째 주, 디지털 타이포그래피 기말 프로젝트 발표를 하러 가던 중 B회사 최종합격 메일을 받았다. 정말 다행이라는 생각이 드는 한편, 겁내지 말고 더 빨리 입사 지원을 했더라면 좋았을 것이라는 생각을 했다. 뭐가 그렇게 겁났던 걸까.

일주일 뒤 메일을 통해 입사 조건을 조정했고, 1월 14일 첫 출근을 하기로 했다. 그리고 2학년 수료를 증명하기 위한 성적증명서를 준비해야한다는 안내를 받았다. (훈련소 일정은 회사와 상의해서 결정하면 된다고 한다.) 그렇게 2019년부터 B회사와 함께하게 됐다.

B회사의 입사일이 먼저 결정되어 C회사는 어쩔 수 없이 전형 중간에 그만둬야 했다. 굉장히 좋아하는 회사인데 아쉬웠다. B회사에 지원하고 한참 뒤에 C회사의 공고가 떠서 그렇기도 했지만, 내가 온라인 과제를 기말고사 이후로 미룬 탓이 크다.

회사 생활이라고는 인턴 한 달 남짓한 게 전부라서 여전히 걱정이 많다. 인턴을 했던 회사는 워낙 규모가 큰 곳이라 선배 개발자께서 '부속품이 된 것 같다’고 하셨는데, 이곳에서는 다른 경험을 할 수 있을 것 같아 기대도 된다. 일단은 휴학을 하게 돼 너무 좋다 :D

📋 도움이 된 자료

모든 게 처음이라 낯설기만 했다. 나와 비슷한 상황에 놓인 분들에게 도움이 되면 좋겠다:

Git 사용 중 자주 만나는 이슈 정리

코딩보다 어려운 버전 관리

🎅 요정을 착취하는 방치형 게임 개발한 이야기

ES6 OOP와 타입스크립트, 그리고 제이쿼리(?)

Articles