케플로이란? 기록 및 재생 API 테스트

케플로이는 무엇인가요? 그 eBPF 기록 및 재생 엔진이 어떻게 API 테스트와 모의 객체를 자동 생성하는지, `keploy record` 및 `test` 명령어는 무엇인지, 그리고 솔직한 한계점들을 알아보세요.

Ashley Goolam

Ashley Goolam

17 June 2026

케플로이란? 기록 및 재생 API 테스트

Apidog 엔터프라이즈

온프레미스 배포

SSO & RBAC

SOC 2 준수

Apidog Enterprise 살펴보기

API 테스트를 직접 작성하지 않고 얻는 방법을 찾아보셨다면 Keploy를 접해 보셨을 겁니다. Keploy는 거의 너무나 편리하게 들리는 것을 약속합니다: 실행 중인 애플리케이션을 가리키고, 실제 트래픽을 관찰하게 한 다음, 테스트 스위트를 얻는다는 것이죠. 그렇다면 Keploy는 실제로 내부적으로 무엇을 하고 있으며, 테스트 스택에서 어떤 역할을 할까요?

이 가이드에서는 Keploy가 무엇인지, eBPF 네트워크 계층에서 기록 및 재생 엔진이 어떻게 작동하는지, Keploy가 제공하는 두 가지 워크플로우, 설치 및 실행 방법, 그리고 Keploy를 도입하기 전에 알아야 할 솔직한 한계에 대해 설명합니다.

버튼

Keploy란 무엇인가요?

Keploy는 API, 통합 및 엔드투엔드 테스트를 위한 안전하고 격리된 프로덕션 샌드박스를 생성하기 위한 오픈 소스 플랫폼(Apache-2.0 라이선스)입니다. 핵심 아이디어는 실제 애플리케이션이 이미 테스트하려는 동작을 수행하고 있다는 것입니다. Keploy는 테스트 코드에 해당 동작을 설명하도록 요청하는 대신, 이를 관찰하고 재현 가능한 테스트로 변환합니다.

두 가지 방법으로 이를 수행할 수 있습니다:

  1. 기록 및 재생(Record and replay)은 실제 API 상호 작용 및 해당 종속성을 캡처한 다음 결정적으로 재생합니다.
  2. AI 테스트 생성(AI test generation)은 사양, 컬렉션, cURL 명령 또는 라이브 엔드포인트에서 검증된 API 테스트 스위트를 구축합니다.

두 방법 모두 실행 가능한 테스트와 라이브 종속성을 건드리지 않고 테스트를 실행하는 데 필요한 모의(mock)를 생성합니다. 이 프로젝트는 오픈 소스이므로 코드를 읽고 직접 호스팅할 수 있습니다. 저장소는 github.com/keploy/keploy에 있으며, 공식 문서는 keploy.io/docs에 있습니다.

Keploy 기록이 eBPF 계층에서 작동하는 방식

이것이 Keploy를 독특하게 만드는 부분입니다. `keploy record`를 실행할 때, SDK를 추가하거나 애플리케이션 코드 한 줄을 변경하도록 요청하지 않습니다. Keploy는 프로그램이 시스템 이벤트를 안전하게 관찰하고 작동할 수 있도록 하는 Linux 커널 기술인 eBPF를 사용하여 네트워크 계층에서 트래픽을 캡처합니다.

실제로 다음과 같은 이점을 얻을 수 있습니다:

마지막 요점이 중요합니다. Keploy가 요청을 기록할 때, 전체 그림을 캡처합니다: API 요청, API 응답, 그리고 그 사이에서 발생한 모든 종속성 호출. 그런 다음 단일 관찰된 상호 작용에서 두 가지 아티팩트를 작성합니다:

재생(Replay)은 이 루프를 완료합니다. `keploy test`를 실행하면, 기록된 요청을 애플리케이션으로 다시 보내고, 생성된 모의(mocks)에서 캡처된 종속성 응답을 제공하며, 새 응답을 기록된 응답과 비교합니다. 불일치는 무언가 변경되었음을 의미합니다. 이것이 바로 이 접근 방식이 기록 및 재생(record and replay)이라고 불리는 이유입니다: 실제 런타임 동작을 한 번 기록한 다음, 모든 변경 사항에 대해 회귀 테스트로 결정적으로 재생합니다.

