작성
·
122
·
수정됨
0
안녕하세요 강사님!
제가 토이 프로젝트를 진행했을 때 엔티티에 implements Serializable를 하지 않았을 때 오류가 나지 않고 정상적으로 잘 되었는데(스프링 부트 3.2.4 사용 했습니다)
강사님 께서는 앞선 카탈로그 엔티티 및 오더 엔티티에서 둘 다
Serializable를 implements 하셨는데 강의 말씀 하시기를 직렬화 때문에 사용을 하셨다고 말씀해주셨는데
해당과정에서 Serializable을 implements 을 하지 않으면 어떤 부분에서 오류가 나는지 여쭤 볼 수 있을까요??
어느 부분에서 implements Serializable가 필요한 부분인지 모르겠습니다 ㅠㅠ
보통 일반적으로 스프링에서 Jackson? 으로 직렬화를 자동으로 지원해주어 implements를 따로 해줄 필요가 없다고 알고 있었습니다.
기초적인 질문이었다면 먼저 죄송하다는 말씀 드리면서
질문 드리겠습니다!
감사합니다.
답변 1
0
안녕하세요, 이도원입니다.
자바에서 직렬화란 JVM에서 사용중인 객체 또는 데이터를 외부의 JVM에서도 사용할 수 있도록 Byte 형태로 변환하는 기술입니다. 객체 데이터를 바이트로 변환하는 작업과 직렬화된 바이트 형태의 데이터를 객체화 하는 과정에서 직렬화, 역직렬화라는 표현을 사용하기도 합니다. 예를 들어, DB나 Network를 통해 다른 환경으로 자바의 객체를 저장하거나 전달하여 다시 원래 형태인 객체로 변환하려면 직렬화 과정이 필요하게 됩니다. 다만, 해당 직렬화 작업이 Spring framwork 등에서 사용하는 라이브러리 등에서 지원하는 경우라면 사용자가 직접 직렬화하지 않아도 됩니다. 예를 들어, 사용자 객체 User를 Jackson에서 사용할 수 있는 객체로 변환하는 과정에서 직렬화 작업이 포함되어 Jackson에서 사용되기 때문에, 사용자 객체에서 추가로 명시하지 않아도 됩니다. 강의에서 사용된 부분에 있어서는 같은 환경의 JVM 환경에서 작동되기 때문에, 별도의 직렬화 없이 작업이 가능합니다.
추가 질문사항 있으시면 다시 글 남겨 주세요.
감사합니다.
넵 스프링 프레임 워크에서 지원을 해주는 것으로 알고 있는데 강사님께서는
implements Serializable를 사용하신 이유가 궁금했었습니다.