2011년 6월 9일 목요일

직렬화(serializable)

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

댓글 없음:

댓글 쓰기

ETL 솔루션 환경

ETL 솔루션 환경 하둡은 대용량 데이터를 값싸고 빠르게 분석할 수 있는 길을 만들어줬다. 통계분석 엔진인 “R”역시 하둡 못지 않게 관심을 받고 있다. 빅데이터 역시 데이터라는 점을 볼때 분산처리와 분석 그 이전에 데이터 품질 등 데이...