자바스크립트에서 얕은 복사(shallow copy)와 깊은 복사(deep copy)의 차이는 객체의 복사 방식에 있습니다.
얕은 복사를 수행할 때 사용하는 대표적인 방법:
예시:
const originalObject = {
a: 1,
b: {
c: 2
}
};
const shallowCopy = {...originalObject};
shallowCopy.b.c = 3;
console.log(originalObject.b.c); // 출력: 3 (복사본 객체에서 값을 변경했기 때문에 원본 객체도 영향을 받았습니다.)
깊은 복사를 수행할 때 사용하는 대표적인 방법:
예시:
const originalObject = {
a: 1,
b: {
c: 2
}
};
const deepCopy = JSON.parse(JSON.stringify(originalObject));
deepCopy.b.c = 3;
console.log(originalObject.b.c); // 출력: 2 (깊은 복사된 객체에서 값을 변경해도 원본 객체에 영향을 미치지 않습니다.)
결론적으로 얕은 복사는 객체의 최상위 레벨만 복제하고 원본 객체에 영향을 미칠 수 있으며, 깊은 복사는 모든 레벨을 복제하여 원본 객체와 복사본 객체가 완전히 독립적입니다. 상황에 따라 올바른 복사 방법을 선택하여 사용하세요.