본문 바로가기

React42

제너레이터(Generator) | Generator 란 ? 제너레이터의 핵심은 동시성 프로그래밍입니다. ( 동시성이란? 동시에 여러가지 일을 처리하는 것처럼 행동하는 것입니다. 병행과 병렬을 혼동하면 안됩니다. 병렬은 실제로 동시에 여러가지 일을 처리하는 것입니다. ) 동시성의 예로, javascript 는 싱글 스레드 입니다.( 이말은 ? 한 번에 한 가지 일 밖에 못 한다는 뜻 ) 하지만 실제로 javascript는 한 번에 여러 가지 일을 처리하는 것을 우리는 알고 있습니다. ex) ajax 요청을 한다고 해서 "응답이 올 때까지 시스템은 멈추지 않는다." 결론은 javascript 는 싱글 스레드이지만, event 루프를 통해 동시성 을 지원하고 있습니다. 제너레이터는 이터레이터에 의존하는 개념으로, 이터레이터를 사용해 자신의.. 2021. 2. 23.
리덕스 reselect 사용하기 reselect를 알기 전, Selector를 먼저 알아야합니다. | Selector란 ? state 에서 필요한 데이터를 가져오거나, 계산을 수행해서 원하는 형태의 데이터를 가져오는 역할을 말합니다. 왜 사용할까? selector는 Redux가 적은 양의 필요한 데이터만을 갖고 있게 data들의 연산을 도우며, state를 가져오는 컴포넌트들과 state의 구조 사이에 1개의 층(selector)를 두어 구조가 바뀌어도 연관된 모든 컴포넌트를 바꿀 필요 없이 selector 만 바꿔주면 성능이 향상되기 때문에 사용합니다. | reselect 란? selector 역할을 수행하면서 캐싱을 통해 동일한 계산을 방지해 성능을 향상시켜줍니다. 연산을 효율적으로 처리할 수 있게 도와주는 역할을 합니다. 즉, 새.. 2021. 2. 22.
react-redux의 shallowEqual 사용하기 | react-redux Provider react-redux 는 root-container 에서 Provider 를 사용하여 store 값을 할당해주면 됩니다. Provider components 에서는 리액트에서 action 이 처리 됐을 때, 이벤트를 받아서 하위에 있는 다른 컴포넌트가 다시 렌더링 될 수 있도록 도와주는 역할을 합니다. 활용 예시 import { Provider } from 'react-redux'; //store를 가져옵니다 //여기서 첫 번째 인자인 reducer는 combineReducers()등을 구현한 1개 이상의 리듀서들을 뜻합니다. store = createStore(reducer,window.__REDUX_DEVTOOLS_EXTENSION___?.()); export.. 2021. 2. 22.
redux-saga | Redux-saga란? redux-saga 는 리액트/리덕스 애플리케이션의 부수효과(Side-Effect) 라고 합니다. 특정 액션들이 스토어에 보내질 때, 여러 작업들을 함께 실행하기 위한 내부적인 함수를 감싸는 몇몇 helper effect 를 제공하며, function* 문법을 사용합니다. eX) fetching 이나 브라우저 캐시에 접근하는 순수하지 않은 비동기 동작들을 더 쉽고 좋게 만드는 것을 목접으로 하는 라이브러리입니다. Ajax 콜 비동기 타이머 애니메이션 후 콜백 요청 중 취소 스로틀링 디바운싱 페이지 이동 구성 Saga 는 액션을 구독하는 Watcher 와 실제 작업을 수행하는 Worker 의 구성을 따릅니다. Watcher watcher 함수 Worker exmapleWorker.. 2021. 2. 21.
CORS와 Webpack DevSercer Proxy | CORS 란 ? 브라우저에서 기본적으로 API를 요청 할 때 브라우저의 현재 주소와 API의 주소의 도메인이 일치해야만 데이터를 접근 할 수 있습니다. 만약 다른 API를 요청해서 사용 할 수 있게 해주려면 CORS 설정이 필요합니다. json-server 로 만든 서버의 경우에는 모든 도메인을 허용해주는 CORS 규칙이 적용되어있습니다. 하지만, Open API를 만드는게 아니라면 모든 도메인은 허용하면 안됩니다. webpack 개발 서버에서 제공하는 Proxy 기능을 사용하여 도메인을 사용해 봅시다. | Proxy 설정 웹팩 개발서버의 프록시를 사용하게 되면, 브라우저 API 를 요청 할 때 백엔드 Server에 직접적으로 요청을 하지 않고, 현재 개발 서버의 주소로 요청을 하게 됩니다. 그러면 .. 2021. 2. 18.
redux-thunk란? | redux-thunk redux-thunk는 리덕스에서 비동기 작업을 처리 할 때 가장 많이 사용하는 미들웨어입니다. 이 미들웨어를 사용하면 액션 객체가 아닌 함수를 디스패치 할 수 있습니다. 함수를 디스패치 할 때에는, 해당 함수에서 dispatch 와 getState 를 파라미터로 받아와야 합니다. 이런 함수를 만들어주는 함수를 thunk 라고 부릅니다. thunk 사용 예 const getComments = () => (dispatch, getState) =>{ //여기서는 action을 disaptch 할 수 있습니다. //또한 getState 를 이용하여 현재 상태로 조회가 가능합니다. const id = getState().post.activeId; //요청이 시작했으을 알리는 액션 dis.. 2021. 2. 18.