MySQL을 이용한 더미 데이터 생성 프로세스

2025. 3. 20. 19:45·프로젝트
목차
  1. 📌 1. MySQL 연결 설정
  2. 🚀 코드
  3. 🔍 설명
  4. 📌 2. MySQL 커서(Cursor) 설정
  5. 🚀 코드
  6. 🔍 설명
  7. 📌 3. 가짜 사용자 데이터 생성 (users 테이블)
  8. 🚀 코드
  9. 🔍 설명
  10. 📌 4. 사용자 ID 가져오기 (user_id)
  11. 🚀 코드
  12. 🔍 설명
  13. 📌 5. 가짜 주문 데이터 생성 (orders 테이블)
  14. 🚀 코드
  15. 🔍 설명
  16. 📌 6. MySQL 연결 종료
  17. 🚀 코드
  18. 🔍 설명
  19. 🚀 전체 프로세스 흐름 요약

🛠 MySQL을 이용한 더미 데이터 생성 프로세스 설명

✅ 이 코드의 흐름을 하나씩 쉽게 설명하고, 각 단계별 예시와 함께 정리하겠습니다.
✅ 코드의 주요 역할:

  • 가짜 사용자 데이터(users) 100개 생성
  • 가짜 주문 데이터(orders) 100개 생성
  • MySQL에 데이터를 삽입

📌 1. MySQL 연결 설정

🚀 코드

python
 
import mysql.connector
from faker import Faker
import random

# 1. MySQL 연결 설정
db_connection = mysql.connector.connect(
    host='localhost',
    user='root',
    password='7722',
    database='testdatabase'
)

🔍 설명

✔ mysql.connector.connect()를 사용해 MySQL 데이터베이스에 연결
✔ host='localhost' → 로컬에서 MySQL 실행
✔ user='root' → MySQL 사용자 이름
✔ password='7722' → MySQL 비밀번호
✔ database='testdatabase' → 사용할 데이터베이스 지정

📌 예시
🏢 "MySQL 데이터베이스" = 도서관 📚
👩‍💻 "Python 코드" = 도서관 관리자 🏫
📞 "MySQL 연결" = 도서관에 전화 걸어 "데이터 가져와 주세요!" 📞

✅ 즉, Python이 MySQL에 접속해서 데이터를 넣고 가져올 준비를 함!


📌 2. MySQL 커서(Cursor) 설정

🚀 코드

python
 
cursor = db_connection.cursor()
faker = Faker()

🔍 설명

✔ cursor = db_connection.cursor() → MySQL에서 SQL 명령을 실행할 수 있도록 커서(cursor) 생성
✔ faker = Faker() → 가짜 데이터(사용자명, 이메일 등)를 생성하는 Faker 라이브러리 사용

📌 예시
🏢 "MySQL 데이터베이스" = 대형 마트
🛒 "Cursor" = 계산대 직원 🧑‍💼
👩‍💻 "Python 코드" = 손님이 계산대에 줄 서는 것

✅ 즉, Python 코드가 MySQL과 데이터를 주고받을 준비 완료!


📌 3. 가짜 사용자 데이터 생성 (users 테이블)

🚀 코드

python
 
# users 데이터 생성
for __ in range(100):
    username = faker.user_name()
    email = faker.email()

    sql = "INSERT INTO users(username, email) VALUES(%s, %s)"
    values = (username, email)

    cursor.execute(sql, values)

db_connection.commit()  # ✅ users 데이터 저장

print("100개의 users 더미 데이터가 성공적으로 삽입되었습니다!")

🔍 설명

✔ for __ in range(100): → 100번 반복 (100명의 가짜 사용자 생성)
✔ username = faker.user_name() → 가짜 사용자명 생성 (예: john_doe)
✔ email = faker.email() → 가짜 이메일 생성 (예: john@example.com)
✔ INSERT INTO users(username, email) VALUES(%s, %s) → SQL 쿼리 실행
✔ db_connection.commit() → 실제 데이터 저장 (확정)

📌 예시
🏢 "MySQL" = 인사팀
👨‍💻 "Python 코드" = 인사팀 직원
📋 "SQL INSERT" = 새 직원 정보 추가

✅ 즉, Python이 MySQL에 "100명의 가짜 사용자" 데이터를 넣음!


📌 4. 사용자 ID 가져오기 (user_id)

🚀 코드

python
 
cursor.execute("SELECT id FROM users")
valid_user_id = [row[0] for row in cursor.fetchall()]

🔍 설명

✔ SELECT id FROM users → users 테이블에서 id 값만 가져옴
✔ cursor.fetchall() → 모든 결과 가져오기
✔ [row[0] for row in cursor.fetchall()] → ID 리스트로 저장

📌 예시
🏢 "MySQL" = 학교
📋 "Python 코드" = 출석부 담당 교사
🎓 "SELECT id FROM users" = 출석부에서 학생 ID만 가져오기

✅ 즉, Python이 "users" 테이블에서 ID 리스트를 가져와 저장!


📌 5. 가짜 주문 데이터 생성 (orders 테이블)

🚀 코드

python
 
# 100개의 주문 더미 데이터 생성
for __ in range(100):
    use_id = random.choice(valid_user_id)  # ✅ 유효한 사용자 ID 선택
    product_name = faker.word()
    quantity = random.randint(1, 10)

    try:
        sql = "INSERT INTO orders(user_id, product_name, quantity) VALUES(%s, %s, %s)"
        values = (use_id, product_name, quantity)
        cursor.execute(sql, values)
        db_connection.commit()  # ✅ 즉시 커밋

    except Exception as e:
        print(f"INSERT 오류 발생: {e}")  # ✅ 오류 출력

