소개
"귀찮은 테스트 데이터 생성, 이제 AI가 해줍니다!"
penpAI라는 서비스를 개발 중입니다. 궁금하신 분들은 아래 사례글에 서비스 내용을 보실 수 있습니다.
https://www.gpters.org/nocode/post/lovable-x-n8n-ai-akrhOIL0QGCxR6F
본격적으로 서비스를 구성하는 도중에, 테스트를 하기 위해서 테스트 데이터가 부족하다는 사실을 인지했습니다. 그리고 마침, 오늘 지피터스 MCP 모각 스터디가 있었어요
닿 다혜님이 정말 많이 도와주셨는데(완전 전문가 수준), MCP에 대한 개념이 잘 안잡혀서 그런지 한참 헤맸습니다. 그리고 개인적으로는 노션을 잘 사용하지 않아서 사용처가 없더라구요. 그래서 실제 나에게 필요한 곳에 MCP를 써보자고 생각했습니다.
모각 스터디와 저녁식사까지 끝나고, 집에 가기 전에 커피숍에 들러서 저에게 필요한 MCP를 구축해보기로 했어요.
바로, 테스트 데이터 생성해서 DB에 바로 넣어달라고 하기!!
해보신 분들은 아시겠지만, 의미없는 테스트 데이터를 실제로 만드는 일은 너무나 귀찮은 것.. 게다가 이번에 만들어야하는 테스트 데이터는 한 레코드, 한 레코드가 실제 아이와 AI가 대화한 내용이 들어가야 하기 때문에 더더욱 귀찮은 작업이였습니다. 😩 대화 내용이 단순 텍스트가 아니라 실제처럼 자연스러워야 하거든요. 그래서 Claude와 MCP(Model Context Protocol)를 활용해 Supabase DB에 테스트 데이터를 자동으로 생성해보기로 했습니다.
사용한 도구:
Claude: 자연스러운 대화 내 용 생성
MCP (Model Context Protocol): Claude가 Supabase 테이블 구조를 이해하고 데이터 생성 가능하도록 연결
Supabase: 대화 데이터 저장소
ChatGPT: claude에 넣을 프롬프트 만들기(클로드는 무료를 사용중이라, 프롬프트 제작 과정은 chatgpt와 함께 했어요)
진행 순서
smithery에서 "Supabase MCP Server" 선택/설정
supabaseRegion
:us-west-2
가 아닌 실제 배포 리전ap-northeast-2
로 수정supabaseAccessToken
은 Supabase 콘솔 > Account > Access Tokens에서 발급supabaseServiceRoleKey
는 Supabase 콘솔 > Project Settings > API에서 확인smithery상에서 connect 테스트 해보고 정상 떨어졌을 때, Json 내용 복사(OS가 기본 Linux로 되어있기 때문에 Windows로 선택해야함.. 안보고 리눅스 선택하는 경우가 은근 많아요)
claude에서 mcp json 설정파일 수정
claude desktop 버전에서 합니다. 설정 완료되면 클로드 종료 후, 다시 시작
<정상 연결되면 running이라고 뜹니다>
도구 생성 확인
망치가 생기고, 이 망치를 클릭하면, 이 MCP가 어떤 동작을 할 수 있는지 설명이 쭉 나옵니다. 영어이고, 너무 길어요. 그래서 이걸 복사해다가 chatgpt한테 어떤 작업할 수 있는지 물어봤습니다. 그리고 테스트 데이터도 생성해줄 수 있는지 물어봤습니다.
<왠만한 DB 작업은 다 가능합니다>
ChatGPT로 프롬프트 제작
프롬프트는 ChatGPT한테 만들어달라고 했습니다. claude는 무료계정이긴 하지만, 몇 턴 되지도 않아서 금방 리밋이 걸려버리더라구요.( 너무나 소중한 토큰.. )
<ChatGPT가 뽑아준 프롬프트 전문>
Supabase MCP 서버에서 penpai 데이터베이스의 public 스키마를 기준으로 conversation 테이블과 그 관련 테이블 구조를 분석하고, 관계형 무결성을 반영한 테스트 데이터를 자동 생성하고 싶습니다.
조건은 다음과 같습니다:
1. 먼저 get_tables 및 get_table_schema를 사용하여 public 스키마 내 전체 테이블 구조와 관계(외래키 포함)를 파악해 주세요.
2. 이 테이블은 "아이와 펜팔 친구 AI 간의 대화"를 저장하며,
- sender_type이 "user"이면 **아이(유저)가 AI에게 보낸 편지**
- sender_type이 "penpai"이면 **AI가 아이에게 보낸 답장**
3. 하나의 user가 매일 한건씩 여러 대화를 주고받을 수 있으며, 대화 흐름상 항상 "user"의 메시지 다음에 "penpai"의 답장이 이어지도록 짝(pair)으로 생성해 주세요.
4. 최근 7일 이내의 랜덤한 날짜/시간을 created_at에 반영하고, 실제 대화처럼 자연스러운 주제(예: 날씨, 학교, 친구, 고민 등)를 중심으로 짧은 메시지들을 생성해 주세요.
총 30개의 conversation 레코드를 생성하되, **15쌍의 user/penpai 메시지 페어**로 구성되도록 해 주세요.
데이터 입력을 위해 execute_postgresql를 사용하고, 필요한 경우 live_dangerously로 UNSAFE 모드를 활성화해 주세요. migration 이름은 `insert_sample_conversations`로 설정해 주세요.
<생성중>
<실제 만들어진 supabase 테스트 데이터>
해결하지 못한 것
>> 왜 그런지 모르겠는데, 노션때도 그렇고, 다 액세스 하고, 작업도 열심히 하다가 막판에 저렇게 네트워크 연결을 확인하라는 메세지가 나와요. 그래서 supabase에 레코드가 생성이 안된줄 알았는데, 레코드는 정상적으로 생기기는 했습니다.
결과와 배운 점
하루가 다르게 많은 툴들이 나오고, 하나하나 공부하는데도 시간이 많이 걸리지만, 중요한 건 내가 이 툴, 혹은 서비스를 나의 서비스에 어떻게 적용할 것인가, 나의 생활에 어떻게 적용할 것인가.. 하는 부분인 것 같아요. 그 부분이 지치지 않고 디벨롭 할 수 있는 동력이 되는 것 같습니다.
앞으로의 계획
만들어진 테스트 데이터를 기반으로, 실제 워크플로우도 열심히 만들어볼게요