두 가지 Keploy 워크플로우

기록 및 재생(Record and replay)

이미 작동하는 애플리케이션이 있고 빠른 회귀 테스트 범위가 필요할 때 이 기능을 사용하세요. Keploy 아래에서 앱을 실행하고, 실제 사용자나 클라이언트가 하는 방식(수동 호출, 기존 통합 테스트 또는 라이브 트래픽)으로 앱을 사용하면 Keploy는 각 상호 작용을 테스트 및 해당 모의(mocks)로 저장합니다. 이후 실행에서는 해당 상호 작용을 재생하고 동작 편차를 표시합니다.

AI 테스트 생성

수동 테스트로 생성된 것보다 더 넓은 범위를 원하거나, 실행 중인 흐름이 아닌 계약(contract)에서 시작할 때 이 기능을 사용하세요. Keploy는 OpenAPI 사양, Postman 컬렉션, cURL 명령 또는 라이브 엔드포인트에서 검증된 API 테스트 스위트를 생성할 수 있습니다. 종속성을 자동으로 모의(mock)하고, 중복 사례가 남지 않도록 자동 정리 과정을 실행합니다.

두 워크플로우는 상호 보완적입니다. 기록 및 재생은 실제 관찰된 동작에 테스트를 고정하고, AI 테스트 생성은 사양의 공백을 채웁니다. 스키마에서 테스트를 생성하는 도구를 평가 중이라면, 저희의 AI 테스트 케이스 생성기 목록과 OpenAPI에서 테스트 스크립트 생성 가이드가 좋은 참고 자료가 될 것입니다.

Keploy 설치

Keploy는 설치 스크립트를 제공합니다. 지원되는 시스템에서는 다음을 실행합니다:

curl --silent -O -L https://keploy.io/install.sh && source install.sh

이 명령은 바이너리를 가져와 `keploy` 명령을 설정합니다. 그 다음부터는 두 가지 명령으로 모든 것을 제어할 수 있습니다.

핵심 Keploy 명령

가장 많이 사용할 두 가지 명령이 있습니다. 첫 번째는 기록입니다:

keploy record -c "CMD_TO_RUN_APP"

애플리케이션을 시작하는 정확한 명령을 `-c`를 통해 전달합니다. Keploy는 앱을 실행하고, 앱을 사용하는 동안 트래픽을 관찰하며, 캡처된 테스트 케이스와 모의(mocks)를 저장합니다.

두 번째는 재생입니다:

keploy test -c "CMD_TO_RUN_APP" --delay 10

--delay 10 플래그는 Keploy에게 기록된 요청을 보내기 전에 10초를 기다리라고 지시하여, 느린 서비스가 재생 시작 전에 부팅을 완료할 충분한 시간을 제공합니다. 앱이 시작하는 데 더 오래 걸리면 숫자를 높이고, 빠르게 부팅되면 낮출 수 있습니다.

일반적인 첫 번째 세션은 다음과 같습니다:

# 1. API를 호출하는 동안 기록
keploy record -c "node server.js"

# 2. 캡처된 사례를 재생하고 편차를 확인
keploy test -c "node server.js" --delay 10

이것이 전체 루프입니다. 알려진 정상 빌드에 대해 한 번 기록한 다음, 모든 변경 사항에 대해 CI에서 `keploy test`를 실행합니다.

지원되는 언어, 프로토콜 및 데이터 저장소

캡처가 네트워크 계층에서 발생하므로 Keploy는 광범위한 영역을 다룹니다:

범주 지원
언어 Go, Java, Node.js, Python, Rust, C#, C/C++, TypeScript 등
프로토콜 HTTP/REST, gRPC, GraphQL, Kafka, RabbitMQ
데이터 저장소 PostgreSQL, MySQL, MongoDB, Redis

이러한 광범위함은 eBPF 설계의 직접적인 결과입니다. Keploy는 네트워크 통신을 읽으므로, 새로운 언어나 프레임워크는 이러한 프로토콜 중 하나를 사용하는 한 새로운 플러그인이 필요하지 않습니다.

CI에서 Keploy 실행

