실시간 API 를 지원하는 API Gateway를 선택해야 하는 이유

이번 포스트에서는 실시간 API 가 무엇이며, 오늘날 실시간 API의 이점을 활용할 수 있는 다양한 사례와 필요한 이유에 대하여 설명합니다.

저녁 식사를 하러 가기 위해 스마트폰으로 차량을 호출하는 애플리케이션을 사용했습니다. 애플리케이션을 열고 목적지를 입력한 후 차량을 호출하고, 도착하면 차에서 내려 등록된 신용카드로 요금을 자동으로 결제하는 이 방식은 우리 대부분에게 익숙합니다. 기사가 픽업하기를 기다리는 동안 지도가 실시간으로 업데이트되어 차량이 접근 중인 위치를 표시합니다. 하지만 그날은 애플리케이션이 지도를 업데이트하지 않았습니다. 기사가 오는 중인지, 제 요청을 수락했는지 알 수 없어 점점 더 불편한 5분을 기다렸습니다. 10분이 지나자 좌절감을 느낀 저는 다른 차량 호출 애플리케이션으로 전환했습니다. 이번에는 성공했고 기사가 다가와서 저를 태우는 모습을 실시간으로 볼 수 있었습니다. 그리고 몇 분의 여유를 가지고 저녁 식사에 도착했습니다.

요점은 실시간 정보는 오늘날의 디지털 사용자 경험에 매우 중요합니다. 다른 예를 살펴보겠습니다.

샌프란시스코에 있는 Amazon Go 매장을 방문했습니다. 정말 놀라운 경험이었습니다. 스마트폰에 Go 애플리케이션을 다운로드한 상태에서 문에 다가가기만 하면 자동으로 잠금이 해제됩니다. 매장을 돌아다니면서 물건을 집으면 가상 장바구니에 자동으로 추가되고, 선반에 다시 올려놓으면 자동으로 제거됩니다. 쇼핑이 끝나면 그냥 걸어 나가면 됩니다! 등록된 카드에 요금이 청구되고 영수증이 이메일로 전송됩니다. 계산대에 줄을 설 필요도 없고, 지연도 없고, 계산원도 필요 없습니다. 쉽고 간편한 매장 내 쇼핑 경험이었습니다. Amazon Go는 컴퓨터 비전, 센서 융합, 딥 러닝 기술을 포함한 일련의 실시간 시스템을 연결하여 이를 실현합니다.

다시 한번 알 수 있듯이 실시간 정보는 사용자 경험에 매우 중요합니다. 게다가 저는 지갑에서 신용카드를 꺼내는 것을 좋아하지 않습니다.

목차

1. API는 좋은 디지털 경험의 핵심 요소입니다.
2. “실시간”이란 무엇을 의미하나요?
3. 실시간 경험에는 실시간 API 가 필요합니다.
4. 실시간 API 의 일상적인 사용 사례
4-1. 채팅
4-2. 사기 탐지
4-3. IoT
5. 실시간 API 인프라를 위한 신뢰할 수 있는 토대가 되는 NGINX

1. API는 좋은 디지털 경험의 핵심 요소입니다.

차량 호출 애플리케이션의 경우, 접근하는 차량의 위치를 실시간으로 추적할 수 있다는 점에서 약간의 이점이 있습니다. – 인내심이 없는 승객에게 진행 상황을 알려주고, 기다리는 동안 지루할 때 볼거리를 제공하며, 도착이 임박했을 때 알려주어 차를 찾을 수 있도록 도와줍니다. 좀 더 실용적인 기능으로, 운전자가 길을 잘못 들었을 때 연락하여 경로를 수정할 수 있도록 도와줄 수 있습니다. 실제 여행 중에 여러분과 운전자 모두 현재 위치를 정확히 확인할 수 있고 여행에 얼마나 더 걸릴지 추정할 수 있습니다. 마지막으로, 등록된 카드로 결제하는 것이 택시 기사에게 현금이나 카드로 지불하는 것보다 훨씬 편리하며 팁을 계산할 필요가 없습니다.

