Copy on write (COW) 이름 그대로 Write가 발생했을 때 Copy를 수행하는 기능입니다. (cf.이는 원래 운영체제에서 프로세스에게 프레임을 할당할 때 메모리 공간 낭비를 막기위해 사용되던 기능인데, Swift에도 비슷한 목적으로 적용되었습니다.) 값타입의 데이터는 값을 참조하지 않고 복사합니다. 하지만 이렇게 매번 복사를 할 경우 값이 변경될 필요가 없음에도 매번 새로운 메모리 공간을 할당하여 복사를 수행하게 됩니다. 따라서 메모리가 낭비되고, 오버헤드까지 발생합니다. 그래서 사용되는 것이 Copy on write입니다. Copy on write는 데이터 복사 시에 실제로 값을 복사하지 않고 동일한 값을 참조하도록 합니다. 그리고 값이 변경(Write)될 때 값을 복사해 변경을 적용합니..