API 라이프사이클 전체에서 모의 서버 사용

APIGit

2023-04-25

The-Many-Ways-to-Use-Mock-Servers

API 수명 주기 전체에서 모의 서버 사용

모의 서버는 개발 과정에서 발생하는 다양한 예상치 못한 문제에 유용한 솔루션입니다. 여러 API와 통합하는 데 시간이 많이 소요될 수 있습니다. 이상적인 상태에서는 평균 10%에 불과한 디버깅에 개인이 평균 16%의 시간을 할애합니다. 외부 종속성과 동시 팀 노력도 지연과 좌절을 유발할 수 있습니다. 그러나 개발자는 모의 서버를 사용하여 이러한 차질과 중단을 최소화할 수 있으므로 전체 개발 수명 주기 동안 유용한 도구가 됩니다.

모의 서버란 정확히 무엇입니까?

명확히 하기 위해 모의 서버는 개발자가 API 요청 및 응답을 시뮬레이션할 수 있도록 하는 Apigit 플랫폼에서 사용할 수 있는 도구입니다. 모의 서버에 요청을 보내면 요청 구성을 저장된 예제와 일치시키고 해당 데이터로 응답을 제공합니다.

모의 서버는 개발자가 코드를 작성할 필요 없이 프로덕션 환경에서 API의 응답을 시뮬레이션하는 방법을 제공합니다. 모의 서버를 사용하면 API 인프라 개발의 피드백 루프가 단축되어 더 빠른 반복과 더 빠른 개발이 가능합니다.

이 블로그 게시물에서는 모의 서버 사용의 이점과 개발 워크플로를 개선할 수 있는 방법에 대해 설명합니다. Apigit은 모의 서버를 생성하기 위한 몇 가지 방법을 제공하며 이에 대해 자세히 살펴볼 것입니다.

협업을 위한 모의 서버 사용

대부분의 경우 개발 프로젝트에는 프로젝트의 서로 다른 측면에서 동시에 작업하는 여러 팀과 개인이 포함됩니다. 여기에는 소규모 프로젝트의 프런트엔드 개발자, 백엔드 개발자, QA 엔지니어 및 기타 전문가가 포함됩니다. 생산성과 효율성을 극대화하기 위해 팀이 프로젝트의 서로 다른 부분을 동시에 작업하는 것이 일반적입니다.

모의 서버는 개발 프로세스 전반에 걸쳐 효율성을 유지하고 API 생산자와 소비자 모두에게 도움이 되는 다목적 도구입니다. API 개발 수명 주기의 다양한 단계에서 활용할 수 있습니다. 예를 들어 프런트엔드 팀이 백엔드 또는 서버의 데이터를 통합하려는 경우 모의 서버를 사용하여 아직 완전히 구성되지 않았거나 작동하지 않는 API 엔드포인트를 시뮬레이션할 수 있습니다. 이렇게 하면 완전한 API 기능이 없는 경우에도 프런트엔드 엔지니어링이 정확하고 가능합니다.

모의 서버는 설계 단계와 같은 개발 프로세스의 초기 단계에서 활용할 수 있습니다. API 엔드포인트가 개발 및 배포될 때까지 기다리는 대신 Apigit을 사용하면 개발자가 API 사양에서 모의 서버를 생성하여 프런트엔드에서 사용할 서버 응답을 시뮬레이션할 수 있습니다. 이를 통해 UI 개발자는 모의 서버를 쿼리하고 예상되는 응답으로 작업하여 즉시 시작할 수 있습니다. 실제 API가 프로덕션 준비가 되면 개발자는 모의 API 응답에 대한 URL을 실제 API에 대한 URL로 교체할 수 있습니다(필요한 인증과 함께).

외부 종속성을 조롱하여 효율적으로 테스트

API 및 개발 프로젝트는 독립된 엔터티가 아니며 백엔드 개발에는 종종 외부 서비스와의 통합이 필요합니다. 그러나 외부 서버에 대한 호출은 제어할 수 없으며 503 서비스를 사용할 수 없음 오류를 반환하는 것과 같이 예측할 수 없고 신뢰할 수 없는 결과를 생성할 수 있습니다. 앞서 언급했듯이 API 문제 디버깅은 전체 개발 시간의 최대 16%를 소비할 수 있습니다. 프로젝트가 여러 외부 API에 의존하는 경우 API에 액세스하는 데 문제가 발생하여 진행을 방해할 수 있습니다. 그러나 이러한 문제로 인해 개발이 완전히 중단될 필요는 없습니다.

외부 API 호출은 종종 개발 워크플로의 중요한 구성 요소이지만 개발 중에 외부 서비스에 의존하는 것은 위험할 수 있습니다. 이 위험을 완화하기 위해 모의 서버를 사용하여 외부 서버에 액세스하고 예상되는 응답을 반환하는 경험을 시뮬레이션할 수 있습니다. 이는 외부 서버 또는 API에 대한 호출이 개발 프로세스의 중요한 구성 요소인 상황에서 특히 유용합니다.

이 시나리오에서 모의 서버는 개발 수명 주기의 로컬 테스트 및 개발 단계를 지원합니다. 이론적인 예를 살펴보겠습니다.

