Search
moon
sun

시킬 때마다 다른 결과를 내는 AI에게 도구를 쥐여 주었습니다 — AI가 쓰는 ERD 도구 제작기

URL
생성 일시
2026/10/10 01:06
최종 편집 일시
2026/10/10 01:06
태그
여기어때
파일과 미디어
|| 글. 박동규(jiha) / 광고플랫폼개발팀 안녕하세요. 여기어때컴퍼니 광고플랫폼개발팀 지하입니다. 저희 팀은 설치형 ERD 솔루션으로 ERD를 설계하고 관리해 왔습니다. 쓰는 사람마다 프로그램을 설치해야 했고, 라이선스 비용도 들었습니다. 무엇보다 테이블을 하나하나 그리고 관계를 잇는 일을 전부 사람이 했습니다. 그래서 올해 초부터 AI로 ERD를 그릴 수 없을까 고민했습니다. 처음에는 AI에게 그려 달라고 하면 끝날 줄 알았습니다. 몇 번 시켜 보고 나서야, 매번 같아야 하는 일을, 시킬 때마다 답이 달라지는 비결정적인 AI에게 통째로 맡긴 게 문제라는 걸 알았습니다. 그래서 생각을 바꿨습니다. AI가 직접 그리지 않고, 도구를 써서 그리게 하기로요. 아래에는 그렇게 AI에게 줄 도구를 만들면서 부딪힌 문제와, AI가 도구를 헷갈리지 않고 쓰게 하려고 정한 설계 원칙을 정리했습니다. AI에게 그냥 그려 보라고 했더니 처음에는 아무 도구 없이 AI에게 그려 달라고 했습니다. Mermaid로 그리게도 해 보고, HTML로 그리게도 해 봤습니다. 생각처럼 되지 않았습니다. 배치가 원하는 방향으로 나오지 않았고, 제대로 그려지지 않을 때도 많았습니다. 팀의 규칙을 지키지 못하는 경우도 잦았습니다. 무엇보다 같은 걸 시켜도 시키는 사람마다 다른 결과가 나왔습니다. 틀린 곳을 매번 다시 바로잡다 보니 피로가 쌓였습니다. AI의 답은 비결정적입니다. 같은 요청에도 매번 다르게 답할 수 있습니다. 그렇다면 매번 같아야 하는 일까지 AI에게 맡기지 말고, 매번 같은 결과를 내는 도구를 AI에게 쥐여 주면 되지 않을까 싶었습니다. 누가 시켜도 같은 ERD가 나오게 하는 것, 이것이 처음 세운 목표였습니다. 설계는 AI가, 그림은 도구가 처음부터 지금 모양은 아니었습니다. 가장 중요하게 생각한 건 “AI가 ERD를 대신 그려 주는 것”이었고, 처음에는 편집기 안에 채팅 창을 넣고 API 키로 AI를 붙이려고 했습니다. 그런데 준비하는 사이에 AI 서비스의 정책이 바뀌었습니다. 구독 계정을 다른 도구 안에서 쓰는 길이 막혀서, 편집기 안에서 AI를 쓰려면 구독과 별도로 쓰는 만큼 API 요금을 내야 했습니다. 한참 고민한 끝에 방향을 뒤집었습니다. AI를 도구 안에 넣는 대신, 도구를 AI에게 주기로 했습니다. 그러면서 역할도 나눴습니다. AI는 사용자와 대화하며 ERD를 설계합니다. 어떤 테이블이 필요하고 무엇을 어떻게 이을지 함께 고민합니다. 그렇게 정한 내용을 도구에 그려 달라고 요청하면, 실제로 그리는 일은 도구가 합니다. 대화는 이미 쓰고 있는 AI 클라이언트에서 하고, 제가 만든 ERD 도구는 MCP(Model Context Protocol)로 ERD를 그리는 기능을 AI에게 제공합니다. 같은 설계, 세 가지 그림 도구를 쓰면 그림이 얼마나 달라지는지 직접 비교해 봤습니다. AI가 설계한 가상 쇼핑몰 ERD 하나를 준비했습니다. 회원, 상품, 주문, 결제, 배송, 쿠폰, 리뷰 같은 테이블 20개와 관계 27개입니다. 이 설계는 그대로 두고, 그리는 방법만 바꿔 Mermaid와 HTML, 그리고 직접 만든 ERD 도구로 그렸습니다. [그림 1–1] Mermaid로 그린 결과 Mermaid는 테이블을 어디에 놓을지 스스로 정합니다. 테이블이 20개가 되자 그림이 가로로 길게 퍼졌고, 관계선은 멀리 돌아 다른 테이블 사이를 가로질렀습니다. 배치가 마음에 들지 않아도 손댈 방법이 없습니다. 표현에도 한계가 있었습니다. 타입에 공백을 쓸 수 없어 BIGINT UNSIGNED가 BIGINT_UNSIGNED로 바뀌었고, NULL 여부와 한글 이름은 설명 칸에 몰아 적어야 했습니다. [그림 1–2] HTML로 그린 결과 HTML은 표 모양을 원하는 대로 꾸밀 수 있습니다. 대신 테이블을 어디에 둘지, 선을 어떻게 이을지를 코드로 직접 정해야 합니다. 목록 순서대로 격자에 놓았더니 관계선이 서로 엇갈리고 카드 뒤로 지나가서, 어느 테이블과 이어지는지 따라가기 어려웠습니다. 읽을 만하게 만들려면 자리와 선을 손으로 다시