면접 강의 2
리덕스의 필요성, 없는 경우 생길 수 있는 문제점
-
리덕스는 상태관리 라이브러리로 상태관리(업데이트, 상호작용 등)를 효율적으로 해주기 때문에 필요하다
-
만약에 없다면 state를 효과적으로 관리하기 어렵고 불필요한 렌더링들이 발생할 가능성이 크며 오류가 생겼을 경우 찾기가 어렵다.
-
관리 측면으로 필요하다. 리덕스는 상태(state)관리도구로 props, state를 좀더 잘 관리하게 만들어주며 없다면 props drilling이 발생한다. = 페이스북에서 생김
Redux에서 현재 상태의 state를 읽어오는 방법(훅)은 무엇인가요? 사용방법은 어떻게 되나요? 화살표 함수와 일반 함수로 각각 구현해주세요.
const target = useSeletor((state)=> state.target)
fuction target({
useSelector()
})
- 화살표함수는 return을 생략할 수 있는데, 습관적으로 사용하다보니 일반 함수 구현하는 것도 필요하다.
const users = useSelector(state ⇒ state.users) ===⇒ return 생략
const users = useSelector(state ⇒ { return state.users })
const user1 = useSelector(function (satae) { return state.users });
Redux에서 상태(state)를 변경하는 방법은 무엇인가요?
- useDispatch를 통해 action을 담아 reducer에 보냅니다. 그리고 action type에 따라 action payload을 활용해 상태를 변경하는 로직을 수행합니다.
redux thunk가 무엇인지 설명해주시고, 단점으로 주요하게 거론되는 점이 있다면 말씀해주세요.
- redux thunk는 비동기 작업을 할 때 쓰는 미들웨어의 종류로 보일러 플레이트 설정이 길고 귀찮다는 단점이 있다(유지보수에 많은 손이 간다).
리액트의 useCallback, useEffect등을 사용할 때 의존성 배열을 받게 됩니다. 이 배열의 역할은 무엇인가요?
- 배열에 변수명이 들어가고 해당 변수에 변화가 생기는것을 감지해 useCallback, useEffect 와 같은 함수 블록 안에서 로직을 처리하고 리렌더링이 진행됩니다
map 함수를 사용하여 컴포넌트를 그릴 때, key props를 내리는 이유가 뭘까요?
- key중점적으로 구분하기 때문에 임의로 할당되기 때문에 key props를 내리는 것. 그래서 버츄얼 돔이 인식할 수 있도록한다.