Amazon Go 스토어의 경우 전체 환경이 실시간 처리를 기반으로 하므로 매장에 들어가면 즉시 신원이 확인되고 신용카드 정보에 액세스하여 상품 하나만 집어 들고 나가도 바로 결제가 완료됩니다. Go 애플리케이션은 진열대에 있는 품목을 가져가거나 교체할 때 계산을 계속 진행하므로 매장을 떠나기 전에 총 비용이 계산될 때까지 기다릴 필요가 없습니다. 지갑을 꺼낼 필요도 없습니다. 원활한 쇼핑 경험을 방해하는 대기 시간이 길어지면 차라리 한 블록 떨어진 일반 매장으로 걸어가는 편이 낫습니다.

소비자에게 좋은 실시간 경험을 제공하는 데는 많은 것이 달려 있습니다. 디지털 세상에서는 경쟁업체로 전환하는 장벽이 매우 낮습니다. 그렇기 때문에 Uber나 Amazon과 같은 기업들은 실시간으로 정보를 검색할 수 있도록 하는 데 많은 투자를 하고 있습니다. 실제로 Uber는 Google 지도를 사용하여 운전자에게 길 안내를 제공하고 라이더에게 시각화된 정보를 제공합니다. 이러한 가치를 제공하기 위해 Uber는 어떤 비용을 지불하고 있을까요? 2년 동안 Google에 5,800만 달러를 지불했습니다.

2. “실시간”이란 무엇을 의미하나요?

실시간 트랜잭션 처리 및 분석은 매력적인 디지털 사용자 경험을 위한 중요한 구성 요소로 자리 잡았습니다. 실시간을 어떻게 정의할 수 있을까요? 연구에 따르면 실시간은 30ms 미만이어야 한다고 합니다.

다음과 같은 증명 포인트를 고려해보세요.

  • 사람이 사진을 처리하는 데 걸리는 시간은 13ms입니다. MIT 신경과학자들의 연구에 따르면 인간의 눈은 전체 이미지를 처리하고 식별하는 데 13ms밖에 걸리지 않는다고 합니다. 연구진은 피실험자들에게 각각 13~80ms 동안 제시된 6~12개의 이미지 시리즈를 식별하도록 요청했습니다. 피험자가 이러한 이미지를 식별하는 가장 빠른 속도는 13ms였습니다.
  • 비디오 동기화에 20ms가 소요됩니다. 비디오 콘텐츠를 전송할 때 이미지와 사운드의 동기화 손실을 방지하기 위해 ‘Media Fingerprinting‘ 기술을 사용하는 것에 관한 IEEE 논문에 따르면 지연 시간의 용납 가능한 한계는 6~20ms 사이입니다.
  • 무선 데이터 전송에 30ms가 소요됩니다. 최대 1Gbps의 최고 속도와 30ms 미만의 지연 시간을 약속하는 5G 기술의 도입으로 유비쿼터스 연결이 곧 실현될 것입니다. 왜 이렇게 지연 시간이 짧을까요? 5G가 가정용 WiFi와 광섬유 및 케이블 모뎀과 같은 유선 광대역을 대체하려면 그만큼 빨라야 하기 때문입니다.

실시간은 지연 시간을 최소화하는 것이 핵심이며, 지연 시간에 대한 허용 오차는 점점 더 낮아지고 있습니다. 실시간이라고 인식되려면 처리 시간이 30ms를 넘지 않아야 하며, 경우에 따라서는 13ms까지 짧아야 합니다.

보다 구체적으로 30ms 지연 시간 임계값은 처리된 요청의 99번째 백분위수까지 유지되어야 합니다(즉, 평균적으로 100건 중 1건의 요청만 30ms보다 오래 걸립니다).

3. 실시간 경험에는 실시간 API 가 필요합니다.

