기록/회고

프로그래머스 백엔드 데브코스 3기 회고 (2022.10.14 ~ 2023.03.15)

모달조아 2023. 4. 7. 06:24

개요

5개월 간의 데브코스가 끝났다.

데브코스를 시작하기 전의 내 모습과 현재의 내 모습을 비교하면서 회고를 해보려고 한다.

 

시작 전 목표

시작 전의 나는 벽에 막혀 있는 듯한 느낌이 강했다. 무얼 공부해야하는지 어떻게 공부해야할지 잘 몰라서 코딩 테스트 문제를 풀거나, 이론 공부를 하거나, 인프런 강의를 듣거나 하였다. 무언가를 매일 꾸준히 공부했지만 실력이 늘어가는 느낌이 없었다. 그때 당시에는 나름 열심히 한다고 한 것이겠지만, 지금 생각해보면 정작 개발자가 되기 위한 개발은 많이 안하고 있었다. 또, 개인 프로젝트를 하며 개발을 할 때도 내가 짠 코드가 괜찮은 코드인지 알 수 없으니 많이 답답하였다.

그렇다보니 정작 개발자를 목표로 함에도 무언가를 개발해보라고 하면 어떻게 해야할 지 감이 잘 오지 않았고, 자신감도 많이 떨어져 있었다.

즉, 나에게 무엇이 부족한지 그리고 그것을 어떻게 효율적으로 채울지를 잘 모르고 방향성이 없는 상태였다.

그래서 데브코스 시작 전의 나는 굉장히 절실했었고, 데브코스에서의 목표를 아래와 같이 잡았었다. 

  • 어떻게 성장해나가야할지 깨닫기 
  • 멘토링 최대한 이용하기
    • 그 당시에는 벽에 막혀 있는 듯한 느낌이 컸고, 궁금한 것들을 해결하기가 쉽지 않았다.
  • 좋은 개발 동료들을 얻기
    • 혼자 공부를 지속해오다 보니 우물 안에 갇혀 있는 느낌이 컸다. 같은 방향을 목표로 삼는 사람들을 열망했었다.
  • 자신감을 얻기
    • 나는 당시에 꾸준하게 학습을 했지만, 개발로 어떤 서비스를 만들어보라거나 하면 어떻게 해야할 지 감이 잘 오지 않아서 내 실력에 자신감이 전혀 없었다.
  • 몰입하기
    • 5개월은 짧다면 짧고 길다면 긴 시간이다. 극적으로 바뀌지는 못하겠지만, 벽에 막혀 있는 내 스스로에게 무언가 변화를 주기에는 충분한 시간이라고 생각했다. 5개월이 지나고 봤을 때 후회 하지 않도록 정말 몰입해보자라는 목표를 세웠었다.

 

