Shallow Copy와 Deep Copy

광로·2024년 3월 9일
  1. 얕은 복사 (Shallow Copy)

-> 객체를 복사할 때 원본 객체와 복사된 객체가 같은 메모리 주소를 참조하는 방식.
즉, 객체의 속성 값 자체를 복사하는 것이 아니라 속성값이 저장된 메모리 주소를 복사 하는 것

  1. 깊은 복사 (Deep Copy)

-> 객체를 복사할 때 원본 객체와 복사된 객체가 서로 다른 메모리 주소를 가진 새로운 객체를 생성하는 방식 입니다. 즉, 객체의 값뿐만 아니라 속성 값이 참조하는 객체까지 재귀적으로 복사하여 완전히 독립적인 새로운 객체를 만드는 것.

  • 정리

얕은 복사
1. 기본 데이터 타입 (숫자, 문자열, boolean)
2. 변경 가능성이 없는 객체
3. 성능이 중요한 경우

ex) Object.assign() , Spread syntax(...) , for...in loop

깊은 복사
1. 객체 내에 다른객체를 참조하는 경우
2. 변경 시 영향을 격리해야 하는 경우
3. 데이터 무결성이 중요한 경우

ex) JSON.parse (JSON.stringify()) , Lodash _.clonDeep()

profile
많이 느리지만, 포기하지 않는 개발자 (돌에 새기는 느낌 )

0개의 댓글