신입 개발자의 취준 후기

8월을 마지막으로 1년 2개월의 스타트업 생활을 마치고, 이번 하반기 신입 채용과정을 거쳐 3곳에 합격했습니다. 퇴사 후 부랴부랴 취업준비를 시작했는데, 이번 포스팅에서는 취업준비를 하며 어떤 식으로 전공 지식과 직무 면접을 준비했는지 다뤄보겠습니다!

자료구조와 알고리즘

제일 먼저 준비했던 과목은 자료구조와 알고리즘이었습니다. 제 경우 자료구조와 알고리즘이 다른 전공에 비해 많이 부족해서 가장 먼저 공부를 시작했습니다.
대부분 기업이 서류 통과 후 바로 온라인 코딩 테스트 과정이 있기 때문에, 처음부터 차근차근 이론을 공부하고 문제를 푸는것은 시간상 불가능하다고 생각했습니다. 그래서 코드플러스 - SW 역량 테스트 대비 강의를 통해 자주 출제되는 알고리즘들의 유형을 빠르게 익히고 비슷한 문제를 풀어보는 연습을 했습니다.

저는 대표적인 유형의 알고리즘 같은 경우는 코드를 외울 정도로 자주 봤습니다. 사람마다 다르겠지만 제 경우에는 어느정도 문제의 틀이나 해법을 외워두니 비슷한 유형의 문제는 빠르게 풀 수 있었습니다. 처음 코딩 테스트를 준비하시는 분이라면 저처럼 대표적인 유형의 해법 정도는 외워두는게 도움이 많이 될 것 같다고 생각합니다. (당연히 이해를 바탕으로 외워야 합니다.)

자료구조와 알고리즘의 경우 온라인 코딩 테스트를 통과하더라도 다음 절차인 (직무)면접에서도 빠지지 않고 등장하는 과목입니다. 저도 온라인 코딩 테스트를 통과한 후에는 방향을 바꿔서 문제를 많이 풀기보다는 자료구조의 공부에 조금 더 초점을 맞췄습니다. 이 과정에서는 부경대학교 권오흠 교수님 - 알고리즘 강의가 큰 도움이 됐습니다.

운영체제

운영체제의 경우 학부생 때 가장 재밌게 공부했던 과목중 하나이다 보니 어느정도 자신있었습니다. 이화여자대학교 반효경 교수님 - 운영체제 강의를 듣고 운영 체제와 정보기술의 원리 책을 통해서 복습하며 빠르게 개념을 다잡았습니다.

운영체제 과목의 경우 학부생 때 공부했을 때와는 다른 느낌이었습니다. 특히 스레드와 프로세스, 경쟁 상태 부분은 제가 주로 사용하는 Node.js의 특징을 이해하는데 큰 도움이 되었습니다. 단순히 개념공부로 끝나는 것이 아닌 실제 이러한 개념이 어떤 환경에서 어떻게 사용되고 있는지 그리고 그로 인해 어떠한 장단점이 있는지를 연관지어 생각해볼 수 있었습니다.

데이터베이스

데이터베이스는 아키텍처 구성(다중화), 트랜잭션과 동시성 제어에 중점을 맞춰 공부했습니다. 당연히 기본적인 개념은 숙지하였고, 제가 했던 프로젝트라던가 어떤 서비스를 구축함에 있어 어떻게 아키텍처를 구성해야 하는지 고민해본것이 면접에 가서 도움이 많이 되었습니다.
위와 같은 내용을 공부함에 있어 데이터베이스 첫걸음이라는 책이 큰 도움이 되었습니다.

그 외 전산학

저는 Tech Interview For Beginner를 통해서 위의 전공들 뿐만 아니라 그 외 과목들에서 필요한 부분을 공부했습니다. 예비 개발자들의 기술 면접 준비를 위한 자료를 정리해놓은 Repository로서 신입 개발자로 취업을 준비하시는 분이라면 많은 도움을 받으실 수 있을 것입니다.

나만의 강점

