본문 바로가기
TIL

2022 코드스쿼드 마스터즈 코스 회고

by 밀러 (miller) 2022. 6. 19.

어느새 상반기를 마무리하는 시점에서, 지난 반년 동안 함께했던 코드스쿼드 마스터즈 코스 과정에 대한 회고를 작성해보고자 한다. 비록 6월말부터 진행할 인턴십 과정이 코드스쿼드에서의 마지막 주간과 겹치는 바람에 수료까지는 함께하지 못하고 조금 일찍 나오게 되어 일찍 회고를 작성하게 되었지만, 이미 대부분의 과정을 진행한 점을 참고하기를 바란다.

 

코드스쿼드를 선택한 이유

작년 여름에 인턴이 끝나고 나서, 인턴 경력을 갖고 어느 기업이든 뚫을 수 있지 않을까하는 기고만장한 생각을 갖고 있었다. 그리고 단 하나의 지원서도 서류를 통과하지 못한채 하반기가 끝나가고 있었고, 당시 학교에서 진행하던 컴퓨터과학종합설계 프로젝트와 개인적으로 진행하던 풀스택 프로젝트에서 스스로 답답함을 느껴가면서 어떻게 해야 더 성장하는 개발자가 될 수 있을까에 대한 고민이 많았다.

 

그리고 컴퓨터과학종합설계 수업에서 유튜브 등에서 세미나 영상을 하나 보고 정리한 내용을 보고서로 제출하라는 과제가 주어졌는데, 나는 아래와 같이 '우아한테크세미나'에서 조영호님이 강의하신 '우아한객체지향' 영상을 찾아 보게 되었다.

 

우아한객체지향 Youtube 링크

 

 

그리고 영상을 보면서 현재 내가 얼마나 기초가 부족한지를 깨달았다. 이미 인프런에서 김영한님의 스프링 강좌를 대부분 듣고, 혼자 진행하던 프로젝트에서 JPA 와 Querydsl 도입과 함께 TypeScript 와 React 로 풀스택 프로젝트를 진행했다. 하지만 프로젝트를 진행하면서 단순히 기술적인 체험만 할 뿐, 좋은 설계와 코드에 대해 공부하지 않은 채로 프로젝트를 진행해 항상 답답함을 느끼고 있던 중이었다. 위의 영상을 보면서 비즈니스 로직을 구성할 때 오로지 절차지향적인 선택만 할 줄 알았던 스스로에 대해 많은 반성을 했다. 그렇지만 개발자로서 성장하기 위해서 무엇을 어떻게 공부해야할지에 대해 감이 잡히지 않았던 상황이었고, 자연스럽게 부트캠프를 포함한 교육기관으로 눈을 돌리게 되었다.

 

당시에 지원을 고민하면서 여러 부트캠프를 찾아 봤고, 그 중에서 코드스쿼드가 이전 기수 수강생들의 평이 좋았다. 특히 이제는 선배 기수이신 Dion, Jane 의 velog 에 남겨진 회고록을 보게 되었는데, 코드스쿼드를 통해서 많은 성장을 하시고 내가 부족한 부분을 코드스쿼드에서는 채울 수 있을 것이라는 확신을 가질 수 있었다.

 

Jane 의 코드스쿼드 CS10 회고

Dion 의 코드스쿼드 마스터즈 코스 회고

 

코드스쿼드에서 무엇을 배웠는지

 

코드스쿼드 마스터즈 코스는 CS10 과 웹 백엔드 Java 클래스, 마스터즈 프로젝트 총 3단계로 진행이 된다. 컴퓨터 과학의 기본적인 전공 지식을 CS10 과정에서 약 한달간 학습하고, 웹 백엔드 Java 클래스에서는 Java 와 Spring 프레임워크를 2달간 학습하고, 마지막으로 마스터즈 코스에서는 프론트엔드/iOS/Andriod 클래스의 멤버들과 함께 요구사항과 기획서가 주어진 프로젝트를 진행하는 과정으로 이루어진다. 재밌었던 점은 모든 과정에서 직접 코드로 구현을 하면서 배울 내용을 학습하도록 미션이 주어진다는 것이었다.

 

