파일 저장을 구현하다 이러한 에러가 발생했다.

에러 메세지를 살펴보면 graphicEditer 패키지 속 Resitory이 Serializable이 되지 않아 이러한 문제가 발생했다고 한다. 나의 경우 그림판을 구현해 그림이 그려진 Frame을 파일에 저장하려했다. 그럼 우선 Resitory 클래스를 살펴보도록 하겠다.

여러 좌표, 포인트와 포인트 리스트, 컬러와 같은 다양한 속성을 가진 객체이다. 나는 이 객체를 Stack에 담아 파일에 저장하려 했다. 에러가 생긴 이유는 이 Repository가 Serializable, 즉 직렬화가 되지 않아 발생했다. 그럼 직렬화에 대해서 간단히 살펴보자.

 

자바에서 직렬화란

  • 자바 시스템 내부에서 사용되는 객체 또는 데이터를 외부의 자바 시스템에서도 사용할 수 있도록 바이트(byte) 형태로 데이터 변환하는 기술. 바이트로 변환된 데이터를 객체로 변환하는 기술은 역직렬화라고 한다.

자세한 내용은 아래에 연결된 사이트에서 확인할 수 있다.

 

https://woowabros.github.io/experience/2017/10/17/java-serialize.html

 

자바 직렬화, 그것이 알고싶다. 훑어보기편 - 우아한형제들 기술 블로그

자바의 직렬화 기술에 대한 대한 이야기입니다. 간단한 질문과 답변 형태로 자바 직렬화에 대한 간단한 설명과 직접 프로젝트를 진행하면서 겪은 경험에 대해 이야기해보려 합니다.

woowabros.github.io

 

이를 통해 알 수 있듯이 우리가 파일을 저장하기 위해서는 바이트로 형태를 변환시켜줘야한다. 하지만 내 코드에서는 직렬화를 해 준 부분이 없다. 여기서 직렬화를 해주기 위해서는 아래처럼 간단하게 Serializable을 상속시켜주면 된다.

반응형

+ Recent posts