시간이 너무 빠르게 흘러가는 것 같다!
8월 회고 시작하겠습니다~
Vue 과제
- Vue와 typescript를 이용해서 영화 검색 사이트를 만드는 과제를 진행했다.
- 나빴던 첫인상과 달리 Vue를 왜 사용하는 지 알 것 같다.
- 라이브러리인 React와 다르게 프레임워크인 Vue는 제공하는 기능들이 정말 다양했고 하나하나 써보는 재미를 느끼며 과제를 진행했다.
컴포넌트의 순수성
- 다른 팀이지만 황준일 멘토님에게 코드 리뷰를 받는 기회가 생겼는데 Component의 순수성에 대해 생각하게 됐다.
- 내가 구현한 검색 바, 페이지네이션 컴포넌트들은 라우터 또는 상태에 강하게 의존하는 형태였다.
- 컴포넌트는 props를 받아 UI의 역할만 하게 함으로써 재사용성을 높여야 한다는 말씀을 해주셨다.
- 또 컴포넌트를 도메인에 한정시키지 말라는 말씀도 하셨다. 예를 들면 영화 정보를 출력하는 MovieCard라는 컴포넌트가 있었는데 "Movie"Card가 아니라 Card로 네이밍하면 다른 곳에서도 사용할 수 있는데 왜 Movie라는 도메인에 한정 시키냐는 말을 들었다. 이런 리뷰들을 듣고 컴포넌트에 대해 많은 생각을 해본 것 같다.
- 확장성, 재사용성이 높은 컴포넌트들을 구현하기 위한 사고방식을 조금 더 구체적으로 많이 배울 수 있었다.
네이밍
- 과제를 진행하며 layer를 분리시키려는 시도를 했다.
- 구현 과정을 이야기해보자면 Client, Searcher라는 클래스를 만들고 직접적인 통신은 Client가 하고 Searcher라는 클래스는 통신에 대한 관심(axios or fetch, api url과 같은 구체적인 구현사항)을 분리한다.
- 그리고 Searcher에 Client를 의존성 주입한다.
- Searcher은 Client의 함수를 호출하는 방식으로 진행했다.
- 하지만 이 또한 Client라는 네이밍때문에 통신에 대한 관심사를 분리한 것 같지는 않다는 말을 들었다. 차라리 Service라는 네이밍을 했으면 어땠을까라는 리뷰를 들었다
Vue 과제를 진행했지만 컴포넌트에 대해서도 많은 것을 얻은 것 같다
React
- 드디어 React를 시작했다.
- 7월부터 Storybook에 대해 궁금증이 많았었는데 이번에 강의를 들으면서 해소할 수 있어서 좋았다.
개인 공부
- 팀 프로젝트를 시작하기 전 팀끼리 자유롭게 React에 대해 공부하고 예제 코드를 쓰거나 이론을 공부해 발표하는 스터디를 진행했다.
- 나는 Next.js 강의를 듣고 이론을 정리하며 팀원들에게 발표하는 식으로 진행했다.
- 강의를 듣고 노트에 정리하고 팀원들에게 이해한 내용을 설명하기 위해 점검하다 보니 같은 범위를 세번 정도 공부하게 됐다. 덕분에 공부한 개념에 대해 깊고 확실하게 학습할 수 있어서 좋았다.
팀 프로젝트
팀 프로젝트를 시작했다. 깃허브 링크 깃허브 위키 링크
- 현재 첫번째 스프린트 기간인데 기획을 거의 마치고 개발 세팅 정도를 진행중이다.
- 팀 내에선 경험이 많은 편에 속해서 기술적으로 팀원들에게 많이 도와주는 중이다.
- 김나영 멘토님의 특강에서 하신 말씀 중에 작업 중간마다 문서화를 진행하고 팀끼리 문서 링크로 대화해 서로의 시간을 절약하라는 말씀이 있었다.
- 이를 참고해서 이번 프로젝트에서는 문서화와 도구를 통한 자동화 시스템을 만들었다.
- github flow 협업 설명서를 문서화해 노션에 공유
- husky, lint-staged를 이용해 잘못된 코드 포맷팅 코드 커밋 방지
- pre-push에서 build 명령어를 실행시켜 build error를 발생시키는 코드 push 방지
- commitlint, commitizen을 이용해 commit 템플릿을 만들고 커밋 컨벤션에 어긋나는 커밋 금지
- 멘토님이 팀 프로젝트에서는 기술을 제안한 사람이 책임지고 다른 사람들을 이끌어야한다고 하셨다.
- 내가 제안한 기술 스택이 3개정도 되서 약간 부담이 되긴 한다.
- 하지만 기술을 깊게 공부해 팀원들에게 설명해주는게 재밌어서 즐기면서 하고 있다.
팀 프로젝트를 무사히 마치면 좋겠다!