두 명령 모두 자동화를 위해 만들어졌습니다. 파이프라인에서 기록된 테스트 케이스와 모의(mocks)를 코드와 함께 커밋한 다음, `keploy test -c "..."`를 단계로 실행합니다. 모의(mocks)가 실제 종속성을 대신하기 때문에, CI 러너에서 라이브 데이터베이스나 다운스트림 서비스가 필요 없이 재생이 빠르고 결정적입니다. 재생 실패는 단위 테스트와 마찬가지로 빌드를 실패시킵니다.

고려해야 할 솔직한 한계

Keploy는 강점이 있지만, 모든 상황에 적합한 것은 아닙니다. 공정한 평가는 다음과 같은 장단점을 포함합니다:

이 중 어떤 것도 Keploy에 대한 비판은 아닙니다. 이는 해당 범주의 자연스러운 경계입니다. 이를 알면 문제가 해결되는지 또는 문제의 일부만 해결되는지 결정하는 데 도움이 됩니다.

설계된 테스트 대안으로서 Apidog의 역할

"관찰된 트래픽을 회귀 테스트로 전환"하는 것보다 더 넓은 요구 사항이 있다면, 전체 라이프사이클 플랫폼을 살펴보는 것이 좋습니다. Apidog는 설계, 디버깅, 모의(mocking), 문서화 및 테스트를 한 곳에서 처리하는 올인원 API 플랫폼입니다. Apidog와 Keploy는 서로 다른 범주에 속하므로, 철학의 차이를 이해하는 것이 중요합니다.

Keploy는 종속성 모의(mocks)를 포함한 실제 런타임 동작을 코드 없이 캡처하고 재생합니다. Apidog는 정반대의 길을 걷습니다: 유지보수 가능한 테스트 시나리오를 설계하고 작성한 다음, Apidog CLI를 사용하여 터미널 및 CI에서 실행합니다. CLI는 CSV 또는 JSON을 통한 데이터 기반 테스트, 환경 전환, 그리고 CLI, HTML 및 JSON 보고서와 함께 작성된 컬렉션을 실행합니다. Apidog는 또한 앱 내에서 작성된 API 스키마 및 엔드포인트로부터 AI 테스트 케이스 생성을 제공하는데, 이 부분이 두 도구가 겹치는 지점입니다.

경계를 명확히 하자면: Apidog는 eBPF를 통해 라이브 트래픽을 캡처하지 않으며, 프로덕션 호출 및 종속성 모의(mocks)를 기록하여 테스트를 자동으로 생성하지도 않습니다. 실제 트래픽에서 기록하는 기능은 전적으로 Keploy의 것입니다. 솔직히 말하면 작업에 따라 선택해야 합니다. 코드 없이 런타임 캡처 및 재생을 원한다면 Keploy를 선택하세요. 나머지 API 라이프사이클도 처리하는 플랫폼 내에서 설계되고 유지보수 가능한 테스트 스위트를 원한다면 Apidog를 선택하세요. 더 깊이 있는 비교를 원하시면 Apidog vs Keploy를 참조하고, 전환하기로 결정했다면 마이그레이션 가이드에서 테스트를 이전하는 방법을 다룹니다.

유지보수 가능하고 작성된 API 테스트를 원하신다면, Apidog를 다운로드하고 Apidog로 API 테스트하는 방법 가이드부터 시작할 수 있습니다.

자주 묻는 질문

요약

Keploy는 실제 API 동작을 테스트로 전환하는 오픈 소스 도구입니다. Keploy의 기록 및 재생 엔진은 eBPF를 사용하여 코드 변경 없이 네트워크 계층에서 요청, 응답 및 종속성 호출을 캡처한 다음, 이를 결정론적 회귀 테스트로 재생합니다. AI 테스트 생성은 사양 또는 엔드포인트에서 스위트를 구축합니다. Linux 중심의 캡처 모델, 검토가 필요한 테스트, 그리고 테스트에 국한된 범위라는 단점에도 불구하고, 빠르고 언어에 구애받지 않습니다. 완전한 API 플랫폼 내에서 작성되고 유지보수 가능한 테스트 스위트를 원한다면, Apidog가 비교해 볼 수 있는 대안입니다.

버튼

Apidog에서 API 설계-첫 번째 연습

API를 더 쉽게 구축하고 사용하는 방법을 발견하세요