Post
KO

스칼라 6

함수형 객체

변경 불가능한 객체의 장단점 비교

장점.

첫째, 변경 가능한 객체는 시간에 따라 변하는 상태 공간을 갖지 않기 때문에, 변경 가능한 객체보다 추론이 쉬운 경우가 종종 있다.

둘째, 변경 불가능한 객체는 전달을 비교적 자유롭게 할 수 있다. 상태를 갖는 변경 가능한 객체의 경우, 코드의 다른 부분에 전달하기 전에 복사를 해놓는 등의 방어적인 조치가 필요하다.

셋째, 두 쓰레드가 동시에 객체에 접근하는 경우라고 해도 변경 불가능한 객체는 말 그대로 상태를 바꿀 수 없기 때문에 상태를 망쳐놓는 일이 발생할 수 없다.

넷째, 변경 불가능한 객체는 안전한 해시 테이블 키다.

단점.

상태를 변경하기 위해서는 거대한 객체 그래프를 복사해야 하는 경우가 있다.

객체 그래프 : 특정 시점에 메모리에서 객체들 사이의 참조 관계를 말한다.

이런 알고리즘을 표현하기 매우 어색하고, 성능상의 병목 또한 발생할 수 있다.

This article is licensed under CC BY 4.0 by the author.