Prototype
= type에 관한 정보, C언어의 경우 Header file에 적혀 있다.
Variant
= Type이 맘대로인 값
type과 variable
= class와 object
= Class(Java에 사용하는 개념)와 class
C가 대문자인 것에 주의.
Marshalling = Serialize
Object를 byte stream으로 만드는 일
Unmarshalling = Unserialize
Byte stream이 된 것을 다시 object로 만드는 일.
Marshalling을 쓰는 이유
Object를 Network으로 쉽게 넘기고 받고, 쉽게 파일에 저장하는 등.
여러가지를 알아서 해준다.
Delimiter를 정의하고 개발자가 직접 짜려고 하면 귀찮으니,
Java, PHP, COM은 그런 걸 지원한다.
Universal marshalling
Marshalling인데, prototype없이도 가능하다.
Universal marshalling이 필요한 이유?
client code와 server code가 source를 share할 필요가 없으므로
어떤 내용이 추가되어도 재컴파일 할 필요가 없다.
Library 배포시, 소스 배포(or header 배포)없이 바이너리 배포만 하면 된다.
혹은 PHP처럼 type이 자동으로 바뀌는 언어와 C언어 간에서
자동 type conversion시에 유용하다.
Java.lang.reflect
Universal marshaller등을 쓸 때 meta적인 개념이 많이 나와서 쓰는 사람은 귀찮다.
reflect를 쓰면 client는 그런 걸 잊고 기존과 비슷하게 사용할 수 있다.
참고)
Hessian
http://www.caucho.com/
댓글 없음:
댓글 쓰기