취업 5개월차 백엔드 개발자 후기

dion·2021년 5월 7일
7
post-thumbnail

이 글은 그냥 남들도 취업 후기 쓰길래, 회고를 겸해서 써보는 글입니다.
최근에 너무 바쁜 생활을 해서 회고를 제대로 할 여유가 없어서 열심히 써보려 합니다.

취업 이전의 배경

개발자 1차 입문

저는 남들과는 좀 다르게, 개발자로 입문했습니다.
혈연을 통해서 Java의 J도 모르고 솔루션 개발회사에 입사해서, Java를 공부하고, Spring을 공부했습니다.
그리고, 회사에서 개발하는 솔루션 개발에 참여했습니다. (그냥 단순하게 CRUD 하고 화면 작업하는 정도의 개발만 했습니다.)

1년 4개월을 잠을 줄여가며, 왕복 4시간이 걸리는 거리를 출퇴근 하면서 제게 든 생각은

'아, 내가 이렇게 살아서는 절대 좋은 개발자가 될 수 없겠구나.'

였습니다.

당시에도 나름 꾸준하게 스터디에 참여하고, 사비를 들여 아샬님의 강의를 듣고, 10시에 퇴근하고 새벽 1시까지 공부하고 잠들고, 6시에 일어나서 출근을 했습니다.
이동욱님 블로그도 보고, 좋은 개발 고전, 소프트 스킬, 커리어 스킬등의 책을 읽으며 점점 제가 하는 일에 회의가 들었습니다.

저는 개발을 잘하고 싶었고, 좋은 개발자가 되고 싶었으며, 영향력 있는 개발자가 되고 싶었습니다.
고졸이라는 배경이 아무런 영향을 미치지 못하게끔 하고 싶었습니다.
영어가 익숙하지 않다고 해도 계속해서 읽으려고 노력하고, 검색능력을 좀 더 활용하고 싶었습니다.

그러다, 건강에 문제가 생겨 한동안 쉴 수 밖에 없었습니다.
점점 의미없는 반복작업만 하게되는 상황속에서 저는 선택을 해야했습니다.

그래서 퇴사 했습니다.

퇴사 이후

목표를 우아한 테크코스 혹은 코드스쿼드에 들어가서 최종적으로 취업을 하는 플랜을 세웠습니다.
퇴사 당시 내가 다시 입사한다면 '연봉 3천만원'을 받을 수 있는 개발자가 되는 것이 목표였습니다.

최종적으로 코드스쿼드 2020 백엔드의 멤버로 합류하게 되었고, Node.js 과정에서 Java 과정으로 변경되었습니다.
당시에 코드스쿼드의 이런 결정은 결과적으로 저에겐 매우 좋은 영향을 미쳤다고 생각됩니다.

코드스쿼드 과정 후기는 이미 작성했기 때문에 이 이후의 내용에 대해서 작성하겠습니다.

코드스쿼드 과정 이후

계속해서 취업준비를 하고, 당근마켓의 2차 면접 까지 본 상황에서 멘탈은 이미 흔들리고 있었습니다.

대부분의 회사에 이미 지원하고 탈락한 상태였고, 몸과 마음도 지쳐서 불면증까지 왔었습니다.
백엔드 개발자는 내 길이 아닌가? 라는 생각도 하고, 다른 과정을 수강하고자 하는 마음도 있었습니다.

이 때는 정말 자존감도 바닥이고, 많이 힘들었던 것 같습니다.
그래도 포기하겠다는 생각은 들지 않았고, 제가 부족한 부분이 있으니 계속해서 노력해야겠다는 생각만 들었습니다.

그 때의 저에게 조언해준다면, "꼭 모의면접을 해봐라." 정도가 있겠네요.
전 다행히도 코드스쿼드 선배와 동기분께서 모의면접을 한 번 해주셨고, 아직도 감사하고 있습니다.

