불변 데이터와 자바스크립트 클린 코드

목차

불변 데이터란 무엇인가?

불변 데이터란 한번 생성된 이후에는 수정할 수 없는 데이터를 말합니다. 예를 들어, 문자열은 수정할 수 없는 불변 데이터입니다. 한번 문자열을 생성하면, 그 값을 변경할 수 없으며, 새로운 문자열을 생성해야만 합니다. 이와 달리, 배열은 가변 데이터로서 값을 수정할 수 있지만, 불변 데이터와 달리 잠재적인 부작용을 유발할 수 있습니다.

불변 데이터의 장점

불변 데이터를 사용하면 여러 가지 이점을 얻을 수 있습니다.

  1. 예측 가능한 동작: 불변 데이터는 읽기 전용이기 때문에 예측 가능하고 안정적인 동작을 보장합니다. 데이터의 값이 변하지 않기 때문에, 예상치 못한 부작용을 방지할 수 있습니다.

  2. 성능 향상: 불변 데이터는 변하지 않기 때문에, 동일한 값을 가지고 있는 여러 개의 객체가 생성되지 않습니다. 이는 메모리 사용을 줄이고 성능을 향상시킵니다.

  3. 병렬 처리 용이: 불변 데이터는 여러 스레드나 프로세스에서 안전하게 공유될 수 있고, 동기화 문제를 해결할 필요가 없습니다. 이는 병렬 처리를 보다 쉽게 구현할 수 있게 합니다.

자바스크립트에서 불변 데이터 사용하기

자바스크립트에서는 기본적으로 문자열과 숫자 같은 원시 타입이 불변 데이터입니다. 하지만, 객체와 배열은 가변 데이터로서 값이 변경될 수 있습니다.

불변한 객체를 만들기 위해서는 다음과 같은 방법을 사용할 수 있습니다.

  1. Object.freeze() 메서드: 이 메서드를 사용하면 객체를 불변하게 만들 수 있습니다. 이 메서드를 호출한 이후에는 객체의 속성값을 변경하는 것이 불가능합니다.

  2. 라이브러리 사용: 자바스크립트에서는 불변 데이터를 다루기 위한 다양한 라이브러리가 있습니다. 예를 들어, Immutable.js는 불변 데이터 구조를 제공하고, update 함수를 통해 쉽게 값을 변경할 수 있도록 도와줍니다.

클린 코드와 불변 데이터

불변 데이터는 클린 코드를 작성하는데도 도움이 됩니다. 불변 데이터를 사용하면 코드의 의도가 명확해지고, 코드의 변경이 일어날 경우 예상치 못한 부작용을 방지할 수 있습니다. 또한, 불변 데이터를 사용하면 코드를 단순화하고 버그를 줄이는 데 도움이 됩니다.

클린 코드를 작성하는데에는 다음과 같은 룰을 따를 수 있습니다.

  1. 데이터를 수정하지 않고, 새로운 객체를 생성한다.
  2. 부작용을 유발할 수 있는 함수를 피한다.
  3. 전역 변수를 사용하지 않는다.

참고 자료

해시태그

#불변데이터 #클린코드