자바 기본(primitive) 타입과 java.io.Serializable 인터페이스를 상속 받은 객체는 직렬화 할 수 있는 기본 조건을 가진다. 현재 수업 내에서 구현하고 있는 그림판 프로그램에서는 저장하려고 하는 객체가 TShape이다. 그러므로 TShape 클래스에 implements java.io.Serializable을 적용했다.
java.io.ObjectOutputStream 객체를 이용한다.
현재 수업에서는 java.io.FileOutputStream을 함께 사용하여 File 형태로 직렬화하여 저장했다.
자바 직렬화 뿐만 아니라 다양한 형태의 직렬화 방법이 존재한다. 문자열 형태의 직렬화는 CSV, JSON를 활용하는 방법이 있다. 이 두가지 방법은 시스템의 고유 특성과 상관 없는 대부분의 시스템에서의 데이터 교환 시 많이 사용된다. (모든 시스템 ↔ 모든 시스템)
하지만 ObjectOutputStream을 활용한 자바 직렬화 형태의 데이터 교환은 자바 시스템 간의 데이터 교환을 위해서 존재한다. (자바 시스템 ↔ 자바 시스템)
[참고 자료 : https://techblog.woowahan.com/2550/]