시작
42서울에는 카뎃(교육생)들이 쉴 때 자유롭게 칠 수 있도록 탁구대 1개가 있습니다. 그리고 이 탁구대 예약을 돕기 위해 카뎃들이 만들어 운영 중인 42GG라는 서비스가 있습니다. 2023년 3월 28일부터 6월 26일까지 42GG 3기 개발진으로 열심히 활동을 했고, 무사히 잘 마무리가 된 것 같아 회고를 해 보려고 합니다. 🥳
지원
42 마지막 이너서클 과제인 ft-transcendence 과제를 끝내고 이제 뭘 해야 하지? 하고 고민하던 차에 슬랙 랜덤 채널에 42GG 3기 모집 공고가 올라왔습니다.
직전 프로젝트 경험이 굉장히 아쉬운 경험이었기에 뭔가,,, 체계적으로 프로젝트를 진행하던 팀에 들어가 보고 싶었고 (어떻게 해야 큰 규모의 팀이 혼선 없이 작업을 효율적으로 할 수 있을지 궁금했습니다) 마침 프론트 팀에게 요구하는 기술 스택인 Next.js(React), TypeScript, Recoil, MUI 모두 직전 트센 과제에서 사용해봤던 기술이기에 지원을 해 봐야겠다고 마음먹었습니다.
... 라고는 했지만 사실 지원 직전까지도 엄청 고민을 했었는데 이유는 제 실력이 이렇게 사용자가 많은 서비스를 개발할 수 있는 실력이 될까? 하는 의문이 있었기 때문입니다. (하하) 정말 공고 올라온 날부터
- 😇 : 일단 질러보자! 이번에도 공부해가면서 하면 되잖음 ㅇㅇ
- 😈 : 공부도 얼레벌레 했으면서 할 수 있다고 말할 수 있는 실력인가? 일단 공부부터 하자
사이에서 갈팡질팡하면서 지원 DM을 썼다가 지웠다가 하면서 반복을 하고 있었고, 지원 마감날…
DM 전송 버튼 누르고 지하철 안에서 소리 없는 비명을 질렀던 기억이 납니다...
근데 DM 보내자마자 면접 약속이 잡히고 (거의 1시간 뒤?) 정신 차려보니 오아시스 테이블에서 면접을 보고 있었고,,, 정신차려보니 "다음 주 월요일에 OT 하러 오세요"라는 연락이 와 있었습니다. 그래서 3기 활동 시작!
온보딩
프론트 팀원은 총 5명 (근데 한 분은 취업하셔서 떠나심... 👏)이었는데, 기존 2기로 활동하시던 분 2분, 프론트 경험이 없으신 분 2분, 그리고 저로 구성되어 있었습니다.
정말 감사하게도 온보딩 프로그램을 준비해 주셨는데, 기본적인 HTML, CSS, JS 지식에서부터 시작해서 React, 마지막은 Next.js까지 싹 정리해 볼 수 있는 과정이었습니다. (나중에 K 회사 온보딩 프로그램 후기를 읽었는데 저희 온보딩이랑 비슷한 흐름이라 좀 놀랐습니다... 짱)
저는 다른 신규 부원들과 비교하면 기존에 알고 있던 지식이 좀 있었기 때문에 남는 시간에 예전에 어영부영 공부해서 소홀히 했던 자바스크립트의 기본에 대해서도 공부할 수 있어서 정말 소중한 시간이었습니다.
BE 팀원들의 온보딩 과정이 비교적 빠르게 끝났고, FE 온보딩 과정에 비교적 시간이 오래 걸려서 급하게 마무리하느라 마지막 3단계를 제대로 못 해본 게 아쉽긴 하지만, 시작부터 당장 프로젝트에 뛰어들어서 실전 지식을 쌓는 것 보다 좀 더 체계적인 공부를 위한 시간을 가질 수 있었다는 점에서 너무 의미 있는 과정이었다고 생각합니다. 😆
본격 개발
스크럼
이 프로젝트를 통해서 처음 스크럼을 경험해 보았습니다. 사실 처음에는 대강 스크럼에 대한 이론적인 개념만 아는 상태에서 앞선 기수에서도 스크럼을 했다기에,,, 그러면 우리도 하자! 정도의 이유로 이번 기수에서도 도입해 본 것입니다... 하하 그리고... 어쩌다 보니 제가 스크럼 마스터가 되어 있었습니다. (요즘 읽으려 하는 책의 제목과 너무 잘 어울려서 쓰면서도 좀 웃기네요... (출근했더니 스크럼 마스터가 된 건에 관하여)
스크럼 마스터가 어떤 역할을 해야 하는지 정확히 파악할 새도 없이 개발이 진행되는 바람에 이번 기수에서는 그냥 스크럼이 잘 진행될 수 있도록 환경을 구성하고 (문서화를 한다거나,, 등등) 스크럼 기록을 통해서 팀원들의 상황을 잘 파악하려고 노력하는 정도로 나름대로 스크럼 마스터의 역할을 수행했는데요. 아마도 스크럼 마스터가 해야 하는 최소한의 역할이 이 정도가 아니었을까 싶습니다... 하하
여전히 스크럼의 효과에 대해서 확실히 체감한 상태는 아니지만, 적어도 이번 기수에서는 매일매일의 짧은 스크럼 회의를 통해서 뒤처지는 팀원 없이 각자 자기 페이스를 맞춰서 개발을 진행할 수 있었던 것 같습니다. 다음에 하는 프로젝트에서도 이렇게 짧은 기간 안에 개발을 해내야 한다면 스크럼의 도입을 적극 추천할 것 같아요.
리팩토링과 테스트
이번 기수의 주요 과제 중 하나는 리팩토링이었습니다. 온보딩 마무리쯤에 기술 스택 논의를 하면서 테스트의 필요성에 대한 얘기가 나왔었는데요. 경험이 많으신 앞 기수분의 조언에 따라 테스트를 하게 된다면 e2e 테스트를 하는 것이 좋겠다는 결론이 났었고 중요한 것은 테스트를 하냐 마냐를 결정해야 하는 것이었습니다. 비록 모든 팀원이 테스트 경험이 없기에 공부 기간이 좀 필요하다는 문제가 있긴 했지만 개인적으로는 ‘리팩토링을 한다면 테스트가 꼭 필요하다’라는 생각이 들어서 테스팅 툴에 대한 사전 공부를 하고 자료를 만들어서 팀원들을 설득했습니다.
그래서 e2e 테스트 툴인 Cypress와 컴포넌트 테스트 툴인 Storybook을 도입하게 되었고, 저와 팀원 한명이 테스트 코드를 담당하고, 다른 두 명의 팀원이 리팩토링을 담당하게 되었습니다.
개인적인 결론을 내리자면 저의 주장으로 이루어진 이 결정은 대실패라고 생각하는데요… 이유는
- 사전에 공부했던 내용은 테스팅 툴 사용법 정도였기에 테스트 코드를 짜는 것에 관한 공부가 너무 부족하여 테스트 코드의 질이 너무 좋지 않았음.
- e2e 테스트는 규모가 너무 커서 테스트 경험이 적은 이번 기수 팀원을 비롯하여 다음 기수 팀원들이 유지보수하기 어려울 것 같음
- 코드 리팩토링만 아니라 디자인 변경이 있었던 이번 기수의 작업에는 e2e 테스트가 맞지 않았던 것 같음
여전히 테스트 코드에 대해서는 잘 모르겠지만 아무튼 성급했던 도입이었던 것 같고 제가 주장했었던 부분이기에,,, 죄송스러운 마음이 큽니다. 게다가 리팩토링 또한 2명이 작업하기에는 기존 코드의 양이 너무 많았고 관련 공부를 할 시간이 부족했기에 이제 와서 생각해 보니 리팩토링 작업 역시 괜찮은 결과를 내지 못했던 것 같습니다...
리팩토링과 테스트 부분은 여러모로 아쉬운 부분이네요. 😿
코드 리뷰
직전 프로젝트에서는 프론트엔드가 저 한명 뿐이었기에 github를 이용한 코드 리뷰를 할 기회가 없었는데요. 이번 프로젝트를 하면서 github를 이용한 코드 리뷰를 처음 경험해 보았습니다! (approve 어떻게 하는지 몰라서 헤맸던 기억이 생생하네요… ^_^) 42 Seoul 본 과정 중에도 대면으로 하는 코드 리뷰가 있기에 다른 사람에게 보여줄 수 있는 코드를 짜는 것에는 익숙해져 있었지만 직접 말로 설명하지 않고 코드만으로 의도를 표현하는 것이 생각보다 어려운 일이라는 것을 깨닫게 되었습니다…
시작은 낯설고 좀 어려웠지만 얼마 있지 않아서 코드 리뷰가 생각보다 굉장히 재미있고 생산적인 활동이라는 것을 체감할 수 있었습니다. 42 Seoul 본 과정 중에도 옆자리 동료의 ‘이거 안 되는데 왜 안 된다고 하는지 모르겠다…’ 라는 질문에 답해주는 것이 가장 즐거웠는데요. (물론 당사자는 답답해 미칠 노릇이었겠지만…) 개인적으로 저는 다른 사람이 짠 코드를 구경하고 이해하는 것을 좀 재밌어하는 것 같습니다. 같은 맥락에서 코드 리뷰도 다른 사람이 짠 코드를 보면서 이해하고, 질문하고, 얘기하는 이 과정이 굉장히 좋았고 제 코드를 리뷰 받을 때도 제가 놓쳤던 부분을 리뷰를 통해 확인하는 이 과정이 굉장히 생산적이라고 느꼈습니다.
코드 리뷰하면서 마음 상하는 사람도 많다던데 다행히도 저는 적성에 잘 맞는 것 같습니다. 하하 팀원들이 많아서 좋았던 점 중 하나인 것 같아요.
디자인 변경
이번에 처음으로 디자이너와 함께 작업하는 기회를 가져보았습니다. 피그마를 처음 다뤄보았는데 굉장히 신기했어요… 이번에 함께 작업하면서 새삼스럽게 느꼈던 것은 제가 굉장히 개발자답게 말하고 있었다는 것입니다. 저는 나름대로 잘 말씀드렸다고 생각했는데 의견 전달이 잘되지 않아서 당황했던 경우가 종종 있었는데요. 다행히 몇번의 대화를 통해 의견을 잘 주고받을 수 있었지만 왜 디자이너와 개발자의 커뮤니케이션에 대한 이야기들이 자주 나오는지 체감할 수 있었던 경험이었습니다.
돌아보기
저는 롤링페이퍼를 꽤 좋아합니다. 쓰는 것도 좋아하고 받는 것도 좋아하는데요.
이번에 FE, BE 모두 모여서 프로젝트 총 회고를 했었는데, 그 과정에서 받았던 익명 롤링페이퍼가 마음에 들어서 남겨둡니다. 😄
대체 세미 팀장이라는 말은 누가 쓰셨는지 정말 궁금한데 알 수가 없네요... 하지만? 열심히 한 것을 인정받은 느낌이라 정말 뿌듯합니다 하하