상태 관리
- 배우는 입장에서 페이지네이션 구현 시 탠스택 쿼리를 꼭 안 써도 된다.
- 리팩토링 과정에서 공부하면서 같이 적용하면 좋을 듯 하다.
- 전역 상태 관리가 필요한 경우
- 도메인이 달라지면 state가 날아간다. 원래 있던 데이터가 필요할 때 전역 상태 관리를 써야한다.
- props를 여러군데 내려줄 때 contextAPI를 사용하면 된다. 전역 상태 관리를 잘 쓰진 않는다.
- 전역 상태 관리가 필요하지 않은 경우까지 쓰게 되면 무슨 역할하는 지 명확하지 않게 된다.
프로젝트 기능 분할 설계
- 모달 3종류를 어떻게 분리해야하는지 / 특정 부분에서 쓰이면 그 특정 부분 관심사에 넣는 게 맞다. / 여기 저기서 쓰는 모달은 shared 폴더에 넣어야 한다.
- 상세 필터는 모달, 팝업, 플로팅 박스 등으로 부르긴 한다.
- API 데이터 형식 타입을 외부에 정의할 필요가 없다. 바로 보이게 하는 게 좋다.
- 각각 기능적인 페이지니까 features라고 해도 괜찮을 듯하다. / pages 라우팅을 위한 폴더는 따로 만들어야 한다.
- auth, announcement, myShop, myProfile 등으로 나눠도 좋다. / 위계 관리를 잘해야 한다.
- widgets, app은 필요가 없을 것이다.
- 관심사 2개 이상에서 쓰이면 shared로 보내야 한다.
- 가게 정보 등록과 편집 페이지를 나누는 게 좋다. 공통 ui가 있으면 layout을 넣으면 된다.
NEXT.js에서 사용하지 말아야 할 라우팅을 제외해야 할 폴더 명: app, pages
코드 리뷰를 할 때 코드 뿐 아니라 폴더구조도 봐야한다.
테일윈드 관련
- 민호님은 테일윈드를 사랑하신다…
- classNames 라이브러리를 사용하면 좋다.
- class 이름이 길어져도 괜찮다. 어차피 수정할 때 밖에 안 본다.