<aside> 💡 결국 우리가 작성한 코드를 신뢰할 수 없는 레거시 코드와 상호작용을 해야되는 상황이다.

</aside>

  1. 신뢰할 수 없는 코드에 있는 데이터가 안전지대로 들어올때
    1. 깊은 복사로 원본을 복사해서 안전지대로 집어 넣는다.
  2. 안전지대에 있는 데이터가 밖으로 나가야 할때
    1. 안전지대에서 깊은 복사를 한 후에 밖으로 내보 냅니다.

<aside> 💡 들어오고 나가는 데이터의 복사본을 만드는 것이 방어적 복사가 동작하는 방식입니다.

</aside>

<aside> 💡 바뀔 수도 있는 데이터가 안전지대로 들어오지 못하도록, 하는 것이 방어적 복사의 목적입니다.

</aside>

규칙 1. 데이터가 안전한 코드에서 나갈 때 복사하기

  1. 불변성 데이터를 위한 깊은 복사를 만듬
  2. 신뢰할 수 없는 코드로 복사본을 전달.