일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- css-in-js 버그
- nextjs13
- 2번째
- 항해99
- getElements
- props
- 프로젝트회고
- WIL
- 유사이터럴객체의차이
- react
- 언어학습2일차
- redux
- styled-component
- State
- 트러블슈팅
- til
- 설치 및 구조파악
- UI컴포넌트설계 고민
- react-naver-map
- useState
- 컴파운드패턴 연습
- 함수형업데이트
- RCC
- 두번째포스팅
- Promise
- prop 'className' did not match
- thunk정리
- 오랜만의회고
- RSC
- 이미지로딩실패
- Today
- Total
코딩을 박터지게 죽을때까지
MIL - 사이드 프로젝트 회고 1 : 전반적인 협업흐름 본문
한달정도 전혀 블로그 손을 못 대서.. 원래 그때그때 쓰면 참 이상적인데
팀이 너무 다사다난하고 하다보니 그게 잘 안됐다.
원래는 Typescript와 더불어서 실시간 위치기반, PWA, NEXT.JS 마이그레이션 등.. 하고픈게 많았지만
여러가지 문제에 직면해서 typescript 빼고는 적용을 할 수 없었다.
일단 첫번째 회고로는 팀 빌딩부터 해서,
이 포스트에는 전반적인 분위기와 자잘한 에피소드 등을 되짚고..
그 다음에 이제 코드 및 기술 관련해서 회고들을 포스팅 해봐야겠다.
이 프로젝트에서 나는 팀장을 맡게 되었고 전반적인 일정조율과 이슈컨트롤을 주도했다.
yarn create react-app PJT_NAME --template typescript
1. 팀 빌딩 및 기획
1) 프론트 3, 백 3, 디자이너 1 로 팀 구성
2) 백엔드 한분이 현업으로 시니어 디자이너이신 분이고,
3) 본인이 기획하고있는 사업에 대해 이야기하고 기획 제안
4) 그 기획을 따라서 코딩하기로 진행
2. 초창기 잡음
1) 기획이 하루가 다르게 변하고, 기획자 vs 디자이너 vs 프론트 삼파전으로 골이 쌓이기 시작
2) 같이 하게 된 백엔드분들이 객관적으로 실력이 다른 조 백엔드분들보다 안좋은 편이었고,
3) 이에 대해서 백엔드면서 동시에 기획하시던 분은 많이 버거웠던 것으로 보임.
4) 그래서 그런지 본인의 사업 기획인데 자꾸 요구스펙과 기능들이 다운그레이드가 되어갔음.
5) 분위기가 안좋았고, 이와중에 어드민쪽을 맡은 프론트분은 백엔드쪽하고 기본적인 CRUD가 제대로 안되니까
멘탈이 많이 상하셨음.
6) 회의 때는 기획자 vs 디자이너(기획자가 현업 디자이너임.) 이 둘이서 디자인으로 실랑이를 하고,
7) 기획자 vs 프론트엔드, 기획이 자꾸 축소되고 하는 것으로 인해서 분위기가 점점 안좋아짐.
8) 이 와중에 나머지 백엔드는 "자기들은 잘 못하니까 쉬운 내용으로 하자"라며 사기를 떨어뜨리고, 소셜로그인이 몇일째 진행이 안됨. 개인적으로 나도 이때쯤 많이 힘듦을 느낌.
9) 사업준비와 동시에 이 프로젝트를 하는 기획자가 버거워하면서 그만두고, 프론트 1명도 정신적으로 스트레스를 너무 많으셔서 그만둠 (프 2, 백 2, 디자이너 1이 되어버렸음)
10) 원래 기획한 내용에 비해서 손이 매우 딸리는 상황이 오게 됨.
11) 일부 기획을 보류, 변경하는 것으로 방향
12) 다들 그럴싸한 프로젝트를 하는 것은 처음이라 그런지, 각자의 욕심이 있고 타협하는 과정이 쉽지 않았음.
=> 먼저, 남아있는 백엔드들을 좀 사기를 끌어올릴 필요가 있다고 느낌
=> "못한다", "안해봤다" 말하지말고, "일단 해보겠다", "찾아보겠다" 라고 이야기하기로 약속.
=> 처음에 약한 소리를 했지만, 그래도 그 이후로 본인들이 더 열심히하고 매달리고 하면서
시간은 걸릴지언정 많이 잘 덤벼주셔서 개인적으로 너무 고맙게 생각함
다음 사이드할때는 조금 잘하는 백엔드를 구해봐야겠다.
3. 진행
1) 여차여차 팀 분위기를 수습을 하고..
누군가의 말끊지 않기, 맥락 벗어난 말 하지말기, 해보지도 않고 못한다는 말 하지않기 등의 팀 룰을 정립
2) 그동안 날린 시간이 너무 많아서 1~2주정도는 시간을 허비함.
MVP 목표가 3주였는데, 상황은 변하지 않으니, 어떻게든 맞춰서 뽑아보고자, 팀원들을 최대한 고무시켰음
3) 기존 컨셉은 실시간 위치기반으로 다이어트 식당을 보여주는 식이었으나,
강남역 제외하면 그런 식당 있지도 않아서 데이터를 구하기가 힘들고,
기획자가 나가버렸기 때문에 카페로 대체.
4) 공공데이터포털에서 소상공인 정보를 가져와서 카페에 해당하는 정보만 갈무리하여 백엔드에 파일을 넘겨주었다.
4. 시작(1주차 - 시작부터 막힘)
1) 소셜로그인을 구현하는데 백엔드에서 5일째 무소식이다. 이해가 안간다.
2) 프로젝트 초기라서.. 뭔가 재촉하는 것도 조심스럽다보니 하루에 한번씩 물어봤는데 무언가 잘 안된다고 한다.
3) 프론트쪽은 일단 소셜 쪽을 기다리면서, 다른 부분을 더미데이터로 이것저것 구현을 하면서, 중간중간 진행상황만 물어봤다.
4) 5일째 되는날 도저히 이러다간 진행이 안될거 같아서, 같이 화면공유하고 코드를 봄
5) 원인은 서버측에서 네이버측으로 인가코드를 보내고 나서, 되돌아오는 response의 내용을 확인해보지 않고
6) 그냥 accessToken 이라는 이름으로 토큰을 받으니 안됐던것(네이버에서는 access_token이라고 반환을 해준다.)
7) 프론트는 보내고 받은 걸 네트워크탭에서 확인하는 게 일상이니까 이런 일이 없는데..백엔드는 그렇지 않다보니 이런 일이 일어난것 같다.
8) 너무 답답하고 힘이 빠졌지만.. 본인은 얼마나 답답하고 힘들었을까 싶어서, 길게 생각하지 않고 다음 단계로 넘어갔다. 다음부터는 연차가 좀 있는 백엔드와 해야겠다.
5. 개발자 vs 디자이너
1) 프론트 1명, 백엔드(기획자) 1명이 그만 둔 상태 + 소셜로그인으로 5일소모
2) 시간이 매우 낭비되었고, 손은 매우 부족해진 상태가 됐다.
3) 이와중에 디자인이 하루가 다르게 변경되고, 디자이너는 자꾸 마음대로 기획을 변경하고 다음날 통보하기 시작.
4) 디자인 포폴만을 위한게 아니라 모두 각자 포폴을 위해서 진행하는 것이기도 하고,
2명이 빠지면서 손도 많이 부족해진 상태에서 추가적으로 말도없이 무언가 기능을 넣으면
납기를 도저히 지킬수 없음을 이해시켜드렸다.
5) 마음 같아서는 오히려 디자이너님이 "그만 넣으면 안되냐"고 할 정도로 하고 싶지만
6) 현실적으로 그게 어려운 상황이다. 라고 주지시키고 하니 잘 받아주셔서 적당히 타협이 되기 시작.
6. 프론트 vs 프론트
1) 같은 프론트 팀원의 진행상황을 도저히 파악할 수가 없고, 너무너무 작업속도가 느리다.
2) 진행상황을 전혀 자세히 말을 해주질 않는데, 원격 레포에는 변화가 없다.
3) 1주일 정도 약속했던 진도를 달성하지를 못하는 상황.
4) 늦으면 늦는다, 되면 된다. 언제까지 된다. 무엇때문에 안된다. 이런걸 그냥 있는대로 이야기 해달라고 부탁.
5) 왜 늦는지를 보니, 코드를 너무 고급지게 짜려고 하고, 그러다보니 너무 오래 코드를 붙잡고 있는다.
6) 혼자 하는 과제가 아니니까, 매주 공유를 해줘라고 재차 부탁
7) 쉽게 쉽게 짜고, 나중에 리팩토링할때 수정을 하는 식으로 하자. 안되면 좀 막힌 부분이 있다라고 말을 해줘라.
8) 디자이너는 디자이너대로 자기 욕심이 있다보니 우리가 그걸 맞춰 주기도 해야한다. 속도는 둘째치고 프로젝트 진행상황이 제대로 파악이 안되니 그 다음 목표 잡기도 애매하다.
9) 라고 솔직하게 이야기 했고, 본인도 공감을 했고 코드에 대해서 너무 오래 붙잡지 않겠다고 답변을 들었다.
10) 피드백하고 나서, 속도가 점점 올라와서 이제 어느정도 진도를 맞춰갈 수 있게 됐다.
11) 여차여차해서 일단 3주에 MVP를 뽑아냈고, 최초 기획보다 줄어든 부분이 많았다.
12) 디자이너 또한 포트폴리오를 위해서 하는 것이기 때문에,
이후 개발일정을 다소 양보하고, 디자이너가 원하는 몇가지 컨텐츠를 추가하는 것으로 진행했다.
원래 MVP 3주를 하고, 그 뒤로는 리팩토링과 성능개선을 해야하는데... 일정을 자체적으로 바꿨다.
사실 좀 버거웠지만, 개발 입장만 내세울수도 없기도 하고, 디자이너도 양보를 좀 해줬으니,
상생하는 의미에서 일주일 정도만 기능과 디자인을 추가하는 일정을 잡았다.
이외에도 정말 자잘하게 많았는데..
어떻게.. 중반쯤부터는 서로 적정선에 타협하면서 으쌰으쌰해서 진행을 하긴 했다.
그래도 날린 시간이 많은데다가 사람 수는 적어져서 당초 목적보다 많이 느려졌다.
할수있는 게 아무래도 줄어드는건 어떻게 할 수가 없었다.
항상 원한대로 되는건 아니긴 하니까.. 하고 마음을 좀 다스렸고.
아쉬운건.. 실시간 위치 기반, PWA를 적용하지 못한건데,
백엔드에서는 알지 못할 이유로 인증서를 받은 이후부터가 진행이 안됐다.
결국엔 http로 배포를 할 수밖에 없었다.
아쉽기는 하지만.. 그래도 그거때매 담당한 백엔드분도 나름 열심히 하셔서... 뭐라 할 마음은 안들었다.
다음엔 연차가 있는 백엔드를 구해야지
'React' 카테고리의 다른 글
MIL - 사이드 프로젝트 회고 3 : UI 컴포넌트 설계 (1) | 2023.05.21 |
---|---|
MIL - 사이드 프로젝트 회고 2 : 서비스 기획 전반 (0) | 2023.05.21 |
react-naver-maps 사용 중에 발견한 이상현상 (0) | 2023.03.29 |
동적페이지 사용 시, 이미지를 제대로 불러오지 못하는 현상 (0) | 2023.03.26 |
클래스/함수 형 컴포넌트의 라이프사이클, react hooks (0) | 2023.03.20 |