얕은 복사의 경우 developer1의 값이 저장된 메모리 주소의 값을 developer2로 복사해옵니다. 그렇기 때문에 developer2의 name값을 변경하더라도 developer1의 값이 변경되는것 입니다.
깊은 복사의 경우는 developer2의 값에 저장된 메모리 주소의 값을 복사해오는것이 아니라 developer1의 메모리 주소에 저장된 값을 복사해오는것이 아니라 동일한 값을 가진 다른 메모리 주소를 만든뒤 developer2에 할당하게 됩니다. 그렇기 때문에 developer2의 값을 변경하더라도 developer1의 값이 변경되지 않습니다.