생성형 AI를 활용한 데이터 모델링

생성형 AI(Claude)와 전문 데이터 모델링 도구(ERgrin)로 구축하는 ‘온라인 상거래 플랫폼’ 개념&논리 모델링

‘대용량 테이블 구축’을 위한 데이터 모델링 수행 중, 생성형 AI가 데이터 모델링에 어느 수준까지 실 사용 가능한지 개념 모델링 과정에 Claude 3.5 Sonnet 을 사용해 보았습니다. 해당 모델링은 ‘온라인 상거래 플랫폼’을 비즈니스 도메인으로 설정하여 1단계 ‘생성형 AI를 활용한 개념 모델링’과 2단계 ‘ERgrin을 활용한 논리 모델링’, 3단계 ‘오라클 DB에 구현하는 물리 모델링’으로 이루어져 있으며, 이번 글에서는 1, 2단계인 생성형 AI와 ERgrin을 활용한 개념&논리 모델링를 다룹니다. 

목차

  1. 생성형 AI Claude 3.5 Sonnet
  2. Claude로 생성한 개념 모델링
  3. ERgrin으로 만든 논리 모델링
  4. 마무리

1.생성형 AI Claude 3.5 sonnet 

Claude는 Anthropic이 개발한 고급 추론과 비전 분석, 코드 생성, 다국어 처리에 특화된 생성형 AI로, 지난 2023년 2월 처음 출시 되었습니다. 2024년 7월 28일  Claude 3.5 Sonnet이 업데이트 되었으며, 최대 출격 토큰 제한이 4096 → 8192로 두 배 증가하는 등의 성능 개선이 이루어졌습니다. (Claude 3.5는 Claude 3.5 Sonnet 과 Claude 3.5 Haiku의 두 가지 모델을 지원하고 있습니다. 이번 개념 모델링에는 Claude 3.5 Sonnet를 사용하여 개념 ER다이어그램을 생성했습니다. )

[그림 1] Claude 3.5 Sonnet의 성능 비교 그래프 | [그림 2] Claude 3.5 모델 비교

2. Claude로 생성한 개념 모델링

개념 모델링은 데이터의 핵심적인 구성 요소와 이들 간의 관계를 추상화한 단계입니다. 비즈니스 요구사항을 기반으로 엔터티(Entity)와 관계(Relationship)를 정의하여 전체적인 데이터 구조를 그림으로 표현합니다.

  • 주제영역 정의
  • 핵심엔터티 정의
  • 핵심관계 정의
  • 개념 ER 다이어그램 작성
2.1 핵심 엔터티 정의 (온라인 상거래 플랫폼)
  • 회원(고객)
  • 상품 
  • 주문
  • 결제 
  • 배송 
  • 환불
2.2 핵심 엔터티간 관계 정의
  • 회원은 여러 개의 주문을 할 수 있다 (1:N)
  • 하나의 주문은 여러 상품을 포함할 수 있다 (M:N)
  • 하나의 주문은 여러 결제 정보를 가진다 (1: N )
2.3 개념 ER 다이어그램

Claude 3.5 Sonnet을 사용하여 개념 ER 다이어그램을 생성 하였습니다.

  • [단계 1] 프롬프트에 업무 도메인 영역을 제시 하였을 경우
  • [단계 2] <단계 1>에 핵심 엔터티를 추가 제시 하였을 경우
  • [단계 3] 프롬프트에 업무정의서를 제시 하였을 경우
  • [단계 4] 프롬프트에 업무정의서 제시 및 프롬프트 엔지니어링을 추가한 경우

이상 4종류의 개념 ER 다이어그램을 생성하였으며, [단계 4]의 Claude에 사용한 프롬프트 엔지니어링은 ‘역할 부여하기’(시스템 프롬프트)와 ‘프롬프트 체이닝’ 방법을 적용하였습니다.

2.3.1 [단계 1] 프롬프트에 업무 도메인 영역 제시

도메인 영역인 ‘온라인 상거래 플랫폼’만 프롬프트에 제시 할 경우 검색시마다 엔터티가 변경되어 일관성이 없으며, 2.1에서 정의한 핵심 엔터티의 누락이 발생합니다.

프롬프트 입력 : 온라인 상거래 플랫폼을 만들거야. 개념 모델링을 위한 핵심 엔터티 도출 및 엔터티간의 관계를 정의하고 개념 ERD를 만들어줘.

[그림 3] [단계 1] 프롬프트에 업무 도메인 영역 제시 후 반환된 Claude 답변 | [그림 4] [단계 1] 과정으로 Claude가 생성한 ‘온라인 상거래 플랫폼’ 개념 ERD

