iOS/Swift
[Swift] CoW(Copy on Write)의 동작방식 + 메모리 주소 디버깅
Copy on Write란? Copy on Write는 원본이나 복사본에서의 실제 값 변경이 발생하기 전까지는 같은 값을 가리키고 있다가 실제 값 변경 발생 시 복사를 수행하는 방식으로 Swift는 Collection Type( Array, Set, Dictionary )과 String Type에서 CoW 복사 방식을 사용합니다. 왜 사용해야 하나요? Swift에서는 Value Type의 복사는 깊은 복사 방식을 사용하는데 Collection Type 같은 경우는 Value Type이지만 heap 영역에 생성되어 매번 깊은 복사 방식을 사용하면 높은 메모리 오버헤드를 발생시킬 수 있다. 이를 방지하기 위해 Collection Type의 경우 복사한 데이터의 수정이 발생하지 않는다면 얕은 복사와 같이 he..