더북(TheBook)

표준 데이터 모델을 사용하면 서비스 간 데이터 형식이 더 강하게 분리되며, 여러 서비스의 내부 모델 사이에서 데이터를 더 간단하게 매핑할 수 있습니다. 구현에 새 서비스가 추가되더라도 데이터를 사용하는 다른 서비스가 이 데이터를 어떻게 표현하는지에 상관없이 표준 데이터 모델과 내부 데이터 모델 사이의 변환만 필요합니다.

이상적으로는 표준 데이터 모델이 변경되지 않아야 하지만, 실제로는 변경되기도 합니다. 이런 상황에서 메시지를 생성하는 서비스의 메시지 스키마를 변경한다면 이전 버전과의 호환성에 신경 써야 합니다. 때로는 불가피하게 호환성이 깨지기도 하는데, 이 경우 주어진 메시지 스키마를 사용하던 기존 소비자가 문제를 겪을 위험이 있습니다.

이 문제를 해결하는 방법은 새로운 서비스 배포를 새로운 토픽으로 만드는 것입니다. 마치 API 버전 관리 모범 사례처럼 말입니다. 새로운 스키마를 지원하는 소비자는 이 토픽의 메시지를 사용할 수 있으며, 이전 스키마를 사용하는 소비자는 기존의 스키마를 계속 활용합니다.

이런 버전 관리 접근법을 사용하면 시스템의 다른 부분에 손상을 입히지 않고도 기능만 독립적으로 발전시킬 수 있습니다. 다만 이 접근법은 동일한 서비스를 다른 버전으로 여러 번 배포할 경우 시스템의 규모가 증가하고 복잡해진다는 단점이 있습니다. 이를 방지하기 위해 일정 기간이 지나면 이전 버전을 삭제하는 ‘버전 사용 중단 정책’을 도입하는 것이 중요합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.