깊은 복사(Deep Copy)와 얕은 복사(Shallow Copy)는 객체 또는 배열과 같은 복합 데이터 타입을 복사하는 두 가지 다른 방법입니다.
깊은 복사 (Deep Copy):
예시:
const originalArray = [1, 2, [3, 4]];
const deepCopy = JSON.parse(JSON.stringify(originalArray));
deepCopy[2][0] = 5;
console.log(originalArray); // [1, 2, [3, 4]]
얕은 복사 (Shallow Copy):
예시:
const originalArray = [1, 2, [3, 4]];
const shallowCopy = originalArray.slice();
shallowCopy[2][0] = 5;
console.log(originalArray); // [1, 2, [5, 4]]
깊은 복사와 얕은 복사는 데이터를 복사하는 목적에 따라 선택되어야 합니다. 만약 중첩된 객체의 변경이 원본 객체에 영향을 주면 안된다면 깊은 복사를 사용해야 합니다. 그러나 깊은 복사는 성능상의 이슈가 있을 수 있으므로, 데이터가 복잡하지 않거나 중첩된 객체를 포함하지 않는 단순한 경우에는 얕은 복사를 사용하는 것이 더 효율적일 수 있습니다.