JAVA/Spring

Spring으로 개발하다 보면 Serializable을 구현하거나 VO 클래스에 주석을 지정하는 경우가 많다.

저도 팀 프로젝트를 하면서 Serializable을 사용했습니다. 그러나 팀원들에게 “왜 Serializable을 사용합니까?”라고 묻는다면? 질문을 받았을 때 바로 대답할 수 있을 것 같지 않아서 개인적으로 공부했습니다.

직렬화 가능 – 직렬화

  • Java 시스템 내에서 사용되는 객체나 데이터를 외부 Java 시스템에서 사용할 수 있도록 데이터를 바이트 형태로 변환하는 기술
  • JVM은 객체 데이터를 메모리의 바이트로 변환합니다.


그렇다면 왜 직렬화합니까?

=> 다른 프로세스는 서로 데이터를 교환할 수 없습니다. (즉, 메모리를 공유할 수 없습니다.)

Serializable은 JAVA 인터페이스이자 해당 클래스가 직렬화 대상임을 알리는 마커 인터페이스입니다.

마지막으로 간단하게 말씀드리자면,

목소리@Serializable 주석이 지정된 이유는 데이터베이스와 데이터를 교환하기 위해 직렬화가 수행되어야 하기 때문입니다.