오늘도
배워봅니다.
1. Shallow Copy
- 얕은 복사(Shallow Copy)는 '주소 값'을 복사한다는 의미입니다.
- 얕은 복사는 아주 최소한만 복사를 한다. 값을 복사한다 하더라도, 인스턴스가 메모리에 새로 생성되지 않는다. 값 자체를 복사하는 것이 아니라 주소값을 복사하여 같은 메모리를 가리키기 때문이다.
- 새로운 인스턴스를 생성하지 않기 때문에 깊은 복사보다 상대적으로 빠르다. reference type을 복사하는 경우 얕은 복사가 일어난다.
2. Deep Copy
- 깊은 복사(Deep Copy)는 '실제 값'을 새로운 메모리 공간에 복사하는 것을 의미함.
- 데이터 자체를 통째로 복사한다.
- 복사된 두 객체는 완전히 독립적인 메모리를 차지한다.
- value type의 객체들은 깊은 복사를 하게 된다.