Marshalling과 Serialization을 유사하다고 한다. 위키피디아에 따르면 파이썬 표준라이브러리에서는 직렬화와 마샬링은 동일하게 간주된다고 한다. 포트란에서도 동일하게 본다. 근데 자바에서는 굳이 구분하는데 뭐가 다를까?

Marshalling은 코드베이스를 기록하지만 직렬화는 하지않는 점이 다르다고 한다. 즉 원격 프로시저를 호출하는 것에서는 유사하지만 다른 목적을 가졌다는 것이다. Marshaling은 원격 프로시저를 호출할때 함수의 parameter, return value들을 전달할 수 있는데 반해 Serialization은 구조화된 데이터를 byte stream과 같은 형식으로 복사하는 것을 의미한다.

이해하기가 어렵다. 쉽게 이야기하면 직렬화는 객체 자체를 복사하는 개념이고 마샬링은 코드베이스를 가져와 만드는 개념이다.

그래서 객체를 이용하지 않는 다른 언어 또는 플랫폼간의 통신할때 주로 Marshaling을 과정을 통한다. 그리고 네트워크나 객체 싱크에는 Serialization을 많이 이용한다.

Posted by duehd88
,