면접 준비

[면접 준비] 깊은 복사, 얕은 복사

Megadr0ne 2024. 7. 26. 09:26

 

학습 키워드: deep copy, shallow copy

 

2024-07-25 면접 카타 질문

깊은 복사와 얕은 복사의 차이는 무엇이고 JS에서 각각을 구현하는 방법은 어떻게 되는지 설명해주세요:

 얕은 복사는 각 값의 주소를 복사하는 것을 말하고, 깊은 복사는 복사하는 값을 새로운 메모리에 할당하여 완벽하게 별개의 객체를 만들어내는 것을 말합니다. JS에서는 JSON.stringify()로 원본 객체를 문자열로 치환한 뒤 다시 JSON.parse()를 사용하여 전혀 다른 메모리를 참조하는 깊은 복사가 완료된 객체를 얻을 수 있습니다. 얕은 복사의 경우 단순하게 objA = objB의 구조로 복사하면 되는데, nested object의 경우 spread 문법을 사용하면 객체의 키는 별도로, 키의 값은 얕은 복사로 진행합니다.

 

 

--

 

728x90