[clojure] Clojure의 퍼시스턴스 벡터

Clojure는 함수형 프로그래밍 언어로, 변경 가능한 데이터 구조 대신 퍼시스턴스(persistent) 데이터 구조를 사용합니다. 이 데이터 구조는 “원래” 버전을 수정하지 않고 새로운 버전을 생성합니다. 그 중 하나가 퍼시스턴스 벡터(persistent vector)입니다.

퍼시스턴스 벡터란 무엇인가요?

퍼시스턴스 벡터는 immutable한(변경 불가능한) 벡터이며, 데이터가 변경될 때마다 새로운 버전을 생성합니다. 따라서 수정 시 원래 벡터는 그대로 유지되고 새로운 버전이 생성됩니다.

Clojure에서는 변경 불가능한 데이터 구조를 사용하는 것이 중요합니다. 이를 통해 병렬 처리 및 스레드 안전성을 보장하고 예측 가능한 코드를 작성할 수 있습니다.

퍼시스턴스 벡터의 장점

퍼시스턴스 벡터 사용하기

Clojure에서 퍼시스턴스 벡터를 사용하려면 clojure.core 네임스페이스의 vector 함수를 호출합니다. 벡터에 새로운 요소를 추가하려면 conj 함수를 사용합니다.

예시:

(def myVector (vector 1 2 3 4))
(def newVector (conj myVector 5))

위 예시에서 myVector(1 2 3 4)이며, newVector(1 2 3 4 5)가 됩니다.

마무리

이러한 내부 메커니즘은 Clojure의 효율적인 데이터 처리와 함수형 프로그래밍 모델을 가능하게 합니다. 퍼시스턴스 벡터는 변경 불가능한 데이터 구조를 통해 안전하고 예측 가능한 코드를 작성할 수 있도록 도와줍니다.

더 많은 정보를 원하시면 Clojure Documentation를 확인해보세요.