코드스쿼드는 자바를 배울 떄도 미션부터 하면서 진행한다

 

주어진 미션을 구현하면서 공부해야하는 내용을 학습하는 방식은, 재미를 챙기면서도 학습 내용을 바탕으로 성장할 수 있어 굉장히 좋다고 느꼈다. 실제로 CS10 과정에서 함수형 프로그래밍, 멀티스레드 프로그래밍 등을 미션을 통해 학습을 하고, 다른 분들이 구현한 방식을 옆에서 보고 배우면서 스스로의 부족함을 느끼고 배워가면서 한달간 많은 성장을 할 수 있었다. 코드스쿼드를 들어오기 전 12월의 나는 자바의 정석을 아주 대충 훑어본 수준이었는데, CS10 과정이 끝난 후의 나는 운영체제 전공서적인 OSTEP 를 전부 정리하고 자바의 정석을 꼼꼼하게 보고 정리한 수준이 될 수 있었다. (물론 이 기간이 지난 상반기를 통틀어 가장 잠을 적게 자고 많은 노력을 기울였던 기간인 탓도 있다.)

 

OSTEP 을 읽고 정리한 내용은 나중에 면접 준비에서 많은 도움이 되었다.

 

그리고 웹 백엔드 Java 클래스를 진행하면서도 역시 미션을 중심으로 구현하면서 내가 어떤 부분을 더 공부해야하는지 확실하게 느낄 수 있었다. Spring 프레임워크를 공부하면서 김영한님의 강의를 다시 들은 뒤 코드스쿼드 멤버들과 함께 토비의 스프링 스터디를 시작했고, 소프트웨어 테스트에 부족함을 느끼고 테스트에 진심인 개발자가 되고자 단위 테스트 책을 읽기 시작했다. 당시에 테스트를 열심히 작성한 (하지만 리팩터링 내성 앞에 무너진) 흔적이 담긴 리포지토리 링크는 아래와 같다.

 

웬 백엔드 Java 클래스 java-spring-cafe 미션

 

당시 프로젝트의  jacoco 리포트는 라인 커버리지 94% 를 보여준다

 

그리고 마스터즈 프로젝트에서는 프론트엔드/iOS/Andriod 클래스의 멤버들과 함께 웹/앱 애플리케이션을 만드는 프로젝트를 진행했다. 여기서 재밌었던 점은 프로젝트를 시작할 때 Figma 기반 기획서와 1장짜리 요구사항이 주어진다는 것이었는데, 이를 바탕으로 어떻게 객체지향과 데이터베이스 설계를 하고 클라이언트와 어떻게 커뮤니케이션할지, 그리고 협업전략은 어떻게 구성해야할지는 모두 팀원 간의 협의로 이루어졌다. 그리고 테스트와 마찬가지로 협업 전략에 진심인 개발자가 되고자, 협업 전략을 열심히 구성하고 Github 의 이슈, PR, 마일스톤, 칸반 보드, 위키 문서 등을 모두 활용하고자 노력했다. 당시에 협업 전략을 열심히 구성한 리포지토리 링크는 아래와 같다.

 

마스터즈 프로젝트 협업 전략

마스터즈 프로젝트 백엔드 산출물

 

 

 

코드스쿼드에서 성장했는지

 

코드스쿼드를 처음보다는 훨씬 성장했지만, 기대했던 만큼은 아니라고 생각한다. 내가 성장했다고 생각한 이유는 가장 먼저 소프트웨어 개발 주기에 속하는 각 프로세스를 모두 이해했다고 자신있게 이야기할 수 있기 때문이다.

 

