React/React에서 Recoil로 상태관리하기

Recoil을 사용한 React 상태 관리(1): Recoil 개요 및 설치

atomicdev 2024. 10. 14. 14:40
728x90

강의 1: Recoil 개요 및 설치

1. Recoil 소개

Recoil은 React 애플리케이션에서 상태 관리를 쉽게 하기 위한 라이브러리입니다. 전통적인 상태 관리 방식인 Redux나 Context API와 달리 Recoil은 더 간단하고 직관적으로 상태를 관리할 수 있습니다. 각 컴포넌트가 독립적으로 상태를 유지할 수 있는 Atom과 파생된 상태를 계산해 주는 Selector를 통해 복잡한 상태 관리도 쉽게 처리할 수 있습니다.

상태 관리의 필요성

상태 관리는 애플리케이션에서 데이터가 어떻게 흐르고, 어떻게 저장되고, 어떻게 업데이트되는지를 제어하는 중요한 부분입니다. 애플리케이션이 커질수록 상태 관리가 복잡해지는데, Recoil은 이러한 복잡성을 효율적으로 관리하는 데 큰 도움을 줍니다.

Recoil 개요 및 설치

2. Recoil vs. 다른 상태 관리 라이브러리

  • Recoil vs. Redux
    Redux는 중앙 집중식 상태 관리가 가능하지만, 복잡한 설정과 보일러플레이트 코드가 많습니다. 반면, Recoil은 더 간단한 API와 Atom을 통해 분산된 상태 관리가 가능합니다.
  • Recoil vs. Context API
    Context API는 React에서 상태를 글로벌하게 사용할 수 있게 해주지만, 대규모 애플리케이션에서 성능 문제를 일으킬 수 있습니다. Recoil은 더 나은 성능과 효율적인 상태 관리를 제공합니다.

3. 프로젝트에서 Recoil 설치 및 설정

3.1 기본 프로젝트 생성

먼저, React 프로젝트를 생성합니다.

npx create-react-app my-recoil-app
cd my-recoil-app
 

3.2 Recoil 설치

다음 명령어를 실행하여 Recoil을 프로젝트에 설치합니다.

npm install recoil
 

3.3 Recoil 설정

React 애플리케이션에서 Recoil을 사용하려면 애플리케이션 루트에 RecoilRoot 컴포넌트를 추가해야 합니다. src/index.js 파일을 다음과 같이 수정합니다.

import React from 'react';
import ReactDOM from 'react-dom';
import { RecoilRoot } from 'recoil';
import App from './App';

ReactDOM.render(
  <RecoilRoot>
    <App />
  </RecoilRoot>,
  document.getElementById('root')
);
 

4. 실습: 간단한 Recoil Atom 생성

Recoil을 설치하고 설정한 후, Atom을 생성하여 상태 관리를 시작합니다. Atom은 상태의 기본 단위입니다.

src/atoms.js 파일을 만들고, 아래와 같이 Atom을 정의합니다.

import { atom } from 'recoil';

export const counterState = atom({
  key: 'counterState', // 고유한 키
  default: 0,          // 기본값
});
 

이제 App.js 파일에서 이 Atom을 사용하여 상태를 관리할 수 있습니다.

import React from 'react';
import { useRecoilState } from 'recoil';
import { counterState } from './atoms';

function App() {
  const [count, setCount] = useRecoilState(counterState);

  return (
    <div>
      <h1>Count: {count}</h1>
      <button onClick={() => setCount(count + 1)}>Increment</button>
      <button onClick={() => setCount(count - 1)}>Decrement</button>
    </div>
  );
}

export default App;
 

5. 요약

  • Recoil은 간단한 API로 분산된 상태 관리를 가능하게 해주는 React 상태 관리 라이브러리입니다.
  • RecoilRoot 컴포넌트로 애플리케이션에 Recoil을 적용하고, Atom을 사용해 상태를 관리할 수 있습니다.
728x90