Skip to content

5주차 멘토링

Myeonghoe Song edited this page Nov 23, 2021 · 1 revision

2021-11-23

  • 참여자
    • J077_문혜현, J107_송명회, J218_홍승용, J219_홍종우, 성지현 멘토님
  • 시간
    • 19:30 ~ 20:45

멘토님 문의 드릴 사항

  • id, address 등의 recoil 값이 새로고침하면 사라지는데, 이를 유지하기 위해 session storage, local storage를 사용하려 합니다. 보안의 이유로 사용해도 되나요? 또는 fetch로 페이지 들어가기 전에 보내는 방식입니다
    • recoil에 넣어서 전역적으로 관리하고 새로고침 시에는 서버에서 다시 받아와서 저장하는 방식으로 사용
  • 컴포넌트가 렌더링되기 전에 뭔가 하고싶을 때? componentWillMount 대안. props로 내려주기 어려울 때
    • 그런식으로 하지 말고 "로딩중"을 표현해줘라. 그게 UX적인 측면에서 낫다.
  • refresh token DB에 저장?
    • 어차피 클라이언트에 저장된 refresh token(document ID)를 탈취하면 서버에서 미리 정의된 행동을 거쳐서 토큰을 재발급할 수 있기 때문에 DB에 저장한 건 번거로운 한 단계를 더 추가한 것밖에 안 된다.
    • 토큰 저장 장소: 쿠키, httpOnly, secure (HTTPS에서만), (토큰과 별도로)쿠키에 대한 만료시간
  • useCallback에 불 필요해 보이는 dependency를 모두 넣어주는 것이 맞는가요?
    • 팁1) props, state랑 관련 없는 함수는 컴포넌트 밖에 정의
    • 팁2) useEffect에서만 사용되는 함수는 useEffect 안에서 작성하고 호출
    • 팁3) props, state 영향받는 함수중 순수함수는 useMemo 외에는 useCallback
  • Modal URL 이동 후 Modal을 제거하면 Router를 한 번 타게 되는데, 이 때 (상태가 변경되지 않음에도) 전체 페이지가 재렌더링 되는 현상을 막는 방법?(크롱님 문의드리자!)
    • React.memo 를 통해 재렌더링 되지 않도록 설정
  • 헤더 버튼 시, PrivateRoute로 이동 시에 버튼을 2회 클릭해야 하는 이슈(크롱님 문의드리자!)
  • MongoDB Map document 한 번에 업데이트 하는 방법?
  • db에 저장한 refresh token을 로그아웃 할 때 삭제해 주어야 하나요? 로그인 할 때마다 refresh token을 새롭게 넣어줄 것이기 때문에 굳이 삭제하지 않아도 될 것 같은데 보안적 이슈가 있나 궁금합니다.
  • db의 index id를 jwt로 암호화해서 보냈는데(hash는 단방향 암호화라서 고려하지 않았습니다) 이렇게 해도 되나요?
  • foreach는 await를 통한 try-catch가 정상적으로 먹히지 않는 것 같습니다. (비동기 순차처리일 때) for - of만 가능한걸까요?
    • 병렬처리 시 Promise.all, 순차처리는 for - of 사용 참고블로그
  • 모달 뒤에 있는 background 컴포넌트가 불필요하게 재렌더링되는 현상이 만들어졌습니다. 이 부분을 어떻게 하면 최적화할 수 있을까요?
    • 우선 React.memo를 적용
    • 그런데 보니까 Netflix도 배경이 재렌더링된다..
  • 페이지에 로드하기 전에 토큰이 유효한지 검사하려 합니다. 비동기라는 점을 감안할 때 상위 컴포넌트에서 상태를 관리해주는 형식으로 하려고 합니다. 좋은 방법이 있을까요?
  • Docker 하는게 맞나?
    • DB는 보통 클라우드도 아니고 물리 컴퓨터에 띄운다.
    • 시간이 부족할 것 같은데, 시간이 있으면 NGINX랑 WAS 정도 도커로 띄워봐도 좋다
  • CSR 상황에서 서버를 이용해 렌더링 속도를 높이는 방법이 있다. 찾아볼것
    • lazy loading 외에도 있다
Clone this wiki locally