지식적으로 성장한 부분

  • Java
    • 데브코스 이전에도 코딩 테스트 문제를 자바로 푸는 등 자바를 전혀 사용해보지 않은 것은 아니었다. 다만, 자바 8 이전의 문법으로 사용하여서 사실상 자바를 사용하지 않는 것과 동일했다. 나는 이 당시 자바의 버전 별 차이도 몰랐었다. 람다, 스트림, 옵셔널과 같은 문법을 전혀 알지 못했다.
    • 자바 문법의 발전 과정을 필요성과 함께 공부하니 쉽게 이해가 가고 기억에도 남았다.
  • OOP
    • 데브코스 이전에 객체지향을 전혀 몰랐던 것은 아니다. 객체지향의 특징, SOLID 원칙들을 이론적으로는 알고 있었다. 다만, 그것을 말 그대로 외우고만 있었지 전혀 적용하지는 못하고 있었다. 객체지향적인 코드가 무엇인지에 대해 기준이 전혀 없는 상태였다.
    • 과제들(계산기, 바우처, 게시판 등)과 프로젝트, 코드리뷰를 통해 정말 많이 늘었다. 특히, 계산기 과제를 할 때 정말 많이 고생했는데 돌이켜보면 그 과정에서 많이 배운 것 같다.
  • JPA
    • 데브코스 이전에도 JPA 에 대해서 영속성 컨텍스트를 기반으로한 동작 원리와 사용법 정도는 알고 있었다.
    • 데브코스 과정 중 스터디를 진행하며 기초를 더 튼튼하게 할 수 있게 되었다.
  • 테스트와 문서화
    • 데브코스 이전에는 간단한 단위 테스트를 작성하는 방법 정도만 알고 있었다.
    • 모킹의 필요성과 Mockito 를 통해 모킹하는 법, MockMVC 를 활용하여 api 테스트 하는 것, 테스트 환경을 분리하는 법 등 테스트를 위한 여러가지 방식들을 배웠다. 여러가지 지식들을 많이 배웠지만 이보다 더 중요한 것은 테스트의 필요성과 중요성을 느낀 것이다.
    • Spring REST DOCS 를 통한 문서화 방식을 배웠다. 사실, 이전에는 부끄럽지만 문서화의 존재 자체를 몰랐다.
  • 인프라
    • 데브코스 이전에는 정말 전혀 아무것도 알지 못하는 미지의 영역이었다. 사실 데브코스를 지원한 이유 중 하나가 커리큘럼에 인프라 내용이 있었기 때문이다.
    • Docker 를 통해서 환경을 구축하는 것, Github Actions 와 AWS 를 이용하여 CI/CD 환경을 구축할 수 있게 되었다. 많은 시행착오가 있었지만 그 과정을 통해 이제는 새로운 프로젝트에서도 환경을 세팅할 수 있게 되었다. 중간에 CI/CD 가 잘 되지 않아 수동으로 배포를 해야하는 기간이 있었는데, 이 때 정말 왜 자동화를 하는지 필요성을 절실히 느꼈다.
    • 환경을 나눈다는 것 자체에 대한 개념이 데브코스 이전에는 없었다. 그 필요성을 알게되었다. 사실 개발하다보면 자연스럽게 필요해서 하게되는 것이긴 하다.
  • 협업 관련
    • 데브코스 이전에는 개발 관련으로 타인과의 교류 경험이 전혀 없었다. 데브코스를 하며 가장 얻고 싶었던 것중 하나이다.
    • 협업 자체도 프론트와의 협업도 처음이었다. 협업 시의 프로세스를 경험하였다. 팀원들과 함께 작업하면서 git 에 대한 숙련도도 많이 늘었다. 첫번째 프로젝트에서는 PO, 두번째 프로젝트에서는 백엔드 리더를 맡으면서 프로젝트 진행도를 관리하고, 어떻게 하면 팀의 효율성을 높일수 있을까를 많이 고민했던 것이 나중에 나에게 큰 자산이 될 것 같다.
    • 별건 아니지만 슬랙, 노션을 처음으로 사용해보게 되었다. 왜 많이 사용되는지 느꼈다. 특히, 문서화를 할 때 노션은 정말정말 편하다. 편리한 점이 참 많지만 그 중에서도 마크다운 지원이 너무 잘되어있어서 좋았다.

 

정신적으로 성장한 부분

  • 자신감
    • 데브코스 이전에는 어떤 서비스를 만들어보라고 하면 어떻게 시작해야할지 감이 오지 않았다. 그러다보니 좀 심각하게 말하자면 내가 개발자가 맞나하는 생각과 함께 자신감이 떨어졌었다.
    • 자신감에 있어서 실제 운영되는 서비스를 만들어 보면서 개발 사이클을 한 번 겪어본 것이 정말 중요했던 것 같다. 어떻게 하나의 서비스가 만들어져가는지 아니까 적어도 어떻게 시작해야할지 막막하지는 않다.
    • 자신감이란 것이 내가 막 엄청 뛰어나다 생각하고 그런 것은 아니다. 오히려 부족한 부분이 너무 많이 느껴진다. 하지만, 이것이 오히려 긍정적인 시그널이라고 생각한다. 데브코스 이전에 정말 아무것도 모를 때는 내가 무엇이 부족한 지조차 몰랐다. 이제는 내가 무엇이 부족한 지 알고 데브코스 과정을 통해 어떻게 해야 효과적으로 성장하는지 나만의 학습법도 체득하였다. 그러니까 주눅들어 있을 이유가 전혀 없다는 그런 의미이다.
    • 데브코스에서 새로운 것들을 학습하면서 느낀 것인데 처음에는 아무리 어려웠던 것이어도 결국 끝까지 하면 된다. 처음에 그렇게 어려웠던 것이 나중에는 왜 그렇게 어렵게 느꼈을까라는 생각이 들 정도로 간단한 문제가 된다. 이러한 경험 덕분에 이제는 지금은 모르고 못하더라도 공부하면 할 수 있을 것 같은 자신감이 생겼다.