같이 프로젝트를 진행한 나단이 만들었던 애자일 방법론의 프로세스

 

  1. Requirements
    코드스쿼드의 마스터즈 프로젝트를 시작할 때 기획서와 요구사항이 주어진다.
    이를 바탕으로 스토리보드 형식으로 어떤 데이터나 API 가 필요할지 논의한다.
  2. Design
    요구사항 분석을 바탕으로 ER 다이어그램과 데이터베이스 스키마를 구성한다.
    그리고 유스케이스 구현에 필요한 도메인 객체와 객체 간의 관계를 구성한다.
  3. Development
    객체지향 설계 관점에서 비즈니스 로직을 구성한다.
  4. Testing
    단위 테스트로 도메인 객체 내의 로직을 테스트하고,
    데이터베이스 통합 테스트로 서비스 레이어 내 비즈니스 로직을 테스트한다.
  5. PR-Review
    리뷰어로부터 PR Review 를 받고 피드백을 바탕으로 코드를 개선한다.
  6. Deployment
    PR-Review 후에는 CI/CD 도구를 통해,
    AWS VPC 내의 웹 서버 인스턴스로 배포를 진행한다.

 

코드스쿼드 이전에 진행했던 프로젝트에서는 위에 나온 키워드들을 대부분 도입하지 않았거나, 전혀 알지도 않았다. 물론 위의 키워드들을 코드스쿼드에서 모든 미션마다 요구사항으로 주어지는 것은 아니며, 더 좋은 코드를 작성하기 위해 내가 스스로 공부하고 진행하기도 했다. 하지만 코드스쿼드에서 다른 멤버들과 함께 프로젝트를 진행했기에, 위와 같은 프로세스를 경험하고 한층 더 성장할 수 있었던 것은 분명하다.

 

하지만 게으름 때문에, 기대만큼 성장하지는 못했다.

 

분명 기술 블로그를 자주 작성하는 것이 이번 코드스쿼드의 목표였는데..

 

기술 블로그를 매번 작성하고자 했지만 중간에 내 블로그 링크를 까먹을 만큼 업로드 주기가 늦었고, 심지어는 To-do 리스트 프로젝트 회고를 작성하면서 아쉬웠던 부분을 별도의 포스트로 작성하고자 한다고 마지막에 써놓고 아직까지도 작성하지 않고 있다. 당연히, 이후에 진행한 Sidedish 와 Airbnb 프로젝트의 회고도 작성하지 않았다.

 

매번 책상 옆에 쌓아두면서 읽지 않고 버티는 책들도 많다. 그나마 최근에 면접 준비를 하면서 컴퓨터 과학 전공 책들은 일기를 마무리 했는데, 아직도 코드스쿼드를 마칠 때까지 읽기로한 책들 중에 남은 것들이 많다. 오브젝트, 토비의 스프링 1권 (이건 스터디가 현재 일시중지중이므로) 은 아직 절반까지 밖에 읽지 않았고,  모던 자바 인 액션, 자바 웹 프로그래밍 Next Step 은 건들지도 않았다.

 

그래서 상반기의 키워드가 학습과 노션 정리이었다면, 하반기의 키워드는 부지런함과 블로그 정리가 될 것 같다.

 

 

코드스쿼드의 다음은 무엇인지

상반기를 후회와 미련 속에서 보냈음에도, 운이 좋게 인턴십을 합격해 곧 입사를 앞두고 있다.

왜 이렇게 근본적으로 부족함에도 기회를 주시는건지... 이해가 안가면서도 너무 감사하다.

 

 

신기하게도 이번 상반기는 노란색 기업들만 붙고, 나머지는 거의 다 서류부터 떨어지고 있다. 다음주에 노란색 기업의 최종 발표가 하나 더 남아있는데, 운이 좋다면 아마 취업 후기도 작성할 수 있지 않을까 생각한다.

 

 

'TIL' 카테고리의 다른 글

To-do 리스트 프로젝트 회고 - (2) 구현  (2) 2022.04.16
To-do 리스트 프로젝트 회고 - (1) 시작  (2) 2022.04.16

댓글