가감없는 항해99 부트캠프 후기

Jay Mild Lee·2023년 4월 24일
0

I. 개요

팀스파르타의 항해99 부트캠프를 수료하고, 회사를 다니기 시작한지 약 한 달이 지났다. 최근 다양한 직종의 부트캠프가 생겨나고 있고, 개발자 직군에서 역시 크게 다르지 않다. 분명 과거의 나와 같은 고민을 하고 있는 분들이 계실 것이고, 언젠가 솔직하게 해당 부트캠프에 대한 후기를 작성해보고자 했었는데 그게 이번 글이 될 것 같다. 혹시 나와 다른 상황에서 고민하고 계시는 분이 계실 수도 있을 것 같아 미리 밝히자면 나는 항해99 부트캠프에서 웹개발 관련 교육을 들었고, Spring을 중점적으로 공부했다.

1. 배경

대학 생활 중 소프트웨어 분야에 관심이 생겨 컴퓨터 공학을 복수전공 했었고, 졸업 후 바로 군 생활을 시작했다. 군에서는 네트워크 관련 직무를 1년간 맡았었고, 나머지 1년은 중대장 임무를 수행했다. 군 전역 후 진로에 대한 많은 고민을 했었다. 실제 학교에서 관심있게 들었던 CS 수업은 Graphics나 Embedded였는데, 막상 진로를 정하려하니 선뜻 무언가를 잡고 하기가 꺼려졌다. 당시 스스로 가장 자신있었던 건 1년간 네트워크 관련 직무를 수행하면서 얻은 전산 관련 지식이었는데, 전산실에서 보냈던 그 1년을 평생 보내기는 싫었다.

그렇게 어영부영 7,8월이 가고 위기감이 들었다. 진로를 고민하며 코딩했던 감이라도 살릴겸 Node.js 무료 강의를 한달 간 들었다. 생각보다 백엔드 개발이 재밌다 느껴졌고, 공부하다보니 점점 유튜브 알고리즘이 개발 관련된 내용들만 추천해주기 시작했다. 이 때를 놓치지 않고 구글의 엄청난(?) 광고 시스템은 항해99 부트캠프관련 광고만 하루종일 내보내기 시작했다.

지독한 마케팅에 궁금해서 관련 정보를 찾기 시작했다. 1) 아침 9시부터 저녁 9시까지, 월요일부터 토요일까지 이어지는 빡빡한 스케줄, 2) 다른 부트캠프보다 상대적으로 짧은 커리큘럼 기간, 3) 실전 프로젝트 경험. 이 세 가지가 가장 크게 다가왔다. 타 부트캠프의 커리큘럼이나 내용 등도 확인을 해보았는데, 종합적으로 비교했을 때 상대적으로 기간이 길었고, 커리큘럼 또한 실질적인 개발보다는 이론 교육에 무게를 두고 있는 경우가 더 많았다. 당시 난 Git Convention 등을 이용하는 제대로 된 협업 경험이 필요했고, 군 생활 동안 모은 돈을 탕진하기 전에 취업을 하고 싶었다. 이러한 목적들과 항해99의 컨셉이 잘 어울린다고 생각했고, 항해99에 합류하게 되었다.

II. 항해99 커리큘럼의 강점

1. 단계적인 구성

항해99 커리큘럼의 강점은 단계적인 구성에 있다고 생각한다. 지금은 좀 수정되었을지도 모르지만, 내가 수강할 당시 커리큘럼의 흐름은 다음과 같았다.

  1. 웹개발 입문: Flask(Python Framework) + HTML + CSS + JS
  2. 알고리즘 및 언어 숙달: JS 혹은 Java
  3. Toy Project: Flask + HTML + CSS + JS
  4. 주특기 주차: React, Spring 혹은 Node.js
  5. 클론코딩
  6. 최종 프로젝트: 서비스 혹은 챌린지

아무래도 부트캠프이다보니 프로그래밍에 익숙하지 않은 분들도 많이 참여하신다. 이러한 점을 고려한듯 첫 주차는 상대적으로 다루기 쉬운 Python의 Flask를 통해 개발하면서 기본적인 협업 과정에 익숙해질 수 있도록 구성되어있다. 이후 알고리즘 주차를 통해 언어에 적응할 수 있도록 하고, Toy Project에서 협업 과정을 다시 한번 상기시켜준다. 주특기 주차에는 Framework별로 나뉘어 학습을 진행하고, 클론코딩 주차에는 최종 프로젝트 전 아이디어를 얻으면서 잠시 쉬어간다. 그리고 마지막으로 대망의 최종 프로젝트가 시작된다.

