불변 데이터와 자바스크립트 선언적 프로그래밍

목차

불변 데이터란?

불변 데이터는 생성된 후에 변경할 수 없는 데이터를 의미합니다. 즉, 데이터의 값이 변하지 않고 유지되는 것을 말합니다. 자바스크립트에서는 문자열, 숫자, 불리언 등의 원시 타입 데이터들은 불변 데이터입니다. 이러한 불변 데이터는 한번 생성되면 임의로 변경할 수 없으며, 새로운 값을 대입하면 이전의 값을 갖고 있던 변수는 새로운 값을 가리키게 됩니다.

선언적 프로그래밍이란?

선언적 프로그래밍은 원하는 결과를 얻기 위해 어떻게 해야 하는지가 아니라 무엇을 해야 하는지를 명시하는 프로그래밍 패러다임을 말합니다. 즉, 원하는 결과를 달성하기 위해 구체적인 절차나 알고리즘을 명시적으로 작성하지 않고, 데이터와 함수의 관계를 선언적으로 정의하여 원하는 결과를 얻는 것입니다.

불변 데이터와 선언적 프로그래밍의 장점

  1. 재사용성: 불변 데이터를 사용하면 데이터가 변경되지 않으므로 여러 곳에서 동일한 데이터를 사용할 수 있습니다. 이는 코드의 재사용성을 높여줍니다.
  2. 쓰레드 안정성: 불변 데이터는 여러 쓰레드에서 동시에 접근해도 안전합니다. 데이터가 변경되지 않기 때문에 동일한 데이터에 대해 동시에 여러 작업을 수행할 수 있습니다.
  3. 예측 가능한 동작: 불변 데이터와 선언적 프로그래밍은 부작용(side-effect)을 최소화하고 예측 가능한 동작을 제공합니다. 함수의 출력은 입력에만 의존하므로 동일한 입력에 대해 동일한 결과를 얻을 수 있습니다.
  4. 성능 향상: 불변 데이터는 자체적으로 변경될 필요가 없기 때문에 복잡한 데이터 구조를 복사하지 않아도 됩니다. 이는 성능 향상에 도움을 줄 수 있습니다.
  5. 디버깅 용이성: 불변 데이터는 한번 생성된 후에 변경되지 않기 때문에 버그를 찾기가 쉽고 디버깅이 용이합니다.

예시 코드

const data = [1, 2, 3, 4, 5];

// 데이터 변경하지 않고 새로운 배열 생성
const doubledData = data.map(item => item * 2);

console.log(data); // [1, 2, 3, 4, 5]
console.log(doubledData); // [2, 4, 6, 8, 10]

참고 자료