저녁 식사를 하면서 API를 생각하게 되었다고 말문을 열었습니다. 그 점들을 연결해 봅시다.

실시간 경험은 API 연결에 의존합니다. Uber는 API 호출을 통해 Google 지도 데이터를 검색합니다. Amazon은 API 호출을 통해 매장 내 Go 인프라와 센서, 영상 및 분석 기능을 연결합니다.

실시간 경험은 실시간 API 호출에 크게 의존한다는 것은 당연한 일입니다. 즉, API 인프라는 API 호출을 30ms 이내에 처리해야 합니다. 일부 사용 사례의 경우 6ms까지 필요하기도 합니다.

어렵게 들리지 않을 수도 있지만, API 인프라가 반드시 필요하다는 점을 생각해 봅시다.

  • Route API. API 소비자를 확인합니다. – 차량 호출 애플리케이션처럼 – 매핑 서비스와 같은 올바른 Backend 리소스로 올바르게 연결됩니다.
  • Authenticate API. 이 API 소비자가 이 Backend 리소스에 액세스할 수 있는 유효한 사용자인가요? 사용자를 인증하여 유효한지 확인해야 합니다.
  • Secure API. 요즘은 암호화가 필수입니다. API는 가장 중요한 애플리케이션 자본의 관문이므로 보안이 보장되어야 합니다.
  • Shape API. 모든 API 호출이 동일한 것은 아닙니다. 리소스 충돌을 피하고 적절한 대역폭을 제공하며 특정 API 호출의 우선순위를 지정하기 위해 트래픽을 형성하는 방법이 필요합니다.
  • Cache API. 많은 기업이 하루에 수십억 건의 API 호출을 처리합니다. 이 많은 양을 어떻게 처리할까요? API 응답을 캐싱하는 것은 성능을 향상시키는 한 가지 방법입니다.

따라서 실시간 API를 다음과 같이 정의합니다: API 호출을 End to End 방식으로 30ms 이내에 처리할 수 있습니다.

그리고 실시간 API 인프라는 다음과 같이 정의합니다: 30ms 이내에 API를 라우팅, 인증, 보안, Shape 및 캐시하는 기술입니다.

4. 실시간 API 의 일상적인 사용 사례

디지털 세상에는 실시간 API의 이점을 활용할 수 있는 다양한 활동이 있습니다. 그 중 몇 가지를 소개해드리겠습니다.

4-1. 채팅

실시간 API가 필요한 이유: 우리 모두는 일상에서 채팅 애플리케이션을 사용해 본 경험이 있습니다. 오늘날 채팅은 많은 기업, 특히 B2C 업종에서 선호하는 고객 서비스 플랫폼으로 자리 잡았습니다. 채팅은 1-800 고객 서비스 번호를 대체했습니다! 많은 채팅 애플리케이션은 타사 채팅 도구나 Bot에 대한 API 호출을 필요로 하는 사이트 플러그인입니다.

실시간 API가 없을 경우 비즈니스에 미치는 영향: 채팅 애플리케이션의 짧은 지연 시간은 고객 경험에 있어 매우 중요한 요소입니다. 실시간 API 호출이 없으면 고객 만족도가 낮아져 매출에 영향을 미치고 Net Promoter Score(NPS)가 하락할 수 있습니다.

4-2. 사기 탐지

실시간 API가 필요한 이유: 금융 서비스 부문에서는 판매 시점의 신용카드 거래에 사기 탐지 기술을 사용합니다. 이러한 기업들은 대량의 데이터를 처리하고 예측/포렌식 분석을 사용하여 이상값을 탐지합니다. 예를 들어, 짧은 시간 내에 많은 수의 고액 거래가 발생하고 있는지, 평소 쇼핑하는 곳에서 멀리 떨어진 곳에서 카드가 사용하고 있는지, 이러한 거래는 카드 소유자의 평소 구매 패턴에서 벗어난 것으로 표시되며 카드 프로세서는 거래를 차단하거나 카드 소유자에게 전화하여 구매에 대한 명시적인 확인을 요청할 수 있습니다. 이 모든 과정은 고객이 판매 시점에 있을 때 실시간으로 이루어져야 합니다.

