객체의 참조값(주소값)을 복사
=> 객체 내부에 있는 객체나 배열은 참조로 복사됨
원본 객체의 내부 객체나 배열이 변경되면 복사본에도 영향을 줌
const original = { a: 1, b: { c: 2 } };
// Shallow copy using Object.assign()
const shallowCopy = Object.assign({}, original);
// 또는
// const shallowCopy = { ...original }; // spread 연산자
original.b.c = 3;
console.log(shallowCopy.b.c); // 출력: 3
객체의 실제 값 복사
=> 내부 객체나 배열도 새로운 메모리에 복사됨
깊은 복사를 구현하는 방법 중 하나는 재귀적으로 객체를 탐색하고 복사하는 방법
또는 외부 라이브러리나 내장 메서드를 사용하여 깊은 복사를 수행할 수 있음
const original = { a: 1, b: { c: 2 } };
const deepCopy = JSON.parse(JSON.stringify(original));
original.b.c = 3;
console.log(deepCopy.b.c); // 출력: 2