[TIL] 프로젝트 회고

양주영·2021년 10월 9일
0

TIL

목록 보기
1/13

🤔 프로젝트 회고 W.A


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


미들웨어는 객체 대신 함수를 생성하는 액션 생성함수를 작성할수 있도록 도와줍니다.
리덕스는 기본적으로 액션 객체를 디스패치하기 때문에 함수를 생성하면 특정 액션이 발생하기 전에 조건을 주거나, 어떤 행동을 사전에 처리할 수 있습니다.



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


자바스크립트의 비동기 처리란 ‘특정 코드의 실행이 완료될 때까지 기다리지 않고 다음 코드를 먼저 수행하는 자바스크립트의 특성’을 의미합니다. 프로미스는 자바스크립트 비동기 연산이 종료된 이후 결과를 알기 위해 사용되는 객체입니다.
전통적인 콜백 패턴으로 인한 콜백 헬 때문에 ES6에서 도입한 또다른 비동기 처리 패턴입니다.
프라미스를 쓰면 비동기 메서드를 마치 동기 메서드처럼 값을 반환할 수 있고, 비동기 처리 시점에 대한 명확한 표현이 가능합니다.



💡 'Immer' 의 역할은?


‘immer’는 react에서 불변성을 유지하는 코드를 작성하기 쉽게 해주는 라이브러리입니다.
여기서 불변성은 ‘메모리 영역에서 값을 변경할 수 없다’는 의미입니다.
기존에는 불변성을 지켜주기 위해 spread 연산자를 통해 기존 객체를 복사하거나,
내장 함수(map, filter, slice, reduce 등)를 사용하여 업데이트를 해줬습니다.
‘immer’로 불변성 규칙을 지켜줌으로써 예상치 못한 부수 효과를 방지하고 프로그래밍을 단순하게 유지시키며 상태업데이트를 효율적으로 할 수 있습니다.

아래와 같이 produce 함수로 immer를 불러올 수 있습니다.
produce(currentState, producer: (draftState) => void): nextState

  • currentState : 현재 state
  • draftState : 현재 state의 프록시객체(복사판같은)
  • nextState : producer 함수가 반환하는 값


💡 Prototype 이란?


JavaScript에서 기본 데이터 타입을 제외한 모든 것이 객체입니다. 객체가 만들어지기 위해서는 자신을 만드는 데 사용된 원형인 프로토타입 객체를 이용하여 객체를 만듭니다. 자바스크립트의 모든 객체는 자신의 부모 객체와 연결되어 있습니다. 마치 객체 지향에서의 상속 개념처럼 부모 객체의 프로퍼티나 메소드를 상속받아 쓸 수 있습니다. 이때 만들어진 객체안에 __proto__(비표준) 속성이 자신을 만들어낸 원형을 의미하는 프로토타입 객체를 참조하는 숨겨진 링크가 있습니다. 이것을 프로토타입이라고 정의합니다.



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


TDZconst, let, class 구문의 유효성에 영향을 미치는 중요한 개념입니다. TDZ는 선언 전에 변수를 사용하는 것을 허용하지 않습니다.
▶️ 초기화되지 않은 변수가 있는 곳을 Temporal Dead Zone 이라고 합니다.




참조 >
https://ui.toast.com/weekly-pick/ko_20191014
https://hsp0418.tistory.com/171
https://joshua1988.github.io/web-development/javascript/promise-for-beginners/

profile
뚜벅뚜벅

0개의 댓글