기본 콘텐츠로 건너뛰기

[Gemini 2.5 Pro: 이미지 속 DB 스키마, ERD와 SQL로 변환하는 마법!]

 

Gemini 2.5 Pro: 이미지 속 DB 스키마, ERD와 SQL로 변환하는 마법! ✨



데이터베이스 설계, 이제 이미지 하나로 시작하세요!

개발자, 데이터 분석가, 혹은 데이터베이스를 다루는 모든 분들께 놀라운 소식을 전합니다! 복잡한 데이터베이스 스키마 구조를 문서화하고 이해하는 과정, 때로는 번거롭고 시간이 많이 소요되셨죠? 이제 Google의 최첨단 AI 모델, Gemini 2.5 Pro와 함께라면 이 모든 과정이 혁신적으로 바뀔 수 있습니다.

최근 저는 Gemini 2.5 Pro를 사용하여 데이터베이스 스키마가 담긴 이미지 파일 하나만으로 해당 스키마를 분석하고, 시각적인 ERD(개체-관계 다이어그램) 코드와 활용 가능한 SQL 쿼리 예시까지 생성하는 놀라운 경험을 했습니다. 오늘은 그 과정을 여러분께 공유하고 Gemini 2.5 Pro의 강력한 능력을 소개하고자 합니다.

어떻게 가능할까요? 과정 살펴보기 🚀

1단계: DB 스키마 이미지 업로드 및 분석 요청
모든 것은 간단한 이미지 파일 업로드와 명확한 요청으로 시작됩니다. 직접 그리거나, 캡처하거나, 혹은 문서에 포함된 데이터베이스 스키마 이미지를 Gemini 2.5 Pro에게 제공합니다. 저는 아래와 같은 스키마 이미지를 사용했습니다.
이미지를 업로드한 후, Gemini에게 스키마 분석 및 후속 작업을 요청합니다. 예를 들어, SQL 생성까지 한 번에 요청할 수 있습니다.

Gemini 프롬프트 예시 (스키마 분석 및 SQL 생성 동시 요청):

"업로드한 이미지의 스키마를 분석한 후 이에 맞는 가능한 SQL 문과 자연어 10개를 표로 만들어줘"

2단계: Gemini 2.5 Pro의 마법 - 이미지 분석 및 이해
Gemini 2.5 Pro는 업로드된 이미지를 분석하여 텍스트(테이블명, 컬럼명, 데이터 타입 등)와 구조(테이블 간의 관계 등)를 놀라운 정확도로 인식하고 이해합니다. 단순히 텍스트를 읽는 것을 넘어, 이미지 속 정보의 의미와 관계를 파악하는 것이죠. 이것이 바로 Gemini 2.5 Pro의 멀티모달 능력입니다!

3단계: ERD 코드 생성 및 시각화 요청 (Mermaid 활용)
스키마 분석 후, ERD 생성을 요청할 수 있습니다. Gemini는 데이터베이스 구조를 시각적으로 표현하는 ERD 코드를 생성합니다. 특히 텍스트 기반 다이어그램 도구인 Mermaid 문법으로 코드를 생성해주어, 다양한 환경에서 쉽게 시각화할 수 있습니다.

Gemini 프롬프트 예시 (ERD 코드 생성):

"업로드한 DB 스키마를 ERD 를 생성해줘"

아래는 Gemini가 생성한 Mermaid 코드 예시입니다.

