이 글을 작성하는 이유
어느 게시글에 한 분께서 취업을 어떻게 준비 해왔는지에 대해 알려주면 좋을 것 같다고 해주셨습니다.
저는 비전공자 출신이고 뒤늦게 입문한 만큼 빠른 취업을 목표로 삼았고 저만의 취업 전략을 세웠습니다.
주변에 개발자 선배나 동료가 없었기 때문에 누구에게도 물어볼 수 없었고 의지할 수 없었던 상황이었지만, 개발자분들의 유튜브 영상, 블로그 글 등을 찾아다니며 올바른 방향성을 갖고 공부하고자 노력했습니다.
그 결과 2021년 7월부터 자바, 스프링을 처음 공부하기 시작해서 2022년 4월 NHN에 서버 개발자로 취업할 수 있었습니다.
부족한 저의 모습을 드러내야 한다는 것이 참 부끄럽고 어쩌면 잘못된 방식을 알려드릴 수 있다는 점이 마음에 걸리지만, 2021년 7월의 저와 같은 상황에 있으신 분들이라면 큰 도움이 되실 것이라 생각하며 글을 작성해보겠습니다.
2020년
2020년 3월부터 1년간 교내 IT 경영 학회에서 활동했었습니다.
이전까지도 진로를 결정하지 못했었는데, 삼성 AI 엔지니어로 일하시는 경영학부 출신의 선배와 대화를 나누며 나도 할 수 있겠다 하는 생각을 가졌습니다.
2020년 7월 여름방학 코딩 도장에서 c언어를 학습하고 열혈 자료구조 책을 사서 반정도 읽었습니다.
지금 생각해보면 매우 겉핡기 수준이었으며, 리스트가 뭔지도 제대로 이해못했던 수준이었습니다.
학기 중에는 개발과 관련된 공부는 따로하지 않았지만 2학기에는 인공지능과 관련된 전공을 2개 수강했습니다.
파이썬을 1도 모르는 상태로 맨땅에 헤딩하듯이 구글링 + 복붙 신공을 했었고, 지금보면 매우 쉬웠을 과제 하나에 일주일을 쏟아부으며 해결했었습니다.
기초가 부족해서 어렵고 힘들었지만 재미있었습니다. 사실 이때부터 개발이 나의 적성에 부합한다는 생각을 갖기 시작했습니다.
2021년 7월 이전
고민 끝에 AI 개발자가 되겠다는 생각으로 인공지능 융합전공을 신청했습니다.
겨울 방학에는 파이썬 공부와 함께 코딩 테스트를 시작했습니다. (처참한 실버 4, 5 수준..)
3월부터는 컴퓨터 비전, 정보 이론 및 추론 학습, 인공지능 등의 강의로 가득 채운 학기를 보냈습니다.
그러나 확률 및 통계학에 대한 기초적인 이해없이 3, 4학년 전공을 수강한 상태라 따라갈 수가 없었고, 무엇보다도 재미가 없었습니다.
영어와 수식이 가득한 논문을 읽고 분석하여 개선점을 찾는 과제를 하는데 흥미가 뚝 떨어진 제 자신을 찾을 수 있었습니다.
그래서 진로를 바꾸기로 결정합니다... 대학원은 안된다... 취업만이 살 길이다.
2021년 7, 8월
취업 시장에서는 웹 개발자가 제일 수요가 높다는 것을 확인했고, 클라이언트는 html, css, javascript를 다뤄본 결과 흥미가 생기지 않아 백엔드 개발자로서 취준을 해야 겠다고 다짐했습니다.
이 시기에 저의 목표는 하반기 취업이었습니다.. (지금 생각해보면 말도 안되는 생각이지만)
우리나라에서는 자바, 스프링 기반의 백엔드 개발자 수요가 높았기에 7월부터 자바는 남궁성님의 자바의 정석 3판 (유튜브 인강), 스프링과 JPA는 인프런의 김영한님 강의를 들었습니다.
또한 비전공자이지만 기초 cs 지식을 쌓고자 스터디를 통해 컴퓨터 구조, 데이터베이스, 네트워크, 운영체제를 공부했습니다.
8월부터는 자바로 코딩 테스트를 준비하기 위해 스터디를 추가로 모집했습니다.
여름 방학 내내 스터디 및 공부로만 지냈었습니다.
코로나 시국이기도 했지만 하루에 4 ~ 5시간만 자고 나머지 시간은 공부만 했던 것 같습니다.
생활비를 과외 2개로 벌고 있었고, cs 스터디는 책 하나당 500 ~ 600 페이지 가량인데 한 권을 2주마다 떼려고 매일 밤을 새다시피 했습니다.
cs 스터디는 월, 수, 금 진행하고 코테 스터디는 일요일에 진행했습니다.
코로나였지만 좀 더 열심히 공부하기 위해 오프라인으로 모여서 스터디를 진행했었습니다.
저 혼자 비전공자이고 나머지 분들은 거의 다 컴퓨터 공학 전공이셨는데 8월 말쯤에는 제가 더 높은 실력을 갖출 수 있었습니다.
책에 적혀있던 내용으로 만족하지 않고 관련 내용을 구글링 및 유튜브 강의로 깊게 찾아보려고 노력했었던게 크게 작용했던 것 같습니다.
2021년 2학기
졸업 학기였지만 18학점을 들어야 했고, 무자비한 인공지능 전공 과목들을 상대하느라 취준에 크게 힘을 쏟을 수 없었습니다.
그렇지만 꾸준히 스프링 스터디와 코테 스터디를 진행하였으며, 그 결과 11월에 진행되었던 고려대학교 프로그래밍 경시대회 kcpc
에서 최우수상을 수상할 수 있었습니다.
하반기에 많은 채용에서 탈락을 거듭하며 부족한 실력을 깨닫기 시작했지만, 탈락의 고배를 마시며 우울해져 있기보다는 어떻게해야 내가 더 성장해서 합격할 수 있을까 하는 마음가짐을 가지고 꾸준히 공부했었습니다.
제가 분석했던 저의 부족함은 아래와 같았습니다.
- 부족한 코딩 테스트 실력 (실버 1 ~ 골드 5 수준)
- 부족한 프로젝트 (백엔드 관련 프로젝트 전무, 학교에서는 AI 프로젝트만 했기 때문...)
- 꾸준함을 보여줄 증거의 부재
- 부족한 cs 관련 지식과 대규모 서비스 및 프로젝트 구조 설계에 대한 이해도
- 부족한 면접 실력
- 부족한 자바 및 스프링 프레임워크에 대한 이해도
위의 부족한 점들을 학기 도중에 채우기는 힘들 것이라 판단했으며, 겨울 방학을 기다려왔습니다.
2022년 1월 ~ 4월
부족한 코딩 테스트 실력 극복기
2021년 8월부터 진행해왔던 코테 스터디를 꾸준히 진행했습니다.
- dfs, 백트래킹, bfs, 최단 경로
- 구현 / 시뮬 (dfs bfs 안겹치는 걸로)
- 그리디
- 이분탐색, 투포인터, 슬라이딩
- 누적합
- 정렬
- dp (실버)
- 최소 공통 조상 / 트라이 / 트리 순회
위의 알고리즘 분류에 대해 매주 7문제씩 백준, leetcode, 프로그래머스 등에서 다양하게 선정해서 풀었습니다.
또한, 1월부터는 싸피 7기에서 활동하면서 dfs, bfs, 순열, 조합, 부분집합 등의 구현 및 시뮬레이션 문제를 굉장히 심도있게 풀면서 골드 1~3까지 실력이 상승했습니다.
싸피에서도 스터디를 만들어서 위의 스터디와는 별개로 매주 7문제씩 백준에서 골드 1 ~ 4 정도의 문제를 풀었습니다.
그 결과 3, 4월 쯤 기업 코딩테스트에서 50% 이상 합격했던 것 같습니다.
부족한 프로젝트 극복기
2022년 1월부터 고려대학교 경영대학 스타트업 지원 사업에서 지원을 받는 스타트업인 그리너리
에서 백엔드 개발자로 활동했습니다.
사실 말이 스타트업이지 대학생들끼리 모여 질서와 체계도 없었기 때문에 지금 생각해보면 실력이 크게 향상되진 않았습니다.
그러나 이력서에 한 줄 쓸 수 있다는 점... 그것만으로도 충분하다고 생각합니다.
자바, 스프링 기반의 개인 프로젝트인 블로그 프로젝트까지 포함해서 2개만 이력서에 첨부했습니다.
일부 면접관님들은 백엔드 신입 개발자의 지원서에 AI, 블록체인 등의 단어가 보이면 지원서를 찢는다는 표현을 하실 만큼 거부감을 보이시는 것으로 판단되어 학교에서 진행했던 인공지능 관련 프로젝트들은 일체 작성하지 않았습니다.
또한 제가 제안한 Google HashCode
에 싸피 코테 스터디 인원들과 함께 출전했는데 스터디원들의 캐리를 받아 꽤 좋은 성적을 거둘 수 있었습니다.
꾸준함을 보여줄 증거 수집
우선 코딩 테스트 문제를 풀 때마다 깃에 커밋했습니다.
별 영양가 없는 커밋일지라도 잔디는 웬만하면 심겨있는 것이 낫다고 판단했습니다.
사실 이전에 진행했던 프로젝트 등을 꾸준히 리팩토링하는 작업을 면접관들이 굉장히 좋아한다고 알고 있었으나 1 ~ 4월동안 너무 바빠서 하지 못했습니다.
또한 블로그를 새로 만들었습니다. 이전 블로그에서는 코테 문제 풀이를 올리는 낙서장이었다면 이번 블로그는 개발자로서 깊게 공부하려고 애쓰는 모습이라던지, 다양한 개발 도서를 읽고 있다는 증거를 남기려고 애썼습니다.
마지막으로는 10개에 달하는 스터디를 진행하면서 그 과정을 노션에 정리했으며 이력서에 일부 첨부했습니다.
부족한 cs 지식과 대규모 서비스 및 프로젝트 구조 설계에 대한 이해도 극복기
이펙티브 자바
, 코딩 인터뷰 완전 분석
, 개발자를 위한 인덱스 생성과 SQL 작성 노하우
, 실무에서 통하는 자바
, 대규모 서비스를 지탱하는 기술
, 토비의 스프링
, 자바 ORM 표준 JPA 프로그래밍
등의 개발 도서를 꾸준히 읽으려고 노력했습니다.
물론 위의 책을 전부 다 정독한 것은 아니고 몇몇의 책은 일부분만 찾아보는 식으로 활용했습니다.
또한 IT 서비스 기업들의 블로그 포스팅 및 웨비나 영상을 많이 참고했습니다.
인턴 경험이 없는 제가 면접에서 대규모 서비스나 실무에서 발생하는 문제에 대한 해결책을 말해보라고 했을 때 답변하려면 그런 것들을 조금이라도 들어둬야 한다는 생각을 가졌습니다.
부족한 면접 실력 극복기
저는 말은 조리있게 잘하는 편이라 괜찮았지만 질문 자체가 어려운 경우는 어쩔 수가 없었습니다.
여러 면접을 거치면서 내공을 쌓는 수밖에 없는 것 같고 매 면접마다 질문 복기는 필수입니다.
실제로 월요일에 봤던 기업의 면접에서 복기한 질문 2 ~ 3 개가 수요일 면접에서 나와서 쉽게 합격할 수 있었습니다.
저는 면접에서 받았던 질문에 대해서 최소 A4 한장 이상의 답변을 준비했습니다.
그만큼 깊고 자세하게 준비를 했고, 실제로 면접관분들의 칭찬을 받기도 했습니다.
마지막으로 봤던 면접 전에는 예상 질문과 답변으로 가득한 A4 용지 100장 가량을 전부 외웠습니다.
면접 스터디를 진행하는 것도 좋을 것 같지만 잘못된 방식으로 준비하게 되는 경우 시간 낭비가 너무 많을 것 같아 혼자 준비했던 것 같습니다.
그리고 온라인 면접이면 그냥 집에서 입고 있는 편한 옷차림으로 면접 보시길 바랍니다. (IT 서비스 회사 한정)
그래야 면접관도 편하고 면접자도 편하고 면접 분위기도 편해지는 것 같습니다.
부족한 자바 및 스프링 프레임워크에 대한 이해도 극복기
이 블로그에 다수 포스팅했지만 특히 이펙티브 자바
를 제대로 공부하면서 자바에 대한 이해도를 크게 얻을 수 있었습니다.
자바 개발자로서 반드시 봐야할 필독서라고 생각하고, 면접관 대부분이 해당 도서를 읽은 상태이므로 면접 질문의 상당수가 해당 도서에서 나올 수 있다고 생각합니다.
내용은 많이 어려운데 모르는 내용을 그냥 넘어가지 않고 어떻게든 이해하려고 애쓰는 과정에서 실력이 크게 향상될 수 있었습니다.
해당 책을 스터디를 통해 진행하기 전에는 모든 것을 구글에 한글로 입력했다면, 이후에는 stackoverflow나 oracle의 공식 문서들을 다양하게 찾아보는 검색 실력을 갖출 수 있었고, 이로써도 해결 못하는 문제는 디버깅을 사용하거나 직접 코드를 살펴보며 궁금증을 해결함으로써 자바 API 내부 구조에 대해서도 이해할 수 있었습니다.
또한 이러한 점을 면접 도중 언급하여 면접관들이 자연스레 저의 블로그를 살펴볼 수 있도록 유도했습니다.
실제로 면접 끝나고 나면 인기 없는 기술적 내용을 담은 게시물들의 조회수가 증가해 있었습니다.
스프링 프레임워크는 워낙 방대해서 토비의 스프링 3.1
1권을 살펴보긴 했으나 깊은 내용은 구글링을 통해서 부분적으로 살펴봤습니다.
1 ~ 4월 동안 한 것들
- 코테 스터디 2개
- 이펙티브 자바 스터디 1개
- 면접 대비
- 개발 도서 읽기
- 싸피 (평일 오전 9시 ~ 오후 6시)
- 블로그 포스팅
+ 과외..
꿀팁
백엔드 개발자의 취업에 꿀팁은 없다고 생각합니다.
자바, 스프링을 배우기 시작한지 얼마 안되서 취업이 된 것은 사실이나, 정말 죽어라 공부했기에 가능했습니다.
실제로 취준 기간동안 친구들을 한번도 본적이 없습니다. (취업하고 나서도 충분히 볼 수 있습니다..)
비전공이라서, 배운지 얼마 안되서 못할 것이라는 면접관들의 편견을 깨야 붙을 수 있을 것이라 생각했습니다.
그렇기에 물어보지도 않을 깊은 내용까지도 공부하려고 했습니다.
결국 지나서 생각해보니 도움이 되었던 것 같습니다.
누가 봐도 저는 열심히 깊게 공부했던 것이고, 면접관들께서 대견스러워 한다는 것이 느껴졌습니다.
신입 개발자는 90%가 다 실력이 거기서 거기라 생각한다는 면접관의 인터뷰를 본 적 있습니다.
그렇기에 면접관들은 성장 곡선이 가파르고, 열정적이며, 커뮤니케이션 능력이 뛰어나며, 개발이라는 직업이 적성에 맞는 사람을 찾는다고 생각합니다.
1차 기술 면접에서 저는 제가 비록 비전공자이지만 전공자에 뒤쳐지지 않는 실력을 갖추기 위해 누구보다 열심히 노력해왔고 그렇기에 지금은 제 자신의 실력에 대해 자부할 수 있다.
라는 말과 함께 그것을 증명하기 위해 내가 해왔던 노력들을 열거했고, 면접관이 물어보는 질문들에 대해서 깊게 생각해본 적이 있음을 보여주려고 노력했습니다.
2차 인성 면접에서 저는 기업의 입장에서는 사실 신입을 뽑는 것이 참 조심스러운 일이라고 생각한다. 특히 저처럼 비전공자인데다 개발에 대해 제대로 공부한지 1년도 안된 사람을 뽑는 것은 더욱 그럴 것이라 생각한다. 다만, 저는 누구보다 열정적으로 공부해왔다고 자부하며 그렇기에 높은 성장 곡선을 그리며 실력을 쌓아왔고, 그 결과 이 기업의 어려운 1차 기술 면접에서도 합격할 수 있었다고 생각한다. 이 기업에 다니게 되어서도 꾸준히 노력하고 가파르게 성장하여 팀원들과 함께 성과를 이뤄낼 수 있도록 하겠다.
라는 식으로 포부를 밝혔습니다.
마음 가짐
저는 스스로를 더 공부하게 만들기 위해 10개 이상의 스터디를 직접 만들었으며, 누구보다 더 공부해가서 스터디원들이 모르는 것들을 알려주고자 노력했습니다.
스터디원분들 모두 어려운 내용을 빠르게 진행하는 스터디에 힘들었을테지만, 제가 더 열심히 하는 모습을 보고 같이 으쌰으쌰 해줬던 것 같습니다.
초창기 스터디는 컴퓨터 전공 학생, 중반에는 취준생, 후반에는 현업자들과 함께 진행했습니다.
대부분의 스터디에서 처음에는 제일 실력없던 제가 끝날때 쯤엔 가장 가파르게 성장했던 것 같고, 매번 깊게 공부하시는 것 같다.
, 되게 열심히 하신다.
, 진짜 신입으로 가시면 잘하실 것 같다.
라는 말을 들을 정도로 매번 많이 준비해갔던 것 같습니다.
함께 공부해나가는 사람들과 모든 것을 공유하고 같이 성장해나가지만, 그들보다 내가 좀 더 열심히 해서 앞서 나간다면 나는 무조건 취업될 것이다 라는 마음가짐으로 공부했기에 가능했다고 생각합니다.
마지막 한마디
어쩌면 취업 준비 중이신 여러분들이 저보다 더 뛰어난 실력을 갖추고 계실지도 모르겠습니다.
그런 것을 보면 취업은 운이라고 생각할 수도 있을 것 같습니다.
하지만 개인적으로 제가 느낀 취업.. 특히 IT 서비스 회사에서의 백엔드 개발자로서의 취업은 그렇지 않다고 생각합니다.
저는 제가 누구에게도 뒤쳐지지 않는 실력을 갖추고자 절실히 노력했고, 그것은 절대 운이 아니라고 생각합니다.
여러분들도 올바른 방향성 아래 절실하게 공부하신다면 빠른 시일내 좋은 결과를 거두실거라 믿어 의심치 않습니다!
'회고록' 카테고리의 다른 글
입사, 23개월, 퇴사 그리고 이직 (3) | 2024.03.05 |
---|---|
2022년 4월 회고록 (0) | 2022.05.05 |