프로젝트 시작 계기
거의 6개월 동안 프론트는 혼자서 공부하다 보니까 점점 내 실력에 대해서 체크를 해보고 싶었다.
협업은 회사 들어가기 전에 꼭 경험해 보고 싶었고 Git관련해서 브랜치전략, 충돌에 대한 경험 등을 겪고 싶었다.
그리고 이제는 사람들이랑 프로젝트를 시작해도 피해는 주지 않겠다 싶어서 인프런에서 스터디 공고를 쭉 봤다.
인프런이 확실히 개발자들이 스터디 구하기 좋은 플랫폼인 거 같다. 물론 강의도 훌륭하지만.
쭉 보던 중 바로 시작하고 싶어서 인원이 어느 정도 차있고 금방이라도 시작할 거 같은 스터디에 카톡을 보냈다.
연락은 거의 바로 왔고 내 github 주소를 보내주고 그쪽 팀원분들도 오케이 하셔가지고 참여하게 됐다.
프로젝트 시작
인원은 백앤드 2명, 프론트 4명이었다.
원래 2명 2명으로 하고 싶었는데 늦게 들어온 나에겐 선택권은 없었다. ㅋㅋ
하지만 오히려 좋다라는 마인드로 4명이면 깃 충돌이 더 자주 날것이고 그 충돌로 인해서 나는 좀 더 깃에 대해 잘 알 수 있는 기회가 되리라 믿고 그대로 진행했다.
컨셉과 기술 스택은 정해놓지 않았고 회의 때 정하게 되었다.
일단 개인적으로 나는 스택도 좋지만 협업에 대해서 많이 배우고 싶어서 팀장을 자원했다. 그리고 다른 분들이 감사하게도 흔쾌히 좋다고 하셔서 팀장을 맡게 되었다.
컨셉은 나는 어떤 거라도 괜찮아서 의견을 강하게 어필하진 않았고 다만 기술 스택은 조금 보수적으로 제안했다. 왜냐하면 팀원들마다 역량이 다 다르고 익숙하지 않은 기술을 여러 개 시도했다가 어디가 어떻게 잘못됐는지 모르고 헤맬까 봐 걱정이 돼서 그랬다.
긴 회의 끝에 컨셉은 MBTI를 통한 채팅 서비스이고 기술스택은 React, axios, scss, styled-components, stomp를 사용하기로 했다.
우선 react를 거의 처음 하시는 팀원분이 계셔서 redux를 넣기에는 너무 부담이 되고 나도 redux를 잘 못하기 때문에(알려줄 정도는 아니기 때문에) redux는 포기했다.
그렇게 ProjectSassy 스터디를 시작했다.
좋은 팀장이란?
팀장이란 위치는 처음이고 사실 여러 프론트엔드 개발자들과 협업하는 건 처음이었기 때문에 여기저기 자문을 많이 구했다.
아는 개발자들에게도 물어보고 구글링도 해보고 책도 사서 읽어봤다.
팀으로 일하면 팀원들의 역량을 100% 발휘할 수 없다.
사실 자신이 가진 역량의 거의 50% 수준으로 떨어진다고 본다.
왜 그렇게 생각하냐면 내가 할 수 있는 일이라고 내 마음대로 할 수 없기 때문이다.
개선 부분의 명확한 이유와 리소스가 얼마나 들어가는지 팀원들을 납득시키고 필요성을 느끼게 하고 확인 사인이 떨어지면 그 때 비로소 개발을 하기 때문에 할 수 있다고 바로 하면 안 된다.
그렇기 때문에 자신이 가진 역량의 50% 수준 밖에 보여줄 수 없다고 생각한다.
나는 이러한 부분에 있어서 팀장으로서, 챌린지로 팀원들의 역량을 60%, 70% 수준까지 올려놓는 것을 목표로 했다.
우선 첫 번째로 내가 했던 일은 git branch의 전략을 찾아봤다.
여러 가지 git branch 전략이 있었지만 프로젝트 규모, 팀원들의 깃 사용도를 미리 개인적으로 물어봐서 역량을 체크한 다음에 결정을 했다.
master - dev - feature로 하기로 했다.
프로덕트 브랜치 하나로 하기엔 너무 버그가 많을 거 같았고, 그렇다고 git flow전략을 쓰기엔 비효율적이라고 생각됐기 때문이다.
깃 브랜치 전략을 세운뒤 다음으로 한 일은 개발환경을 세팅했다.
일단 eslint, prettier을 만들고 package.json을 정리했다. 그렇게 개발환경을 다 세팅하고 팀원들에게 개발 전 미리 공유해서 모두 잘 되는지 확인을 했다.
그리고 세 번째로 팀원들이 지금 현재 어떤 일을 하는지 궁금할 수 있을 거 같아서 칸반을 제시했다.
그렇게 칸반을 세팅하고
issue랑 PR 템플릿을 만들었다.
나는 템플릿은 엄청 선호하는데 일단 템플릿이 제공되면 여기에 큰 에너지를 쏟지 않아도 물 흘러가듯 내용을 채울 수 있기에 템플릿이라면 거의 하는 편이다.
그렇게 github 레포지토리를 세팅하고 네 번째로 한 일은 배포 환경 세팅했다.
AWS S3, AWS Route53, AWS cli, Github Actions로 브랜치 구간마다 자동으로 배포가 될 수 있도록 세팅했다.
자동화 이 세 글자면 미치는 나이기 때문에 혼자 공부할 때 많이 했었다. 그래서 금방 세팅해서 적용시켰다.
이렇게 세팅을 다해놓으니까 팀원들이 굉장히 좋아했다.
아주 뿌듯했다.
그리고 개인적으로 이 과정에 대해서 궁금한 팀원분들 계신다면 언제든지 개인톡 주시면 알려주겠다고 했지만 아무도 연락을 안 줬다.......
.. 본격적인 기능 개발은 다음에 이어서 쓰도록 하겠다.
'토이프로젝트 > ProjectSassy' 카테고리의 다른 글
지수 백오프(Exponential Backoff) 알아보기 (1) | 2023.07.28 |
---|---|
리액트에서 캐러셀 구현 (0) | 2023.05.07 |
리액트 웹소켓(Stomp) (0) | 2023.04.24 |