Heestory

04.객체의 직렬화 본문

개발(~국비)/기술면접

04.객체의 직렬화

까만밀가루 2022. 10. 19. 20:30

- 객체의 직렬화란 Java 시스템 내부에서 사용되는 객체(의 데이터)를 바이트 형태로 변환하여, 파일 또는 네트워크를 통해 스트림(송수신)이 가능하도록 만드는 것을 의미합니다.

- 객체에 저장된 데이터를 스트림에 쓰기 위해 연속(serial)적인 데이터로 변환하게 되므로 직렬화라고 부릅니다. 반대로 스트림으로부터 데이터를 읽어서 객체를 만드는 것을 역직렬화라고 합니다.

- 직렬화를 하기 위해서는 java.io.Serializable인터페이스를 상속받은 객체는 직렬화할 수 있는 기본조건입니다.

 

#.직렬화를 사용하는 이유

JVM 메모리에 상주되어 있는 객체 데이터를 그대로 영속화 할 때 사용

시스템이 종료되어도 사라지지않는 데이터로 네트워크 전송하기 위해 사용

  • 서블릿 세션들은 대부분 세션의 Java 직렬화를 지원하고 있습니다. 단순히 세션을 서블릿 메모리 위에서 운용한다면 직렬화가 필요없지만, 파일로 저장하거나 세션 클러스터링, DB를 저장하는 옵션등을 선택하게 되면 세션 자체가 직렬화되어 저장되어 전달됩니다.
  • 캐시에서도 직렬화는 사용됩니다. 주로 DB를 조회한 후 가져온 데이터 객체 같은 경우 실시간 형태로 요구하는 데이터가 아니라면 메모리, 외부 저장소, 파일 등을 저장소를 이용해서 데이터 객체를 저장한 후 동일한 요청이 오면 DB를 다시 요청하는 것이 아니라 저장된 객체를 찾아서 응답하게 하는 형태를 캐시를 사용한다라고 말합니다. 캐시를 이용하면 DB 리소스를 절약할 수 있기 때문에 많은 시스템에서 자주 활용됩니다. 이렇게 캐시할 부분을 자바 직렬화된 데이터를 저장해서 사용됩니다.

 

 

'개발(~국비) > 기술면접' 카테고리의 다른 글

06.Static , class/Instance  (0) 2022.10.19
05.스레드(Thread)  (0) 2022.10.19
02.자바 컬렉션  (3) 2022.10.19
01.기본형 참조형  (0) 2022.10.19
03.접근제어자(Access Modifier)  (0) 2022.10.10