제가 이번 하반기에 3곳에 최종합격 할 수 있었던 저만의 강점을 생각해 본다면 크게 두가지인것 같습니다.
첫 번째로 개인 블로그와, 개인 프로젝트입니다. 저는 면접을 보며 개발에 대한 애착 혹은 자기 자기계발에 관련된 질문에는 항상 블로그와 개인 프로젝트를 통해 어필했습니다. 어떤 행동이나 습관으로 끝나는 것이 아닌 그로인한 결과물을 갖고 어필을 했던것이 큰 도움이 되었습니다.
두 번째는 서비스를 직접 개발하고 운영해보았다는 점입니다. 1년 2개월 동안 스타트업에서 동료들과 함께 서비스를 기획하고 개발하고 운영했던 경험이 가장 큰 도움이 되었습니다. 단순히 학교 과제나 동아리 활동에서 결과물을 내는 것이 아니라, 실제 사용자에게 서비스를 하기 위한 개발은 여러가지 면에서 차이가 있다고 느꼈습니다. 그런 면에서 항상 고민하고 선배 개발자 분과 이야기를 자주 나눴습니다. 제가 생각하고 고민한 방법에 대해 말씀드리고 그로 인해 다시 생길 수 있는 문제점을 생각해보고 개선해 나가는… 이런 과정들이 면접에 가서 가장 큰 도움이 되었습니다. 실제 면접에 가도 면접관 분들은 지원자가 했던 프로젝트에 대해 물어보시면서 추가적으로 어떤 문제점을 추가로 주고, 이를 면접자가 자신의 전산지식을 바탕으로 해결해가는 과정을 많이 보시는것 같습니다.

마지막으로 드리고싶은 말씀

간혹 제 주변 친구들 혹은 지인들이 물어봅니다. 신입 개발자로 취업하기 위해서는 어떤것을 준비해야 하는지, 내가 지금 프로젝트를 더 해야하는지, 영어 점수를 더 올려야 하는지…
저는 먼저, 꼭 기본적인 전산학에 대한 공부부터 하시기를 추천드립니다. 결국에는 내가 프로젝트를 하고 그 프로젝트를 자소서에 적더라도, 면접에 가서는 면접관님들은 프로젝트로부터 기본적인 전산학에 관련된 내용을 요구합니다. 그렇기 때문에 꼭 기본적인 전산학 공부를 탄탄히 하시길 바랍니다. 그 후에는 자신이 했던 프로젝트로부터 관련된 전산학 내용을 꼭 정리해보셨으면 좋겠습니다. (예를 들어, Node.js를 사용했다면 Node.js의 특징인 비동기 방식에 대해 운영체제 관점에서 설명할 수 있어야 합니다.)
이 부분만 잘 되었다면 면접에서 어려운 질문을 받더라도, 면접관님과 대화를 하면서 문제에 접근하고 조금씩은 풀어갈 수 있는 능력이 생길거라고 생각합니다.

(주)두다지 서버개발자 양성 교육 프로그램

두다지의 **서버개발자 양성 교육 프로그램**은 제가 스타트업에 있을때 많은 도움을 받았던 선배 개발자분께서 기획하고 진행하시는 프로그램입니다. 프로그램을 운영하고 계시는 홍석환 멘토님은 제가 대학생일때 멘토 멘티로 만나 스타트업에서의 생활, 그리고 취업을 준비하면서도 계속해서 많은 도움을 주셨습니다.
스스로 다시 한 번 전산학 내용을 정리할 수 있는 시간을 가지며 기본을 탄탄히 하고, 학생때는 단순히 학점만을 위해 공부하며 키워온 제 전산학 지식을 쌓아왔다면 실제 실무에서는 어떻게 사용되는지, 필요로 하는지 다양한 경험을 통해 체감할 수 있게 해주셨습니다.
제가 과거에 멘티로서 선배 개발자분께 배웠던 과정은 교육 과정에서 확인해 볼 수 있습니다. 교육 과정의 더 자세한 내용과 과정을 수료한 멘티들의 후기도 이곳에서 확인할 수 있습니다.
제가 생각하는 신입개발자에게 필요한 것은 단순히 전산지식을 얼마나 많이 아느냐가 아니라, 내가 앞으로 개발하면서 그동안 공부 했던 전산지식을 바탕으로 얼마나 잘 이해하며 활용할 수 있는지 그 능력이 필요하다고 생각합니다. 두다지 교육 프로그램은 그 능력을 키울 수 있도록 방향을 잡아줄 것입니다. 관심이 있으신분은 주저하지 마시고 꼭 연락을 드려보세요!