[javascript] Immutable.js에서 제공하는 주요 자료구조는 무엇인가요?
- List: Immutable 배열로, 원본 배열을 수정하지 않고 새로운 배열을 생성하며, 일반 배열과 동일한 메서드를 제공합니다. 예를 들어,
.push()
,.pop()
,.splice()
등의 메서드를 사용할 수 있습니다.
const { List } = require('immutable');
const myArray = List([1, 2, 3]);
const newArray = myArray.push(4);
console.log(myArray); // List [1, 2, 3]
console.log(newArray); // List [1, 2, 3, 4]
- Map: Immutable 객체로, 키-값 쌍을 저장하는 컨테이너입니다. 키와 값을 추가, 수정, 삭제할 수 있으며,
.get()
,.set()
,.delete()
등의 메서드를 사용할 수 있습니다.
const { Map } = require('immutable');
const myMap = Map({ name: 'John', age: 25 });
const newMap = myMap.set('age', 26);
console.log(myMap); // Map { "name": "John", "age": 25 }
console.log(newMap); // Map { "name": "John", "age": 26 }
- Set: 중복되지 않는 값을 저장하는 컨테이너로, 배열과 유사한 메서드를 제공합니다.
.add()
,.delete()
,.has()
등의 메서드를 사용할 수 있습니다.
const { Set } = require('immutable');
const mySet = Set([1, 2, 3]);
const newSet = mySet.add(4);
console.log(mySet); // Set [1, 2, 3]
console.log(newSet); // Set [1, 2, 3, 4]
- Record: Immutable한 객체를 생성하기 위한 팩토리 함수로, 자체적으로 고정된 구조를 가집니다. 사용자 지정 필드와 초기값을 정의하여 객체를 생성할 수 있습니다.
const { Record } = require('immutable');
const Person = Record({ name: '', age: 0 });
const john = Person({ name: 'John', age: 25 });
console.log(john.get('name')); // "John"
console.log(john.get('age')); // 25
Immutable.js에서 제공하는 이러한 자료구조는 자바스크립트에서 불변성을 유지하면서 데이터를 다루는 데 매우 유용합니다.