마샬링 이란?
- 한 객체의 메모리에서 표현방식을 저장 또는 전송에 적합한 다른 데이터 형식으로 변환하는 과정이다.
- 이는 데이터를 컴퓨터 프로그램의 서로 다른 부분 간에 혹은 한 프로그램에서 다른 프로그램으로 이동해야 할 때도 사용된다.
마샬링 특징
- 마샬링은 직렬화와 유사하며 직렬화 된 오브젝트로 멀리 떨어진 오브젝트와 통신하기 위해 사용된다.
- 이는 복잡한 통신을 단순화 하기 위해, 기본 요소 대신 통신을 위한 맞춤형 오브젝트를 사용한다.
- 마샬링의 반대 개념으로 언마샬링이 있다
- 디마샬링 이라고도 불리며, 역직렬화와 유사하다.
마샬링의 용도
- 마샬링은 프로세스간 또는 스레드간 데이터 전송에 필요한 원격 프로시저 호출 매커니즘의 구현에 사용된다.
- 마이크로소프트 COM(컴포넌트 오브젝트 모델)에서 인터페이스 포인터는 COM 아파트먼트 바운더리(COM)를 지날 때 (즉, COM 라이브러리 인스턴스들의 경계를 지날 때) 마샬링 되어야만 한다.
Serialization과 비교
- 오브젝트를 "마샬링한다"는 것은 그것의 상태와 코드베이스를 기록하는 것을 의미한다.
- 마샬링된 오브젝트가 "언마셜링" 될 때, 오브젝트의 클래스 정의를 자동적으로 로딩함으로써 원본 오브젝트의 사본을 얻는 방식으로 기록되는 방식이다.
- 직렬화 될 수 있거나 원격의 어떤 오브젝트라도 마셜링할 수 있다.
- 마샬링은 코드베이스를 기록한다는 점을 제외하면 직렬화와 유사하다.
- 마샬링이 직렬화와 다른 점은 원격 오브젝트를 특별하게 다룬다는 점이다.
- 오브젝트를 "직렬화한다"는 것은 오브젝트의 상태를 오브젝트의 사본으로 다시 변환할 수 있는 바이트 스트림으로 변환하는 것을 의미한다.
'이론' 카테고리의 다른 글
| I/O 버스 (0) | 2024.04.07 |
|---|---|
| 직렬화 (0) | 2024.04.06 |
| Race Condition (0) | 2024.04.05 |
| Sprite Sheet (0) | 2024.04.03 |
| Scriptable Object (0) | 2024.04.02 |