[C#] 16. 얕은 복사와 깊은 복사

Connected Brain·2025년 4월 25일

면접 질문 대비

목록 보기
16/60

얕은 복사와 깊은 복사의 차이점은 무엇인가요?

한 줄 요약

얕은 복사 : 복사시 메모리 주소를 전달해 새로운 객체가 기존의 메모리 주소를 참조
깊은 복사 : 복사시 완전히 다른 새로운 객체를 만들어 전달
(참조 형식 변수에 대해서는 앝은 복사가 발생하므로 깊은 복사를 위해서는 수동으로 새로운 객체를 만들어 재설정하거나 ICloneable 인터페이스를 구현해 Clone() 메서드를 통해 객체 생성 후 캐스팅 해야함)

얕은 복사

  • 객체를 복사하고자 할 때, 새로운 객체가 기존 객체의 메모리 주소를 참조하는 방식으로 복사
  • 같은 메모리 주소를 참조하기 때문에 원본과 복사된 객체의 값이 동일하게 변경됨
  • 참조 타입 변수를 복사할 때 일반적으로 얕은 복사가 발생

깊은 복사

  • 새로운 객체에 기존 객체가 가진 값을 복사하여 새로운 객체를 초기화하는 것
  • 같은 메모리 주소를 참조하지 않고 새로운 주소를 할당하므로 완전히 다른 두 객체가 만들어짐
  • 값 타입 변수를 복사할 때 일반적으로 깊은 복사가 발생

0개의 댓글