branch ver1
으로 이동 후,
> yarn
> yarn start # http://localhost:3000
Next.js
, Typescript
eslint
, prettier
lint-staged
, husky
: 커밋 전 staged 상태의 파일에 eslint와 prettier을 적용하여 git history 내 동일한 formatting 유지하도록 합니다.tailwindCSS
twin.macro
을 같이 사용함으로써 컴포넌트와 스타일 로직을 분리하였습니다./attractions?page={number}&per_page={number}
next/link
는 기본적으로 페이지 최상단으로 스크롤 하도록 동작하기 때문에 이 기능을 그대로 사용하였습니다./attractions/:id
react-query
, contextApi
fetcher
함수 작성하여 여러 method, body, params, header로 요청/응답할 수 있게 하였습니다.js-cookie
를 사용하여 token 값은 물론 expiresIn도 관리하도록 하였습니다.react-query
에 필요한 fetch 함수는 /repositories
내 하나의 객체로 묶어 CSR 뿐만 아니라 SSR에서도 간편하게 불러올(import) 수 있도록 하였습니다. SSR로 리팩도링 와중 일부 불필요하게 된 CSR query들은 /queries
에 모두 정리되어 있습니다.ref
로 DOM에 직접 접근하는 비제어 방식을 사용하려 했지만 forwardRef
로 감싸는 작업이 필요했습니다. 이런 불편함과 input value에 대한 에러 처리 역시 동시에 해결하고자 use-form-hook
을 선택하였습니다.yupResolver
를 사용하였습니다.400
page, per_page, attraction_id
값이 유효하지 않을 경우 렌더링합니다.401
404