신입 프론트엔드 개발자 취업 회고

안광의·2022년 3월 19일
47

시작하며

취업에 성공했다. 개발자로 직무를 변경하게 된 계기와 그동안 취업 준비를 어떻게 했고 어떤 회사에 지원했었는지 어떻게 합격하게 됐는지 정리해보는 시간을 가지려고 한다. 혹시라도 회고록이 개발자로 커리어 전환을 고민하거나 취업을 준비하는 사람에게 조금이나마 도움이 되었으면 좋겠다.



개발자로 직무 변경

HR 채용 담당자

나는 경제학부를 졸업하고 작년 6월까지 모기업에서 채용과 현장실습을 운영을 담당했었다. HR에 관심이 있었다기 보다는 대학교를 통해서 현장실습연수를 하면 좋겠다는 생각이 들었고 경제학부로써 지원할 수 있는 직무가 한정적이였다. 그 중 HR 직무를 뽑는 회사에 지원을 했고 다행히 합격해서 8개월간 채용 보조 업무를 담당했었다. 이후에 마지막 학기를 다니다가 감사하게도 현장실습연수를 진행했던 회사에서 연락이 왔고 계약직 사원으로 입사하게 되었다.

지금 다시 생각해봐도 채용 담당자로 일할 수 있었던 것은 행운이였고 좋은 경험이라고 생각한다. 신입의 입장에서 만족스러운 회사였고 업무도 재미있었고 HR에 애정도 생기게 되었다. 무엇보다도 좋은 선임분들을 만나서 지금까지도 계속 만남을 이어가고 있다.


개발자로 도전하게 된 계기

회사의 평가 시스템을 웹페이지로 구축하기 위해서 SI 업체와 협업하는 과정의 마지막에 잠깐 참여한 적이 있었는데, 평가 제도의 로직을 이해하고 실제 웹페이지로 구현되는 과정을 보면서 개발에 대한 매력을 느끼게 되었다. 개발에 대한 지식이 없었을 때였는데도 너무 재미있어 보였다.

채용 업무도 물론 재미있었지만, 오랜 기간 한 직무의 일을 하게 된다면 더 재미있는 일을 하는게 맞다고 생각했고 현실적인 조건들(직무를 바꾸기에 늦지 않은 나이였고 채용을 담당하면서 개발자에 대한 수요를 직접 느꼈고..등등)을 고민해봐도 개발에 도전해봐도 좋다고 생각했다.





개발 공부

코드스테이츠

선정 이유

함께 현장실습을 했던 대학동기가 우연히 SNS에 게시된 코드스테이츠 광고글을 보았고 추천해주어서 알게 된 부트캠프였는데, 국내 개발 부트캠프 중 가장 오래된 곳이였는데 후기나 취업 결과도 괜찮고 취업 이후에 소득에 따라 교육비를 납부하는 방식이여서 선택하게 되었다.

회고

소프트웨어 엔지니어링 과정은 웹개발에 대한 전반적인 기초 지식과 스택에 대한 커리큘럼으로 이루어져 있고 비전공자를 대상으로 만들어진 코스이기 때문에 나처럼 개발에 대해 아예 몰랐던 사람도 개발자가 갖춰야 하는 지식을 배울 수 있다. 아쉬운 점이라면 프론트/백 구분 없이 커리큘럼이 짜여져 있어서 각 포지션에 대한 전문적인 교육이 아쉽고 특히, 백엔드는 javaScript를 기반으로 한 node.js로 서버를 구현하기 때문에 java에 대한 수요가 많은 백엔드 채용 시장에서는 불리할 수 있다. 코드스테이츠 측도 이 점을 인지하였는지 기존 코스가 사라지고 프론트/백 각각 몰입형 부트캠프 코스를 신설하여 모집하고 있다.

섹션은 3개로 나누어져 있고 매일 정해진 일정에 맞추어서 코스를 수강하고 줌 수업을 듣거나 페어 프로그래밍을 통해서 코딩 문제를 풀고 과제를 해결하는 형식으로 진행된다. 각 섹션을 통과하기 위해서는 HA라고 하는 시험(코딩 문제, 과제)을 통과해야하고 불합격시 해당 섹션을 재수강을 해야한다.

같이 공부한 동기들과 섹션 3의 HA를 보기 전에 섹션 3를 다시 수강하면서 프로젝트 전에 실력을 쌓자고 정해져서 HA를 통과한 이후에 자발적으로 기수 이동 신청을 했었다. 당시에 나는 취업의 시기가 미뤄지는 것이기 때문에 회의적이였지만 계속해서 호흡을 맞춰온 동기들과 프로젝트를 하고 싶었고 결과적으로는 괜찮은 선택이였다고 생각한다.

섹션 후기

