복사(Copy) 란 원본과 동일한 별개의 사본을 만드는 것으로 정의되는데, 크게 2가지로 나뉩니다. 복사의 2가지 차이를 먼저 알아야 복사 생성자를 이해할 수 있기 때문에 이 분류에 대해 먼저 다뤄보겠습니다. 얕은 복사 vs 깊은 복사 (Shallow copy vs Deep copy) 얕은 복사와 깊은 복사의 차이점은 객체의 멤버 변수에 동적 메모리가 할당된 경우 나타나게 됩니다. 얕은 복사(Shallow copy) 객체 복사 시, 객체의 멤버를 1:1로 복사 객체의 멤버 변수에 동적 메모리가 할당된 경우 → 사본과 원본이 동일한 동적 메모리 공유 깊은 복사(Deep copy) 객체 복사 시, 객체의 멤버를 1:1로 복사 객체의 멤버 변수에 동적 메모리가 할당된 경우 → 사본은 원본이 가진 메모리 크기만..