👉🏻 리액트는 SPA 이기 때문에, 배포하게되면 S3서버에서는 index.html파일 하나만 있다고 인식하여, /login 이렇게 direct로 접근하게 되면 Access denied가 뜨게됩니다. (따로 옵션을 해줘야한다..)
한개의 페이지를 가진 어플리케이션
SPA는 클라이언트 사이드 렌더링이지만 SPA === CSR
장점
최초 요청시 html을 비록해 CSS, Javascript 각종 리소스를 받아온다.
서버에 데이터만 요청하고, 자바스크립트로 뷰를 컨트롤 한다.
초기요청에서 SSR 보다 많은 리소스를 요청하기 때문에 SSR보다 느리다.
하지만 이후에 다른페이지로 이동시 SSR보다 빠른 전환속도 더 나은 사용자 경허믈 제공한다.
검색엔진들은 웹사이트의 올려진 html을 분석해서 (여기에는 이런 title과 이런 컨텐츠가 있으니깐 특정 검색어로 찾아질수 있는 사이트라고) 검색엔진에 올려놓는다.
리액트 SPA방식이고 index.html 하나만 존재한다.
크롤러가 그 페이지를 읽으면 빈 index.html(컨텐트가 없다고) 만 있다고 인식한다. 이것을 해결하기위해서 react-helmet 라이브러리를 통해 meta-tag를 넣어줘서 검색엔진 최적화에 조금이나마 도움이된다.
각 컴포넌트에 helmet을 이용해서 meta 태그를 넣어준다.
기본 리덕스만 쓰게되면 동기 작업밖에 안된다. 비동기 작업(서버에 요청 응답, 외부 API 연동)를 사용하기위해 middleware에서 처리한다.
프로미스는 자바스크립트에서 제공하는 비동기 처리를 할수 있도록 도와주는 객체이다.프로미스 객체를 반환한다.
특정 코드의 실행이 완료될때까지 기다리지않고, 다음코드(동기)를 먼저 실행하는 것
ex) setTimeout, ajax, 리덕스 state
출처 : 링크텍스트
스코프의 시작 지점부터 초기화 시작 지점까지의 구간을 TDZ(Temporal Dead Zone) 라고합니다.
출처 : 링크텍스트