개발자일기/리액트 이야기

[팀 프로젝트] 첫 팀 프로젝트의 시작

뫙뭉 2022. 5. 9. 15:25
반응형

프론트엔드의 길을 걸어보고자 한지 벌써 일 년이 넘어가고 있다.

그런 내가 갖고있는 가장 큰 부족한 점은 바로 팀 프로젝트 경험 하나 없었다는 것.

변변치 않은 개인 프로젝트들만 해오다가 성장 요소의 한계에 부딪히고 뒤늦게 팀 프로젝트를 시작하였다.

이 '팀 프로젝트' 시리즈는 팀 프로젝트의 시작부터 끝까지(팀플은 아직 진행중이다)에 대한 기록과 나처럼 독학으로 준비하시는 여러 분들에게 도움이 되고자 쓰는 글이다.

 

팀 프로젝트 꼭 해야하나..?

나는 겁이 많은 성격이다. 모르는 사람들을 접하는 것을 좀 꺼려하고 무언가 새로운 것을 시도하는 것을 싫어하진 않으나 도전해 보기까지 굉장히 보수적인 스탠스를 취하는 편. 그래서 팀 프로젝트를 여태 안 해봤나 싶다.

이런 생각을 해보았다. 규모가 꽤 있는, 소위 개발자 업계에 탑이라 불리는 '네카라쿠배'에서 팀 프로젝트는 필수일 텐데, 부트캠프나 학원을 나온 친구들보다 팀플 경험도 없는 내가 나은 점이 뭘까? 내가 그런 단점을 극복할 만한 개인 프로젝트 경험을 갖고 있나?

개인 프로젝트를 체계적으로 꾸려 서비스까지 하는 정도가 아닌 이상 위의 대답은 '아니오'가 대부분이지 않을까 싶다. 

혼자만의 공부법으로 남들보다 폭넓게 공부해왔다 라는 자부심이 없지는 않으나 그마저도 취업시장의 문턱에 다가갈수록 큰 장점이라 느껴지지 않았을뿐더러 오히려 가이드라인이 없어 부족한 모습이 눈에 많이 띄었기에 자신감은 점점 하락하고 있었다.

자신감이 없어지면 행동력도 점점 떨어지게 된다. 그래서 어떻게든 팀원들을 구해보자라는 게 그 당시 마음가짐이었던 것 같다.

이 글을 읽게 되시는 분들도 망설임을 떨쳐내고 팀 프로젝트를 시작해 보았으면 하는 바람이다.

 

팀 구성하기

혼자 외톨이마냥 공부를 해왔던 나에게 팀을 짜는 것부터 벅찼던 것 같다. 나는 운이 좋게도 가까운 지인이 프론트, 백엔드에 현업자에 종사하고 있어 도움을 청했다.

그들에게 부탁하기 전, 나도 나름의 노력을 하였는데 바로 개발자 커뮤니티를 활용해 보는 것.

작년부터 가끔 눈으로만 보던 커뮤니티가 있었는데 OKKY라는 사이트이다.

 

OKKY - All That Developer

Editor's Choice Weekly Best 면접관을 해보고나서 배운거 jjavaman 11k 2022-05-02 14:05:09 Q&A 이력서 작성 팁 2진수 비트 연산에 대해 커뮤니티 커플링을 잃어버렸습니다. 이직 성공 후 심란한 마음... ehiehi 102 2

okky.kr

올라오는 글의 양도 상당하고 기업공고, 스터디 모임, 사이드 프로젝트 등등 여러 모임을 구하는 사람들이 많았다.

처음 이곳에 팀원을 구하는 글들을 살펴보며 팀이 어떤 식으로 구성되는지, 무슨 아이디어로 사이드 프로젝트를 진행하는지에 대한 간접적인 경험을 할 수 있었다. 나와 같은 정보를 원한다면 며칠에 걸쳐 글을 뒤져보고 질문도 해보는 것을 추천한다.

 

