
79
3
장
통신 및 데이터 규약
때문에 팀 간에 더 많은 소통이 필요하고 강력한 데이터 규약을 통해 서로 격리된 상태를 유지
하는 마이크로서비스 본연의 가치가 훼손될 수 있습니다.
TIP
특히, 비구조
unstructured
(구조나 포맷이 없는) 일반 텍스트 이벤트는 시간이 지날수록 유스 케이스
use
case
(용도)와
데이터가 점점 달라지므로 프로듀서/컨슈머 모두 부담스럽습니다. 필자는 아브로, 프로토콜 버퍼처럼 통제 가
능한 스키마 진화를 지원하는, 강력하고 명시적인 스키마 포맷을 권장합니다.
JSON
은 스키마 진화를 완벽하
게 지원하지 못하므로 권장하지 않습니다.
3.3
이벤트 설계
이벤트 정의를 생성할 때에는 반드시 따라야 할 모범 사례도 있는 반면 반드시 피해야 할 안티
패턴
anti
-
pattern
3
도 있습니다. 우선 이벤트 기반 마이크로서비스로 작동되는 아키텍처 수가 늘어
날수록 이벤트 정의도 많아진다는 사실을 기억하세요. 이벤트를 잘 설계해야만 프로듀서/컨슈
머 모두에게 고통스러운 일을 최대한 덜 수 있습니다. 물론 반드시 이렇게 해야 한다는 절대 규
칙 같은 건 없습니다. 상황에 따라 여러분 재량껏 판단해서 적용할 일이지만, 본인의 문제 공간
에 함축된 의미를 종합적으로 바라보고 어떤 트레이드오프가 있는지 심사숙고한 다음 진행할
것을 권고합니다.
3.3.1 ...