조슈아 블로크 님의 "Effective Java" 책을 정리한 포스팅 입니다. 4. readObject 메서드는 방어적으로 작성하라readObject()는 또다른 public 생성자직렬화된 객체의 상태를 복원하는 메서드복원 중에 새로운 객체를 생성하는 역할을 함 매개변수로 바이트 스트림을 받는 생성자바이트 스트림을 받아서 객체 상태를 읽고 복원하는 방식바이트 스트림이 유효한지 먼저 검사해야 함 인수가 유효한지 검사defaultReadObject를 호출하여 기본 상태 복원 및 유효성 검사 매개변수를 방어적으로 복사해야 함클라이언트가 소유해서는 안되는 객체 참조를 갖는 필드를 모두 반드시 방어적으로 복사해야 함final은 방어적 복사 불가 clone()은 어떻게 복사될지 모르므로 사용하지 않도록객체가 어..