결론적으로 이곳에서 구하지 못하고 지인들과 팀을 만들게 되었으나 이 사이트는 지인들을 설득할 수 있었던 이유 중에 하나이기도 했다. 들어가 보면 알겠지만 사이드 프로젝트 팀원을 구하는 '현업자'들이 상당히 많았다. 살아남기 위해 노력하고 있는 현업자들을 그 친구들에게 소개해 줬을 때, 그들이 내뱉은 탄식이 아직도 머리에 생생한 듯하다. '사이드 프로젝트하시는 분들이 진짜 많구나, 이런 곳에서 살아남아야 하는 거구나.'

 

그렇게 프론트 2인, 백엔드 1인의 팀원이 완성되었고 현업자 2인, 취준생 1인의 팀이 완성되었다.

내가 얻은 정보에 의하면 프론트엔드를 하는 분이라면 프론트가 여러 명인 팀이 좋다고 한다. 프론트끼리의 협업능력을 기업에서 선호한다고 하는 듯. (직접 진행해보니 그 뜻을 알 것도 같다. 굉장히 조율할 점이 많다.)

 

위의 사이트 외에도 팀원을 구하는 곳도 있고, 요즘은 팀 프로젝트 경험이 부족한 이들을 위한 단기 교육도 여러 플랫폼에서 진행하는 것 같으니 그곳을 이용해도 괜찮을 듯싶다. 물론 커리큘럼이 괜찮은지 정보를 잘 찾아보고 가는 것이 현명하다.

 

프로젝트 주제 정하기

우리 팀의 주제 가계부 어플리케이션, 특별한 주제는 아니었다.

최근 많은 이들이 경제와 주식시장에 관심이 많아지면서 핀테크 기술에 대한 인기도 점점 높아지는 것 같다.

물론 '핀테크' 기술에 초점을 둔 것은 아니었다. 단지 주제를 골라봤더니 관련 어플이었던  것일 뿐.

 

우연히 보게 된 개발 유튜버의 깃헙에 가계부 어플을 보면서 '이 정도가 내가 기대하던 퀄리티의 프로젝트다.' 라는 느낌을 확 받았고 차트를 활용한 데이터 시각화를 경험할 수 있을 것이라는 기대감을 갖고 프로젝트 주제를 정하게 되었다.

주제를 정함에 있어 새로운 무언가를 만들어 내는 것을 초점에 두면 스트레스를 꽤나 받게 된다. 무엇이든 창작은 굉장히 어려운 분야이기에. 그렇기 때문에 공부가 목적이라면 '새로운 무언가를 만들어 내야 한다'에 너무 많은 에너지를 쏟지 말자는 것이 우리 팀원들의 생각이었고 나 또한 이에 전적으로 동의했고 그렇게 프로젝트의 시작을 향해 달려 나갔다.

 

코드 짜기 직전까지의 과정, 생각보다 복잡하다.

대학생 시절, 학부 교수님이 말씀해 주신 것이 생각났다.

'나에게 저기 보이는 나무를 베라고 10시간을 주면, 9시간을 고민하고 1시간 동안 나무를 베겠다'.

어떤 위인이 했던 말이라고 들려주신 말씀이 꽤나 머리에 오랫동안 남아있다. (아쉽게도 해당 글귀가 어디에서 나왔는지 구글링해도 잘 나오지 않는다..) 그만큼 계획이라는 과정은 굉장히 중요한 과정이다.

바로 코드 짜면 후딱후딱 끝나지 않을까? 막연한 생각이 있었는데 기획하고 코드를 치기 직전까지의 과정은 생각보다 많이 복잡하고 중요한 과정이었다.

 

간단히 과정을 적어보면.

1. 팀 내 규칙 정하기(약속 시간, 회의 규칙, 회의 방법 등)

2. 주제 정하기

3. 팀 회의를 위한 툴 정하기, 공부하기 (이런 사소한 것도 공부를 하고 안 하고 작성하는 데에 속도 차이가 나더라)

4. 디자인, 레퍼런스 스터디 (관련 어플리케이션을 여러 개 다운받아서 진행했다.)

5. 우리들만의 새로운 무언가가 있을까 생각해보기 (위에서 말했다시피 오랜 시간을 들이지는 않았다)

6. 필요한 페이지를 디자인 툴로 만들어보기 (디자인 툴 공부도 당연 포함)