그리고 또 하나의 조언을 한다면, "꼭 사이드 프로젝트를 제대로 만들어봐라."라고도 해주고 싶습니다.
이는 당근마켓에서도 받았던 피드백입니다.
사이드 프로젝트에 별로 큰 생각과 관심이 없었는데, 배움의 기회를 스스로 놓은 것 같아서 아직도 아쉽네요.

이후 코드스쿼드 코코아 과정의 TA로 참여했습니다.
과제를 진행하는데 있어 도움을 드리고, 코드리뷰를 수행하는 역할을 했었습니다.
이 때, 학습자가 학습할 때 어떻게 코치해야하는지에 대한 고민을 정말 많이 했던 것 같습니다. (아직도 어렵네요.)

TA를 하면서 계속해서 이력서를 제출하고, 면접을 보러 다녔습니다. 면접 공부를 병행하면서 했고, 우테코를 지원해서 우테코 오픈채팅방에서 자극을 받으며 공부를 계속 했던 것 같습니다.
우테코는 아마 코드스쿼드를 다닌 이유로 탈락했습니다.

최종 합격한 회사가 생겼고, 코로나로 입사 지연이 되었습니다. 그 사이에 한 회사에서 먼저 연락을 주셨고, 면접을 보았습니다.
면접 경험은 좋았고, 연봉 협상도 순탄하게 진행되었습니다.

저는 애초에 타겟으로 했던 회사가, '제가 좋은 개발자로 성장할 수 있는 여건을 제공해 줄 수 있는가'였기 때문에 주변의 만류에도 불구하고 선택하게 되었습니다.

취업 이후

취업 이후에도 사실 불면은 완전히 사라지지 않았습니다.
실력이 부족하다는 불안감은 계속해서 저를 좀먹고 있는 상태입니다.

작년 1월 1일 이후로 개발공부를 손에서 놓은 기억은 없고, 매일 성장하기 위해 노력을 하고 있습니다.

  • 지인의 소개로 참여하게된 백엔드 스터디를 성공적으로 끝마쳤고
  • 백기선님의 자바 스터디에 참여해서 성공적으로 끝마쳤고
  • NextStep의 Java TDD OOP과정을 수료했습니다.
  • 일상속 사물이 알려주는 API 디자인 책을 다 읽고, 좋은 웹 API에 대한 고민을 하게 되었습니다.
  • 관계형 데이터베이스 실전 입문을 읽고, RDBMS에 대해서 보다 깊은 이해를 가지게 되었습니다.

현재는 코드스쿼드 BE 리뷰어로 활동하고 있고, 보다 좋은 리뷰를 하기 위해서 계속해서 공부하고 있습니다.
어떻게 하면 리뷰이분들에게 좋은 경험을 전달해 줄 수 있을지 항상 고민하게 되네요.


회사에서는 기존 레거시 코드를 적폐로 판단하고, 레거시 코드를 리팩토링 하는 작업을 반복했습니다.
제가 입사 후 5개월 동안 수행했던 일입니다.

  • 입사 후 제대로 된 협업 방식조차 없었던 회사에 협업 방식을 정의하고, 온보딩 문서를 정리했습니다.
    • 짝 프로그래밍, 코드 리뷰, Github을 이용한 협업 Workflow 정의 등을 했습니다.
  • REST와는 거리가 먼 API 디자인을 REST에 가깝게 변경했습니다. 이 자체만으로도 굉장히 Breaking Change가 많이 발생했습니다.
  • 테스트 코드를 JUnit5 + AssertJ로 Migration 하고, Jacoco를 도입했습니다.
  • Flyway를 도입해서 DB Version Management를 수행했습니다.
  • Java7 수준으로 작성된 코드를 Java8 스타일에 맞게 변경하고, Java11을 도입했습니다.
  • 제대로 된 CI/CD를 위해 자동화된 단위 테스트를 작성하는 것을 추진했습니다.
  • Spring Boot 2.1.4 에서 2.4.5로 Migration했습니다. Security를 학습 후 적용했습니다.
  • MyBatis에서 JPA로 전환했습니다.
  • 클라우드 비용 절감에 대한 제안을 했고, 5월 현재 이전의 50%정도가 과금되었습니다.
    • 제 포지션은 백엔드 개발자이기 때문에 위의 업무는 팀장님께서 수행하셨습니다.