지나고 나니 경험이 미화되는 것일 수도 있지만, 이러한 커리큘럼 이상으로 웹개발에 대한 지식을 짧은 시간 안에 얻을 수 있는 방법은 없다고 생각한다. 빠르게 일정이 진행되다보니 힘들어하시는 분들도 더러 계셨지만, 뭔가 항해99의 커리큘럼은 “일단 박죠”와 같은 느낌이다. 커리큘럼을 따라가면서 최대한 박으면 어떻게든 되는 것 같다. 내가 누군가를 평가할 실력도, 위치도 아니지만 확실히 끝까지 남아서 따라온 분들은 정말 괄목할만한 성장을 하시는 듯 하다.

2. 멘토링

멘토링 역시 항해99의 강점 중에 하나라고 생각한다. 주차에 따라 다르지만 보통 주니어급 멘토님이 주 3회 혹은 시니어급 멘토님이 주 1회정도 오신다. 멘토에 적합하지 않은 분이 섭외되는 경우도 더러 있었다고 들었는데, 보통 수강생 피드백이 순식간에 반영되거나, 새로운 분이 배정되는 듯 하다. 나같은 경우 주니어 세 분, 시니어 한 분을 멘토로 만났었는데 다들 정말 좋은 분들이셨다.

주니어분들께서는 대체적으로 열정이 넘치시는 분들이 많았다. 간단한 질문을 여쭤봐도 본인이 직접 정리한 노션 링크를 아낌없이 나누어주시던 분도 있었고, 1대1 코드리뷰를 통해 내 머리에 Spring 척화비를 세우게 하신 분도 계셨다. 시니어급 멘토님은 실전 프로젝트 언저리에 오셨는데, 직접적인 코드보다는 서비스 아키텍처에 대한 리뷰나 전체적인 방향성을 제시해주셨었다. 멘토링에서 가장 마음에 들었던 건, 멘토님들이 직접적으로 문제 상황에 공감하고 함께 연구해주신다는 점이었다. 지금도 생각나는 멘토님들의 멘트가 두 가지 있다.

Exception Handling 할 때 StackTrace든 뭐든 어디서 발생한 Exception인지 확인할 수 있게 구현해주세요. 요즘 회사에서 레거시 코드 리팩토링하는데, 그게 안되어있어서 너무 *같아요…

저는 Static 말고 Bean을 썼으면 좋겠어요. 근데 이걸 어떻게 설득할 논리가 없네요. 이거 제가 다음 멘토링 때까지 선배들한테 물어보든 어쩌든 해서 알아올게요. 일단 Bean으로 등록해서 써주세요.

언제든 멘토님들께 질문을 드릴 수 있다는 점도 강점이라고 생각한다. 너무 개념없는 시간 혹은 질문만 아니면, 대부분 한,두시간 안에 친절하게 답변해주신다.

3. 최종 프로젝트

오늘도 개발자가 안 된다고 말했다 - YES24

항해99를 진행하면서 스스로 느낄 때, 가장 많은 것을 얻어갈 수 있는 부분이지 않았나 싶다. 디자이너, FE, BE로 구성된 팀이 구성되는데, 서로 다른 직무가 협업하는 과정을 체험해볼 수 있는게 정말 좋았다. 실전 프로젝트 때는 무엇을 가져갈 것인가?를 정하는게 가장 중요한 것 같다. 실전 프로젝트는 크게 두 가지로 나뉘며, 둘 중 하나를 선택해야했다.

  1. 서비스 팀: 실제 사용가능 한 서비스를 구상하고 구현하는 팀
  2. 챌린지 팀: BE 한정으로, 부하테스트 및 아키텍처 설계에 집중하는 팀

나는 서비스 팀을 했었다. 먼저 팀원들과 회의를 통해 꼭 가져갈 것을 정했었는데, 그 내용은 다음과 같았다.

  1. 만들면서 재밌는 서비스
  2. AWS Service 최대한 많이 사용해보기
  3. Convention 준수하기
  4. 쿼리 최적화

6주동안 정말 모든 팀원이 목표를 달성하기 위해 노력했고 다음과 같은 서비스를 만들어낼 수 있었다.

BE 개발자의 경우, 챌린지 팀을 시도해보는 것도 나쁘지 않은 선택이라고 생각한다. MSA에 대한 경험이나, 로드밸런싱, DB Clustering, Docker, K8S, Fargate 등에 대한 경험을 쌓고 현업에 들어갈 수 있는 것은 상당히 큰 메리트인 것 같다. 물론 6주 안에 모든 것을 다 경험하긴 힘들겠지만, 몇 가지라도 시도해볼 수 있는 기회를 잡는 것도 좋은 것 같다.