얻은 것

  • 발표 경험
    • 나는 어릴 때부터 대중 앞에서 말을 잘하는 사람들이 참 멋있다고 느꼈다. pre 팀이 끝나갈 무렵, 매니저님과 대화를 할 일이 있었다. 매니저님이 정말 말을 잘하시는데 따로 연습을 하시냐 물었더니 발표를 많이 해보라는 추천을 받았다.
    •  본 팀의 멘토님이 발표 스터디를 운영하고 계셔서 참여하였다. 발표를 준비하는 과정은 정말 힘들었지만, 그 과정에서 얻는 것이 많았다. 남들에게 발표를 하기 위해서는 보다 깊게 공부를 해야하고 그러다 보니 온전히 내것으로 만들 수 있었다. 또, 많은 사람 앞에서 발표하는 경험을 반복하다 보니 수료식 때 최종 프로젝트에 관해 발표를 할 때는 긴장감 없이 온전히 그 시간을 즐길 수 있었다.
  • 성장하는 법
    • 내가 데브코스 이전에 벽에 막힌 듯한 느낌을 받았던 것은 성장하는 법을 잘 몰라서였다. 지금 와서 생각해보면 그렇다. 그 당시에는 코딩테스트 문제를 풀고, 인프런으로 스프링 강의를 듣는 식으로 주로 공부했었다. 개인 프로젝트도 하긴 했지만 깊게 해보진 않았다.
    • 사람마다 본인에게 맞는 학습법이 있다고 생각한다. 나는 프로젝트를 통해 일단 만들어보면서 부딪히며 배우는 스타일이 맞는 것 같다. 그렇게 하는 것이 기억에도 잘 남고, 왜 이런 것이 필요한지도 직접 느낄 수 있기 때문이다. 그리고 그 과정에서 큰 그림이나 내부 원리가 필요한 경우는 책을 이용해서 학습을 한다. 이렇게 학습할 때에는 남들에게 설명할 수 있을 정도로 공부를 한다.
    • 당연한 저렇게 공부해야하는 것 아니야? 라는 생각이 들 수 있겠지만, 머리로 아는 것과 체화된 것은 다르다고 생각한다. 스스로 성장하는 방법을 체화하기까지 많은 시행착오가 있었지만, 이제는 깨달았다.
  • 좋은 사람들
    • 데브코스 기간동안 정말 중요하게 여겼던 것 중 하나이다. 소통하는 것을 피하지 말자. 많은 사람들과 다양한 의견을 나누고, 토론해보자. 그 과정에서 내가 생각하지 못했던 것을 알게 되기도 하고 더 나은 방향을 찾기도 한다.
    • 항상 새벽까지 남아서 공부하다보니 새벽에 이야기를 하는 시간도 종종 있었다. 그 과정에서 좋은 동료들을 많이 얻었다. 성장 욕심이 있고, 같은 목표를 바라보는 동료가 있다는 것이 얼마나 든든한 일인지 모른다. 나 또한, 남들에게 좋은 동료가 되기 위해 적극적으로 스터디 제안같은 여러 활동을 제안해왔다. 그러다 보니 많은 것을 얻은 것 같다.

 

마무리

데브코스 이전에 솔직히 이렇게 공부하다보면 취업 어떻게든 되겠지라는 생각을 했었는데, 지금 생각해보면 정말 아찔하고 무모한 생각이다. 데브코스 기간이 나에게 큰 전환점이 되었다. 데브코스 이전의 나는 '따라하는 개발자' 였다면 이제서야 개발자로서 무엇인가를 시작한 것 같다.

그래서 데브코스가 끝난 이 시점 후회가 남느냐 물어본다면, 정말 후회가 남지 않는다. 내가 시작 전에 목표로 했던 것을 나름 다 얻었다.

이제 진짜 본격적인 시작이다!