Copy-on-write

    [Swift] COW(Copy-on-Write)에 대하여

    mutating 키워드를 찾아보다가 알게된 cow에 대한 개념을 정리한 글입니다. COW (Copy-On-Write) 직역하면 쓰기(Write)에서 복사(Copy) 한다는 뜻이다. 이것을 설명하기 위해 예를 들어보자. 우리가 알고있는 구조체는 값 타입이기 때문에 새로운 변수로 값이 전달될때 값 복사가 일어난다고 알고 있지만 사실은 조금 다르다. Swift에서 기본 데이터 타입(Int, Double, String)과 컬렉션 타입(Array, Dictionary)은 구조체로 구현돼있지만 아래 같은 상황에서 값 복사가 일어나지 않는다. var first = [1, 2, 3, 4, 5] var second = first var third = first 만약 first의 원소 개수가 대략 천만개라면 값을 전달할때..