TIL

04장 부호화의 발전

데이터 부호화 형식

언어별 형식

JSON과 XML, 이진 변형

스리프트와 프로토콜 버퍼

// 스리프트 스키마의 예
struct Person {
	1: required string username,
	2: optional i64 favoriteNumber,
	3: optional list<string> interests
}

아브로

// 아브로 IDL 스키마 예
record Person {
	string userName;
	union { null, long } favoriteNumber = null;
	arra<string> interests;
}
// 동일한 JSON 표현
{
	"type": "record",
	"name": "Person",
	"fields": [
		{ "name": "userName", "type": "string" },
		{ "name": "favoriteNumber", "type": ["null", "long"], "default": null },
		{ "name": "interests", "type": {"type": "array", "items": "string} }
	]
}

스키마 기반 이진 부호화의 장점

데이터플로 모드

데이터베이스를 통한 데이터플로

서비스 통한 데이터플로

원격 프로시저 호출(RPC) 문제

메시지 전달 데이터 플로

분산 액터 프레임워크