API가 동기화 상태를 유지해야 하는 배송 서비스와 결합되는 주문 흐름이 있는 전자 상거래 애플리케이션을 개발한다고 가정합니다. 특히 전자상거래 앱에서 장바구니에 상품을 추가하면 배송 서비스용 장바구니에도 추가해야 배송 서비스에서 배송해야 하는 항목을 추적할 수 있습니다. 이는 API에 대한 모든 요청이 배송 서비스 API에 대한 요청도 트리거함을 의미합니다.

A visual example of testing an e-commerce site but productivity is stopped because of an issue in the Shipping API 전자 상거래 사이트를 테스트했지만 배송 API의 문제로 인해 생산성이 중지된 시각적 예

API 개발의 중요한 부분 중 하나는 프로젝트가 의존하는 외부 서비스 또는 API가 제대로 작동하고 예상 결과를 반환하는지 확인하는 것입니다. 그러나 외부 서버에 대한 호출이 항상 신뢰할 수 있는 것은 아니며 예기치 않은 오류가 발생할 수 있으므로 디버깅이 필요합니다. 이러한 경우 모의 서버는 외부 서버를 치고 예상되는 응답을 반환하는 경험을 시뮬레이션하여 유용합니다.

개발 수명 주기의 로컬 테스트 및 개발 단계에서 모의 서버는 워크플로에서 개별 API를 격리하는 데 도움이 됩니다. 전자 상거래 애플리케이션의 경우 배송 서비스 API와 같은 외부 API에 대해 모의 서버를 구성하면 API가 다운되더라도 예상되는 결과를 기반으로 작업을 계속할 수 있습니다. 이것은 테스트 프로세스를 보다 효율적으로 만들고 API 오류로 인해 프로젝트가 중단될 가능성을 줄입니다.

전자 상거래 애플리케이션의 주문 흐름을 테스트할 때 API는 배송 서비스와 동기화 상태를 유지해야 합니다. 그러나 배송 API가 오류를 반환하거나 다운되면 개발 및 테스트 지연이 발생할 수 있습니다. 이러한 종속성을 피하기 위해 모의 서버를 사용하여 외부 서비스에서 예상되는 응답을 시뮬레이션할 수 있습니다. 개발자는 Apigit을 사용하여 각 API를 개별적으로 테스트하고 특정 문제를 식별할 수 있습니다. 배송 API에 대한 모의 서버를 구성함으로써 개발자는 배송 API가 다운된 경우에도 예상 결과에 따라 작업을 계속할 수 있습니다. 다음 이미지는 배송 API를 대체하는 모의 서버가 있는 동일한 워크플로우를 보여주며 내부 API가 예상대로 작동하는 한 중단 없이 테스트를 계속할 수 있습니다.

A visual example of testing the e-commerce site while using a mock server to simulate the Shipping API 모의 서버를 사용하여 배송 API를 시뮬레이션하는 동안 전자 상거래 사이트를 테스트하는 시각적 예

나에게 데이터를 이야기

데이터 공유는 사용되는 프로토콜이나 HTTP 동사에 관계없이 API의 핵심입니다. 그러나 이 데이터에는 테스트 목적으로 사용하고 싶지 않은 민감한 개인 정보가 포함될 수 있습니다. 반면에 "John Doe"와 같은 자리 표시자 데이터를 사용하면 단조롭고 비현실적일 수 있습니다. 모의 서버가 유용한 곳입니다.

모의 서버는 개인 데이터를 보호해야 하거나 프로덕션과 같은 워크플로를 시뮬레이션하려는 경우를 포함하여 일상적인 테스트와 까다로운 사용 사례를 모두 관리하는 데 유용합니다.

Apigit을 사용하면 일련의 밀접하게 결합된 요청 및 해당 응답 예제에서 생성하여 모의 서버에 대한 동적 데이터를 생성할 수 있습니다. 저장된 기본 예제에 의존하는 대신 필요에 맞게 응답을 사용자 지정할 수 있습니다.

이를 달성하는 한 가지 방법은 동적 변수를 포함하도록 응답 예제를 편집하는 것입니다. 이 접근 방식을 사용하면 모의 서버가 내장 라이브러리를 활용하고 실제 데이터를 모방하는 더미 데이터를 제공할 수 있습니다.

인터넷은 예측할 수 없는 곳입니다. 모의 테스트를 통해 개발 수명 주기에 질서를 부여하세요.

개발자는 제어 가능한 항목을 제어하는 데 집중하는 스포츠와 유사한 사고 방식을 채택할 수 있습니다. 개발 중에 외부 API의 안정성을 항상 제어할 수 있는 것은 아니지만 모의 서버를 사용하여 발생해야 하는 상황을 시뮬레이션하여 예기치 않은 문제를 줄일 수 있습니다. 개발자는 모의 서버를 사용하여 작업을 효과적으로 수행하는 데 필요한 안정성을 만들 수 있습니다. 따라서 모의 서버는 개발자가 혼란이나 예기치 않은 딸꾹질 없이 목표를 달성하는 데 필요한 안정성이 되도록 하십시오.