개발을 모르는 사람을 대상으로 짜여진 코스이기 때문에 매일 새로운 개념이 계속 등장하고, 코드스테이츠 측에서 제공하는 학습 자료나 수업만으로는 과제를 해결할 수 없는 방식으로 코스가 진행되기 때문에 추가적인 공부가 필수적이다. 코드스테이츠 측에서는 현업에 가더라도 계속 모르는 것에 부딪히고 구글링해서 알아가는 과정이 필요하다고 생각하기 때문에 이런 방식으로 교육을 진행한다고 했었다. 가끔 과하다고 생각하는 부분이 있어서 불만을 가지긴 했지만 섹션을 마치고 프로젝트를 하다 보면 틀린 말은 아니였다고 느끼게 되었다.

내가 했던 공부 방법은 빠르게 코드스테이츠에서 제공하는 학습자료를 읽어서 원리를 이해하고, 추가적으로 궁금하거나 이해가 안되는 부분은 구글링이나 공식 문서를 읽어보는 방식이였다. 그리고 당일에 학습한 내용이나 과제를 바탕으로 TIL을 작성하였다. 지금에 와서 아쉬운 점은 너무 복습 위주의 방식이지 않았나 싶다. 각 섹션에서 제공하는 학습 목표에 따라서 공부를 했었는데 복습을 하면서 좀 더 깊은 단계의 지식도 추가적으로 학습했으면 취업이 조금 더 빠르지 않았을까 하는 아쉬움이 있다.

프로젝트 후기

섹션이 끝나고 4명이 팀을 이뤄 2주, 4주 총 두 번의 프로젝트가 진행이 되는데 기획부터 배포까지 실제 개발이 어떻게 이루어지는지 팀원 간의 소통을 어떻게 해야하는지를 배울 수 있는 단계이고 취업에 있어서는 제일 중요한 단계라고 할 수 있다. 두 번 모두 팀장을 맡으며 풀스택 포지션으로 프로젝트를 진행을 했는데 팀원들과 소통하고 에러 핸들링하는 과정을 통해 섹션보다 더 많이 성장할 수 있었다. 프로젝트를 마친 후에 목표를 현실적으로 잡았나 하는 아쉬움이 있었다. 나름 일정이나 실력을 고려해서 적당히 도전적인 목표를 설정했었는데, 다른 팀들을 보면서 기간 내에 구현을 못하더라도 좀 더 도전적인 기능을 구현해야 했나라는 생각이 든다.

두 프로젝트 목표로 설정했던 단계까지 구현을 하고 배포까지 마칠 수 있었고, 부트캠프를 수료한 이후에 몇 가지 버그를 해결하고 리팩토링 과정을 거치게 되었다.





취업 준비

개인 프로젝트

부트 캠프를 수료하고 이력서에 프로젝트에 대한 내용을 작성하면서 회사 입장에서 서류합격을 시킬 수 있는지 고민해보았고 부족하다는 생각이 들었다. 스스로 생각하기에 신입 개발자로서 장점은 풀스택 포지션으로써 전반적인 개발 과정에 대해서 이해하고 있고 로직을 이해해서 코드로 구현하는 과정이 빠른 편인 것이라고 생각했고 이를 어필하기 위해서 추가적인 프로젝트를 하기로 결심했다. 다행히 혼자서 구현할 수 있는 좋은 아이디어가 생각이 나서 빠르게 기획을 하고 10일 정도 걸려서 페이크서치라는 프로젝트를 마칠 수 있었다.

+ 웹 이력서

추가로 이력서를 볼 수 있는 웹페이지가 있으면 좋겠다고 생각해서 이력서 사이트를 만들었는데, 스크롤을 해서 화면이 넘어가는 방식의 페이지로 구현하였고 서버가 필요 없는 정적인 페이지이기 때문에 하루 만에 만들었다. 사실 내용은 이력서와 거의 차이가 없어서 서류평가 과정에서 도움이 되었을지는 잘 모르겠다.


기술 면접

사실 처음 기술 면접을 보았을때 제대로 준비가 되어있는 상태가 아니였고, 추가적으로 공부를 하고 계속해서 면접을 보면서 보완해나갔다. 이해한 내용을 말로 설명하기 위해서는 글로 작성해보는 과정이 필요하고 꼬리 질문에 대해서도 준비를 해야한다. 1차 면접에서 기술 관련 말고도 인성이나 경험에 대한 질문도 나오기 때문에 그 부분도 따로 준비를 해야한다.

질문리스트

면접에 대해서 정리한 내용을 공유하고 싶지만, 코드스테이츠 측에서 제공해준 자료여서 함부로 유출할 수 없기 때문에 어느 정도로 준비를 했고 자주 나온 질문은 무엇인지만 정리해보려고 한다. 구글에 프론트엔드 개발자 면접 질문만 검색하더라도 비슷한 질문들이 나오니 참고하면 좋을 것 같다.

