객체의 필드를 바이너리 형식이나 바이트스트림으로 바꾸는 작업을 말하지만 바이트 스트림이 아니어도 DB, 메모리, 파일 등으로 바꾸는 작업도 포함한다. 반대로 바이트스트림을 원래대로 바꾸는 작업은 역직렬화(Deserialization)이다.
한 객체의 메모리에서 표현방식을 저장 또는 전송에 적합한 다른 데이터 형식으로 변환하는 과정이다.
어떤 언어(C#)로 작성된 프로그램의 출력 매개변수들(Object, Struct, Data 등)을 다른 언어(C++)로 작성된 프로그램의 입력으로 전달해야 하는 경우에 필요하다. 언마샬링(Unmarshalling)은 이러한 마샬링 개념으로 묶어진 데이터, 즉. 마샬링을 통해 보내진 데이터들을 원래 구조(묶음 풀기)로 복원시키는 것이다.
- C# 에서의 직렬화와 역직렬화가 마샬링 방법중 하나인 것이다.
- 닷넷에서의 마샬링은 값 마샬링(Marshal By Value)와 참조 마샬링(Marshal By Reference)가 있다.