less than 1 minute read

리덕스에서 미들웨어 청크(Thunk)의 역할은?

리덕스 미들웨어의 한 종류이며 간단한 동기 작업만이 가능한 리덕스에 비동기 작업이나, 웹 요청, 또는 저장소에 접근하는 복잡한 요청 등을 처리해주는 역할을 한다.

프로미스는 정확히 말하면 비동기가 아니다. 비동기와 프로미스는 각각 무엇일까?

  • 동기

  • 동기는 데이터의 요청과 결과가 한 자리에서 동시에 일어나는것을 의미한다.

  • 사용자가 데이터를 서버에게 요청한다면 그 서버가 데이터 요청에 따른 응답을 사용자에게 다시 리턴해주기 전까지 사용자는 다른 활동을 할 수 없으며 기다려야만 한다.

  • 비동기

  • 비동기는 동시에 일어나지 않는다는 의미로 해석된다.

    서버에게 데이터를 요청한 후 요청에 따른 응답을 계속 기다리지 않아도되며 다른 외부 활동을 수행하여도되고 서버에게 다른 요청사항을 보내도 상관없다

  • Promise
  • 비동기 동작을 처리하기 위해 ES6에 도입된 문법이다. 콜백 지옥 같은 코드가 형성되지 않게 하는 방안으로, 자바스크립트 내장 클래스이다. Promise 클래스를 인스턴스화해서 promise 객체를 만들어 사용한다. 반환된 promise 객체로 원하는 비동기 동작을 처리한다.

TDZ(Temporal Dead Zone/일시적 사각지대)란?

var변수는 변수선언전에 선언와 초기화단계 동시진행. 그렇기때문에 변수를 선언하기전에 호출해도 undifined로 호출이 되는 호이스팅이 발생

let으로 선언된 변수는 var 키워드와는 다르게 선언단계와 초기화 단계가 분리되어서 진행됨

그렇기 때문에 실행 컨텍스트에 변수를 등록했지만, 메모리가 할당이 되질 않아 접근할 수 없어 참조 에러(ReferenceError)가 발생하는 것

let으로 선언된 변수는 var 키워드와는 다르게 선언단계와 초기화 단계가 분리되어서 진행됨 그렇기 때문에 실행 컨텍스트에 변수를 등록했지만,메모리가 할당이 되질 않아 접근할 수 없어 참조 에러(ReferenceError)가 발생하는 것

Tags:

Categories:

Updated:

Leave a comment