2.3.2 [단계 2] <단계 1>에 핵심 엔터티를 추가 제시 할 경우

2.1의 핵심 엔터티  ‘회원, 상품, 주문, 결제, 배송, 환불’를 사용하도록 [단계 1] 프롬프트에 핵심 엔터티 사용을 직접 제시 할 경우 엔터티가  ‘회원’, ‘상품’, ‘주문’, ‘결제’, ‘배송’, ‘환불’ 로 한정되며, 엔터티 관계의 오류가 발생합니다.

(환불 엔터티 – 주문 엔터티 이외에 환불 엔터티 –  회원 엔터티와도 관계를 갖는 오류가 발생합니다.)

프롬프트 : 핵심 엔터티로 ‘회원’, ‘상품’, ‘주문’, ‘결제’, ‘배송’, ‘환불’이 포함 되어야 해.

[그림 5] [단계 2] <단계 1>에 핵심 엔터티를 추가 제시 후 반환된 Claude 답변 | [그림 6] [단계 2] 과정으로 Claude가 생성한 ‘온라인 상거래 플랫폼’ 개념 ERD

2.3.3 [단계 3] 업무기술서 제시를 통한 개념 ERD 생성

‘온라인 상거래 플랫폼’ 모델링을 위해 기술한 업무기술서를 클로드 프롬프트에 입력하여 ERD를 생성했습니다. 

이 경우 업무기술서에서 명시한 엔터티 관계 오 설정 및 부모 테이블에 없는 PK를 상속받아 FK로 설정하는 오류가 발생합니다.

프롬프트 :

제공하는 업무기술서로 개념 ERD를 생성해줘

[그림 7] [단계 3] 프롬프트에 업무기술서 제시 후 반환된 Claude 답변 | [그림 8] [단계 3] 과정으로 Claude가 생성한 ‘온라인 상거래 플랫폼’ 개념 ERD

2.3.4 [단계 4] 업무기술서를 기준으로 도출된 개념 ERD에 프롬프트 엔지니어링 추가

[그림 9] [단계 4] 프롬프트 엔지니어링 추가 후 반환된 Claude 답변

[그림 10] [단계 4] 과정으로 Claude가 생성한 ‘온라인 상거래 플랫폼’ 개념 ERD 완성본

3.ERgrin으로 만든 논리 모델링

앞선 [단계 4]에서 도출한(Claude에 업무기술서를 제시하고 프롬프트 엔지니어링을 추가) 개념 모델링을 기반으로 논리모델링 수행합니다.

논리 모델링은 엔터티의 속성(Attribute)을 상세화하고, 데이터 정규화 과정을 거쳐 테이블 구조를 설계하는 단계입니다. 데이터베이스 구현을 위한 구체적인 준비 작업으로, 데이터의 무결성과 중복 방지를 목표로 합니다.

  • 엔터티 정의서
  • 논리 엔터티 정의서
  • 논리 ER 다이어그램 작성
3.1 엔터티 정의서
3.2 논리 관계 정의서

3.3 논리 ER 다이어그램 (ERgrin 활용)

4. 마무리

하지만 생성형 AI을 모델링에 바로 적용하기에는 상세한 업무 조건 반영의 어려움이 존재하며, 프롬프트 품질에 따라 결과물의 퀄리티가 결정되므로 사용에 주의가 필요합니다.

생성형 AI 활용을 통해 보다 빠르게 ‘기본 틀’을 만들 수 있는 이점과 반복 업무를 자동화 할 수 있는 측면에서, 생성형 AI의 사용은 효율적인 시간 관리 및 생산성 증대에 기여합니다.


[참고문헌]

1. (디비안) 핵심 데이터 모델링

2. (위즈덤마인드) 김기창의 데이터 모델링 강의

3. anthropic 사용자 가이드 – Prompt engineering (https://docs.anthropic.com/ko/docs/build-with-claude/prompt-engineering/chain-prompts)

4. 프롬프트 엔지니어링 가이드 (https://www.promptingguide.ai/kr)

5. https://www.anthropic.com/news/claude-3-5-sonnet

6. https://docs.anthropic.com/ko/docs/intro-to-claude

7. 프롬프트 엔지니어링 가이드 (https://www.promptingguide.ai/kr)

8. ANTHROPIC 사용자 가이드 – 프롬프트 엔지니어링 (https://docs.anthropic.com/ko/docs/build-with-claude/prompt-engineering)