모수 프로젝트 회고

kimgho
회고
모수 프로젝트 회고

프로젝트가 끝난지 좀 지났고, 대부분 큰 이슈들은 7월~8월에 있어서 기억이 잘 나지 않는다. 그래도 하나의 프로젝트를 어떻게 보면 제대로 마무리했기 때문에 상쾌하다. 맨날 프로젝트하면 항상 끝이 흐지부지해서 찝찝했는데 이번엔 사용자까지 받아보면서 참 다양한 상황을 겪었다. 프로젝트 회고록도 처음 작성해보는데 그만큼 내가 이 프로젝트에 대해 가지고 있는 의미가 남다르다.

시작

6월 말쯤, 모의 수능관련 프로젝트에 합류하게 되었다. 사실 처음 제안받은 것은 아니고, 5월에도 같이 하자고 했지만 그때는 안 한다고 했다. 하지 않겠다고 한 이유는 지금 하고 있는 카카오테크캠퍼스에 집중할 겸, 기본 공부를 더 해야겠다는 생각이 있었기 때문이다. 그럼에도 결국 합류하게 된 이유는 생각보다 카카오테크캠퍼스가 바쁘지 않았고 Next.js를 경험하고 싶었다. ~~실사용자를 받을 수 있다는 것에 넘어간 것은 절대 아님~~

초반

처음 합류했을 때 퍼블리싱은 70%정도 완성되어 있었던 것으로 기억한다. 그래서 맘편히 API연결하고 그때 맞춰서 UI를 변경하면 되겠지라고 편하게 생각하고 있었다. 이때 당시 팀원은 나 포함 FE는 3명, BE는 4명, 디자이너 1명, 운영진?은 3명이었다. 아직 기능이 추가되지 않았을 때 페이지 라우트냐, 앱 라우트냐 이리저리 얘기를 해봤다. 난 개인적으로 앱 라우터를 써보고싶은 마음이 있었기 때문에 앱 라우트를 주장했지만, 런칭까지 시간이 충분하지 않았다. 이 상황에서 익숙하지 않은 Next.js와 앱 라우트 방식까지 하면 무조건 주어진 일정 내 다 못할 것이 뻔해보여서 페이지 라우트로 결정했다.

고통 시작

퍼블리싱이 70%정도 끝났다고 했고, 즐거운? 마음으로 남은 30% UI를 만들기 시작했다. 프로젝트를 같이 하자고 제안했던 친구가 공용 컴포넌트와 스토리북으로 문서화도 어느 정도 해놨고, 필요한 이미지의 경우 피그마에서 슬쩍해서 만들어서 UI작업은 여기서 끝난줄 알았다. 분명 전날 피그마에서 본 디자인이 다음 날 봤을 때랑 달라졌는데, 아무 언급이 없었다. 처음엔 언급을 잊었을 수도 있으니 그냥 뭔가 맘에 안 들어서 바꿨나보다~ 하고 넘어갔다. ~~아 UI만 만들면 심심하니까 숨은그림찾기 컨텐츠도 있구나!~~ 같이 하는 친구는 진짜 픽셀 단위로 하나 하나 조정하고, 다시 복구하고 이 짓을 무한 반복했으니 나는 양반이었다고 생각한다. 이 친구는 이것때문에 스트레스를 엄청 받았다..

그래서 뭐 어떻게 바꿔달라고 했냐 물어보니 진짜 뭐 텍스트 왼쪽으로 조금만 옮겨주세요, 이거 줄바꿈 가능해요?? 아 아닌거같아요. 이거 애니메이션 가능해요? 등등.. 이 과정을 거쳐서 나온 결과물은 뭐가 다른지 잘 몰랐다.

이 표정이 내가 그 얘기를 들었을 때 지었던 것과 가장 비슷하다고 생각한다.

팀원 탈주

우리가 만들어야 했던 것은 서비스(학생용)과 관리자용 페이지 2개였다. 나는 서비스와 관리자 왔다갔다 UI를 만들고 있었다. 나보다 먼저 관리자 페이지를 만들고 있던 또 다른 친구가 있었다. 이 친구는 맨날 관리자 페이지 UI작업을 목화솜따러 간다고 했다.(관리자 페이지는 디자이너가 만들기 귀찮았는지, 복붙해놓은게 많았다). 어느 날 그 친구는 말 없이 사라졌다. 프로젝트가 끝난 시점에서 돌이켜보면 이건 선견지명이었다. 우테코를 하느라 바쁘니 병행하기 힘들어 조용히 내려놨나보다 하고 프론트 2명이서 이어갔다

중반

퍼블리싱이 끝나고, 본격적으로 기능 추가를 시작했다. 가장 메인이었던 결제는 사실상 프론트 리더?같은 역할을 맡은 친구가 했다. 단순한 공지사항이나 FAQ, 문의글 작성/조회, 이벤트 조회 등 이런건 내가 맡아서 처리했다. 도중에 ISR이니 뭐니 하는 방식을 처음 써봐서 좀 신기했다.

이걸 왜 또 바꿔요? - 1

