And Brain said,

직렬화(Serialization), 데이터의 연속된 기호화 본문

IT/Java & Kotlin & Spring boot

직렬화(Serialization), 데이터의 연속된 기호화

The Man 2023. 2. 12. 18:38
반응형

 

직렬화와 역직렬화는 객체 데이터의 상태 그대로 저장하고 필요할 때 다시 꺼내서 사용하기 위해 쓰인다.

 

먼저 직렬화는 객체 데이터를 바이트 스트림으로 바꾸어 연속적인 데이터로 변환하는 것이다.

 

역직렬화는 그 반대로 바이트 스트림을 꺼내와 저장된 데이터의 상태 그대로 변환해주는 것을 말한다.

 

직렬화로 변환된 바이트 스트림은 플랫폼에 종속되지 않는 멀티플랫폼에서 역직렬화가 가능한 데이터다.

 

자바에서는 모든 클래스를 직렬화할 수는 없고

 

 

이렇게 Serializable 인터페이스만 구현해주면 직렬화와 역직렬화가 가능해진다.

 

또한 serialVersionUID 고유값을 주어 역직렬화 시에 같은 클래스인지 일치 여부를 확인한다.

 

만약 커스텀하게 주지않는다면 직렬화 시 자동 생성되어 직렬화 데이터에 포함된다.

 

하지만 직렬화는 보안 상 취약하다는 크나큰 단점이 있어 자주 사용되지는 않는 편이므로 긴 시간 저장해야하는 데이터들은 직렬화를 사용하지않도록 하자.

 

 

Thanks for watching, Have a nice day.

 

References

 

https://medium.com/@lunay0ung/basics-직렬화-serialization-란-feat-java-2f3eb11e9a8

 

반응형
Comments