mockserver-monorepo: API 종속성을 시뮬레이션하고 혼돈 엔지니어링을 수행하기 위한 다중 프로토콜 목업 서버 및 프록시
mockserver-monorepo: API 종속성을 시뮬레이션하고 혼돈 엔지니어링을 수행하기 위한 다중 프로토콜 목업 서버 및 프록시
해결하는 문제
MockServer는 외부 API에 의존하는 애플리케이션을 실제 시스템이 가용하거나 완전하거나 안정적일 필요 없이 테스트할 수 있는 방법을 제공합니다. 사용 가능한 종속성이 없어서 발생하는 개발 병목을 방지하고, 실제 환경에서 재현하기 어려운 네트워크 장애나 응답 지연과 같은 엣지 케이스를 시뮬레이션할 수 있게 해줍니다.
작동 방식
MockServer는 REST 제어 평면을 통해 구성할 수 있는 HTTP(S) 서버 및 프록시 역할을 합니다. 네트워크 트래픽을 가로채어 다음 세 가지 주요 기능을 수행합니다:
- Mocking: 들어오는 요청을(메서드, 경로, 헤더, 본문 등 기반) 매칭하고 사전 설정된 응답을 반환합니다.
- Proxying: 실제 트래픽을 목적지로 전달하면서, 사용자가 "프록시 브레이크포인트"를 이용해 요청·응답을 기록·검사·수정할 수 있게 합니다(디버거와 유사).
- Chaos Engineering: 지연, 연결 끊김, 오류 등을 의도적으로 주입해 애플리케이션이 시스템 저하에 어떻게 대응하는지 테스트합니다.
HTTP/1.1, HTTP/2, gRPC, WebSockets, raw TCP 등 다양한 프로토콜을 지원하며, OpenAI, Anthropic, Gemini와 같은 AI/LLM 채팅 완성 API에 대한 특수 목업도 포함합니다.
대상 사용자
통합 및 엔드‑투‑엔드 테스트 중에 외부 종속성으로부터 애플리케이션을 격리해야 하는 소프트웨어 개발자와 QA 엔지니어를 위해 설계되었습니다.
주요 특징
- 광범위한 프로토콜 지원: HTTP, gRPC, WebSockets 및 Kafka, MQTT와 같은 메시지 브로커를 처리합니다.
- AI/LLM Mocking: 주요 제공업체의 스트리밍 채팅 완성 API 목업과 AI 코딩 어시스턴트를 위한 MCP 서버를 기본 제공합니다.
- 동적 응답: Velocity, Mustache, JavaScript를 이용한 응답 템플릿을 지원합니다.
- OpenAPI 연동: OpenAPI/Swagger 사양에서 직접 기대값을 생성할 수 있습니다.
- Chaos Testing: 복원력 테스트를 위한 실패 및 지연 주입 도구를 제공합니다.
- 다중 플랫폼 배포: Docker, Kubernetes(Helm), JAR 및 다양한 언어 클라이언트(Java, Python, Node, Go 등)로 이용 가능합니다.
Sources
- undefinedmock-server/mockserver-monorepo