최신 API에서 API Gateway 속도가 중요한 이유

10년 전만 해도 API 속도가 중요한지 묻는다면 별로 생각하지 않았을 것입니다.
오랫동안 API로 작업해 왔지만 대개 인프라 측면에서 볼 때 서버나 스토리지를 구성할 때는 몇 초 정도면 큰 차이가 나지 않았습니다.

그러나, 최신 API에서 속도가 중요한 이유는 무엇일까요?

API(Application Programming Interface)는 현대 소프트웨어 개발에서 매우 중요한 역할을 합니다. API는 애플리케이션과 서버 사이의 통신을 담당하며, 클라이언트 애플리케이션과 백엔드 서비스를 연결하는 역할을 합니다.

지금으로 돌아가서 우리의 삶의 많은 부분과 기술과의 일상적인 상호 작용이 API 기반이라는 것을 더 잘 이해하고 있습니다. 속도는 중요합니다. 좋은 사용자 경험과 수용할 수 없는 사용자 경험의 차이일 수 있습니다.

해당 포스트에서는 가장 중요한 몇 가지 사용 사례를 살펴보고 훌륭한 API 구현이 어떻게 고객에게 모든 차이를 가져올 수 있는지 살펴보고자 합니다.

목차

1. API 사용 사례 – 주문형 저녁 식사
2. API 사용 사례 – Lights, API, Action
3. API 사용 사례 – 금융과의 즐거움
4. NGINX가 최신 API의 속도 향상에 도움이 되는 방법

1. API 사용 사례 – 주문형 저녁 식사

당신이 세계 어디에 있든지, 의심할 여지 없이 당신은 DoorDash나 Deliveroo와 같은 현대적인 음식 배달 서비스를 이용할 수 있습니다.
영국에서 가장 인기 있는 곳은 Deliveroo이고 최근 유행병 기간 동안 저는 이 서비스를 많이 이용했습니다.

일반적인 소비자들은 저녁 식사가 어떻게 배달되는지에 대해 많은 생각을 하지 않을 것입니다.
하지만 내부를 들여다보면 기술적인 걸작을 발견할 수 있습니다. 수백 또는 수천 개의 서비스가 모두 협력하여 사용자에게 기대했던 경험을 제공합니다.

이러한 서비스 중 많은 수가 애플리케이션 스택 전반에 걸쳐 다양한 기능을 위한 API Endpoint를 제공하고 있습니다.
이러한 서비스 중 일부는 식당이 온라인 상태가 되어 배달될 때까지의 예상 대기 시간을 표시할 수 있도록 해줍니다.
다른 서비스에서는 드라이버가 요청을 수락할 수 있는 상태로 로그온하고 위치를 추적할 수 있습니다.

배송 추적 프로세스는 기본 API 의 속도가 어떻게 중요한지에 초점을 맞추고자 하는 부분입니다.
문을 하고 드라이버가 할당되면 사용자 위치에 대한 진행 상황을 실시간으로 업데이트할 수 있습니다.
드라이버의 이름과 사진, 현재 위치, 교통수단, 도착 예정 시간 등을 확인할 수 있습니다.

이 모든 데이터는 제공 앱의 드라이버 측에서 수집되고 다양한 API 를 통해 백엔드 시스템을 통과한 후 앱 측에 업데이트로 도착합니다.
특히 빠르게 이동하는 차량의 경우 이 시스템의 지연으로 인해 신뢰할 수 없거나 오래된 정보가 최종 사용자에게 나타날 수 있습니다.
이러한 앱들은 대부분 목적지까지 가는 가장 빠른 경로를 예측하는데, 업데이트가 지연되면 운전자가 화면에서 춤을 추는 것처럼 나타나 경로가 조정되고 예상 도착 시간이 늘어날 수 있습니다.

대부분의 API의 처리 시간은 수백 밀리초(ms) 단위로 실행되는데, 이는 매우 빠른 속도로 들립니다.
그러나 애플리케이션의 서비스와 모바일 네트워크를 통한 왕복 시간 사이에 여러 통화를 합산하면 누적 지연 시간이 운전자가 놓치기 쉬운 좌회전을 했는지 여부를 파악하는 데 큰 차이를 가져올 수 있습니다.

