-
Notifications
You must be signed in to change notification settings - Fork 5
sprint 회고록
won jong bin edited this page Apr 1, 2022
·
27 revisions
Liked, Learned, Lacked
- 계획했던 대부분의 업무들을 처리하여 예상보다 진행속도가 순탄한 것 같습니다.
- 이번 sprint에서 html,css을 많이 담당해서 평소에 약했던 부분을 학습해보는 기회가 되었습니다.
- 기존의 redux와 redux toolkit의 다른점에 대해 학습해보고, 비동기 action에 대해 학습해보았습니다.
- typescript 사용에 좀 더 익숙해지고 개념을 다질 수 있었습니다. (type alias vs interface)
- 코드리뷰와 커뮤니케이션에 신경을 덜 써서 더 적극적으로 참여해야겠습니다.
- issue와 PR 관리에서 정해진 template에 따라 작성하다 보니 일관성이 있어서 좋았습니다.
- 자신의 PR을 자신이 confirm 하는 것이 아니라 다른 사람의 PR을 받아주며 자연스럽게 코드리뷰가 가능해져서 좋았습니다.
- Firebase의 사용법에 대해 익숙해졌습니다.
- 데이터 렌더링 시 비동기에 관한 부분이 많아서 Promise와 비동기에 대해 조금 더 알게 된 것 같습니다.
- 오프라인으로 소통을 하다보니 issue나 PR부분에서 댓글을 다는 경우가 별로 없었습니다. 앞으로는 적극적인 댓글을 통해 온라인으로도 소통이 편하도록 노력하겠습니다.
- 저의 작업을 하기에도 시간이 부족하다 보니 다른 사람의 코드를 볼 수 있는 시간이 적었던 것 같습니다. 앞으로는 코드리뷰에 시간을 조금 더 할애하고 싶습니다.
- 검색창의 사용성을 개선했습니다. 사용자의 입장에서 고려해보며, 개선시켰다는 점이 좋았습니다.
- 웹 접근성을 고려한 필터 컴포넌트를 만들어보면서 '망고플레이트는' 왜 이런 방식으로 만들었는지 고민해보는 계기가 됐다.
- form태그의 기본 동작을 이용해 사용성을 쉽게 높이는 방법을 알게됐습니다. SearchBox 컴포넌트에서 사용자의 사용성을 높이기 위해 키보드로만 창을 닫을 수 있게 만들었습니다. 의 submit 이벤트를 통해 쉽게 해결할 수 있는 문제였습니다. 하지만 이를 고려하지 못하고, 여러 태그들에 이벤트 핸들러를 달게 됐고 가독성이 떨어지는 코드를 쓰게 됐습니다.
- 왜 동작하지 않는지에 대한 고민이 부족했던 것 같습니다. 동작이 된다면 왜 동작이 되고, 안되는지 확실하게 알려고 노력이 필요한 것 같습니다. 그리고 두 가지 방법을 비교 분석을 해보는 습관을 가져야겠습니다.
- 리액트를 다루게 되면서 컴포넌트별로 재사용을 하면서 효율적이라는 생각을 할 수 있었습니다.
- 각자의 할일을 분업하고 진척상황을 공유하면서 효율적인 스케줄 관리가 좋았습니다.
- prop이 하위 컴포넌트로 계속 전달이 되는 과정에서 효율적이지 못함을 알게 되었습니다. 따라서 상태관리 라이브러리를 이용하거나, 컨택스트를 알아보려고 합니다.
- 다른 사람의 코드를 리뷰할 시간이 부족했다고 생각합니다. git의 커멘트를 이용해서 적극적인 의사소통을 아용하려고 노력하겠습니다.
- 보다 효율적인 코드를 작성하지 못했다고 생각합니다. 별도의 시간을 통해서 코드 리팩토링의 필요성을 느꼈습니다.
Liked, Learned, Lacked
- 알고 있던 개념이지만, 옆에서 코드 구현하는 것을 지켜보면서 기존의 개념을 보충할 수 있었습니다. (이벤트 전파, 인증인가, 프로미스)
- 코드리뷰와 댓글을 통한 의사소통이 이전보다 활발히 진행되었습니다.
- 서버를 직접 운영하는 것이 아니라 firestore를 사용하면서 프론트엔드 개발자가 무관심할 수 있는 데이터베이스의 개념에 대해 학습했습니다.
- 공용 컴포넌트를 만들고, custom hook을 만들어 재활용했습니다.
- 이번주에 팀내의 코로나와 개인적인 이슈들로 인해 해야 될 양보다 많이 해결하지 못해서 아쉽습니다.
- 모든 팀원이 Firebase의 store을 경험해 볼 수 있는 스프린트였던 것 같습니다.
- 저번 sprint보다 코드리뷰가 활발히 이루어졌습니다.
- 웹 스토리지에 대한 이해도가 높아졌습니다
- redux toolkit 사용으로 redux를 통한 상태관리에 대해 배웠습니다.
- 팀원 코로나 이슈와 면접준비로 인한 진도를 못채운 것에 대한 아쉬움이 있습니다.
- 다른 사람의 코드를 읽고 이해하는 시간을 가질 수 있었습니다.
- 컴포넌트 별로 분리가 되어있어 다른 사람의 코드를 재사용하는 등 리액트스러운 코드를 작성하려고 노력했습니다.
- FireBase 및 Strage의 사용에 익숙해질 수 있었습니다.
- useEffect를 사용할 기회가 많아 다양한 동작들을 수행해볼 수 있었습니다.
- FireBase를 서버처럼 사용해 어려운 부분 및 속도 측면의 아쉬움이 생겼습니다.
- Firebase의 store을 경험해보고 직접 데이터를 가져오는 과정을 경험해서 좋았습니다.
- 컴포넌트화를 시키면서 redux를 사용할 수 있어서 좋았습니다.
- Redux를 왜 사용하는지 컴포넌트화를 시키면서 직접 체감할 수 있었습니다.
- 컴포넌트를 만들면서 다른 곳에서는 사용될 수 없는 경우들이 있었습니다. 다른 곳에서도 사용이 될 수 있게 스타일을 신경써서 짜야되는 것을 느꼈습니다.
- 성능을 고려하지 못한 코드를 짜서 아쉽습니다. refactoring 과정에 usecallback, usememo를 적용해보려 합니다.
Liked, Learned, Lacked
- 다른 팀원이 작성한 코드를 사용하거나 내가 작성한 코드를 남이 사용하는 경우가 많아지면서 좋은 코드를 작성하기 위해 노력했습니다.
- 개발 뿐만 아니라 문서 작업을 위한 팀원 개개인들의 노력으로 문서화가 이전보다 많아졌습니다.
- spa 환경에서 react-helmet을 사용해서 seo를 최대한 최적화 하는 방법에 대해 학습했습니다.
- 반복해서 사용되는 함수의 경우 제네릭을 사용해서 타입을 지정하는 방법에 대해 익숙해졌습니다.
- 개인 프로젝트가 아닌 팀 프로젝트 환경에서도 배포하는 법을 학습했습니다.
- 처음에 데이터 구조를 잘못 설계해서 데이터 요청 횟수가 증가하면서 요청과 데이터를 가공하는 과정이 복잡해졌습니다.
- 일정 내에 기대했던 만큼의 구현을 완성하지 못해서 아쉽습니다.
- readme, wiki 문서화를 진행하여 프로젝트에 대한 전반적인 이해도가 증가하였습니다.
- 팀원 모두 오프라인으로 프로젝트를 진행하여 소통이 원활하게 이루어졌습니다.
- 서버와 클라이언트가 소통하는 과정에 대해 배웠습니다.
- 컴포넌트로 구현을 했더라도 실제로 재활용하여 쓰는 과정은 어렵고 고려해야할 부분이 많다는 것을 느꼈습니다.
- Firebase의 데이터베이스를 사용하다 보니 프론트측면에 투자할 시간이 줄어들어서 아쉽습니다.
- 기능 구현에 시간을 할애하다보니 performance측면에서 놓친 부분이 많은 것 같아 아쉽습니다.
- 평소 궁금했던 스켈레톤 UI를 적용해보았습니다. UX 측면에서 보기 좋았습니다.
- 팀원들끼리의 소통이 원활했습니다. 서로의 진행상황을 체크하고 막히는 부분을 같이 풀어나갈 수 있었습니다.
- 디스패치를 사용해보았습니다. 모호했던 개념이 조금씩 잡혀가는 것 같습니다.
- light house 점수를 개선하는 과정에서 성공적이지 않았지만 캐싱, 접근성, 소스맵 등에 대해서 알 수 있었습니다.
- 구현하려고 했던 내용을 모두 구현하지 못해 아쉽습니다.
- 코드 리팩토링을 진행하지 못해서 아쉽습니다. 추후 개인적으로 진행해보려고 합니다.
- 필터의 렌더링 성능 개선과 tabable이 가능하도록 만들어 웹 접근성을 높여본 것이 좋았습니다.
- z-index를 동적으로 설정해 검색창이 Portal에 막히지 않게 설정해보는 것이 좋았습니다.
- React.memo를 이용해 리렌더링을 방지하고 lazy Loading을 사용해 성능 개선하는 법을 배웠습니다.
- 필터 컴포넌트를 Props를 사용해 구현했습니다. 그 과정에서 props를 state와 setState 함수를 6개이상 인수로 받아서 구현을 해야 했습니다. 하지만 rudux를 사용해 구현했다면, 키워드로 검색된 데이터와 filtering된 데이터 2개의 변수를 가지고 좀 더 편하게 구현할 수 있다는 것을 알게 됐습니다.
- 검색창의 웹 접근성 측면에서 사용자의 편의성을 높이기 위해 방향키를 이용해서 더욱 편리한 접근성을 제공하지 못한 것이 아쉽습니다.