실시간 API가 없을 경우 비즈니스에 미치는 영향: 카드 소지자는 신용카드를 두 개 이상 가지고 있을 가능성이 높습니다. 거래가 너무 오래 걸리거나 거부되면 고객은 다른 카드를 사용할 것입니다. 고객이 다른 사람의 제품과 서비스를 사용하는 것을 방지하려면 실시간 API가 필요합니다.

4-3. IoT

실시간 API가 필요한 이유: IoT는 놀라운 속도로 우리의 삶을 변화시키고 있습니다. 일상생활에서 API가 사용되며 실시간으로 이루어져야 하는 몇 가지 예를 설명하겠습니다.

  • 홈 자동화: 대화할 수 있는 스마트 리모컨이 있나요? Alexa 또는 Siri로 구동되는 홈 자동화 기기는 어떤가요? 스트리밍 비디오부터 시간대에 따라 최적의 햇빛과 프라이버시를 위해 자동으로 조절되는 스마트 블라인드에 이르기까지 모든 것을 제어할 수 있는 실시간 음성 호출 기능이 있어야 좋은 경험을 할 수 있습니다.
  • 의료 기기 모니터링: 암에서 당뇨병에 이르기까지 환자의 건강을 모니터링하는 데 IoT가 점점 더 많이 사용되고 있습니다. 혈당 수치나 혈압과 같은 다양한 생체 매개변수가 매일 기록됩니다. 그런 다음 환자의 담당 의사에게 정보가 전송되어 적절한 치료를 시행합니다. 환자의 치료 결과를 개선하기 위해서는 이러한 정보를 실시간으로 파악하는 것이 무엇보다 중요합니다.
  • 자율주행 자동차: 이 기술은 다양한 센서와 소프트웨어를 사용하여 차량을 제어, 안내 및 주행합니다. 센서가 수집한 대량의 데이터를 분석하여 최적의 경로를 선택하고 충돌을 피하거나 최소화하기 위해 언제 어디서 멈춰야 하는지에 대한 주요 결정을 순식간에 내려야 합니다.

실시간 API가 없을 경우 비즈니스에 미치는 영향: 실시간 API가 부족하면 음성 제어 스마트 기기, 원격 의료, 자율주행 자동차와 같은 혁신적인 서비스가 도입되지 못할 수 있습니다. 이러한 새로운 서비스의 잠재력을 최대한 발휘하지 못하면 수익과 시장 확장이 지연될 수 있습니다.

5. 실시간 API 인프라를 위한 신뢰할 수 있는 토대가 되는 NGINX

혁신적인 경험을 제공하려면 고성능 API 솔루션이 필요합니다. NGINX는 4억 개 이상의 웹사이트를 지원하고 있으며, 2019년 사용자 설문조사에 따르면 NGINX Plus 사용자의 47% 이상(NGINX Open Source 사용자의 35%)이 이미 모든 API 솔루션의 기본 Layer인 API Gateway로 NGINX를 배포한 것으로 나타났습니다. 여기에는 전통적인 API 솔루션 업체인 Axway, Kong, MuleSoft, Red Hat 3Scale 등과 같이 NGINX가 핵심 구성 요소인 솔루션은 모두 포함되지 않았습니다.

이 모든 API 인프라의 기반이 되는 NGINX가 왜 필요한가요? NGINX는 API 호출을 30ms 이내에 안정적으로 처리하며, 이는 시장에서 유일한 실시간 API 솔루션입니다.

NGINX Plus 및 NGINX API를 직접 사용해 보거나 테스트해 보려면 지금 30일 무료 평가판을 신청하거나 사용 사례에 대해 최신 소식을 빠르게 전달받고 싶으시면 아래 뉴스레터를 구독하세요.