분야개수
자바스크립트28개
HTML5개
CSS5개
브라우저15개
네트워크3개
리액트13개
node.js9개
DB/자료구조12개
배포2개
보안3개
기타7개
102개

기술 질문을 받게 되면 답변을 하기 위해서 추가적으로 설명해야하는 개념이 있고 꼬리를 물어서 등장하는 질문들이 있기 때문에 한 질문에 대한 답변을 정리하는데도 꽤 많은 시간이 걸렸었다.

주로 나오는 추가 질문의 유형은...

  • 해당 스택을 왜 사용하는지, 장/단점이 무엇인지
  • 해당 스택의 더 세부적인 개념에 대해서 알고 있는지
  • 실제 프로젝트에서 적용해본 경험이 있는지

위의 102개의 질문에 대해서 추가적인 답변을 모두 준비하는 것은 어렵다고 생각했기 때문에 주로 나오는 질문들에 대해서는 머릿속으로 어떻게 답변할지 생각하면서 답변을 준비했다.

자주 나오는 질문

  • 호이스팅의 개념
  • this 관련 질문
  • 자바스크립트의 비동기 처리방식
  • 브라우저 작동 원리(렌더링 엔진 관련)
  • SSR vs CSR
  • CORS 관련 질문
  • React lifecycle
  • Virtual Dom
  • stack vs queue

위 질문들은 면접을 봤던 거의 모든 곳에서 받았던 것 같다. 면접을 진행했던 포지션이 프론트엔드여서 그런지 node.js나 배포에 대한 질문은 한번도 받아본 적이 없다. 혹시 프론트엔드 포지션에 면접을 봐야하고 빠르게 준비해야 한다면 위의 질문과 꼬리 질문에 대한 답변은 꼭 준비하는 것이 좋을 것 같다.


인성 면접

인성 면접까지 간 경험이 많지 않지만, 1차 면접이라고 하더라도 인성과 관련된 질문을 받기 때문에 받았던 질문들을 정리해보면 주로 프로젝트와 관련된 질문이 많았었다.

  • 개발자로 직무를 변경하게 된 계기
  • 프로젝트 진행 중 갈등상황/해결과정
  • 개발을 하면서 어려운 점
  • 성격 장/단점
  • 개발 공부 방법
  • 목표가 무엇인지

사실 인성 면접 질문이라기 보다는 같이 일하게 되면 어떨지에 대해 파악하는 질문들을 주로 받았다. 2차 면접이기 때문에 회사에 대한 질문들을 예상해서 항상 열심히 조사했었는데 의외로 관련된 질문은 거의 받지 않았다.





지원

지원 조건

  • 포지션 : 프론트엔드/풀스택
    (모든 프로젝트에서 풀스택을 맡았지만 프론트엔드의 비중이 컸고 백엔드에서 node.js를 사용하는 기업이 많지 않기 때문에 주로 프론트엔드 포지션에 지원하였다.)

  • 연봉 : 신입 개발자로서 일할 수 있다는 것 자체가 성장할 수 있는 좋은 기회이고 추후에 올릴 수 있다고 생각해서 개인적으로 생각하는 기준만 넘어가면 된다고 생각하였다.

  • 그 외 : 너무 전문적이거나 특수하지 않다면 회사의 업종은 상관없고 나 이외의 다른 프론트엔드 개발자가 1명 이상 있어야 한다고 기준을 정했다.

위 조건에 해당하는 회사면 기본적인 내용만 찾아보고 지원을 했었던 것 같다. 물론 처음부터 높은 연봉을 주는 유명한 기업에 입사하면 좋겠지만 쉽지 않고 취준 기간이 길어지는 것보다 회사에서 개발자로서 경력을 쌓는 것이 더 좋다고 생각했다. 여담을 풀자면 처음 면접을 본 곳이 그런 기업이였고 준비가 제대로 되어 있지 않아서 당연히 탈랐했다.

지원 이력

2월 초부터 총 35개 기업에 지원하였고 그 중 8개 기업에서 서류합격하였다. 이 중 2곳은 조건이 맞지 않는다고 판단해서 지원을 취소하였고 6개 기업에서 1차 면접을 진행해서 4개 기업에서 합격했으나 최종 합격으로 인해 일정이 맞지 않아 한 곳을 지원 취소하고 3개 기업에서 최종 면접을 진행하였고 한 곳에 합격하였다.

지원한 플랫폼은 원티드 75%, 로켓펀치 10%, 잡코리아 10%, 기타 5% 정도 였고, 이력서는 조금씩 수정했지만 처음 작성한 틀에서 크게 벗어나지는 않았다. 통계를 내기 위해서 1차, 2차 면접으로 나누었지만 코딩 과제로 대체한 회사도 있었다.