2. API 사용 사례 – Lights, API, Action

여러 Amazon Echo 제품, Samsung SmartThings, Philips Hue, 심지어 홈 어시스턴트에 자체 개발한 자동화도 있습니다.
아침에 일어나 Alexa에게 홈오피스 전원을 켜라고 요청하는 것이 일상이 되었습니다.
빠른 API 호출 없이는 어떻게 보일까요?

전반적인 루틴은 매우 간단합니다.
알렉사는 기존 알렉사 스킬 시스템을 통해 휴 브리지에 연결되고, 휴 브리지는 인터넷에 연결되어 휴 클라우드에 연결되며, 마지막으로 지그비를 사용하여 로컬 네트워크를 통해 모든 조명이 연결됩니다.
사무실에는 개별적으로 제어할 수 있는 7개의 조명이 있으며, 전화 회의나 촬영 중에 전체 흰색 벽을 부드럽게 하고 색상 분위기를 제공하는 Hue Play 조명 막대가 몇 개 있습니다.
또한 집중을 돕는 밝은 흰색을 제공하기 위해 사용하는 흰색 분위기 전구도 있습니다.

사무실 준비 과정에는 조명과 함께 ATEM Mini Pro에 연결된 WiFi 지원 소켓을 켜고 마지막으로 WoL(Wake-on-LAN) 패킷을 본사 PC로 보내는 작업이 포함됩니다.
둘 다 Samsung SmartThings Hub 내에서 제어됩니다. 전원 소켓은 해당 생태계의 일부이며 저는 webCoRE를 사용하여 WoL 매직 패킷을 호출합니다.
다시 Samsung SmartThings에는 Echo를 삼성 계정과 SmartThings 클라우드에 연결할 수 있는 Alexa Skill이 있습니다.

따라서 세 개의 개별 시스템과 홈 네트워크 간에 여러 API 호출이 있는 움직이는 부분이 많이 있습니다.
각 API 호출에 대해 지연 시간이 200ms만 증가하더라도 전체 루틴이 실행되고 내 네트워크에 다시 확인될 때까지 전체 지연 시간은 늘어날 수 있습니다.
조명을 켜기 위해 리모컨을 어디에 두었는지 뒤섞이는 동안 이 상황에서 어둠 속에 서 있는 것은 그다지 즐거운 일이 아닙니다.

첫 번째 문제인 건 알지만 일단 사용자 환경 내에서 특정 방식으로 특정 응답 시간에 익숙해지면 다른 모든 것이 불쾌해지고 시스템에 대한 인식이 손상됩니다.

3. API 사용 사례 – 금융과의 즐거움

더 나은 고객 환경을 제공하기 위해 API를 수용하고 현대화하는 측면에서 가장 인상적인 분야는 금융입니다.
은행 산업은 전통적으로 신기술을 매우 느리게 채택해 왔습니다. 심지어 온라인 뱅킹도 지점 내 경험과 동등한 기능을 제공하는 데 수년이 걸렸습니다.

최근 몇 년 동안, 몇몇 도전자 은행들이 등장했고 핀테크의 세계는 민첩하고 인재들로 붐볐습니다.
Jason Bededicic 가 사용하는 은행 중 하나는 Monzo입니다.
그는 초기 베타 단계부터 사용자였고, 그들과 훨씬 더 오래 함께한 친구들이 있습니다. Monzo의 기술 플랫폼은 금융 분야에서 그 누구에게도 뒤지지 않으며 많은 전통적인 은행들이 따라잡기 시작했음에도 불구하고, Monzo는 여전히 상당한 선두를 유지하고 있습니다.

돈에 관해서는, 매 순간이 중요하며, 여러분은 여러분이 은행과 안전하게 거래되고 있다는 것을 알고 싶을 것입니다. Monzo는 전적으로 디지털 방식입니다. 그렇기 때문에 직접 방문하여 고문과 이야기할 수 있는 지점이 없어, 모바일 앱과 모바일 앱이 제공하는 정보에 크게 의존합니다. Monzo가 구축한 API 는 매우 빠르기 때문에 매장 내 POS(Point-of-Sale) 장치가 업데이트되기 전에 휴대폰으로 거래 알림을 받을 수 있습니다.

