Copy On Write 알아보기

Tabber·2022년 1월 2일
0

iOS Review

목록 보기
9/15

공부하며 적는 글입니다.

들어가기 전

Swift에는 참조타입와 값 타입이 있다. 이 중에 값 타입은 복사의 의미를 가지고 있다.

이게 무슨말이나면, 만약에 값 타입 변수에 대입 하거나 매개변수로 넘겨주게 되면, 해당 값의 데이터가 모두 복사 된다라는 뜻이다.

동일한 값이라도 가리키고 있는 주소는 다르다란 소리이다.

그럼 그 방식인 Copy On Write에 대해 알아보자.

Copy On Write?

Swift에서 엄청 큰 데이터를 변수에 대입하거나 매개변수로 넘기면 그에 상응하는 복사 연산을 하게 된다. 당연한 소리이다. 크기가 크면 그만큼 복사해야하는 것 또한 많아질 것 이다.

이런 이슈를 최소화 하기 위해서 Swift의 표준 라이브러리는 배열과 같은 몇몇의 값 타입에 대해, 하나의 참조만 있다면 복사가 아니라 해당 참조 내에서 값 변경이 일어나는 메커니즘을 설계 했다.

이게 무슨말이냐, 데이터를 복사할 때 실제로 값을 복사하지 않고, 동일한 값을 참조하다가 데이터 변경이 발생될 시에만 복사해서 값을 변경하는 기법이다.

profile
iOS 정복중인 Tabber 입니다.

0개의 댓글