LabHub
배우기 러닝패스 코스

필드 번호를 바꿨더니 옛 클라이언트가 조용히 틀린 값을 읽었다

백엔드 엔지니어링 · 중급 · 이론 4 · 퀴즈 4 · 실습 3

Python 함수와 바이트를 다룰 줄 아는 백엔드 개발자를 위한 과정입니다. 실습 파드에는 protoc 도 protobuf 패키지도 없어서, 표준 라이브러리만으로 와이어 포맷 인코더·디코더를 직접 만들고 그 도구로 스키마 진화의 규칙을 실측합니다. 옛 클라이언트 앞에서 필드 번호를 바꿔 조용히 틀린 값이 나오는 사건을 재현하고, 두 .proto 를 비교하는 계약 검사기를 만들어 CI 에 넣을 모양으로 마무리합니다. 호출 네 가지·상태 코드·데드라인·재시도는 공식 문서의 규칙만 다룹니다.

실습 시작하기

커리큘럼

바이트 한 줄이 필드 번호를 품고 있다

varint·태그·LEN 을 손으로 만들어 와이어에 이름이 없음을 확인한다

번호는 이름보다 오래 산다

옛 클라이언트 앞에서 스키마를 바꾸며 reserved·optional·번호 변경의 결과를 실측한다

호출 네 가지와 죽는 방법 열여섯 가지

스트리밍 네 형태, 상태 코드, 데드라인 전파, 취소, 재시도 정책, 헬스체크·메타데이터

계약 검사는 리뷰어가 아니라 스크립트가 한다

두 .proto 를 비교해 위반을 찾는 검사기를 만들고 디렉터리 단위로 돌린다

참고 문서