코드잇 스프린트1차 프로젝트 회고(9~11주차)

Jnns·2024년 2월 3일
3

회고

목록 보기
2/8
post-thumbnail

프로젝트 소개

익명으로 질문과 답변을 통해 대화 나누는 소통 플랫폼 Openmind

👉 Openmind 보러가기
👉 소개 보러가기
👉 GitHub 보러가기

기술 스택

  • React
  • styled-component
  • Recoil

💡 배운점

  • 프로젝트의 구현도 중요하지만 얼만큼 최적화를 잘 시켰는가도 현업에서는 굉장히 중요하겠다 느꼈다.
  • 협업을 하면서 여러가지 의견을 조율해보았는데, 이 시간들이 꽤나 값진 시간이었다. 협업을 할 일이 앞으로 훨씬 많아질텐데 지금의 경험들로 후에 팀원들과의 의견 조율에서 더 좋은 피드백을 주고받을 수 있을 것이다.
  • 팀원들이 작성한 코드를 피드백하고 그 코드들이 내가 작성한 코드와 합쳐지는 과정에서 컨벤션과 네이밍, 가독성의 중요함을 더 실감했다.
  • 프로젝트 협업은 단순히 코드를 치면 끝나는 것이 아니라 그 외의 것들(에러 해결, 배포, 팀원들과의 의견조율, 시간분배, 최적화, 라이브러리 도입 등...) 신경써야할 것도 시간이 할애되는 것도 훨씬 많다는 것을 깨달았다.

😂 아쉬웠던 점들

프로젝트를 해보니 협업이라는 것이 쉽지 않다는 것을 깨달았다..

팀원들과 스케줄을 맞추는 것은 괜찮았지만 프로젝트 진행 관련 의견을 서로 제시하고 수용하는 데에 있어서 어려움이 있었다.
또 나는 프로젝트 동안 뭐든 시도해보고 싶어했지만, 팀원들 중에서는 그렇게 생각하지 않는 사람도 있었다.

📌 문제 1. 라이브러리 활용 저조

프로젝트를 하면서 라이브러리를 사용할 수 있다면 무조건 사용하자는 이야기가 아니다.
아직은 사용하지 않는게 나은 라이브러리가 있고, 기회가 될 때 경험을 쌓아두면 도움이 되는 라이브러리가 있다고 생각한다.

대표적으로 무한스크롤이나 애니메이션 효과를 주는 트랜지션, 페이지네이션 같은 경우에는 FM을 알아야 AM도 할 수 있는 것처럼 당장은 라이브러리를 사용하지 않고 바닐라로 구현해보는 것이 더 좋을 것이라 생각했다. 멘토님에게 여쭤봤을 때도 비슷한 답변을 해주셨기에 라이브러리를 사용하지 않고 구현하는 방식으로 의견이 취합되었다.

하지만 사용해보는게 좋을 것들에 관련되어 의견을 나눌 때는 의견 통합이 잘 되지 않았다.😂
prettier와 eslint는 나는 이전에도 사용해왔었고 현업에서도 거의 필수로 사용하는 추세라고 생각했기 때문에 팀원들도 이 기회에 사용해보면 좋은 경험이 될 수 있겠다고 생각되어 추천했었다. 또 storybook과 recoil도 후에 많은 사람들과 협업, 리액트 상태관리에 필요하다 생각되어 사용해보자는 의견을 제시했었다.

prettier는 컨벤션 때문이라도 필수였기에 사용했지만 다른 것들은 기존에 배운 걸 소화해내기도 바쁜데 새로운 것들을 적용해보는 것에 부담을 느끼는 팀원들도 있었기에 의견이 제대로 받아들여지지 않았고, 사용하고 싶은 사람만 사용하는 식으로 방향이 흘러갔다.

그래서 Storybook의 사용은 이번 프로젝트에서는 과감히 포기했다.
패키지 충돌이 날 수도 있고, merge와 pull 하는 과정에서 항상 Conflict를 수정해줘야 했기 때문이다.
반면에 Recoil은 혼자서라도 사용해보았지만, 데이터를 atom에 담아주어도 그걸 다른 페이지나 컴포넌트에서 제대로 활용하지 못했던 것이 아쉬웠다..

📌 문제 2. 비효율적인 시간 분배

팀원들 대부분은 항상 뭐든 "같이" 하고싶어 했다. 그래서 처음에 공통 컴포넌트를 만들 때 페어프로그래밍 형식으로 진행을 하였는데, 이게 시간적으로 굉장히 비효율적으로 느껴졌다.

물론 "같이해보자"는 의견은 이해가 갔다. 다른 팀원들이 코드를 작성하는 것을 실시간으로 보고 토론도 하다보면 어떤 생각을 가지고 코드를 작성해나가는지 생각을 공유할 수 있었고 그 과정에서 배우는 점도 많았다.

2~3명이서 컴포넌트를 같이 개발해보는 것은 좋은 경험이라고 생각하지만 우리 팀은 5명 전원이 함께 페어프로그래밍을 진행하였는데, 그러다보니 페어프로그래밍을 하는 도중 실질적으로 의견을 제시하고 코드를 작성하는 한두명 말고 나머지 팀원들은 그냥 구경만 하는 듯한 느낌이 들었다..
그러니 프로젝트 기간동안 시간을 효율적으로 써야하는데 그러지 못하고 있다고 생각했고 "이럴거면 그냥 각자 하는게 낫지 않을까?" 하는 생각이 들기도 했다.

예상대로 초반 공통 컴포넌트 개발에 많은 시간이 할애되어 프로젝트 중후반부에는 시간이 부족하다 느꼈다.
그래서 서비스를 구현하는 것에 초점을 맞추게 되었고 최적화하는 데에 더 많은 시간을 할애하지 못한 것이 아쉬움으로 남았다.



✨ 프로젝트 이후..

프로젝트를 하면서 시간 내에 프로젝트를 완성해내는 것은 아주 중요하다고 생각한다. 어쩌면 제일 중요한 것일 수도 있겠다. 하지만 시간을 좀 더 효율적으로 사용했다면 더 많은 경험을 해보고, 현업의 입장에서(CSR, SSR, 컴파운드 등) 더 많은 고민을 해볼 수 있었을텐데 하는 아쉬움이 남는다.

그래서 다음 프로젝트 진행 시에는 전체적으로 시간계획을 더 체계적으로 세우고 라이브러리도 프로젝트 시작 전에 미리 정해두어 다 같이 사용하며 활용하는 방식으로 의견을 제시해보려 한다. 또 단지 토이 프로젝트가 아니라 현업에서의 업무를 받았다고 생각하고 팀원들과 여러가지를 고민해봐야겠다.

그리고 이번 프로젝트는 개인적으로 리팩토링하면서 최적화를 해볼 예정이다.

  • 날씨 표시 기능 최적화(캐싱 or Recoil을 통해 매번 데이터를 불러오지 않게)
  • 로그아웃 시 페이지가 새로고침되는 걸 Form만 리렌더링 되게 수정
  • 렌더링 필요없는 ui는 display: none 처리
  • ...

4개의 댓글

프로젝트 수고 많으셨어용!! 타입스크립트도 아자자 화이땡~

1개의 답글
comment-user-thumbnail
2024년 2월 4일

고생하셨어요 ! 다음에도 힘내보죠 !

1개의 답글