JavaScript

Promise의 기능과 필요한 이유는 무엇인가요?


Promise는 자바스크립트 비동기 처리에 사용되는 객체입니다.

Promise가 필요한 이유는 주로 서버에서 받아온 데이터를 화면에 표시할 때 사용하기 위함입니다. Promise를 사용하지 않고 서버에 요청을 보내고 데이터를 화면에 표시하려고 하면 데이터를 받아오기도 전에 화면에 표시하려고 하니 오류가 발생하고나 아무것도 없는 화면이 나타나게 됩니다. 이런 비동기 작업을 처리하기 위해 Promise를 사용합니다.

순수함수란 무엇인가요? 불변성과 사이트 이펙트와 연결하여 설명해주세요.


순수함수란 오직 함수의 입력만이 함수의 결과에 영향을 주는 함수를 의미합니다.

예를 들어 함수의 매개변수로 들어온 객체가 전역에 있는 객체를 얕은 복사를 한 상태로 넣어줬다고 가정했을 때 함수 내에서 이 매개변수의 값을 변경하게 되면 전역에 있는 객체의 값도 변경되게 됩니다. 이런 경우에는 이 함수를 순수함수라고 할 수 없습니다.

React

React의 state와 props에 대해서 설명해 주세요.


props는 컴포넌트의 속성(property)을 의미합니다. 이 속성은 상위 컴포넌트로부터 전달받은 값으로 객체형태입니다. 그리고 이 객체는 읽기 전용이기 때문에 함부로 변경되지 않아야 합니다.

만약 props를 직접 수정 시에는 상위 컴포넌트 값에 영향을 미칠 수 있게 됩니다. 즉, 의도치 않은 side effect가 발생합니다.

state는 컴포넌트 내에서 변할 수 있는 값입니다. React 컴포넌트는 state가 변경되면 새롭게 호출되고, 리렌더링이 됩니다.

state는 상태 변경 함수 호출로 변경해야 합니다. 강제로 변경을 시도하면, 리렌더링이 되지 않는다거나, state가 제대로 변경되지 않습니다.

React 컴포넌트의 key 속성에 대해서 설명해 주세요.