요점 정리

  • 방어적 복사는 불변성을 구현하는 원칙입니다. 데이터가 들어오고 나갈 때 복사본을 만듭니다.
  • 방어적 복사는 깊은 복사를 합니다. 그래서 copy-on-write보다 비용이 더 듭니다.
  • copy-on-write와 다르게 방어적 복사는 불변성 원칙을 구현하지 않은 코드로부터 데이터를 보호해줍니다.
  • 복사본이 많이 필요하지 않기 때문에 copy-on-write를 더 많이 사용합니다. 방어적 복사는 신뢰할 수 없는 코드와 함께 사용할 때만 사용합니다.
  • 깊은 복사는 위에서 아래로 중첩된 데이터 전체를 복사합니다. 얕은 복사는 필요한 부분만 최소한으로 복사합니다.