
AI를 서버 대신 사용하여 드라이런(Mock Server)을 하는 방법
요약
백엔드 미완성이나 API 키 부재 시 AI를 활용하여 드라이런(Mock Server)을 구현하는 방법을 소개합니다. AI 대화를 통해 샘플 데이터를 생성하거나, AI로 직접 모크 서버 코드를 작성하여 실제 HTTP 요청을 테스트하는 실전적인 가이드를 제공합니다.
핵심 포인트
- AI를 활용해 API 사양에 맞는 다양한 JSON 응답 패턴을 즉시 생성 가능
- Node.js 등을 활용해 AI가 작성한 코드로 실제 동작하는 모크 서버 구축 가능
- 직접 모크 서버를 구축하는 비용과 시간을 획기적으로 단축
- 프론트엔드 개발 및 인프라 변경 사항의 사전 검증에 유용
「백엔드가 아직 완성되지 않았지만, 프론트엔드 측의 구현을 먼저 진행하고 싶다」
「외부 API를 호출하는 로직을 작성하고 싶지만, 실제 API 키를 아직 발급받지 못했다」
「인프라 변경을 실제로 반영하기 전에, 어떤 일이 일어날지 확인하고 싶다」
이런 상황에서 사용되는 것이 **드라이런 (dry run)**이라는 개념입니다. 이번에는 이 드라이런을 AI (Claude / ChatGPT 등)를 사용하여 간편하게 실현하는 방법을 정리합니다.
드라이런 (dry run)은 실제로 처리를 실행하기 전에 「만약 실행한다면 어떻게 될까」를 안전하게 확인하는 행위의 총칭입니다. 분야에 따라 지칭하는 내용은 조금 다릅니다.
| 분야 | 드라이런의 예 |
|---|---|
| 인프라 (IaC) | terraform plan (변경 내용의 사전 확인, 실제로는 적용하지 않음) |
| API 개발 | 모크 서버 (Mock Server)에 요청을 보내어, 응답 형식을 확인한다 |
| 배치 처리 (Batch Processing) | --dry-run 옵션을 붙여 실행하여, 실제 쓰기는 수행하지 않는다 |
공통점은 「실제와 접촉하지 않고, 실제와 유사한 결과를 먼저 알고 싶다」는 동기입니다.
이를 실현하는 수단으로서, 기존에는 「모크 서버를 직접 구축한다」, 「테스트용 환경을 별도로 준비한다」와 같은 비용이 발생했습니다. AI를 사용하면 이 「실제와 유사한 응답을 준비하는」 부분을 그 자리에서 생성할 수 있기 때문에 준비 비용이 크게 낮아집니다.
모크 서버 (Mock Server)란, 실제 서버와 동일한 인터페이스 (URL이나 응답 형식)를 가지면서, 내용은 간이적인 구현이나 고정된 값을 반환할 뿐인 서버입니다.
프론트엔드
↓ GET /api/users/1
모크 서버 (실제 DB에는 연결되어 있지 않음)
...
실제 백엔드가 미완성이라도, 모크 서버가 「실제와 같은 형태」의 응답을 반환해 준다면 프론트엔드 측의 개발은 먼저 진행할 수 있습니다.
가장 간편한 방법은 서버를 전혀 세우지 않고, AI와의 대화 그 자체를 모크 대신 사용하는 것입니다.
프롬프트 예시:
다음 API 사양에 대하여, GET /api/todos의 응답 예시를 JSON으로 3가지 패턴
(정상계, 빈 배열인 경우, 에러인 경우) 생성해 주세요.
엔드포인트: GET /api/todos
...
AI는 사양에 따른 샘플 응답을 그 자리에서 생성해 줍니다. 프론트엔드 UI 구현 시 「이런 데이터가 오면 어떻게 표시될까」를 빠르게 확인하고 싶을 때나, 테스트 데이터의 변동성을 늘리고 싶을 때 유용합니다.
단, 이 방법은 어디까지나 「대화 속에서 데이터를 받는 것뿐」이므로, 실제로 HTTP 요청을 보내 동작을 확인하는 용도로는 적합하지 않습니다.
실제로 요청/응답의 주고받음을 시도하고 싶다면, AI에게 모크 서버 자체의 코드를 작성하게 하여 로컬에서 기동하는 것이 실전적입니다.
프롬프트 예시:
Node.js + Hono로, 다음 사양의 모크 서버를 만들어 주세요.
DB는 사용하지 않고, 메모리 상의 배열에 더미 데이터를 3건 보유하게 해주세요.
GET /api/todos - 목록 취득
...
이렇게 의뢰하면 실제로 npx tsx server.ts
와 같은 명령어로 기동할 수 있는 서버 코드가 생성됩니다. 생성된 코드에 대해 curl
이나 실제 프론트엔드에서 실제 HTTP 요청을 보낼 수 있기 때문에, 패턴 1보다 실제 환경에 가까운 형태로 확인할 수 있습니다.
복잡한 사양 (인증, 페이지네이션, 에러 핸들링 등)도 자연어로 지시하는 것만으로 코드로 구현할 수 있으므로, 처음부터 직접 작성하는 것보다 압도적으로 빠르게 준비할 수 있습니다.
이것은 엄밀히 말하면 「AI를 사용한」 드라이런은 아니지만, 인프라 문맥에서 가장 자주 사용되는 전통적인 드라이런 수법입니다.
terraform plan
terraform apply
를 실행하기 전에 plan
을 실행하면 「무엇이 추가되고, 무엇이 변경되며, 무엇이 삭제되는지」가 목록으로 표시됩니다. 실제로는 클라우드 측에 아무런 변경도 가하지 않습니다.
AI와의 조합 방식으로는, terraform plan
의 출력 결과를 AI에게 읽게 하여 「이 변경은 의도한 대로인가」, 「위험한 삭제가 포함되어 있지 않은가」를 리뷰하게 하는 사용법이 실전적입니다.
프롬프트 예시:
이하는 terraform plan의 출력 결과입니다. 의도하지 않은 리소스의 삭제나,
운영 환경에 영향을 줄 만한 변경이 없는지 리뷰해 주세요.
[plan 출력 내용을 여기에 붙여넣기]
인간이 긴 plan 출력 내용을 읽지 못하고 지나치는 실수를 AI 리뷰를 통해 보완할 수 있습니다.
가장 실용성이 높은 패턴 2에 대해 조금 더 구체적으로 살펴보겠습니다.
Node.js + Hono를 사용하여 Todo 관리 API의 모크 서버(Mock Server)를 만들어 주세요.
요구사항:
- 포트 3000에서 실행
...
AI로부터 받은 코드를 mock-server.ts로 저장하고 실행합니다.
npx tsx mock-server.ts
curl http://localhost:3000/api/todos
[
{"id": 1, "title": "買い物", "done": false},
{"id": 2, "title": "掃除", "done": false},
...
프론트엔드 코드가 이 모크 서버의 URL을 향하고 있다면, 실제 백엔드(Backend)가 완성되지 않았더라도 동작 확인을 할 수 있습니다. 백엔드가 완성된 시점에 접속 대상(Connection target)을 실제 URL로 전환하기만 하면 됩니다.
어디까지나 개발 중 확인용이며, 모크 서버의 코드나 응답을 그대로 운영 환경에서 사용해서는 안 됩니다. 인증(Authentication)·권한 체크·실제 데이터 정합성(Data integrity) 등은 전혀 고려되지 않았음을 전제로 합니다. AI가 생성하는 응답 형식은 실제 백엔드 사양과 차이가 있을 수 있습니다. API 명세서(OpenAPI 등)가 이미 있다면, 그것을 AI에게 그대로 전달하며 "명세대로 구현해 줘"라고 지시하면 정확도가 높아집니다.
- 모크 서버에서 동작 확인을 했다고 해서, 실제 서버에 연결했을 때 동일하게 동작한다는 보장은 없습니다. 특히 에러 핸들링(Error handling)이나 응답 시간(Response time)에 의존하는 처리는 실제 서버에서의 재확인이 필요합니다.
| 패턴 | 적합한 상황 |
|---|---|
| ① AI와의 대화를 통한 응답 생성 | 샘플 데이터가 필요한 경우, UI의 외관 확인 |
| ② AI에게 모크 서버 작성을 시킴 | 실제로 HTTP 통신을 하며 동작 확인을 하고 싶은 경우, 프론트엔드 개발을 선행하고 싶은 경우 |
③ IaC의 plan + AI 리뷰 | 인프라 변경의 사전 확인, 위험한 변경의 탐지 |
"실제 환경이 준비될 때까지 기다리는" 것이 아니라, "실제와 유사한 것을 AI에게 즉석에서 만들어 달라고 하여 먼저 진행하는" 발상이 AI를 드라이런(Dry run)·모크 서버(Mock Server) 문맥에서 사용할 때의 핵심입니다. 특히 패턴 2는 준비 비용이 낮고 효과가 크기 때문에, 백엔드와 프론트엔드를 병행 개발하는 팀에서는 특히 활용하기 쉬울 것입니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Qiita AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기