1. 얕은 복사(Shallow Copy)
얕은 복사는 데이터의 주소 값을 복사하는 것을 의미한다. 그렇기 때문에 데이터 변경이 일어나면 원 데이터도 함께 변경된다.
<script> let arr = [1, 2, 3]; arr.push(4); console.log(arr); </script>
arr 배열에 4를 추가한다.
얕은 복사는 기존 데이터가 변경되기 때문에 데이터의 무결성을 지킬 수 없다. 하지만 데이터의 주소를 복사하기 때문에 메모리 측면에서 유리하다.
2. 깊은 복사(Deep Copy)
깊은 복사는 실제 데이터를 메모리 공간에 복사하는 것을 의미한다. 따라서 깊은 복사는 데이터에 변경이 발생해도 원 데이터는 기존과 동일하게 유지된다.
<script> let arr = [1, 2, 3]; console.log(arr); let copyArr = [0, ...arr, 4]; console.log(copyArr); </script>
깊은 복사는 기존 데이터가 그대로 유지된다.
깊은 복사는 원본 객체와 복사본이 독립적으로 이루어져 있어 데이터의 무결성을 지킬 수 있다.
Share article