2011년 6월 9일 목요일

직렬화(serializable)

객체를 전송할때는 보통 3단계로 이루어집니다.
우선, 데이터를 특정 통신 채널로 보낼수 있는 형태로 바꾸어 지는 마샬링(marshaling)
그리고 나서 데이터 전달...
마지막으로 전달된 데이터를 풀어서 원래의 형태로 복원하는 언마샬링...
이런 단계를 거치죠....
그중 마샬링에 대해 좀 더 자세히 보면
마샬링은 데이터를 바이트들로 쪼개서 TCP와 같은 통신 채널을 통해 전송될
수 있는 형태로 바꿔주는 과정입니다.
일반적인 스트림을 통해서 정수를 전송할때는 정수는 4바이트로 쪼개져서 보내지죠
여기서 한발 더 나아가 완전한 객체와 같은 복잡한 데이터를 전송하기 위해서는
수신측에서 다시 구성할 수 있도록 객체를 적당한 구조로 일일이 나누어서 보내야 합니다.
이때 필요한게 객체 직렬화(object serialization) 입니다.
데이터를 바이트 스트림으로 잘게 쪼개 버리는 거지요.
그리고 이것을 일렬화(즉, 일직선으로 쭉 놓는다는 소리입니다.) 하는 겁니다.
이렇게 되어야지만 복잡한 객체를 전송할 수 있겠죠...
그리고 수신측은 이런자료를 받아서 다시 객체로 재구성하는데
이것을 역직렬화(deserialization)라고 합니다.

댓글 없음:

댓글 쓰기

블록체인 개요 및 오픈소스 동향

블록체인(block chain) 블록체인은 공공 거래장부이며 가상 화폐로 거래할때 발생할때 발생할 수 있는 해킹을 막는 기술. 분산 데이터베이스의 한 형태로, 지속적으로 성장하는 데이터 기록 리스트로서 분산 노드의 운영자에 의한 임의 조작이 불가...