😀 Jerry/면접 질문

[1분 면접] 얕은 복사와 깊은 복사의 차이

Jerry_K 2025. 2. 27. 13:04

📌 면접 답변

얕은 복사

  • 객체의 주소를 복사하는 방식
  • 원본과 복사본이 같은 메모리 주소를 공유 (내부 객체 공유) 
  • 한쪽 값을 변경하면 다른 쪽도 영향을 받음

 

깊은 복사

  • 객체뿐만 아니라 내부에 있는 참조된 객체까지 모두 새로운 메모리 공간 할당 
  • 내부 객체도 독립적
  • 복사본을 변경해도 원본 객체에는 영향을 주지 않음

 


📌 내 답변

얕은 복사 같은 경우, 주소까지 가져오는게 아니라 해당 주소가 가르키는 값만 가져온다.

 

하지만 깊은 복사 같은 경우, 주소와 값 모두 가져오는데,

이로 인해 복사해온 값이 변경되면 깊은 복사한 값도 해당 값의 주소를 가르키기 때문에 같이 값이 변하게 된다.

 

얕은 복사와 깊은 복사에 대해 반대로 알고 있었다.

그리고 복사는 주소와 값만을 복사하는 줄 알았다...

 

얕은 복사하면 대충 복사한 느낌이 났고,  값만 복사하는 줄 알았다.

하지만 이런 느낌이 아니라, 얕은 복사원본 객체 내부의 참조 주소를 복사하는 것이다.

따라서 새로운 객체를 만들지만, 내부 객체를 공유해서 얕은 복사인 것이다.

 

반면에 깊은 복사는 새로운 메모리참조 객체 모두를 복사하는 것이다. 

따라서 새로운 객체를 만들고, 그 내부 객체까지 독립적이다. 

 

이렇게 보면 깊은 복사가 더 깊게 들어간 느낌 아닌가 ?! 

그래서 깊은 복사가 "깊은" 복사인 것 같다.

 


 

매일메일 - 기술 면접 질문 구독 서비스

기술 면접 질문을 매일매일 메일로 보내드릴게요!

www.maeil-mail.kr

매일 메일의 면접 질문 정리