배포 방식: gRPC

ㅁ 배포 방식

ㅇ 정의:
– 배포 방식은 AI 모델을 사용자 또는 다른 시스템에서 사용할 수 있도록 제공하는 방법을 의미하며, 효율성과 확장성이 중요한 요소입니다.

ㅇ 특징:
– 다양한 네트워크 환경과 요구사항에 맞춰 설계됨.
– 동기식/비동기식 호출, 데이터 전송 효율성, 확장성 등 주요 고려 사항 포함.

ㅇ 적합한 경우:
– 모델을 API 형태로 제공하거나, 실시간 예측 서비스를 구축할 때 적합.

ㅇ 시험 함정:
– 배포 방식의 종류와 특징을 혼동하거나, 특정 방식의 적합한 사용 사례를 잘못 이해할 가능성이 있음.

ㅇ 시험 대비 “패턴 보기” 예시:
– O: 배포 방식은 모델을 서비스 형태로 제공하기 위한 기술적 방법이다.
– X: 배포 방식은 모델 학습 과정에서 데이터 전처리 단계의 일부이다.

================================

1. gRPC

ㅇ 정의:
– gRPC는 Google에서 개발한 고성능 원격 프로시저 호출(Remote Procedure Call) 프레임워크로, HTTP/2를 기반으로 동작하며 다양한 언어를 지원합니다.

ㅇ 특징:
– HTTP/2 기반으로 높은 성능과 낮은 대기 시간을 제공.
– Protocol Buffers를 사용하여 직렬화 및 역직렬화 효율성 극대화.
– 양방향 스트리밍과 다중화 지원.

ㅇ 적합한 경우:
– 다중 언어 환경에서의 서비스 간 통신.
– 실시간 데이터 전송이 요구되는 경우.
– 대규모 분산 시스템에서의 효율적인 데이터 교환.

ㅇ 시험 함정:
– gRPC와 REST API의 차이점을 혼동하거나, HTTP/2와 HTTP/1.1의 특징을 잘못 연결할 가능성이 있음.

ㅇ 시험 대비 “패턴 보기” 예시:
– O: gRPC는 HTTP/2를 기반으로 하며, Protocol Buffers를 사용하여 데이터 직렬화 효율성을 높인다.
– X: gRPC는 HTTP/1.1을 기반으로 하며, JSON 포맷으로 데이터를 전송한다.

ㅁ 추가 학습 내용

gRPC와 REST API의 비교는 시험에서 중요한 주제입니다. 아래에 학습하기 좋은 방식으로 정리하였습니다.

1. **기술 기반의 차이**
– REST API: HTTP/1.1 기반으로 작동하며, 데이터 포맷으로 주로 JSON을 사용.
– gRPC: HTTP/2 기반으로 작동하며, 데이터 포맷으로 Protocol Buffers를 사용.

2. **HTTP/2의 주요 특징과 gRPC에서의 중요성**
– 다중화(Multiplexing): HTTP/2는 단일 연결에서 여러 요청과 응답을 병렬로 처리할 수 있어 지연 시간이 감소.
– 양방향 스트리밍: 클라이언트와 서버가 동시에 데이터를 주고받을 수 있는 기능을 지원.
– gRPC는 이러한 HTTP/2의 기능을 활용해 높은 성능과 효율적인 데이터 전송을 제공.

3. **보안 측면**
– gRPC는 기본적으로 TLS(Transport Layer Security)를 지원하여 데이터 전송의 보안을 강화.
– REST API도 TLS(HTTPS)로 보안을 제공할 수 있지만, 구현 방식에 따라 차이가 있을 수 있음.

4. **장단점 비교**
– gRPC의 장점:
– 성능이 뛰어나고, 데이터 크기가 작아 네트워크 효율성이 높음.
– HTTP/2의 장점을 활용해 실시간 통신과 스트리밍에 적합.
– 강력한 IDL(Interface Definition Language)을 통해 서비스 정의 및 코드 생성이 용이.
– gRPC의 단점:
– 디버깅과 테스트가 REST API에 비해 상대적으로 어려움.
– 브라우저에서 직접 호출이 어려워 추가적인 프록시 설정 필요.
– REST API의 장점:
– 사용이 간단하고, 브라우저 및 다양한 클라이언트에서 쉽게 호출 가능.
– JSON 포맷은 사람이 읽기 쉬워 디버깅과 테스트가 용이.
– REST API의 단점:
– HTTP/1.1 기반으로 인해 성능이 gRPC에 비해 낮을 수 있음.
– 대규모 데이터 전송 시 비효율적일 수 있음.

이러한 차이점과 특징을 명확히 이해하고, 각각의 기술이 어떤 상황에서 적합한지 판단할 수 있도록 준비하세요.

답글 남기기

Your email address will not be published. Required fields are marked *.

*
*