깊은 복사와 얕은 복사

GABMIN KIM·2022년 1월 22일
0

JavaScript

목록 보기
17/17
post-thumbnail

깊은 복사(Deep Copy)와 얕은 복사 (Shallow Copy)

그림처럼 Deep Copy는 A=B라고 했을 때 2개의 메모리에 따로 저장이 되고,

Shallow Copy는 A=B 하나의 메모리를 갖고 2개의 변수를 갖는 것이다.

개념은 간단하다. 하지만 하나의 객체를 다수의 위치에서 참조하도록 할 때 Deep Copy가 일어날 경우 연결이 끊어지는 경우가 발생할 수 도 있고, 객체를 메서드 인자로 전달했는데 메소드 안에서 값을 변경한 게 Shallow Copy에 의해서 함께 변경되어버리는 경우가 발생할 수도 있다.

자바스크립트의 참조 타입은 얕은 복사가 된다고 볼 수 있으며, 이는 데이터가 그대로 생성되는 것이 아닌 해당 데이터의 참조 값(메모리 주소)을 전달하여 결국 한 데이터를 공유하는 것이다.

자바스크립트의 원시 타입은 깊은 복사가 되며, 이는 독립적인 메모리에 값 자체를 할당하여 생성하는 것이라 볼 수 있다.


출처:

profile
목표를 성취하는 개발자가 되겠습니다.

0개의 댓글