-
[CS] 1일차 상태관리를 왜 할까요?Frontend/FE CS 2024. 3. 4. 17:27
기술면접 예상질문
1일차 예상 질문
상태관리를 왜 할까요? 그리고 평소 state 관리는 어떻게 하시나요?
상태(state)란 무엇인가?
React에서 상태관리를 어떻게 하느냐에 대한 답을 하기 전,
상태(state)란 react에서 무엇인가?상태의 정의는 웹 어플리케이션을 render하는데 있어 영향을 미칠 수 있는 값 이다.
react에서 페이지가 리렌더링 되는 가장 큰 예시 두가지는 props와 state이다.
상태가 렌더링에 영향을 주기 위한 값으로 존재하기 위해서는 한 가지 요소가 필요하다.
바로 동적인 값, 즉 변하는 값 이라는 조건이다.
그게 State 값이다.
간단하게 말해서 "변수"다.(주의* 변수는 변경되어도 화면이 바뀌지 않는다. 하지만 state는 변경되면 자동으로 화면이 바뀐다.)
React에서 상태관리를 하는 이유
그렇다면 React에서 이러한 상태를 관리해야 하는 이유는 뭘까?
위에서 말했다시피 react는 컴포넌트가 변화 할 때 리렌더링 되는 데
가상dom에서 변경된 부분만 캐치해서 실제 dom에 반영시켜준다.
이러한 리렌더링을 통해서 우리가 원하는 값을 변경시켜 보여줄 수 있다.
이 말을 보면 react자체가 상태관리를 해준다는거 아니야? 라고 볼 수 있는데 어느 부분에는 맞다.
useState Hook만 봐도 state를 만들고 setState함수로 그 state를 관리해준다.하지만 만약에 여러 컴포넌트가 한개의 상태에 접근하고 싶다면 어떻게 해야하지? 하는 질문에서
상태관리 라이브러리가 등장하기 시작했다.
* props
리액트는 대표적으로 단방향 데이터흐름 이라는 특징이 있다.
이는 data를 전달 할 때 부모 컴포넌트에서 자식 컴포넌트로만 데이터 전달이 가능하다는 점이다.
자식 컴포넌트 끼리 데이터 전달을 하고 싶다면 그들의 부모 컴포넌트에서 props를 다시 사용하여 연결해줘야한다.
하지만 여러개의 컴포넌트를 타고 내려가다 보면 props의 지옥이 펼쳐지고
이 props가 도대체 어디서부터 시작된건지 타고 올라가는 것이 쉽지 않아진다. (Props drilling)이 때문에 유지 보수 또한 어려워지게 된다.
이 때문에 등장 한 것이 상태관리 라이브러리이다.그리고 Redux는 그중 대표적인 상태 관리 툴이다.
3줄 요약
상태관리를 왜 할까요? 그리고 평소 state 관리는 어떻게 하시나요?
- state는 화면을 리렌더링 시키는 특징을 가지고 있다.
- 여러 컴포넌트에서 한 상태에 접근을 하고 싶어지는 경우가 생긴다.
- 편리한 상태관리와 유지보수를 위해서 상태관리가 필요하다.
- + 평소 자주 쓰는 상태관리 라이브러리를 말해보자.