주특기 회고의 날.. 험난했던 리액트 심화주차가 막을 내렸다. 오늘은 공통 과제인 Wrap-up Assignment를 팀원 분들과 함께 풀어봤는데, 주어진 키워드와 팀 자체적으로 선정한 질문들을 중심으로 정리한 개념들을 오늘의 TIL로 써본다.
리액트의 라우팅 방식이 전통적 링크 방식이 아니기 때문. (전통적 링크 방식의 경우 주소창에 적힌대로 html 파일을 받아 보여준다면, SPA는 하나의 html을 두고 주소창에 적힌 대로 내용을 갈아끼우는 방식)
s3 버킷의 정적 웹사이트 호스팅은 /login 경로에 맞는 html을 찾는 거고, 해당 html파일이 없기 때문에 404 에러가 나는 것.
에러 해결 방법은? s3가 어떤 상황이건 index.html을 보도록 설정해주는 것
메타태그를 페이지에 맞게 조절해준다. 그리고 검색봇이 해당 메타태그를 미리 읽어갈 수 있도록 서버사이드 렌더링 처리 혹은 pre-rendering처리 해준다.
더 알아보면 좋을 키워드 : SSR
액션 객체를 dispatch하는 대신 함수를 dispatch할 수 있도록 해준다. dispatch한 함수는 dispatch, getState, 그 외의 직접 설정한 값을 받아 사용할 수 있다.
비동기 처리 등에 사용할 수 있다.
비동기 처리란?
Promise란?
비동기는 요청을 보내고 해당 요청에 대한 응답을 기다리는 대신 다음 동작을 실행하는 방식.
프로미스는 비동기 처리에 사용되는 객체. (비동기 자체는 아니다.)
19조 자체 질문!
✍️ 세션 vs 쿠키 vs 토큰
- 쿠키: 클라이언트(브라우저) 로컬에 저장되는 키와 값이 들어간 작은 데이터 파일
- 세션: 사용자 정보 파일을 서버에서 관리 (사용자에 대한 정보를 서버에 두어서 보안은 좋지만 서버 메모리를 많이 차지 할 수도 있음)
- 토큰: 토큰을 이용하면 로그인 정보 같은 예민한 데이터들이 매번 서버와 브라우저를 오갈 필요 없이 인증 절차를 수행할 수 있다. 또한 세션과 같이 데이터를 서버에 저장할 필요가 없기 때문에 서버 부하를 줄이는 데에 효과적 이기도 하다.
✍️ 리덕스를 사용하는 이유!
리액트에서 데이터는 단방향(부모에서 자식 방향으로)으로 흐르기 때문에 자식컴포넌트에서 부모컴포넌트의 데이터에 접근할 수 없습니다. 리덕스는 모든 컴포넌트에서 접근할 수 있는 전역 데이터를 관리해주는 라이브러리 입니다. 리덕스는 데이터를 저장하는 스토어와 데이터에 접근해서 데이터를 수정할 수 있는 리듀서가있습니다.