Foundry
API 설계
중급

REST vs GraphQL vs gRPC

유행이 아니라 호출 주체를 보고 고른다

REST vs GraphQL vs gRPC

선택 기준

항목RESTGraphQLgRPC
포맷JSONJSONProtobuf
데이터 선택권서버클라이언트 질의서버(스키마)
스키마선택(OpenAPI)필수필수(.proto)
스트리밍제한적subscription양방향 기본
HTTP 캐시활용 가능별도 구현별도 구현
브라우저 직접 호출가능가능프록시 필요

언제 무엇을

  • REST: 공개 API, 캐시 이득이 큰 조회, 단순 CRUD
  • GraphQL: 화면마다 필요한 필드가 다른 클라이언트가 여럿일 때. 과다와 과소 조회 해소
  • gRPC: 내부 서비스 간 통신, 낮은 지연과 높은 처리량, 스트리밍

실무 포인트

  • GraphQL의 실제 비용은 N+1 조회와 쿼리 복잡도 폭주다. 배칭과 깊이, 복잡도 제한이 사실상 필수
  • gRPC는 브라우저에서 직접 호출이 어렵다. 엣지는 REST, 내부는 gRPC 조합이 흔하다
  • 세 방식은 배타적이지 않다. 한 시스템에서 계층별로 나눠 쓴다
  • 전환 판단 기준은 취향이 아니라 클라이언트 수, 필드 요구 편차, 지연 예산이다
면접에서 이렇게 나옵니다

Q.모바일과 웹이 요구하는 필드가 달라 응답이 계속 커집니다. 어떤 선택지가 있나요?

답변을 준비하고 있어요. 우선 위 본문에서 근거를 찾아보세요.

Q.GraphQL 도입 시 예상되는 성능 리스크와 대응 방법은?

답변을 준비하고 있어요. 우선 위 본문에서 근거를 찾아보세요.

Q.내부 서비스 간 통신에 gRPC를 쓰는 이유는 무엇인가요?

답변을 준비하고 있어요. 우선 위 본문에서 근거를 찾아보세요.

Q.REST의 HTTP 캐시 이점을 포기해야 할 때는 언제인가요?

답변을 준비하고 있어요. 우선 위 본문에서 근거를 찾아보세요.

먼저 스스로 답해보고 아래 답변과 견줘보세요. 막히는 부분은 문제로 확인할 수 있어요.

읽었으면 문제로 확인해보세요

API 설계 문제를 풀면 틀린 문제가 자동으로 노트에 쌓입니다. 가입 없이 5문제를 먼저 풀어볼 수도 있어요.