var array1 = [1, 2, 3]
var array2 = array1

COW를 활용하는 데이터 타입

원시타입 컬렉션 타입
Int Set
Double Dictionary
String Array

오버헤드가 발생하는데 COW를 사용하는 이유?

COW에서 참조와 Class에서 참조의 차이점

// b가 a를 복사한 경우

- COW는 수정이 일어나기 전까지 b는 메모리를 할당받지 않고 a와 같은 메모리를 사용
- Class는 a와 b가 서로 다른 메모리에 할당 되지만, 각각의 메모리에는 '같은 주소값'이 담겨 있음