* 얕은 복사
- 객체를 직접 대입하는 경우에 참조에 의한 할당이 이루어져 같은 메모리 주소를 바라보는 것
- 같은 데이터를 바라보기에 원본 객체 데이터의 값을 변동할 수 있다
const obj1 = { a: 1, b: 2};
const obj2 = obj1;
console.log( obj1 === obj2 );
* 깊은 복사
- 메모리 주소를 복사하여 바라보는 것이 아니라 아예 새로운 객체 안 속성만 복사해서 사용하는 법
- spread 연산자나 Object.assign() 메소드를 통해 가능하지만 1depth까지 가능
- 완벽히 깊은 복사를 하기 위해서는 ?
- 재귀적으로 깊은 복사를 수행
- lodash의 cloneDeep함수를 사용
- JSON.parse()와 JSON.stringify() 함수 사용
const obj1 = { a:1, b:2 };
const obj2 = { ...obj };
obj2.a = 100;
console.log( obj1 === obj2 )
console.log( obj1.a )
출처:https://hanamon.kr/javascript-shallow-copy-deep-copy/