Claude 프롬프트 가이드 MCP

MCP로 연결된 Claude에게 자연어로 ERD를 그리는 방법입니다. 아래 예시를 그대로 복사하거나 참고해 말해보세요.

먼저 MCP 연결이 완료되어 있어야 합니다. 연결 방법은 MCP 연결 가이드를 참고하세요. 연결 후 Claude Code에서 "yourerd MCP가 연결됐어?" 라고 확인해보세요.

엔티티 생성

단일 엔티티

"사용자 엔티티 만들어줘"
User 엔티티 + 기본 id(PK) 컬럼이 생성됩니다.
"회원(User) 엔티티를 만들어줘. 논리명은 '회원'으로."
물리명 User, 논리명 회원인 엔티티가 생성됩니다.

여러 엔티티 한 번에

"사용자, 주문, 상품 엔티티 만들어줘"
세 개의 엔티티가 각각 기본 PK와 함께 생성됩니다.
"쇼핑몰 ERD에 필요한 엔티티들 전부 만들어줘 — 회원, 상품, 주문, 주문상세, 배송, 카테고리 포함"
6개 엔티티가 순서대로 생성됩니다.

엔티티 이름 변경

"User 엔티티 이름을 Member로 바꿔줘"
"Order 엔티티의 논리명을 '주문정보'로 수정해줘"

컬럼 추가 / 수정

기본 컬럼 추가

"User 엔티티에 username, email, password 컬럼 추가해줘"
세 컬럼이 VARCHAR 타입으로 추가됩니다.
"Product 엔티티에 name(VARCHAR 200), price(DECIMAL), stock(INT), created_at(DATETIME) 컬럼 추가해줘"
타입·크기가 지정된 컬럼이 추가됩니다.

논리명(한글명) 포함

"User 엔티티에 다음 컬럼 추가해줘:
- username (사용자명) VARCHAR(50)
- email (이메일) VARCHAR(200) UNIQUE
- phone (휴대폰번호) VARCHAR(20)
- created_at (가입일시) DATETIME"

제약 조건 지정

"Order 엔티티에 status (주문상태) VARCHAR(20) NOT NULL, ordered_at (주문일시) DATETIME NOT NULL 추가해줘"
"Product 엔티티의 price 컬럼을 DECIMAL(12,2)로 변경하고 NOT NULL로 설정해줘"

PK 설정

"User 엔티티의 id 컬럼 이름을 user_id로 바꾸고 PK 유지해줘"
⚠️ PK 컬럼은 삭제 금지입니다. 관계에서 FK로 참조 중인 PK를 삭제하면 FK 컬럼이 끊깁니다. PK를 교체하고 싶으면 먼저 관계를 삭제하고 PK를 변경한 뒤 관계를 다시 만드세요.

관계 설정

1:N 비식별 관계 (가장 일반적)

"User와 Order를 1:N으로 연결해줘 — 한 사용자가 여러 주문을 가질 수 있어"
Order 엔티티에 user_id FK가 자동 생성됩니다.
"Category와 Product를 1:N 비식별 관계로 연결해줘"

1:N 식별 관계 (자식이 부모 PK 포함)

"Order와 OrderItem을 1:N 식별 관계로 연결해줘 — OrderItem은 Order 없이 존재할 수 없어"
OrderItem의 FK(order_id)가 복합 PK의 일부로 설정됩니다.

1:1 관계

"User와 UserProfile을 1:1로 연결해줘"
"Order와 Payment를 1:1 식별 관계로 연결해줘 — 결제는 주문 없이 존재할 수 없어"

관계 한 번에 여러 개

"다음 관계를 설정해줘:
- User → Order (1:N 비식별)
- Order → OrderItem (1:N 식별)
- Product → OrderItem (1:N 비식별)"

관계 타입 변경

"User-Order 관계를 식별 관계로 바꿔줘"
"Order-OrderItem 관계를 비식별로 변경해줘"
식별 vs 비식별 선택 기준:
식별 관계: 자식 레코드가 부모 없이 의미 없을 때 (주문상세, 결제이력 등)
비식별 관계: 자식이 독립적으로도 존재 가능할 때 (게시글-작성자, 상품-카테고리 등)

삭제

"Address 엔티티 삭제해줘"
엔티티와 해당 엔티티를 참조하는 FK 컬럼이 함께 제거됩니다.
"User-Address 관계 제거해줘"
관계선과 자동 생성된 FK 컬럼이 제거됩니다.
"Product 엔티티에서 description 컬럼 삭제해줘"

시나리오 — 쇼핑몰 ERD

처음부터 한 번에 요청하면 Claude가 전체 구조를 설계합니다.

"쇼핑몰 ERD를 만들어줘. 아래 구조로:

엔티티:
- User (회원): id, username(사용자명), email(이메일), phone(휴대폰), created_at(가입일시)
- Product (상품): id, name(상품명), price(가격) DECIMAL, stock(재고수량) INT, category_id FK
- Category (카테고리): id, name(분류명), parent_id(상위카테고리)
- Order (주문): id, user_id FK, status(주문상태), total(합계금액) DECIMAL, ordered_at(주문일시)
- OrderItem (주문상세): order_id FK+PK, product_id FK+PK, qty(수량) INT, price(단가) DECIMAL
- Delivery (배송): id, order_id FK, address(배송주소), status(배송상태), shipped_at(출고일시)

관계:
- Category → Product (1:N 비식별)
- User → Order (1:N 비식별)
- Order → OrderItem (1:N 식별)
- Product → OrderItem (1:N 비식별)
- Order → Delivery (1:1)"

단계별로 나눠서 만들기

1단계 — 엔티티 골격

"User, Product, Order, OrderItem 엔티티 만들어줘"

2단계 — 컬럼 채우기

