<aside> 📚 클래스를 직렬화하기로 결정했다면 어떤 직렬화 형태를 사용할 지 신중하게 고려해야 한다. 자바 기본 직렬화 형태는 ****직렬화한 결과가 객체의 논리적 표현과 부합하는 경우에만 사용하고, 그 외에는 커스텀 직렬화 형태를 사용하자. 한번 직렬화 형태에 포함한 필드는 마음대로 제거할 수 없다. 즉 잘못된 직렬화 형태는 해당 클래스에 영구히 부정적인 영향을 남기므로, 커스텀 직렬화 형태를 설계할 때에는 많은 시간을 들여 신중히 설계하도록 하자.

</aside>

1. 기본 직렬화 형태를 사용하는 경우

2. 기본 직렬화 형태를 사용하면 안되는 경우

public final class StringList implements Serializable {
    private int size = 0;
    private Entry head = null;

    private static class Entry implements Serializable {
        String data;
        Entry next;
        Entry previous;
    }
		...
}

3. 기본 직렬화 형태 대신 커스텀 직렬화 형태를 사용하는 경우