Programmer:)

Shallow Copy vs Deep Copy (얕은복사,깊은복사) 본문

공부(개발)/c#

Shallow Copy vs Deep Copy (얕은복사,깊은복사)

ryeggg 2023. 7. 10. 12:48
반응형

Shallow Copy 얕은복사

객체나 데이터 구조를  복사할 때, 원본 데이터의 참조를 복사하는 방식.

복사된 객체와 원본 객체가 같은 메모리 공간을 공유하게 되므로 한 쪽에서의 변경이 다른 쪽에도 영향을 미치게된다.

 

장점

-복사과정이 간단하고 빠름.

-메모리 사용량 적음

-복사하는 데이터의 크기에 상관없이 일정한 시간과 메모리 소비

 

단점

-원본객채와 복사된 객체가 같은 메모리를 공유하여 하나의 객체를 변경하면 다른 객체에도 영향발생

-데이터 일관성을 유지하기 힘들 수 있음.

 

=> 원본데이터를 효율적으로 공유하고, 변경 내역을 모두에게 전파해야 할 때 유용하게 사용된다.

그라나 독립적인 복사본이 필요하거나 데이터의 변경을 제어해야할 경우에는 깊은 복사를 사용해야한다.

 

 

Deep Copy  깊은복사

객체나 데이터의 구조를 복사하는 과정에서, 원본 데이터와 완전히 독립적인 복사본을 생서하는 것을 의미한다.

이는 복사된 데이터를 수정하더라도 원본 데이터에는 어떠한 영향도 주지 않는다.

 

장점

-원본객체와 완전히 분리되어 동작하게 되므로 데이터의 안전성과 일관성에 좋음.

 

단점

-데이터의 구조가 매우 깊거나 복잡한 경우, 복사과정에서 많은 시간과 메모리를 소비할 수 있다.

 

반응형
Comments