Monzo는 또한 앱을 통해 내 카드를 즉시 차단하고, 기존 마그네틱 스트라이프 ATM의 사용을 금지하고, 도박과 관련된 거래와 같은 유해한 거래를 차단하는 메커니즘을 제공합니다. 은행 측에서는 API를 최대한 빠르게 실행함으로써 수천 달러를 절약할 수 있습니다.
고객이 자신의 카드에 차단을 설정한 경우 다음 번 탭 또는 스와이프 전에 결제 네트워크에서 이에 대해 알고 있는지 확인해야 합니다.

4. NGINX가 최신 API의 속도 향상에 도움이 되는 방법

지금까지 살펴본 모든 예는 인터넷을 통해 제공되는 고객 대면 서비스로, 이미 NGINX가 제공하는 우수한 기술을 기반으로 실행되고 있습니다.
웹 서버로 시작한 NGINX는 이제 애플리케이션 API Gateway 및 로드 밸런싱, 리버스 프록시 솔루션 등으로 많이 사용됩니다.

이미 데이터 영역에 자리 잡고 있다는 것은 NGINX가 API 서비스를 제공하기에 매우 적합하다는 것을 의미합니다.
매 밀리초(ms)마다 중요하며 API Gateway를 통해 로드 밸런서로 이동하는 기존 경로와 애플리케이션으로 이동하는 경로에서 여러 홉을 제거할 수 있다는 점이 모든 차이를 만듭니다.

지난 몇 년 동안 배포한 대부분의 Kubernetes 클러스터는 이미 NGINX를 Ingress Controller로 사용하고 있습니다.
한때 사용했던 물리적 ADC와 마찬가지로 NGINX는 여러 애플리케이션 제공 기능을 단일 플랫폼(이번에는 소프트웨어)으로 통합합니다. 하드웨어 ADC와 달리 NGINX는 인프라의 여러 위치에 배포할 수 있을 만큼 가벼우며 API 서비스를 코드에 더 가깝게 만드는 것은 최신 애플리케이션에 적합합니다.

사용자 경험을 개선하기 위해 API Gateway 속도는 매우 중요합니다. 속도가 빠른 API는 사용자들이 데이터를 더 빠르게 검색하고 처리할 수 있도록 도와줍니다. 특히, 모바일 기기에서의 사용자 경험은 속도가 중요한 역할을 합니다. 모바일 기기에서 API의 속도가 느릴 경우, 사용자들은 앱을 사용하는 것을 중단할 가능성이 높아집니다.

또한, 최신 API에서 속도가 중요한 이유는 대규모 트래픽 처리를 위해서입니다. 최근의 애플리케이션들은 대량의 데이터를 처리하고 매우 빠른 속도로 응답해야 합니다. 따라서, API의 속도는 애플리케이션의 성능에 직접적인 영향을 미치며, 대규모 트래픽을 처리하는데 필수적입니다.

또한, 보안적인 측면에서도 API의 속도는 매우 중요합니다. 보안 취약점을 공격하려는 공격자들은 API의 속도가 느릴 경우, 악의적인 행동을 쉽게 할 수 있습니다. 따라서, 최신 API에서는 높은 보안 수준과 빠른 속도가 필수적입니다.

NGINX Plus API Gateway는 이러한 요구사항을 충족시키기 위한 최적의 솔루션 중 하나입니다. NGINX Plus API Gateway는 빠른 속도와 높은 안정성을 보장하며, 대규모 트래픽을 처리할 수 있도록 최신 기술을 사용합니다. 따라서, NGINX Plus API Gateway는 개발자들이 안전하고 빠르게 API를 구축할 수 있도록 지원하며, 사용자들이 원활한 사용자 경험을 누릴 수 있도록 도와줍니다.

해당 포스트는 API 및 기타 애플리케이션 현대화 동향에 대한 시리즈의 일부로, 업계 전문가가 NetOps 엔지니어를 위해 특별히 작성하고 게시합니다.
이 포스트가 즐거우셨다면 아래 뉴스레터를 구독하여 알림을 받아보세요.

[hubspot portal=”21811816″ id=”4f489288-7b93-482d-a7a9-10746717f9e2″ type=”form”]