TIL - TDZ, 리덕스미들웨어

jake·2021년 10월 9일
0

TIL

목록 보기
13/54
post-thumbnail

TDZ (Temporal Dead Zone)

TDZ를 알기위해서는 우선 변수의 생성 3단계를 알아야한다..

[변수생성의 3단계]
선언-> 초기화 -> 할당

선언 : 실행 컨텍스트에 변수 객체를 등록
초기화 : 변수객체에 등록 된 변수를 위해 메모리에 공간 확보 (undefiend로 초기화)
할당 : undefiend로 초기화 된 변수에 실제 값 할당

var와 달리 let과 const는 변수를 선언전에 호출하면 ReferenceError가 난다.
var는 변수를 선언과 동시에 초기화하기 때문에 에러가 안난다.
let 과 const도 호이스팅이 되지만 선언만 될 뿐 초기화는 해당 코드 줄에 도착해야 되기 때문에 TDZ가 발생하는 것이다.

결론 : var 이제 쓰지말자.

호이스팅 : 엔진의 실제 동작 방식 대신에 자바스크립트 엔진은 식별자들을 최상단으로 끌어올려놓은 다음, 실제 코드를 실행한다

실행 컨텍스트 : 파일을 쭉 한번 훑어 보고 실행 환경 미리 준비하는 것
변수를 만들면 자바스크립트엔진이 변수를 쓰기 위해서 실행 컨텍스트에 변수를 등록을 한다.
선언, 초기화(메모리에 공간확보), 할당(공간에 값을 넣어주는것)을 거쳐 등록한다.


리덕스 미들웨어 청크

미들웨어는 액션이 디스패치 된 다음 리듀서에서 액션을 처리하기 전에 액션을 받아와서 액션을 취소시키거나 다른 종류의 액션을 추가적으로 디스패치하는등 업데이트 이전에 추가적인 작업을 할 수 있도록 도와주는 역할이다.
즉 리듀서 내의 어떤 로직이 실행되기 사이의 중간다리 역할을 해줄 함수들을 작성하는 공간
'


s3 버킷에 배포한 뒤, 어떤도메인.com이 아닌 어떤도메인.com/login 등 페이지로 이동하면 왜 오류가 날까요?

  1. 리액트의 라우팅 방식이 전통적 링크 방식이 아니기 때문. (전통적 링크 방식의 경우 주소창에 적힌대로 html 파일을 받아 보여준다면, SPA는 하나의 html을 두고 주소창에 적힌 대로 내용을 갈아끼우는 방식)
  2. s3 버킷의 정적 웹사이트 호스팅은 /login 경로에 맞는 html을 찾는 거고, 해당 html파일이 없기 때문에 404 에러가 나는 것.
  3. 에러 해결 방법은? s3가 어떤 상황이건 index.html을 보도록 설정해주는 것
profile
열린 마음의 개발자가 되려합니다

0개의 댓글