November 20th, 2008
Copy On Write

cow
이미지 출처 : http://www.cs.albany.edu/~sdc/CSI400/Fal02/CopyOnWrite.png

간단한 이론 하나
COW라 줄여쓰기도 하는 Copy-On-Write.

java.lang.String 따위는 Immutable하고 java.awt.Point따위는 Mutable하다.
Immutable 로 클래스를 정의하는 이유중에 ‘공유’가 큰 부분을 차지한다.
하지만 의외로 공유할 일이 없는 경우도 많고 변경을 못해 불편하기만 할 때도 있다.
Hybrid적 대안이 COW인데 사용자가 read만 할때는 얼마든지 같은 instance를 공유하고
setter가 호출되면 내부적으로 instance를 새로 만드는 방식(복사 과정도 일어나야 Copy on write이지)이다.