반응형

api-design 9

gRPC Best Practices (공식 문서 기준)

이 글은 gRPC 공식 문서의 Best Practices, Performance, Security, Observability 가이드를 기준으로, gRPC를 실무에서 사용할 때 반드시 지켜야 할 기준과 피해야 할 패턴을 체크리스트 형태로 정리한 글입니다.이 글은 새로운 개념을 소개하지 않고, 지금까지 정리한 gRPC 설계·운영 원칙을 하나의 기준 문서로 묶는 것을 목표로 합니다. 기준 문서: https://grpc.io/docs/guides/concepts/ , https://grpc.io/docs/guides/performance/ , https://grpc.io/docs/guides/observability/ 📌 카테고리: Dev > gRPC1. API 설계메서드는 명확한 동작 단위를 나타내야..

[proto3] Well-Known Types 실무 사용 가이드

[proto3] Well-Known Types 실무 사용 가이드이 글은 Protocol Buffers 공식 문서(Well-Known Types)를 기준으로, proto3에서 제공하는 Well-Known Types를 실무에서 어떻게 사용하는 것이 적절한지, 그리고 어떤 경우에 사용을 피해야 하는지를 기준 중심으로 정리한 글입니다. 기준 문서: https://protobuf.dev/reference/protobuf/google.protobuf/ 📌 카테고리: Dev > gRPC1. Well-Known Types는 어떤 문제를 해결하기 위한 것인가proto3의 기본 scalar 타입만으로는 의미를 명확히 표현하기 어려운 경우가 있다.특정 시점과 시간의 길이타입이 고정되지 않은 데이터JSON과의 경계에 있..

[gRPC 공식 문서 정리 9편] proto3 JSON Mapping & Options

[gRPC 공식 문서 정리 9편] proto3 JSON Mapping & Options이 글은 Protocol Buffers 공식 문서(proto3)를 기준으로, proto 메시지가 JSON으로 어떻게 표현되는지, 그리고 proto 설계에서 자주 쓰이는 Options를 실무 관점에서 정리한 글입니다. 기준 문서: https://protobuf.dev/programming-guides/proto3/ 📌 이 글은 gRPC 공식 문서 정리 시리즈의 일부입니다.(카테고리: Dev > gRPC)1. 왜 JSON Mapping을 알아야 할까?gRPC는 기본적으로 JSON을 사용하지 않지만, 현실의 시스템에서는 다음과 같은 상황이 자주 등장한다.gRPC ↔ REST 병행 운영Gateway에서 JSON으로 변환로..

[gRPC 공식 문서 정리 8편] deprecated & reserved: proto 변경 전략과 호환성

[gRPC 공식 문서 정리 8편] deprecated & reserved: proto 변경 전략과 호환성이 글은 Protocol Buffers 공식 문서(proto3)를 기준으로, 운영 환경에서 proto를 안전하게 변경하기 위해 반드시 알아야 할 deprecated와 reserved의 역할, 그리고 backward compatibility(하위 호환성) 전략을 실무 관점에서 정리한 글입니다. 기준 문서: https://protobuf.dev/programming-guides/proto3/ 📌 이 글은 gRPC 공식 문서 정리 시리즈의 일부입니다.(카테고리: Dev > gRPC)1. proto 변경이 위험한 이유proto 파일은 단순한 스키마 정의가 아니라 이미 배포된 시스템 간의 계약이다.서버 코..

[gRPC 공식 문서 정리 7편] map / repeated / nested message: 컬렉션 설계의 기준

[gRPC 공식 문서 정리 7편] map / repeated / nested message: 컬렉션 설계의 기준이 글은 Protocol Buffers 공식 문서(proto3)를 기준으로, proto3에서 컬렉션과 구조를 표현하는 repeated, map, 그리고 nested message를 실무 설계 관점에서 정리한 글입니다. 기준 문서: https://protobuf.dev/programming-guides/proto3/ 📌 이 글은 gRPC 공식 문서 정리 시리즈의 일부입니다.(카테고리: Dev > gRPC)1. 컬렉션 설계는 proto 품질을 좌우한다proto 설계에서 컬렉션을 어떻게 표현하느냐는 단순한 문법 선택이 아니라 성능, 확장성, 호환성에 직접적인 영향을 준다.특히 아래 질문에 대한 ..