🔍 설명

✔ random.choice(valid_user_id) → 랜덤한 사용자 ID 선택
✔ faker.word() → 가짜 상품명 생성
✔ random.randint(1, 10) → 1~10 사이의 랜덤한 개수 선택
✔ INSERT INTO orders(user_id, product_name, quantity) VALUES(%s, %s, %s) → 주문 데이터 저장
✔ db_connection.commit() → 즉시 저장
✔ except Exception as e: → 에러 발생 시 출력

📌 예시
🏢 "MySQL" = 온라인 서점
🛒 "Python 코드" = 고객이 책 주문
📋 "SQL INSERT" = 새로운 주문 추가

✅ 즉, 100개의 랜덤한 주문을 orders 테이블에 저장!


📌 6. MySQL 연결 종료

🚀 코드

python
 
cursor.close()
db_connection.close()

print("100개의 주문 더미 데이터가 성공적으로 삽입되었습니다!")

🔍 설명

✔ cursor.close() → SQL 실행을 담당하는 커서 종료
✔ db_connection.close() → MySQL 데이터베이스 연결 종료
✔ print() → 데이터 삽입 완료 메시지 출력

📌 예시
🏢 "MySQL" = 은행
👩‍💻 "Python 코드" = 은행 고객
🔒 "MySQL 연결 종료" = 은행 업무 끝나고 창구 닫기

✅ 즉, 모든 데이터가 MySQL에 저장된 후, 연결을 안전하게 종료!


🚀 전체 프로세스 흐름 요약

1️⃣ MySQL 데이터베이스 연결
2️⃣ 100명의 가짜 사용자 데이터 생성 (users 테이블)
3️⃣ 사용자 ID 가져오기 (user_id 리스트 생성)
4️⃣ 100개의 가짜 주문 데이터 생성 (orders 테이블)
5️⃣ MySQL 커넥션 종료

💡 즉, 이 코드의 목적은 "테스트용 더미 데이터를 MySQL에 자동으로 생성하는 것!" 🚀

'프로젝트' 카테고리의 다른 글

Mini Project : 프로필 페이지 만들기(HTML:1일차 과제 + @)  (0) 2025.03.28
Mini Project : 프로필 페이지 만들기(HTML:1일차 과제)  (0) 2025.03.28
Database- 데이터베이스 (2일차: 데이터베이스와 테이블 생성)  (0) 2025.03.19
Database- 데이터베이스 (2일차: MySQL 사용자 생성 및 권한 부여)  (0) 2025.03.19
ATM (프로그래밍)  (0) 2025.03.14
  1. 📌 1. MySQL 연결 설정
  2. 🚀 코드
  3. 🔍 설명
  4. 📌 2. MySQL 커서(Cursor) 설정
  5. 🚀 코드
  6. 🔍 설명
  7. 📌 3. 가짜 사용자 데이터 생성 (users 테이블)
  8. 🚀 코드
  9. 🔍 설명
  10. 📌 4. 사용자 ID 가져오기 (user_id)
  11. 🚀 코드
  12. 🔍 설명
  13. 📌 5. 가짜 주문 데이터 생성 (orders 테이블)
  14. 🚀 코드
  15. 🔍 설명
  16. 📌 6. MySQL 연결 종료
  17. 🚀 코드
  18. 🔍 설명
  19. 🚀 전체 프로세스 흐름 요약
'프로젝트' 카테고리의 다른 글
  • Mini Project : 프로필 페이지 만들기(HTML:1일차 과제 + @)
  • Mini Project : 프로필 페이지 만들기(HTML:1일차 과제)
  • Database- 데이터베이스 (2일차: 데이터베이스와 테이블 생성)
  • Database- 데이터베이스 (2일차: MySQL 사용자 생성 및 권한 부여)
Chansman
Chansman
안녕하세요! 코딩을 시작한 지 얼마 되지 않은 초보 개발자 찬스맨입니다. 이 블로그는 제 학습 기록을 남기고, 다양한 코딩 실습을 통해 성장하는 과정을 공유하려고 합니다. 초보자의 눈높이에 맞춘 실습과 팁, 그리고 개발하면서 겪은 어려움과 해결 과정을 솔직하게 풀어내려 합니다. 함께 성장하는 개발자 커뮤니티가 되기를 바랍니다.
  • Chansman
    찬스맨의 프로그래밍 스토리
    Chansman
  • 전체
    오늘
    어제
    • 분류 전체보기 (802)
      • Python (32)
      • 프로젝트 (115)
      • 과제 (25)
      • Database (40)
      • 멘토링 (11)
      • 특강 (37)
      • 기술블로그 (41)
      • 기술블로그-Fastapi편 (33)
      • 기술블로그-Django편 (154)
      • 기술블로그-Flask편 (36)
      • AI 분석 (5)
      • HTML & CSS (31)
      • JavaScript (17)
      • AWS_Cloud (21)
      • 웹스크래핑과 데이터 수집 (14)
      • Flask (42)
      • Django (77)
      • Fastapi (16)
      • 연예 (14)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    urbantrends
    btsreunion
    college reunions
    newpoliticalparty
    life reflection
    youngprofessionals
    global politics
    btsjungkook
    classaction
    americanlaw
    self-growth
    livebroadcast
    smartphonedurability
    RM
    gpterror
    basalcellcarcinoma
    homebartrend
    뷔
    trumpmuskclash
    lawsuitculture
    titaniumcase
    btsdischarge
    travel ban
    chatgpterror
    btscomeback
    hotcoffeecase
    americaparty
    chinanightlife
    bts
    remittance
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Chansman
MySQL을 이용한 더미 데이터 생성 프로세스

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.