4. 수료생에 대한 관리

팀스파르타는 특이하게 항해99 수료생들에게 사내에서 진행되는 프로젝트에 참여할 기회를 다수 제공하는 듯 하다. 같은 기수, 같은 반으로 수료한 분들 중 두 분이 이미 팀스파르타에서 진행되는 프로젝트에 참여하고 계신다. 수료 이후에도 뭔가 개발에 대한 끈을 놓지 않게 계속해서 기회를 부여한 다는 것도 큰 메리트라고 생각한다.

III. 항해99 커리큘럼의 단점

1. 방목형(?) 교육

프로젝트 주차를 제외한 항해99 커리큘럼의 진행은 대강 이런 식이다.

  1. 팀스파르타에서 주차에 따라 강의 제공
  2. 강의 수강 및 과제 혹은 테스트 시행

강의를 따라가면 분명 어떠한 결과는 만들어낼 수 있지만, 실질적으로 깊게 공부해야하는 내용은 직접 찾아내야한다. 물론 개발자라면 당연히 Google, Chat-GPT, StackOverflow, OKKY와 친해져야 마땅하다. 이러한 공부 방식에 익숙하지 않은 사람들도 있는 것 역시 사실이다. *익숙하지 않은 사람들을 위해 현직자 세션이나, 멘토링을 통해 직접 현업과 해당 방식의 연관성에 대해 이야기 하는 자리가 있었다면 어땠을까 한다. 또한, 보다 깊게 공부하고 싶은 사람들을 위해 몇 가지 키워드나 방향을 선정해서 제공하는 형태로 발전하면 어떨까 한다.

2. 개인 간의 불화

항해99 커리큘럼은 대부분이 팀 단위로 진행된다. 때문에 팀원 간의 의사소통이나 합이 매우 중요하고, 경우에 따라서 실전프로젝트가 진행되는 6주를 끔찍하게 보내야할 수도 있다. 문제는 항해99 측에서는 이런 개인간의 불화를 미리 예상하고 발생을 막지는 못한다는 것이다. 항해99 측에선 손 쓸 수 없는 문제이지만, 가장 중요한 실전프로젝트를 진행하는 사람들에게 큰 걸림돌이 될 수 밖에 없다. 항해99 측에서는 불화를 중재하고, 멤버를 조정하고 하는 최선의 조치를 취하지만 근본적인 문제가 해결되지 않는 듯 하다. 결국 수강생 개개인이 감내하고, 컨트롤해서 어떻게든 결과를 만들어 내기 위해 쉽지는 않아도 노력해야 하는 부분이다.

IV. 수료 후 취업 과정

결론부터 이야기 하자면, 수료 5일 후 취업에 성공했다. 팀스파르타에서 2월 21일 온라인에서만 보던 팀원을 오프라인에서 볼수 있는(!!) 모여서 각자 지원 행사를 진행했는데, 행사 진행 간 취업 플랫폼인 인텔리픽을 통해 17곳에 지원했다. 포폴의 경우, 포폴 초안을 이력서 관련 세션을 진행하셨던 강사분이 상당히 마음에 들어하셔서 이후 피드백들은 반영하지 않고 수정 없이 제출했다.(귀찮아서 그런 건 아니고, 포폴로 어그로 끌기 좋아보여서였다) 지원한 회사들 중 3월 2일 면접을 진행한 회사에서 기술면접을 통과했고, 이후 3월 8일 최종 면접을 통해 합격했다.

V. 현업에 들어온 이후

매일 부족함을 느끼면서 열심히 하고 있다. 요즘은 ECS, Quartz와 싸우는 중이다. 회사 측에서 연구를 위한 시간을 많이 배려해줘서, 매일 공부하며 발전해나가는게 느껴지는 듯 하다. 그 중에서도 가장 크게 느끼는 건, 부트캠프를 진행할 당시 난 정말 싸가지 없는 BE 개발자였다는 거다. 그 때도 나름대로 FE를 배려한다고 노력을 많이 했었지만, 현업에 와보니 훨씬 다양하고 좋은 방향으로 API를 설계할 수 있었다. 나 때문에 컴포넌트 떡칠을 해야만 하셨던 FE 팀원분에게 죄송하다는 말씀을 여기서라도 드린다…(???: 어짜피 JSON으로 보내면 다 뽑아 쓰실 수 있는거 아니에요?)

VI. 마무리

혹시 항해99를 고민하다가 이 글을 읽게되셨다면 조금이라도 이 글이 도움이 되셨으면 좋겠다.

0개의 댓글