[gRPC 공식 문서 정리 6편] oneof & enum 제대로 쓰기: 상태 모델링의 핵심

[gRPC 공식 문서 정리 6편] oneof & enum 제대로 쓰기: 상태 모델링의 핵심이 글은 Protocol Buffers 공식 문서(proto3)를 기준으로, proto3에서 상태를 표현할 때 가장 중요한 두 요소인 oneof와 enum을 실무 설계 관점에서 정리한 글입니다. 기준 문서: https://protobuf.dev/programming-guides/proto3/ 📌 이 글은 gRPC 공식 문서 정리 시리즈의 일부입니다.(카테고리: Dev > gRPC)1. proto에서 “상태”를 잘못 표현하면 생기는 문제proto 설계에서 가장 흔한 실수 중 하나는 서로 배타적인 상태를 여러 필드로 표현하는 것이다.message Payment { CardPayment card = 1; Bank..

[gRPC 공식 문서 정리 5편] Default Value & Presence: optional의 진짜 의미

[gRPC 공식 문서 정리 5편] Default Value & Presence: optional의 진짜 의미이 글은 Protocol Buffers 공식 문서(proto3)를 기준으로, proto3에서 가장 많이 오해되는 개념인 Default Value와 Presence, 그리고 optional field의 실제 의미를 실무 관점에서 정리한 글입니다. 기준 문서: https://protobuf.dev/programming-guides/proto3/ 📌 이 글은 gRPC 공식 문서 정리 시리즈의 일부입니다.(카테고리: Dev > gRPC)1. proto3에서 가장 많이 발생하는 실수proto3를 처음 접하면 대부분 이렇게 생각한다.“값이 없으면 null이겠지?”하지만 proto3에는 null이라는 개념..

[gRPC 공식 문서 정리 4편] proto3 기본 구조와 설계 철학

[gRPC 공식 문서 정리 4편] proto3 기본 구조와 설계 철학이 글은 Protocol Buffers 공식 문서(proto3)를 기준으로, gRPC API의 실제 계약을 정의하는 proto3의 기본 구조와 설계 철학을 실무 관점에서 정리한 글입니다. 기준 문서: https://protobuf.dev/programming-guides/proto3/ 📌 이 글은 gRPC 공식 문서 정리 시리즈의 일부입니다.(카테고리: Dev > gRPC)1. 왜 proto3를 따로 다뤄야 할까?gRPC에서 API의 진짜 계약은 서버 코드가 아니라 .proto 파일에 있다.서버 구현은 바뀔 수 있지만, proto는 한 번 공개되면 되돌리기 어렵다. 그래서 proto3는 단순한 문법이 아니라 시간을 고려한 설계 언어..

[gRPC 공식 문서 정리 1편] gRPC Core Concepts 한 번에 이해하기

[gRPC 공식 문서 정리 1편] gRPC Core Concepts 한 번에 이해하기이 글은 gRPC 공식 문서(grpc.io)를 기반으로, Spring Boot + Kotlin 환경에서 gRPC를 이해하기 쉽게 정리한 글입니다. 기준 문서: https://grpc.io/docs/ 1. gRPC는 무엇인가?gRPC는 고성능 RPC(Remote Procedure Call) 프레임워크입니다. 핵심은 “HTTP API”가 아니라 함수 호출처럼 보이는 서비스 간 통신을 제공한다는 점입니다.RPC: 네트워크 호출을 메서드 호출처럼 다룸High performance: HTTP/2 + 바이너리 프로토콜Modern: Streaming, Deadline, Cancellation, Code generation2. gRPC..

반응형