[TIL] Shallow Copy vs Deep Copy

7과11사이·2023년 10월 31일
0

스파르타코딩클럽

목록 보기
85/90

이전에도 한번 들었던 표현

Deep & Shallow Copy.

이번에 델리게이트 패턴을 활용해서 CustomTextField의 델리게이트를 다른 VC와 연결 지을 때 연결이 안되길래 튜터님께 질문하다 다시 듣게 된 표현이다.

애초에 value type, reference type 관련해서 설명을 할 때 쓰는 표현인지 궁금해져서 조금 찾아보게 됐다.
예상했던대로 구조체와 클래스의 차이점인 value type과 Reference type과 비슷한 내용이 주를 이루었는데, 그 와중 배우게 된 부분들이 있었다. 그리고 생각했던 것보다 반대의 표현이 사용됐다.


Deep Copy

  • 복사를 하면 모든 내용을 복사하는 Deep Copy는 Value Type과 일치한다.
  • 모든 내용을 복사하기에 가르킨 방향 또한 복사된다! (복사본이 이제 가르켜진다.)
  • 복사된 객체는 다른 객체와 다른 '복사본'이다. 따라서 서로 연관성이 없다.
  • Shallow Copy보다 느리다.

Shallow copy

  • 얕게 복사되는 이 개념은 오로지 하나의 객체만으로 모든 방향에서의 손가락질을 받을 수 있게 되는데, 덕분에 메모리에서 오로지 하나의 객체 공간만 차지를 한다. 주소지를 복사하기에 속도가 매우 빠르다고!

놀랍게도 클래스를 깊은 복사할 수 있다고 하는데, NSCopying protocol를 활용하면 가능하다고 한다.

0개의 댓글