"User에 email, password, created_at 컬럼 추가해줘"
"Product에 name, price(DECIMAL), stock(INT) 추가해줘"

3단계 — 관계 연결

"User→Order 1:N, Order→OrderItem 1:N 식별 관계 설정해줘"

4단계 — 검토 요청

"현재 다이어그램의 엔티티 목록이랑 관계 구조 알려줘"
"누락된 컬럼이나 정규화 문제가 있으면 말해줘"

시나리오 — 블로그 / 커뮤니티

"블로그 ERD 만들어줘:

- User (사용자): id, nickname(닉네임), email(이메일), created_at(가입일)
- Post (게시글): id, user_id FK, title(제목), content(본문) TEXT, published_at(게시일)
- Comment (댓글): id, post_id FK, user_id FK, content(내용), created_at(작성일)
- Tag (태그): id, name(태그명) UNIQUE
- PostTag (게시글-태그): post_id FK+PK, tag_id FK+PK

관계:
- User → Post (1:N 비식별)
- Post → Comment (1:N 식별)
- User → Comment (1:N 비식별)
- Post → PostTag (1:N 식별)
- Tag → PostTag (1:N 비식별)"
N:M 관계 표현법: YourERD는 N:M을 직접 지원하지 않습니다. 중간 엔티티(PostTag, OrderItem 등)를 만들고 각각 1:N으로 연결하세요. Claude에게 "Post와 Tag를 N:M으로 연결해줘"라고 하면 중간 테이블을 자동으로 만들어줍니다.

시나리오 — 인사 / 조직 관리

"인사 관리 시스템 ERD 만들어줘:

- Department (부서): id, name(부서명), manager_id(부서장) FK nullable
- Employee (직원): id, dept_id FK, name(이름), email(이메일), hire_date(입사일), salary(급여) DECIMAL
- Position (직급): id, name(직급명), level(레벨) INT
- EmployeePosition (직원-직급이력): id, emp_id FK, pos_id FK, assigned_at(발령일), ended_at(종료일) nullable

관계:
- Department → Employee (1:N 비식별)
- Employee → Department (1:1 비식별, manager_id — 자기 참조와 별개)
- Position → EmployeePosition (1:N 비식별)
- Employee → EmployeePosition (1:N 비식별)"

시나리오 — 재귀 / 계층 구조

YourERD는 자기 자신에게 관계선을 연결하는 재귀 관계를 지원합니다.

단순 재귀 (상위-하위)

"Category 엔티티를 만들고 자기 자신과 1:N 비식별 재귀 관계 설정해줘 — 상위 카테고리-하위 카테고리 계층 구조"
Category 엔티티에 parent_id FK가 자동 추가되고 자기 참조 루프 관계선이 생깁니다.
"Employee 엔티티에 manager(관리자) 자기 참조 관계 추가해줘 — 한 직원이 여러 부하 직원을 가질 수 있어"
"Comment 엔티티에 대댓글 지원을 위해 parent_comment_id 자기 참조 관계 추가해줘 (선택 참여, nullable)"

무한 계층 (중첩 경로)

"폴더 계층 구조 ERD 만들어줘:
- Folder: id, name(폴더명), owner_id FK, parent_id(상위폴더) 자기참조 FK nullable
- File: id, folder_id FK, name(파일명), size(크기) BIGINT, created_at

관계: User → Folder (1:N), Folder → Folder (1:N 재귀), Folder → File (1:N)"

효과적인 프롬프트 작성 팁

✅ 잘 되는 방식

물리명(영문)과 논리명(한글)을 함께 명시
데이터 타입을 명시 (VARCHAR, INT, DECIMAL…)
관계의 방향과 종류를 명확히 ("1:N 비식별")
한 번에 여러 단계를 묶어 요청
도메인 맥락을 설명 ("주문 없이 존재 불가")

⚠️ 주의할 점

N:M은 중간 엔티티로 나눠서 요청
FK PK를 직접 삭제하지 말 것
관계 후 PK명 변경 시 관계를 먼저 삭제
저장은 "이 다이어그램 저장해줘"로 명시

현재 상태 확인

"지금 다이어그램에 엔티티가 뭐뭐 있어?"
"User 엔티티의 컬럼 목록 보여줘"
"Order와 관계된 엔티티가 뭐야?"

저장 요청

"지금까지 작업한 거 DB에 저장해줘"
"'쇼핑몰 v2' 이름으로 새 다이어그램으로 저장해줘"

다이어그램 조회/전환

"내 다이어그램 목록 보여줘"
"'블로그 ERD' 다이어그램 열어줘"

데이터 타입 치트시트

Claude에게 타입을 명시할 때 아래 이름을 사용하면 정확하게 처리됩니다.

타입용도Claude에게 말하는 방법
INT정수 (카운트, 수량, 인덱스)"정수", "INT", "integer"
BIGINT큰 정수 (파일크기, 타임스탬프)"BIGINT", "큰 숫자"
VARCHAR(n)가변길이 문자열"VARCHAR(100)", "문자열 100자"
CHAR(n)고정길이 (코드, 전화번호)"CHAR(10)", "고정 10자"
TEXT긴 텍스트 (본문, 설명)"TEXT", "긴 문자열", "본문"
DECIMAL(p,s)정밀 소수 (금액, 비율)"DECIMAL(12,2)", "금액", "가격"
FLOAT부동소수점 (좌표, 통계)"FLOAT", "실수"
DATETIME날짜+시각"DATETIME", "일시", "타임스탬프"
DATE날짜만"DATE", "날짜"
BOOLEAN참/거짓"BOOLEAN", "bool", "참/거짓"
UUID고유 식별자 (CHAR(36)로 저장)"UUID"
JSON비정형 데이터"JSON", "메타데이터"