더북(TheBook)

분명 변수 person에 할당된 객체의 속성값을 변경했는데, 변수 copyPerson에 복사된 객체의 속성값까지 변경됩니다. 이는 객체가 변수에 할당될 때 변수는 주소 값만 가지고 있어서 복사할 때도 주소 값만 복사하기 때문입니다. 그래서 두 변수는 같은 주소 값을 가지게 되고 바라보는 원본 데이터의 위치도 같습니다. 그러므로 변수 person의 데이터를 변경하면 같은 주소를 바라보는 변수 copyPerson의 데이터까지 변경됩니다.

그림 11-7 참조 데이터의 복사

이렇게 데이터를 복사했을 때 한쪽 데이터가 변경되면 다른 쪽 데이터도 변경되어 서로 영향을 받는 것을 얕은 복사(shallow copy)라고 합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.