서류 합격률만 보더라도 매력적인 이력서라고는 할 수 없기 때문에 작성 팁을 쓸 입장을 아니라고 생각하지만, 프로젝트의 구현한 부분을 자세하게 작성하였고 자기소개 글을 몇 차례 수정하였다. 기술 면접은 많이 볼수록 확실히 늘었던 것 같다. 몇 차례 보면서 어떤 식으로 준비를 해야하는지 알게 되었고 대답하지 못했던 질문들을 정리하면서 후반에는 회사나 담당 직무에 관련된 질문 외에는 기술 면접 준비를 따로 하지 않았다.

합격 후기

코드스테이츠의 디스코드 채널에 수료생분이 재직 중인 회사의 공고를 올려주셔서 안내된 메일로 이력서를 보내 지원하였고, 미리 안내된 대로 서류 평가 ➜ 코딩 과제 ➜ 최종 면접 순으로 진행되었다.

의도하진 않았지만 과제를 진행한 회사가 2곳 밖에 없었다. 개발팀 입장에서 신입 개발자를 뽑는다면 당연히 코딩 테스트나 과제를 통해서 검증하는 과정이 필요하다고 생각했는데 의외로 면접만으로 채용하는 회사가 많았다. 서류 합격 후 코딩 과제에 구현해야 하는 기능과 제출 기한에 대해서 안내된 메일을 받았고 과제 구현 후 배포 링크와 깃헙 레퍼지토리 주소를 제출하였다. 구현해야 하는 기능은 모두 구현하였고 컴포넌트나 디렉토리 구조, 코드를 가독성 좋게 적으려고 했던 것 같다.

과제 제출 이후에 며칠 뒤에 면접을 진행했는데, 기술 관련 질문들이나 프로젝트 관련 질문들을 많이 받았고 감사하게도 내가 제출한 과제의 코드 리뷰를 해주시면서 개선점에 대해서 말씀해주셨다. 그동안 봤던 면접 중에는 내 지원서에 대한 최소한의 검토도 없이 면접을 진행한 곳도 있어서 너무 감사했다. 이후 합격 통보를 받았고 개인적으로 생각한 기준과 잘 맞아서 입사를 결정하였다.

+ 여담

보통 면접을 보고 나면 결과가 예상이 되는 편인데, 벗어나는 경우가 종종 있었다. 어떤 기업은 1차 면접을 화상 면접으로 진행하였는데, 모르는 질문은 1분 동안 검색을 할 수 있다고 말씀해주셨다. 물어보는 질문이 생각보다 너무 디테일해서 거의 절반 가까이는 모르겠다고 하고 검색을 했었다. 기억나는 질문은 css의 z-index가 적용되는 우선 순위 같은 질문이였다. javaScirpt, html, css, 데이터베이스, 자료구조, 배포 등 전반적인 분야에 대한 질문이 나왔었고 1시간 넘게 진행되다보니 마지막에는 좀 지쳤던 것 같다. 당연히 불합격이라고 생각을 했는데 1차 면접은 합격을 했다.

다른 곳은 대면 면접으로 1차 면접이 진행되었고, 면접 자체는 나쁘지 않았는데 끝나고 나오면서 시계를 보니까 15분이 지나있었다. 기술 면접 치고는 너무 짧게 끝나서 불합격이라고 예상했으나 합격하였고 이후에 본 2차 면접은 합격일 것 같다고 생각했으나 불합격하였다.




마치며

취준을 하면서 우연히 시니어 개발자분이 작성한 칼럼을 읽은 적이 있는데 30대 중반에 개발 공부를 시작하셔서 거의 200개의 기업에 지원하였고 그 중 2곳에서 면접을 보고 한 곳에 합격하셔서 개발자로 커리어를 시작하셨다고 한다. 이전에 채용을 담당했던 입장에서 불합격하는 이유에는 여러가지가 있다. 지원자의 역량이 부족했을 수도 있지만, 인력 계획이 변경돼서 TO 자체가 사라졌을 수도 있고 역량은 충분하나 조금 더 나은 지원자가 합격했을 수도 있다. 실력도 중요하지만 운도 영향이 있기 때문에 탈락했다고 해서 좌절할 필요가 없다고 생각한다.

profile
개발자로 성장하기

3개의 댓글

comment-user-thumbnail
2022년 8월 23일

코드스테이츠 수강중인데 너무 좋은 글 이네요 잘봤습니다 감사합니다~

답글 달기
comment-user-thumbnail
2022년 10월 9일

저도 원티드에서 지원해보고 있는데 신입인 경우 이력서 작성에 넣을 내용이 많지 않은 것 같은데 어떤 내용 넣었는지 궁금합니다!

답글 달기