어떻게 보면 한 일이 많지만, 그만큼 코드 변경이 쉬운 상황이었고, 이전 코드가 고쳐야 할 만큼 문제가 많기도 했습니다.
현재 제가 작성하던 코드도 뒤돌아보면 레거시 같아보이고, 리팩토링을 지속적으로 수행하고 있습니다.

또한, 회사에서 제가 수행하려는 방향을 적극적으로 지지해주시고, 응원해주신 덕에 작업을 잘 수행할 수 있었던 것 같습니다.

아쉬운 점

최근에 조금 번아웃이 올랑말랑한 상태가 반복되고 있습니다. 수면시간도 규칙적이지 않게 되고, 운동도 열심히 하고 있지 않습니다.

회고를 쓰면서 반성하게 되네요.

결론

개발자로 취업하는건 쉽지 않습니다. 자존감이 떨어지는 시기가 분명히 올텐데, 멘탈관리를 잘 하셨으면 좋겠습니다.

그리고, 내가 취업하고자 하는 목표를 정하고, 거기에 맞게 준비하세요.

가령 IT 대기업이라면, 공채와 수시의 준비는 달리해야한다는 것은 익히 알려진 사실입니다.
유니콘도 마찬가지입니다. 이쪽은 어찌보면 대기업보다 더 들어가기 힘들 수도 있겠네요.
스타트업은 천차만별입니다. 시드부터 참여할 것인지(개인적으로 신입에게 이 길은 추천하진 않습니다.),
시리즈 A, B의 탄탄한 스타트업에 합류할 것인지에 따라 다 다릅니다.

하지만 결국 기본적으로 필요한 것은, 프로젝트 경험, 내가 사용한 기술에 대한 지식입니다.
코딩테스트는 코딩테스트를 수행하는 기업을 통과하기 위해 필요합니다.
코딩테스트가 저처럼 그렇게 좋지 않다면, 갈 수 있는 회사를 포기해야 한다는 생각도 해야합니다.
CS는 어느정도 까지 학습해야한다는 것은 대단히 애매합니다. 일반적으로 IT 대기업을 목표로한다면 빠삭하게 알아야 합니다.

스타트업이나 유니콘은 개발팀의 성향에 따라 다르기 때문에 일반화하기 곤란한 부분이 있습니다.

결국 공통적으로 잘 물어보는 언어와 프레임워크, 네트워크, 데이터베이스 정도의 CS 지식은 기본적으로 챙기는 것이 좋고
거기에 더해 자료구조와 운영체제에 대해서도 일부 알아야 합니다.
솔직히 말해서 알고리즘은 이것까지 준비할 여력이 있다면 준비하시길 추천합니다. 일반적인 비전공자가 여기까지 준비하려면 그래도 꽤 시간이 걸릴겁니다.

저도 했는데, 여러분들도 당연히 할 수 있다고 생각합니다.
다만, 그 과정이 누구나 쉽지 않다는 점을 염두에 두시고, 준비하셨으면 좋겠습니다.

profile
코드리뷰와 고양이를 좋아하는 개발자입니다. 좋은 글을 위한 비판은 언제든 환영합니다.

관심 있을 만한 포스트

6개의 댓글

comment-user-thumbnail
2021년 6월 8일

공유해주셔서 감사합니다.

1개의 답글
comment-user-thumbnail
2021년 6월 8일

저도 두달 전 코드스테이츠에서 중도포기 하고 슬럼프 왔었는데 마음 굳게 먹고 공부 해야겠다는 생각이 드네요.
좋은 글 감사합니다 ^^

1개의 답글
comment-user-thumbnail
2021년 6월 13일

디온 진짜 열심히하시네요..

1개의 답글