- 타입스크립트의 사용 시, any 타입으로 처리되는 상황을 지양하자.
- Cookie로 login 판단 → react -query
- 로그인 판별 시, useAuth hook에서 ‘loginData’ 쿠키에서 정보를 매 번 가져와 로그인 확인
- 그것보다는 cookie 데이터를 바탕으로 user정보를 fetching 해오는 것이 합리적
- cookie 자동으로 넘기기
- cookie를 일일이 불러와 request 해주는 것보다, cookie가 자동으로 채워지는 것이 안전하고 깔끔한 방향.
- api 호출 시 cookie 작업을 따로 하지 않아도 되도록
- Next.js 잔재
- Next.js → 그냥 react(with vite)로 마이그레이션 했는데, next.js의 흔적이 조금 남아있음.
- 지우는 것이 좋을듯
- Error boundary 강제되는 방식 수정
- react-query의 queryClient에서 suspense를 true로 켜주었는데, 이러면 error boundary로 써야하는 상황이 강제됨.
- query를 날릴 때, Promise 객체를 throw하고, 반대로 error 시에 Error 객체를 throw 하게 됨.
- 옵션을 잘 참고해서 Error 처리를 어떻게 할 지 고려해볼 필요 있음.
- tsc && 스크립트
- 아마 vite에 tsc 컴파일을 해줄 텐데, 굳이 tsc가 있는 까닭은?
- mutateAsync
- react-query의 mutate를 async로 쓸 수 있다.
- callback pattern처럼 미리 이 후 동작을 정의하는 것이 아니라, await으로 동작을 기다린 후에 과정을 정의할 수 있어서, 로직을 시간 순서대로 보기 편하다.
- jwt의 payload는 최소한의 정보만으로
- payload는 누구든 decode하여 알아낼 수 있음.
- JS의 내장 모듈로도 decode가 간단하게 가능. 일반적이고 비 보안적인 정보만을 담고, verify하는 데에만 쓰이는 것이 좋을 듯.
- static 메서드 지양
- TS 공식문서에 static 메소드를 지양해야 하는 이유 참고.
- 프로덕션에서는 라이브러리를 만들지 않는다.
- 이미 있는 라이브러리를 활용해 새로운 가치를 제공해주는 게 맞지, 이미 있는 기능을 굳이 다시 만드는 것은 좋지 못하다. 학습하는 데는 효과적이겠지만.
- 잘 구성된 라이브러리를 활용하도록 하자.