Promise
의 기능과 필요한 이유에 대해서 설명해주세요.
비동기적인 함수를 개발자가 원하는 순서로 제어하기위해서 Callback
함수를 이용해 비동기 함수를 순차적으로 제어 해줄 수 있다. 하지만 순서가 많아질 수록 Callback
함수의 사용 빈도가 많아지고 이렇게 많아진 Callback
함수의 빈도는 Callback Hell
로 연결되 코드가 길어지고 가독성 또한 안좋아진다. 이를 해결하기 위해 Promise
를 이용한다.
순수함수란 무엇인가요? 불변성과 사이드 이펙트와 연결하여 설명해주세요.
React의 state와 props에 대해서 설명해주세요.
state
란 React의 이펙트 훅 중의 하나로 컴포넌트 내부에서 변할 수 있는 값이다. JavaScript
의 변수 할당과 비슷한 성격을 보여주고 값을 변경할 수 있다는 장점이 있기 때문에 범용성이 좋지만 변수 할당 대신에 자주 사용하게 되면 그만큼 코드의 가독성이 떨어질 우려가 있을 수 있다.
props
는 컴포넌트의 속성을 의미한다. props
는 부모 컴포넌트로부터 전달받은 값이다. 그리고 props
는 함부로 변경될 수없는 읽기전용 객체 이다.
React 컴포넌트의 key 속성에 대해서 설명해주세요.
React에서는 컴포넌트를 렌더링 했을때 어떤 원소가 변경되었는지 빠르게 감지하기 위해 key
값을 사용한다. 만약 key
값이 설정되어 있지 않다면 DOM을 순차적으로 비교하면서 감지하기 때문에 속도저하의 원인이 된다.
useEffect의 dependency array에 대해서 설명해주세요.
함수 내에서 어떤 구현이 함수 외부에 영향을 끼치는 경우 해당 함수는 Side Effect
가 있다고 말한다. React에서는 컴포넌트 내에서 fetch
를 사용해 API
정보를 가져오거나 이벤트를 활용해 DOM을 조작할때 Side Effect
가 발생했다고 말한다. 이런 Side Effect
를 조작하기 위해서 useEffect
를 사용하는데 첫번재 인자로는 Side Effect
가 일어날때 실행시키고 싶은 함수를 입력한다. 두번째 인자로는 dependency array
를 입력 하는데 이는 첫번째 인자에서 실행시키고자 했던 함수를 내가 원하는 때에 실행하고 싶을때 넣어주는 조건이 담긴 배열이다.