혼자서 Mock API 플랫폼을 구축하고 프로덕션에 배포한 방법
Source: Dev.to
Introduction
제가 참여한 모든 프로젝트에는 같은 불만이 있었습니다.
프론트엔드 팀은 준비가 되었고, QA도 준비가 되었으며, 데모는 내일로 잡혀 있습니다.
하지만 백엔드는 아직 준비되지 않았습니다. 그래서 모두가 기다려야 합니다.
이런 상황은 작은 프로젝트, 에이전시, 스타트업 어디서든 목격했습니다. 팀들이 이 문제를 프로세스의 일부분으로 받아들이는 것이 너무 당연해졌죠. 저는 더 이상 받아들이고 싶지 않아 MockStation.io를 만들었습니다.
What is MockStation?
엔드포인트, 메서드, 헤더, 응답 페이로드를 정의하면, MockStation은 실제 API와 똑같이 동작하는 실시간 공유 가능한 URL을 제공합니다. JSON, XML, GraphQL 모두 기본적으로 지원합니다.
제가 가장 자랑스러워하는 부분은 동적 테스트 데이터 엔진입니다. 매번 같은 정적 JSON을 반환하는 대신, 이름, 이메일, ID, 날짜, 숫자 범위와 같은 데이터 규칙을 정의하면 각 API 호출마다 새롭고 현실적인 데이터를 반환합니다. 이는 더미 데이터로 테스트하는 것과 프로덕션에 가까운 데이터로 테스트하는 것의 차이와 같습니다.
The Stack
- Backend: FastAPI + AWS Lambda (서버리스, 유휴 시 0으로 스케일)
- Frontend: Next.js on Vercel
- Database: MySQL on RDS
- Auth: JWT + Google OAuth
MockStation의 트래픽 패턴은 예측이 어렵기 때문에 Lambda를 선택했습니다. 새로운 사용자가 한 시간 동안 엔드포인트를 폭격하고 나면 조용해지는 식이죠. 항상 켜져 있는 서버에 비용을 지불하는 것은 이 단계에서 의미가 없었습니다. Lambda는 실제 부하가 발생할 때까지 비용을 거의 0에 가깝게 유지해 줍니다.
FastAPI는 빠르고, 개발자 경험이 뛰어나며, 자동 OpenAPI 문서 덕분에 개발 기간 동안 많은 시간을 절약할 수 있어 자연스러운 선택이었습니다.
The Hardest Part
Routing
모크 서버 라우팅을 구현하는 것이 가장 까다로운 부분이었습니다. 각 조직마다 고유한 네임스페이스를 갖게 되는데, 예를 들어 api.mockstation.io/acme-corp/v1/orders 와 같이 요청하면 해당 팀의 올바른 모크 엔드포인트로 라우팅됩니다. 서브도메인 추출, 경로 매칭, 와일드카드 라우팅을 환경마다 안정적으로 동작하도록 만들기 위해 예상보다 더 많은 시간이 걸렸습니다.
Dynamic Data Engine
{{faker.name}}, {{faker.email}} 같은 템플릿, 무작위 범위, 조건부 응답을 지원하면서 응답 시간을 100 ms 이하로 유지하려면 캐싱 설계에 신경을 많이 써야 했습니다.
What It Can Do Today
- 커스텀 메서드, 헤더, 쿼리 파라미터, 응답 본문을 가진 엔드포인트 생성
- JSON, XML, GraphQL, CSV, Excel 응답 제공
- 매 요청마다 동적이고 현실적인 테스트 데이터 생성
- 팀과 즉시 엔드포인트 공유
- 깔끔한 대시보드에서 사용량 및 요청 히스토리 모니터링
- 멀티 프로젝트·멀티 팀 지원
Where I Am Now
런칭 완료. 사용자 0명. 이를 해결하려고 노력 중입니다.
제품은 mockstation.io 에서 30일 무료 체험으로 제공됩니다—신용카드 필요 없습니다. 체험에 포함되는 내용은:
- 월 15,000 API 요청
- 5개 프로젝트
- 프로젝트당 10개 엔드포인트
- JSON, XML, GraphQL 지원
유료 플랜은 팀 규모에 따라 $9/월부터 시작합니다.
What’s Next
- Product Hunt 런칭 (다음 주)
- 엔드포인트 호출 시 웹훅 알림
- 차이점 뷰가 포함된 요청 히스토리
백엔드가 준비되지 않아 기다려야 했던 경험이 있다면, 한번 사용해 보시고 의견을 알려 주세요.
mockstation.io — 댓글로 피드백 환영합니다.