erDiagram
    CUSTOMERS ||--o{ ORDERS : "places"
    CUSTOMERS ||--o{ REVIEWS : "writes"
    ORDERS ||--|{ ORDER_ITEMS : "contains"
    PRODUCTS ||--|{ ORDER_ITEMS : "included in"
    PRODUCTS ||--o{ REVIEWS : "has"

    CUSTOMERS {
        INT customer_id PK "고객 ID (기본 키)"
        VARCHAR first_name "이름"
        VARCHAR last_name "성"
        VARCHAR email "이메일"
        VARCHAR phone "전화번호"
        VARCHAR address "주소"
        VARCHAR city "도시"
        VARCHAR state "주/도"
    }
    PRODUCTS {
        INT product_id PK "제품 ID (기본 키)"
        VARCHAR product_name "제품명"
        TEXT description "설명"
        VARCHAR category "카테고리"
        DECIMAL price "가격"
        INT stock_quantity "재고 수량"
    }
    ORDERS {
        INT order_id PK "주문 ID (기본 키)"
        INT customer_id FK "고객 ID (외래 키)"
        DATE order_date "주문 날짜"
        DECIMAL total_amount "총 금액"
        VARCHAR status "상태"
    }
    ORDER_ITEMS {
        INT order_item_id PK "주문 항목 ID (기본 키)"
        INT order_id FK "주문 ID (외래 키)"
        INT product_id FK "제품 ID (외래 키)"
        INT quantity "수량"
        DECIMAL price "가격 (항목별)"
    }
    REVIEWS {
        INT review_id PK "리뷰 ID (기본 키)"
        INT product_id FK "제품 ID (외래 키)"
        INT customer_id FK "고객 ID (외래 키)"
        INT rating "평점"
        TEXT comment "코멘트"
        DATE review_date "리뷰 날짜"
    }
    EMPLOYEES {
        INT employee_id PK "직원 ID (기본 키)"
        VARCHAR first_name "이름"
        VARCHAR last_name "성"
        VARCHAR email "이메일"
        VARCHAR phone "전화번호"
        DATE hire_date "고용 날짜"
        VARCHAR job_title "직함"
        VARCHAR department "부서"
    }
생성된 Mermaid 코드를 시각적인 다이어그램으로 보려면, Gemini에게 다시 요청하거나 Mermaid를 지원하는 도구를 사용하면 됩니다.

Gemini 프롬프트 예시 (ERD 시각화 요청):

"이 ERD 를 그려줘"

*참고: Gemini 환경이나 Mermaid 뷰어에서 시각화됩니다.

아래는 위 Mermaid 코드를 시각화했을 때 나타나는 ERD 예시입니다. 


4단계: SQL 쿼리 및 자연어 설명 생성

  1. Gemini는 분석된 스키마를 기반으로 실제 데이터 조회에 사용할 수 있는 다양한 SQL 쿼리 예시와 각 쿼리가 어떤 작업을 수행하는지에 대한 자연어 설명을 함께 생성해줍니다. (이 부분은 첫 번째 요청에서 함께 처리될 수 있습니다.)

Gemini 프롬프트 예시 (SQL 및 자연어 생성):

"업로드한 이미지의 스키마를 분석한 후 이에 맞는 가능한 SQL 문과 자연어 10개를 표로 만들어줘"

이는 데이터베이스를 처음 접하는 사람이나, 특정 작업에 필요한 쿼리를 빠르게 작성해야 할 때 매우 유용합니다. 아래는 Gemini가 생성한 10가지 예시입니다.
#SQL 쿼리 (SQL Query)자연어 설명 (Natural Language Description)
1SELECT first_name, last_name, email FROM Customers WHERE city = 'Seoul';'Seoul'에 거주하는 모든 고객의 이름과 이메일 주소를 조회합니다.
2SELECT product_name, price FROM Products WHERE category = 'Electronics' ORDER BY price DESC;'Electronics' 카테고리의 모든 제품명과 가격을 가격 내림차순으로 정렬하여 조회합니다.
3SELECT o.order_id, o.order_date, c.first_name, c.last_name FROM Orders o JOIN Customers c ON o.customer_id = c.customer_id WHERE o.status = 'Shipped';'Shipped' 상태인 모든 주문의 ID, 주문 날짜 및 해당 주문을 한 고객의 이름을 조회합니다.
4SELECT p.product_name, SUM(oi.quantity) AS total_quantity_sold FROM Order_Items oi JOIN Products p ON oi.product_id = p.product_id GROUP BY p.product_name ORDER BY total_quantity_sold DESC;각 제품별로 판매된 총 수량을 계산하고, 판매량이 많은 순서대로 제품명과 총 판매 수량을 조회합니다.
5SELECT AVG(rating) AS average_rating FROM Reviews WHERE product_id = 123;제품 ID가 123인 상품의 평균 평점을 계산합니다.
6SELECT e.first_name, e.last_name, e.job_title FROM Employees e WHERE e.hire_date >= '2023-01-01';2023년 1월 1일 이후에 고용된 모든 직원의 이름과 직함을 조회합니다.
7SELECT c.first_name, c.last_name, COUNT(o.order_id) AS total_orders FROM Customers c LEFT JOIN Orders o ON c.customer_id = o.customer_id GROUP BY c.customer_id ORDER BY total_orders DESC;각 고객별 총 주문 횟수를 계산하고, 주문 횟수가 많은 순서대로 고객 이름과 총 주문 횟수를 조회합니다. (주문이 없는 고객도 포함)
8SELECT p.product_name, p.price, p.stock_quantity FROM Products p WHERE p.stock_quantity < 10;재고 수량이 10개 미만인 모든 제품의 이름, 가격, 현재 재고 수량을 조회합니다.
9SELECT o.order_id, o.order_date, o.total_amount FROM Orders o WHERE o.order_date BETWEEN '2024-01-01' AND '2024-03-31' ORDER BY o.order_date ASC;2024년 1분기(1월 1일부터 3월 31일까지)에 발생한 모든 주문의 ID, 날짜, 총 금액을 날짜 오름차순으로 조회합니다.
10SELECT r.review_id, r.rating, r.comment, c.first_name AS customer_name, p.product_name FROM Reviews r JOIN Customers c ON r.customer_id = c.customer_id JOIN Products p ON r.product_id = p.product_id WHERE r.rating <= 2;평점이 2점 이하인 모든 리뷰의 ID, 평점, 코멘트 내용과 해당 리뷰를 작성한 고객의 이름 및 관련 제품명을 조회합니다.

Gemini 2.5 Pro, 왜 대단할까요? 🤔

  • 압도적인 멀티모달 능력: 텍스트뿐만 아니라 이미지 속의 복잡한 구조와 정보를 이해하고 처리하는 능력은 Gemini 2.5 Pro의 핵심 강점입니다.
  • 시간 절약 및 생산성 향상: 스키마 분석, ERD 작성, 기본 SQL 쿼리 생성 등 반복적이고 시간이 많이 걸리는 작업을 자동화하여 개발자와 분석가가 더 중요한 문제에 집중할 수 있도록 돕습니다.
  • 정확성 및 일관성: 복잡한 스키마도 정확하게 분석하고 일관된 형식의 결과물을 제공하여 오류 발생 가능성을 줄여줍니다.
  • 뛰어난 코드 생성 능력: 단순히 정보를 나열하는 것을 넘어, Mermaid나 SQL과 같이 특정 목적을 가진 코드를 생성하는 능력은 매우 실용적입니다.
  • 자연스러운 대화형 인터페이스: 복잡한 명령어 대신 자연어 프롬프트를 통해 원하는 결과물을 얻을 수 있습니다.

마무리하며 ✍️

Gemini 2.5 Pro는 단순한 AI 챗봇을 넘어, 개발 및 데이터 분석 워크플로우를 혁신할 수 있는 강력한 도구입니다. 데이터베이스 스키마 이미지로부터 ERD와 SQL 쿼리를 생성하는 이 기능은 그 가능성의 일부일 뿐입니다.

여러분도 Gemini 2.5 Pro를 활용하여 반복적인 작업을 자동화하고, 창의적인 문제 해결에 더 많은 시간을 투자해보시는 것은 어떨까요? 앞으로 Gemini가 또 어떤 놀라운 능력으로 우리를 도울지 기대됩니다!


---------

도서: 

- Claude AI 글쓰기 (종이책):’AI 전환 시대엔 혼자보다 함께, 클로그 AI 글쓰기' (2025년 4월 2쇄) 
- Perplexity AI 의 모든 것(종이책): Yes24 (2025년 3월)

- AI DEEP RESEARCH 완전 정복 (종이책): 브크크 (2025년 4월)

댓글

이 블로그의 인기 게시물

[크롬북에서 설문지/퀴즈를 활용하여 풀스크린 모드로 학생평가 (시험) 하는 방법 소개]

[크롬북에서 설문지/퀴즈를 활용하여 풀스크린 모드로 학생평가 (시험) 하는 방법 소개]  # 크롬북   # 크롬기기관리   # 키오스크모드 여기서 풀스크린 모드란, 시험보는 동안에는 다른 앱이나 브라우저를 실행할 수 없고 오로지 시험문제(설문지) 화면만 풀스크린모드로 실행되게 하는 방법입니다. 즉, 학생들에게 배포된 크롬북을 시험보는 동안에만 시험보는 설문지를 풀스크린모드로 설정을 하고 시험 종료 후에는 원래의 상태로 복귀 시킬 수 있습니다. 크롬 기기(크롬북)에서는 키오스크 모드(풀스크린모드)를 설정하는 방법이 있습니다. (크롬 기기 관리 라이선스를 통해서 기기 설정을 해야 ) 1단계 - Google 설문지로 시험지 작성하기 (키오스크 앱으로 실행될 웹 페이지 준비 과정) 2단계 - 크롬 앱 빌더로 키오스크 앱 생성 및 테스트 하기 3단계 - 크롬 웹 스토어에 키오스크 앱을 등록 배포하기 위한 개발자 대시보드 가입 및 앱 올리기 4단계 - 크롬 기기 관리 콘솔에서 키오스크 앱 위한 설정 5단계 - 최종 단일 키오스크 앱 (예: ‘크롬북시험보기' 앱)을 실행할 등록된 기기들을 배정 https://support.google.com/chrome/a/answer/3273084?hl=ko 자세한 설명은 위 도움말에 언급되어 있으나, 2단계,3단계, 4단계는 생각보다 쉬운 작업은 아닙니다. (키오스크 앱을 빌드해야하고 빌드된 앱을 크롬 웹스토어 개발자 모드로 게시해야 하고, 크롬 기기 관리 콘솔에서 키오스크 앱 설정을 해야 하고 등등. 조금더 자세한 정보가 필요하시면  http://bit.ly/300Vtl2  (도서-"기업과 학교를 위한 크롬북 " 221p ~ 236p 를 참고하시면 됩니다) 참고 블로그 -  http://bit.ly/2ZZh8tP 참고 Google 설문지로 퀴즈 만들기 및 채점 -  http://bit.ly/301GkzS

[Claude 팁] 나의 블로그 글을 Claude 에게 학습 시켜 내 스타일의 블로그 글 생성하기

나의 블로그 글쓰기 스타일을 Claude AI에게 학습 시키는 방법  사실 이 방법은 프롬프트 엔지니어링 기법을 특별히 알고 있지 않아도, 생성형 AI를 사용할때 적용할 수 있는 방법입니다. 적용하고 보니 이러한 기법을 Few-shot learning이라고 하더라구요. 다음 방법을 적용하면 저의 이전 블로그에 게시된 내용 일부를 학습을 시킬 수 있습니다. 이로 인해 나만의 블로그 스타일을 Claude AI에게 학습을 시켜 그 결과, Claude AI가 생성한 초안은 마치 제가 직접 쓴 것처럼 자연스러웠고, 톤 앤 매너를 그대로 유지하는데 큰 도움이 되었습니다. Claude AI에게 과거 포스팅을 학습시키는 방법을 더 자세히 설명해 드리겠습니다. 먼저, 제 블로그에서 Claude AI에게 학습시키고 싶은 포스팅 3-5개를 선택합니다. 이때, 선택한 포스팅들은 제 글쓰기 스타일과 톤, 그리고 주제 면에서 일관성이 있어야 합니다. 예를 들어, 제가 선택한 포스팅은 다음과 같습니다. “Claude 3 Opus vs. ChatGPT 비교" “Claude로 논문 및 연구 보고서 분석[팁]" "생성형 AI, 윤리와 논리의 경계에서 길을 찾는 과정 소개" 선택한 포스팅 텍스트를 복사하여 한 곳에 모아 텍스트 파일 또는 워드 문서를 만듭니다. 이 파일을 Claude AI 프롬프트를 통해서 업로드 한 후  "Claude, 업로드한 텍스트는 내 과거 블로그 포스팅 3개입니다. 이를 분석하여 나의 글쓰기 스타일, 선호하는 단어와 표현, 그리고 주제 전개 방식을 학습해 주세요. 이를 바탕으로, '블로그 글쓰기에서 AI 활용의 미래'라는 주제로 800자 내외의 포스팅 초안을 작성해 보세요." 이렇게 프롬프트를 전달하면, Claude AI는 제공된 텍스트를 분석하여 제 글쓰기 스타일을 학습합니다. 그리고 그를 바탕으로 새로운 주제의 포스팅 초안을 생성할 수 있습니다.  Claude AI가 생성한 초안을 보면, 제가 선호...

구글 드라이브에서 내 파일이 갑자기 사라졌어요 [알아두면 쓸모 있는 구글 드라이브 팁]

  구글 드라이브에서 고아가 된(정리 되지 않은)  파일들에 대한 현상 및 복원 방법 및 공유 드라이브 활용 목차  배경 내 파일이나 폴더가 사라지고 (삭제된 것은 아님) 찾을 수 없는 현상 고아가 된 파일 (정리가 안된 파일) 을 찾아 내고 복원하는  방법 고아가 된 과정을 추적하는 방법 배경   구글 드라이브의 내 드라이브에서 협업을 위한 협업 폴더를 생성한 후 다른 팀원간들간에 공유하여 작업하는 동안 예기치 못하게 내가 생성한 파일들 또는 폴더가 갑자기 사라지는 현상이 발생 할 수 있습니다. 또한 이를 경험한 사용자들이 많이 있습니다.  내가 파일이나 폴더를 삭제하지 않았는데 불구하고 휴지통에도 없고, 내가 삭제한 기억도 없고, 이러한 현상이 발생할 경우에는 본 벡서서에서 설명하는 해당 폴더나 파일들이 ‘고아 (Orphaned)’ 가 된 상태가 되어있는게 분명합니다.  한글 도움말에는 ‘정리가 되지 않은 파일 (또는 분리가 된 파일)' 이라고 설명되어 있기도 합니다. 고아가 된 파일들은 어떠한 폴더에도 속하여 있지 않고, 내 휴지통에도 존재하지 않는 현상입니다. 그러나, 구글 드라이브에서는 용량을 계속 차지 않고 있는 상태입니다. 간혹 왜? 내가 삭제한 적이 없는데 파일이 없어졌거나 폴더가 보이질 않는 경우 당황하지 않고 이문서를 자세히 참조하면 해답을 찾을 수 있습니다.   내 파일이나 폴더가 사라지고 (삭제된 것은 아님) 찾을 수 없는 현상      1. 내 드라이브에서 Folder A를 생성하고 Folder A 안에 File A 를 생성 합니다. 나중에 File A를 삭제 하고, 그 이후에 Folder A 까지 삭제를 할 수 있습니다. 그후 휴지통에서 File A만 복원을 할 경우 삭제된 File A 를 복원하려고 하는데 File A가 존재하였던 상위 폴더 ‘Folder A’는 이미 삭제된 상태입니다. 이럴때 File A는 ...

[세계에서 가장 작은 PC Chromebit (ChromeOS) ] 개봉기

ChromeOS 기기의 3종 세트 (Chromebook, Chromebox, Chromebit ) 입니다. 그동안 크롬OS 기반의 크롬북과 크롬박스 만 주로 사용하다가 최근에 Asus 에서 공개한 Chromebit 를 구입하여 개봉기를 올립니다.  이번 Chromebit의 구입 목적은 크롬북 및 크롬박스와 비교하여 가성비가 얼마나 더 좋을 지 비교하는 것도 있지만, 주요 목적은 Chrome Device Management Console 기기로 등록한 후 ChromeOS 키오스크 및 사인이지 용도로 손색이 없는지 여부를 검토하기 위함. Chromebit의 크기 (엄지손가락 크기 정도) 및 가격 (85달러)의 가성비를 갖고 사인이지나 키오스크 디바이스로 손색이 없을 것이라 생각함. 이번 개봉기 후에는 2차로 크롬OS 사인이지 및 키오스크 앱을 연동하한 사용기를 올릴 예정. 엄지 손가락 만한 크기의 ChromeOS 기기 - 2GB Ram, 16GB storage, WiFi 802.11ac, 블루투스 4.0, USB 2.0 포트 1개, HDMI 포트, 가격은 85달러 옵션으로 로지텍의 무선 키보드 (무선 동글+ 키보드+터치패드)를 25달러에 구입하여 크롬OS기기 1세트를 갖추게 되었다.  박스 구성품은 매우 심플 - 전원 코드, 모니터에 고정용 스티커, 크롬빗 본체, HDMI 확장 케이블 USB 1포트 단자에 로지텍 키보드 무선 동글을 삽입한 후 전원 코드 연결하고, 모니터 HDMI 포트에 꼽으면 바로 부팅됨 유투브 실행 화면 기존 Google Apps (G Suite) 계정으로 로그인 한 후, 지메일 및 드라이브의 문서 작성하는데 크게 부족함이 없는 성능을 보이는 것으로 확인 됨 로지텍 무선 키보드 연결시 한글/영문 토글은 'CONTROL+space' 키로 동작 한글 입력은 전혀 문제 없이 동작됨 ------------------------...

[알아두면 쓸모 있는 개인 출판의 모든 것] 아마존에 한글 및 영문 전자책/종이책 (KDP) 및 교보문고 PubPle에 개인 출판 경험기

아마존에서는 개인이 무료로 책을 출판하여 판매할 수 있는 KDP (Kindle Direct Publishing) 플랫폼 서비스를 제공하고 있습니다.  이  KDP를 통해서 퍼블리싱 되는 책은 13개국 아마존 사이트를 통해서 동시에 판매가 됩니다. 이 KDP (Kindle Direct Publishing) 서비스를 이용하여 킨들용 전자책과 종이책(페이퍼백)을 퍼플리싱하여 판매를 하고 있습니다.  제가 퍼블리싱한 책(영문) 은 지금까지 전자책 vs 종이책 판매는 3:1 비율로 종이책이 전자책 비율로 판매중입니다.  아마존에 KDP 로 출판한 책들 (실용도서와 컬러/흑백 사진 앨범) 전자책의 로열티는 책 가격의 70%를 받을 수 있으며 (전자책 가격이 9.9달러 미만으로 책정한 경우), 종이책은 60%를 로열티로 받을 수 있습니다. 실제로 종이책 가격이 전자책 가격보다 2.5배 비싸게 책정을 하였기 떄문에, 종이책 판매시 로열티가 전자책보다 2배 높습니다. 즉, 전자책 2권 판매하는 것보다는 종이책 1권 판매되는 것이 더 수익이 높을 수 있습니다.  책 가격은 전자책 및 종이책 모두 작가가 임의로 가격을 정할 수 있습니다. 그러나, 전자책인 경우는 책 가격이 2.99달러 - 9.99달러로 책정이 되어야 책가격의 70% 로열티가 제공되고 그렇지 않은 경우는 35%로 책정이 됩니다. (아래 차트 참고) 본 KDP를 통한 책 퍼블리싱은 amazon.com 뿐만아니라 amazon.uk, amazon.fr, amazon.co.jp 및 캐나다, 브라질등 총 13개국 아마존 서비스 사이트를 통해서 판매됩니다. 즉, 한번의 퍼플리싱으로 13개국에서 판매됩니다. 책판매 된 로열티가 각 판매된 국가의 통화로 지불이 됩니다.  아마존 KDP는 누구에게나 오픈되어 있는 서비스입니다. 특별히 자격 조건도 없고 컨텐츠만 있으면 누구나 퍼블리싱 (무료 또는 유로로 선택)할 수 있습니다. ...