
코드잇 프론트엔드 부트캠프에 운 좋게 합류하게 되었다. 이 포스트는 부트캠프에서 진행한 주간 미션(Weekly Mission)에 관한 글이다.
부트캠프의 커리큘럼 중 하나로, 매주 주어지는 과제이다. 한 주간 배운 내용들을 일주일에 걸쳐서 과제 형식으로 활용해보고, 코드리뷰를 받아 리팩토링하게 된다. Weekly Mission은 이름만 들으면 주마다 새로운 과제들을 수행하는 것 같지만, 실제로는 하나의 큰 프로젝트를 주차를 거듭하면서 완성해 나가는 구조이다. 예시로 첫 주에는 퍼블리싱을 하고, 둘 째 주에는 반응형 디자인을 적용하고, 다음에는 동적인 요소를 추가하는 등 그 주에 배운 내용을 바로 실전처럼 적용해볼 수 있게 구성되어 있다.
Weekly Mission의 가장 큰 매력포인트는 현업 개발자들의 코드리뷰가 매주 있다는 것. 나 혼자 개발하며 리팩토링도 해보고, 나와 실력이 엇비슷한 사람들과 협업하며 서로 리뷰도 해보았지만 크게 와닿지 않았던 것이 사실인데, 처음으로 현업 개발자들에게 나의 부끄러운 코드를 리뷰받을 수 있는 기회가 생겨서 좋다.
주간 과제는 하나의 공용 깃헙 리포지토리에 작업 내용을 올리고, netlify에 공용 레포의 내 개인 브랜치를 연동하여 지속적인 배포를 하며 진행된다. 공용 레포에는 수강생 각자의 개인 브랜치가 있다. 메인 브랜치는 사용하지 않는다. 우선 주간 과제가 공개되면(매주 월요일 오전) 공용 원격 레포와 연결된 나의 로컬 레포의 내 개인 브랜치에서 수강생이름-week2와 같은 형식으로 몇 주차 과제인지가 나타나도록 브랜치를 판다. 그리고 작업이 끝나면 push후 나의 원격 개인 레포에 PR을 올린 후 선 merge를 한다. Closed된 PR을 개발자들이 검토하며 코드리뷰를 하고, 수정할 사항이 있다면 다음 주차 PR때 그 부분을 커밋메세지로 명시하여 다음 주차 작업물과 함께 올린다. 이 흐름을 그림으로 정리해보면 아래와 같다.

특이한 점은 로컬 브랜치에서는 머지를 할 필요가 없다. 로컬의 kenny에서 리모트의 kenny로 push하는 방식이 아닌 항상 특정 주차의 과제를 할 브랜치를 로컬에서 파서 그 브랜치를 push하고 PR후 머지하는 방식으로 진행된다. 그래서 로컬의 kenny도 최신상태를 유지하기 위해 PR & 머지 후에는 로컬의 kenny브랜치에서 pull을 받기로 했다.
PR방식도 독특하다. 셀프 머지를 한 뒤 closed된 PR을 개발자들이 검토하고 리뷰를 해 준다. PR을 작성할 때는 과제의 요구사항을 잘 반영했는 지 체크리스트를 만들어 구현이 된 부분과 다 구현하지 못한 부분을 구분하여 올린다. 다음과 같이 배정받은 멘토를 태그하고, label에는 매운맛, 순한맛, 미완성이라는 세 가지 라벨 중 하나를 골라 넣는다.

굉장히 체계적이군요. 귀감이됩니다.