처음 회원가입은 단순하게 본인인증 없이 했다. 애초에 그렇게 해달라고 적혀있었다. 그래서 그렇게 했다. 근데 갑자기 릴리즈 바로 전에 본인인증을 넣어야한다고 했다. (진짜 갑자기 나도 모르는 사이에 본인인증이 추가되어 있었다.) 분명 릴리즈 일정이 촉박하다면서 스펙 아웃하기로 했던 내용인데 이걸 꼭 넣어야 하겠다고 했다. 이 부분은 내가 맡지 않아서 자세히 기억은 나지 않지만 상당히 많은 일이 있었다. kmc 팝업으로 띄워서 인증 받고 받은 값을 다음 페이지로 넘겨주고,, 리다이렉션 해주고,, 등

이걸 왜 또 바꿔요? - 2

요구 사항이 바뀌는 것은 이해한다. 하지만 바뀌는 것에 대한 근거가 있어야 한다.

이렇게 하면 사용자가 좀 불편할 것 같아서 바꿔주세요~

불편할 수 있다. 근데 어떤 점에서 불편할지 이유를 말해줘야 정확히 바꿀 수 있다. 단순히 이거 불편하니까 이렇게 해주세요~ 라고 해서 바꿔줬더니 "아 이게 아니라.." 이런 식을 반복했다. 그 중에 내가 테스트해보면서 불편했던건 적용하기 전에 이 부분은 ~하면 depth가 깊어져서 ~하면 접근성이 나아질 것 같은데 어떻게 생각하냐고 의견을 구했다. 사실 이런 점에서 소통이 중요하다는 것 아닐까 싶었다.

관리자 페이지 다시 바꾸기

서비스 런칭을 끝내고, 잔버그 수정하면서 관리자 페이지를 다시 손보기 시작했다. 관리자 페이지에서 변경점이 생겨 수정하기로 결정했다.

근데 진짜 내가 왜 이렇게 짰는지 모르겠다. 진짜 모르겠다. 그땐 이렇게 짜면 덜 복잡하겠지 생각하면서 짠거같다. 진짜 이런 구조로 되있었다.

그렇게 최대한 살려보려고 노력했던 코드들은 모달과 api만 남기고 다 사라졌다. 그리고 다시 짰다..

프로젝트 끝

처음엔 FSD 구조로 깔끔하게 잡혀있었다. 끝났을 땐 이렇게 되있었다.

그리고 제일 많이 했던 것.

얻은 것

그래도 카테캠때 처음 써본 react-hook-form을 좀 더 써보면서 익숙해지는 시간이 되었다. Next.js에 대해 조금은 이해를 한 것 같다(페이지 라우트만..) 폰트나 useSyncExternalStore 문제도 겪어보고,, Sentry도 달아보고 에러 로깅하면서 직접 해결한 에러도 있었다. 도중에 진짜 도망칠까 생각도 많이 했었지만 어떻게서든 붙잡고 끝을 보긴 했다.

아쉬웠던 점

서버컴포넌트를 써보지 못한 점이 아쉽다. 이 프로젝트가 쭉 이어졌다면 앱 라우터로 마이그레이션 계획이 있었지만,, 모종의 사유로 프로젝트는 중단?되었다. 앱 라우터로 바꾸면 뭘 할지는 상상은 했었지만 못 옮기는 것이 많이 아쉬움이 남는다.

인증 방식을 쿠키로 했는데 이게 참..문제가 많았다. 쿠키가 담겨져야 하는데 안 담겨서 날아가고,, 테스트 서버에서도 말썽이었고,, 쿠키 문제때문에 일주일동안은 로컬 서버에서 테스트도 못 하고 올라갔다.

그리고 비개발자와의 소통이 정말 힘들었다. 개발을 하지 않는 사람 입장에선 간단할거라고 생각해도, 실제 개발하는 사람 입장에선 난처한 경우가 많았다. 왜 이 부분이 오래 걸릴지에 대해 설명을 해주면 "아.. 그래도 빨리 안될까요??" 되물음의 반복이었다. 물론 그 사람의 입장도 충분히 이해간다. 운영진들끼리 회의를 하며 여러 사안이 있었을 것이고 그 중에 나름 최선의 방안이라고 가져왔을 것이다.

느낀 점

프로젝트에선 일정 내 맞추는게 제일 중요하지만, 그 일정을 맞출 수 있는 컨디션을 유지하는게 또 중요하다고 느꼈다. 초반에 다른 사람들이 엄청 열정적으로 달리고 밤 새면서 하는데 중간에 잠깐 슬럼프가 왔는지 다들 많이 힘들어했다. 확실히 글만 보고 예제만 보면서 따라쳤을 때 보다, 실제로 적용해보면서 부딪혀보는 방식이 머리에도 남고 빨리 이해가 되는 느낌이었다(물론 클로드, 제미나이 팀장님들이 많이 도와줬다.)

첫 회고록이지만 프로젝트 이외에도 다른 회고록을 써 볼 예정이다. 일기장처럼 나중에 돌아봤을 때 이땐 이렇게 살았구나 떠올릴 수 있으면 그것만큼 재밌는 이야기가 없지 않을까?