백엔드 면접

얕은 복사와 깊은 복사에 대해서 설명해 주세요.

이런개발 2024. 12. 4. 09:26

얕은 복사(Shallow Copy)주소 값을 복사한다는 의미하며, 

깊은 복사(Deep Copy)실제 값을 새로운 메모리 공간에 복사하는 것을 의미합니다.

 

얕은 복사의 경우 주소 값을 복사하기 때문에 원본 객체와 복사된 객체가 같은 메모리 공간의 데이터를 참조합니다. 즉, 복사된 객체에서 값을 변경하면 원본 객체도 변경이 됩니다. 주로 직접 참조 대입('=')으로 수행됩니다.

 

깊은 복사의 경우 원본 객체의 모든 데이터를 복사하여 새로운 메모리 공간에 저장하기 때문에 원본 객체와 복사된 객체는 서로 독립적이며, 한쪽의 변경은 다른 쪽에 영향을 주지 않습니다. clone() 메서드, 복사 생성자, 복사 팩토리 등으로 깊은 복사를 할 수 있습니다.