7. 기능 명세서 작성하기

8. 역할 나누기

9. 커밋 규칙, 레퍼지토리 만들기, 깃허브 권한 주기 등

10. 난 팀장이었기에 상황 체크 및 진도 속도 조율 등

 

아마 자잘한 것들까지 포함하면 더 많은 항목이 나올 듯싶다. 개인 프로젝트와는 벌써부터 상당히 비교가 되는 부분이다.

혼자 진행하기에 특별한 규칙 없이 꼭 지켜야 할 룰 정도만 지켜서 진행했다면,

다른 사람과 맞춰서 진행하는 프로젝트는 사소한 것들까지 다 맞춰야 했다.

팀플을 위한 디자인, 협업 툴도 사용해 왔던 것이 달랐고, 커밋 규칙, 사용 언어도 달랐기에 이러한 점을 맞추는 데에도 상당한 시간이 걸렸던 것 같다. 게다가 현업자가 둘이다 보니 일주일에 한 번씩 진행하는 회의로는 더욱 많은 시간을 소요했던 것 같다. 위의 과정만 한 달 정도..?

 

Figma 디자인 툴도 처음 사용해봤다. 혼자 할 때는 그때그때 이게 괜찮겠는데? 하면서 바꿔왔던 디자인이, 팀플에서는 통하지 않았다. 정확한 기준이 있어야 서로 혼란스럽지 않기 때문에 사소한 UI에도 약속을 정해서 만들어야 했다.

해당 툴은 신기하게 실시간으로 디자인을 바꾼 것을 바로바로 확인 가능하기에 협업하는 데에 굉장히 유용했던 것 같다.

 

이런저런 회의를 거쳐서 Notion에 하나 하나 옮겨 적기 시작했다. 어느 정도 프로젝트가 완성이 되어가면 Notion 링크도 전체 공유로 설정하여 올려놓을 예정이다.

 

그렇게 해서 정해진 여러 가지 사항.

 

협업 사용 툴: Discord, Figma, Notion (3명뿐이기에 노션으로 충분했던 듯함)

 

기술 스택

- 프론트엔드: React, React-Redux, SCSS, 

- 백엔드: Java spring, Oracle, VM웨어

 

커밋 규칙

#0-0 [커밋 종류] 커밋 메시지 (ex> #0-0 [Add] 프로젝트 시작을 위한 커밋)

 

나와 함께 프론트를 맡은 친구는 Vue.js 와 React Native를 사용해 왔고 나는 React를 사용해 왔기에 React로 결정했다. 그 친구가 React를 써보고 싶었다고 먼저 제안해줬기에 쉽게 결정할 수 있었다.

CSS 같은 경우 선택지가 굉장히 많았다.

- styled components

- Tailwind CSS

- Material-UI

- SCSS

 

성격이 다 다르고 SCSS 같은 경우 전처리기로서 다른 것들과 병행 사용이 가능하나

나와 친구 둘 다 자유로운 스타일링을 선호하고 있고 SCSS에 대한 관심이 많아서 공부 차원에서 SCSS만 사용해보기로 결정했다.

 

그리고 벌써부터 백엔드에 대한 나의 무지를 알 수 있었다. Nodejs 말고는 아무것도 몰랐기에 백엔드에 관해서 아무것도 몰랐기에 이런저런 기술에 대한 얘기를 들어보는 것만으로도 좋은 경험이었던 것 같다.

 

프로젝트는 진행 중

지금 프로젝트는 2달 정도 진행이 되었고 이제 막 코딩을 짜기 시작하는 단계이기 때문에 아직은 글로 쓸 무언가가 많지는 않다. 위의 회의 후에도 프론트끼리의 여러 가지 조율할 것들이 한두 가지가 아니었기에 시간이 어느 정도 추가로 소요되었다.

현재 단계는 한 페이지씩 역할을 나눠 코드를 짜고 있는 단계이다.

진행이 되는대로 추가적인 글을 적도록 하겠다.

팀플을 망설이는 분들께 좋은 간접경험을 할 수 있는 소스가 되었으면 하는 바람이다.

 

 

 

 

반응형