[초보자] gRPC와 rest API

About_work·2024년 11월 17일
0

AD

목록 보기
2/2

좋아, 기술적인 깊이는 조금 더 추가하면서도 이해하기 쉽게 설명할게!


gRPC와 REST API의 역할

1. gRPC (빠르고 실시간)

  • gRPC는 서버와 차량 간 실시간 통신에 딱 맞는 기술이야.
    자율주행 차량은 끊임없이 센서 데이터를 서버로 보내고, 서버에서 차량으로 명령을 전달해야 해.
    예를 들어:

    • 차량: "내 위치는 (X: 100, Y: 200), 속도는 30km/h야."
    • 서버: "오른쪽으로 꺾어!"

    이걸 엄청 빠르게 처리해야 사고도 예방하고, 차량의 반응도 늦지 않겠지?

  • gRPC는 프로토콜 버퍼(Protocol Buffers)라는 데이터를 효율적으로 압축해서 보내는 방식으로 작동해.

    • JSON처럼 사람이 읽기 쉬운 텍스트 기반이 아니라, 바이너리 형태(압축된 데이터)라 전송 속도가 더 빨라.
    • 데이터 크기가 작으니, 네트워크 지연도 줄어들어.
  • 특히, 실시간 스트리밍 기능도 제공해.

    • 차량이 계속해서 데이터를 보내면서 동시에 서버에서 명령을 받을 수 있어.
    • 예를 들어:
      차량: "장애물 발견!"
      서버: "긴급 정지해!"

2. REST API (웹 기반, 쉬운 데이터 요청/응답)

  • REST API는 데이터를 주고받는 데 HTTP(웹 기술)를 사용해.
    웹 브라우저, 앱 같은 환경에서 정보를 가져오고 명령을 보내는 데 적합하지.

    • 예를 들어:
      UI에서 "차량 상태 확인" 버튼을 누르면, REST API가 서버에 "이 차량의 상태 어때?"라고 물어보고,
      서버는 "배터리는 80%, 속도는 20km/h야"라고 답해줘.
  • REST API는 요청-응답 방식으로 동작해.

    • "내가 데이터를 요청하면, 서버가 결과를 준다."
    • 차량 상태를 모니터링하거나 버튼을 클릭해서 특정 작업을 요청할 때 이 방식이 아주 적합해.
  • JSON 같은 데이터 포맷을 사용해서, 사람이 읽고 해석하기도 쉬워.

    • 예: { "battery": "80%", "speed": "20km/h" }

gRPC와 REST API를 함께 쓰는 이유

왜 gRPC만 쓰지 않을까?

  • gRPC는 빠르고 실시간 반응에 적합하지만, UI와 통합하기에는 복잡해.
    • 웹 브라우저는 gRPC를 바로 이해하지 못해.
    • A-UI(사용자 화면)는 REST API처럼 단순한 요청-응답 방식이 더 잘 맞아.
    • 예: "버튼 클릭 → 요청 → 데이터 표시" 같은 동작.

왜 REST API만 쓰지 않을까?

  • REST API는 HTTP를 기반으로 하기 때문에, gRPC보다 속도와 효율성이 떨어져.
    • 자율주행 차량처럼 실시간으로 대량의 데이터를 주고받아야 하는 환경에서는 한계가 있어.
    • 예를 들어: 차량이 "장애물 발견!"을 서버에 전송했는데, 응답이 늦어지면 사고가 날 수 있겠지?

시스템에서 두 기술이 사용되는 방식

1. gRPC

  • 차량 ↔ 서버 간 통신:

    • 차량이 주행 데이터를 gRPC로 서버에 전송하고,
      서버는 차량에 제어 명령을 내릴 때 사용해.
    • 예:
      • 차량: "현재 속도는 20km/h, 위치는 X: 100, Y: 200."
      • 서버: "왼쪽으로 5m 이동해!"
  • 장점: 빠르고 효율적이어서 실시간 반응이 가능.


2. REST API

  • A-UI ↔ 서버 간 통신:

    • A-UI에서 버튼을 누르면 REST API로 서버에 요청을 보내고,
      서버는 데이터를 보내줘서 화면에 표시해.
    • 예:
      • UI: "이 차량의 상태는?" (GET 요청)
      • 서버: { "battery": "80%", "speed": "20km/h" }
  • 장점: 사용하기 쉽고, UI와 잘 맞음.


쉽게 요약

기술어디에 사용?왜 사용?
gRPC차량 ↔ 서버 간 통신실시간으로 데이터를 주고받아야 하고, 속도가 빠르며 효율적이기 때문.
REST APIA-UI ↔ 서버 간 통신UI에서 데이터를 요청하고 결과를 보기 쉽게 받을 수 있기 때문.

결론

  • gRPC는 차량이랑 서버가 실시간으로 대화할 때 적합하고,
  • REST API는 사용자 화면(UI)이 서버에 요청하고 데이터를 볼 때 적합해.

이 둘을 함께 쓰면, 빠른 차량 제어와 쉬운 모니터링을 동시에 구현할 수 있어!

profile
새로운 것이 들어오면 이미 있는 것과 충돌을 시도하라.

0개의 댓글