Immer를 활용하여 리팩토링하기

리팩토링은 코드를 개선하고 유지보수하기 쉽게 만드는 과정입니다. 이를 위해 Immer를 사용할 수 있습니다. Immer는 불변성을 유지하면서 상태를 업데이트하기 위한 라이브러리입니다. Immer를 사용하면 간단하고 가독성이 좋은 코드를 작성할 수 있습니다.

Immer란?

Immer는 JavaScript의 불변성을 지원하기 위한 도구로, 기존 객체를 수정하지 않고 새로운 객체를 생성하는 방식으로 상태를 업데이트합니다. Immer를 사용하면 코드의 복잡성을 줄여주고, 개발자가 코드를 더 쉽게 이해하고 유지보수할 수 있습니다.

Immer의 사용법

Immer를 사용하기 위해 먼저 npm을 통해 패키지를 설치해야 합니다. 아래의 명령어를 통해 패키지를 설치할 수 있습니다.

npm install immer

이제 Immer를 사용하여 리팩토링을 해보겠습니다. 예를 들어, 다음과 같은 상태 객체가 있다고 가정해봅시다.

const state = {
  counter: 0,
  todos: [
    { id: 1, text: 'Buy groceries', done: false },
    { id: 2, text: 'Do laundry', done: true }
  ]
};

기존에는 상태를 변경하기 위해서는 복잡한 로직과 수많은 spread 연산자를 사용해야 했습니다. 하지만 Immer를 사용하면 훨씬 간단하게 상태를 업데이트할 수 있습니다.

import produce from 'immer';

const newState = produce(state, draftState => {
  draftState.counter++;
  draftState.todos[0].done = true;
});

Immer의 produce 함수를 사용하여 상태를 업데이트할 수 있습니다. produce 함수는 첫 번째 인자로 업데이트할 상태를, 두 번째 인자로 상태를 수정하는 함수를 받습니다. 함수 내부에서는 직접 상태를 변경하는 것처럼 작성할 수 있지만, Immer가 내부적으로 불변성을 유지해줍니다.

이처럼 Immer를 사용하면 코드의 가독성을 향상시키고 복잡한 로직을 단순화할 수 있습니다. 따라서 리팩토링 과정에서 Immer를 활용하면 개발자의 생산성을 높일 수 있습니다.

#React #Immer #리팩토링