Q&A
- 프론트에서 Token을 디코딩해 사용하는 것
- 타협의 여지는 있다. 하지만 굳이…
- 실무에서는 그런 방식으로 사용하지 않을 것 같다.
- 프론트에서는 디코딩을 하지 않고, 백엔드에서 주는 데이터를 사용하는 것이 일반적이다.
- 서버에 큰 부담을 줄 것이라고 생각하지는 않는다.
- 토큰의 저장 방식
- access: 로컬, refresh: 쿠키
- 논란이 있는 부분
- refresh 토큰을 전역 데이터로 관리할 수 있지만, 오히려 노출이 많아질 수 있다.
- 토큰의 만료 시간 관리
- 프론트 측에서 토큰의 만료 여부를 판단한 뒤, 만료되었다면 서버에 재발급 요청을 보낸다.
- axios.interceptors.request
- 좋은 방향이라고 생각한다. 중요한 포인트.
- 반대로 만료 시간이 변경되었을 때, 불일치할 수 있는 문제가 있다.
현재 구현한 것은 response interceptor임 !! → 수정 필요함 (케이가 해주기로 했음 굿 👍)
- 전역 데이터
- userId, isLoggedin 외에 유저의 정보도 필요하다면 관리할 수 있다.
- 전역 변수를 되도록 많이 쓰지 않는 것이 좋다. 오히려 복잡해 질 수 있다.
피드백 🙇🏻♀️ 감사합니다
- 디자인이 구체적이지 못한 것은 어쩔 수 없는 부분.
- 그럼에도 불구하고, 디자인이 예쁘면 포트폴리오로서의 매력이 높아진다.
- 백엔드와의 API 관련 소통 경험이 중요하다.
- 아무리 좋은 툴이더라도, 무분별하게 도입하는 것은 좋지 않다.
- 깃허브만으로는 프로젝트를 관리하는 데 부족하다. 장기적 프로젝트라면 더욱 그렇다.
- 공통 컴포넌트의 재사용성, 확장성을 고민하는 것은 중요한 포인트
- 한 번 회의를 하더라도, 서로 간의 협의사항을 명확하게 하는 것이 중요하다.
그것이 개발 시간을 단축할 수 있는 방법이다.
- pages/api 지우기
- ReviewFeed 컴포넌트를 좀 더 작은 단위로 분리하는 것이 필요하다. 독립성을 보장하는 것이 필요하다.
<Section> <A></A> : A 데이터 <B></B> : B 데이터 <C></C> : C 데이터 </Section>
- styles.tsx 파일을 분리하는 것이 필요하다. 어지간하면 빼라.
- pages 폴더와 비슷하게 styles를 가져가는게 좋아보인다.
- moment 등의 라이브러리를 사용하는 것은 추천한다.
- 일반 프로젝트에서 dependency와 devDependency의 구분은 크게 중요하지는 않다.