DevBoi

Deep copy 와 shallow copy의 차이점 본문

[Computer Science]

Deep copy 와 shallow copy의 차이점

HiSmith 2021. 9. 2. 20:22
반응형

Deep copy와 Shallow Copy를 알면 코딩 실력이 많이 는다고 해서, 찾아봤다.

쉽게 말하면 이런 개념이다.

 

해당 객체를 여러군데에서 올려서 복사한다고하면,  Deep copy로 하게되면 끊어질수도있다.

예를들어서, Deep copy를 많은 곳에서 사용하면, 끊어지고 디버깅과정이 발생할수 있다.

 

반대로, 메소드로 값을 변경한 이후에 shallow copy를 하게되면 값이 복사가 잘 안될수도있다.

둘의 차이점에 대해서 좀 상세히 알아보자

 

메모리 관련되서, 구조를 잘 신경을 안쓰긴 하지만

 

deep COPY를 하는 경우 메모리가 shallow copy를 할때보다 많이 차지하게 된다.

deep copy와 shallow copy의 차이는 무엇일까??

 

얕은 복사는 주소값을 같이 참조하여, 복사할때 참조하는 주소값을 복사하고

깊은 복사는 , 해당 값을 실제로 복사하는 것이다.

따라서, 해당 얕은 복사로 하게되면, 복사된 원본의 주소나, 값이 변경이되면, 복사한 대상도 역시 같이 변경이된다.

왜냐하면 참조하는 주소값을 복사했기때문에, 주소값을 같이 공유하고있기 때문이다.

 

이와 반대로, 깊은 복사는 같은 주소값을 참조하고있지 않기때문에, 해당 값이 변경되어도 영향이 없이나, 메모리를 많이 차지하게 된다.

 

 

반응형