코드 리뷰
- export default vs named default
- 코드 컨벤션 잘 지켜야 한다.
- axiosInstance 위치 변경 → 환경 변수 설정(확장성이 클 땐 더욱 중요)
- utils엔 순수 함수 등을 넣는다. toss slash 라이브러리 참고
- 동일한 파일에 훅을 만들 때 계층을 하나 더 두기보다 같은 계층을 두는 게 더 괜찮다.
- textarea 훅의 사용처?? 같이 사용하는 모듈은 가까이에 두는 게 좋다.
- Table: 비즈니스 로직을 담고 있는 컴포넌트를 공통 컴포넌트라고 할 수 있을까? →
또는 합성 컴포넌트 식으로 할 수 있다.
- jsx 컴포넌트 깔끔하게 표현하기 → data가 없을 때 리턴 조건을 먼저 표현하는 게 낫다. if (!data || !data.count){return null}을 하면 된다. 페이지네이션은 외부로 분리되는 게 낫다.
- 로컬 스토리지는 문자열을 항상 입력해줘야 한다. 객체를 로컬 스토리지에 저장할 때 JSON.stringfy를 해야한다. 아래와 같이 하면 키값을 따로 지정하지 않아도 된다.
- 불필요한 중괄호 쓰지 않기
- 라우팅 경로는 상수로 다루기 → 변경이 발생한 경우 모든 라우터 경로를 수정해야 한다. / 라우팅 경로 복잡해졌을 때 일일이 표기하는 게 힘들다.
- 버튼: 타입 속성 고려해야 한다.
- helper.ts: 이런 타입이 과연 좋나? 다른 개발자가 이 코드를 처음 봤을 때 알기 어려울 수 있다. / 높은 추상화로 리액트가 제공하는 타입을 더 추상화할 필요가 있나하는 의문이 들었다. → 코드는 사람이 잘 이해하는 게 좋은 코드다.
- YAGNI: 개발자들은 해당 기능이 필요하기 전까지 소프트웨어에 기능을 추가하면 안된다.
- NEXT.js에서 다이나믹 임포트를 사용한 것은 이슈를 해결하기 보다 틀어막는 느낌이다.
- Html lang=”ko”