ChatGPT로 데이터 뚝딱 만들기
데이터가 없어서 공부를 못 한다고요?
안녕하세요 데이리터입니다. 오늘은 생성형 AI로 데이터셋을 만드는 방법에 대해서 알려드리려구요.
데이터 분석을 처음 배우는 분들한테 물어보면 다들 비슷한 고민을 하더라고요.
"유튜브 보면서 따라하고 싶은데, 예제 데이터가 없어요."
"회사 데이터는 보안 때문에 못 꺼내오고..."
"Kaggle 데이터는 영어라 뭐가 뭔지 모르겠어요."
맞아요. 진짜 그렇습니다. 저도 처음 배울 때 제일 힘들었던 게 '분석할 데이터 구하기'였거든요.
그런데 요즘은 ChatGPT한테 "데이터 좀 만들어줘"라고 하면 됩니다. 진짜로요. 생각보다 훨씬 쉽고, 꽤 그럴듯한 데이터가 뚝딱 나옵니다.
근데 그냥 "만들어줘"하면 안 돼요
생성형 AI도 뚝딱 아저씨는 아니에요. 대충 요청하면 대충 나옵니다.
예를 들어 이렇게 요청하면:
고객 데이터 만들어줘
Plain Text
복사
ChatGPT가 알아서 뭔가 만들어주긴 하는데... 컬럼도 마음대로, 값도 마음대로예요. 내가 원하는 게 아닐 확률 99%입니다.
그래서 5가지만 구체적으로 말해주면 원하는 데이터를 정확히 받을 수 있어요.
마법의 공식: 5가지만 알려주세요
뭘 말할까? | 이런 뜻이에요 | 예시 |
① 형식 | 어떤 모양으로 줄까? | CSV, 표, JSON, 엑셀용 |
② 컬럼 | 어떤 항목들이 필요해? | 이름, 나이, 구매금액, 가입일 |
③ 건수 | 몇 개 만들까? | 10건, 30건, 100건 |
④ 조건 | 값의 범위는? | 나이 20~50세, 금액 1만~50만원 |
⑤ 현실성 | 진짜처럼 보이게! | 한국 이름, 주말 주문 적게 |
이 5가지를 조합해서 요청하면, 바로 분석에 쓸 수 있는 데이터가 나옵니다.
실제로 해볼까요?
자, 이렇게 요청해보세요:
온라인 쇼핑몰 고객 데이터를 표로 10건 만들어줘.
컬럼: 고객ID, 이름(한국인), 나이(25~55세), 가입일(2024년),
총구매액(5만~200만원, 대부분 50만원 이하로)
조건: 30대가 가장 많고, 이름 중복 없이!
Plain Text
복사
그러면 이런 식으로 결과가 나와요:
고객ID | 이름 | 나이 | 가입일 | 총구매액 |
C001 | 김서연 | 32 | 2024-02-15 | 127,000 |
C002 | 박지훈 | 28 | 2024-03-22 | 45,000 |
C003 | 이민정 | 35 | 2024-01-08 | 312,000 |
... | ... | ... | ... | ... |
바로 엑셀이나 Python에서 쓸 수 있겠죠? 여기서 "CSV로 변환해줘"라고 추가 요청하면 복사해서 바로 파일로 저장할 수도 있어요.
꿀팁 3가지
실제로 써보면서 알게 된 꿀팁들이에요.
꿀팁(honey tip) 1: "더 추가해줘" 활용하기
데이터가 마음에 들면 굳이 처음부터 다시 요청할 필요 없어요.
같은 패턴으로 20건 더 만들어줘
Plain Text
복사
이러면 앞서 만든 데이터와 일관성 있게 추가로 만들어줍니다.
꿀팁(honey tip) 2: 레퍼런스 제시하기
"쿠팡 주문내역처럼", "카드 명세서처럼" 이런 식으로 실제 서비스를 언급하면 ChatGPT가 감을 잡아요.
배달의민족 주문 내역처럼 생긴 데이터 만들어줘
Plain Text
복사
만약 홈페이지나 관련된 내용을 캡처해서 넣으면 더 잘 만들어요
만약 원하는 홈페이지 (예: 네이버)를 첨부한 뒤에(이미지 첨부 기능은 일부 생성형 AI툴에서 유료버전일 경우에만 제공되는 경우가 있습니다.) 해당 사이트에서 사용할만한 실무적인 데이터셋을 만들어줘 라고 말하면 조금 더 카테고리, 현실 데이터와 더 밀접하게 만들어줍니다.
꿀팁(honey tip) 3: 대용량은 코드로!
1000건 이상 필요하면 ChatGPT한테 직접 만들어달라고 하지 말고, 코드를 달라고 하세요.
Faker 라이브러리를 활용해서 이 패턴으로 1000건 만드는 Python 코드 줘
Plain Text
복사
Faker 라이브러리를 활용한 코드를 짜줄 거예요. 그걸 실행하면 끝!
잠깐 Faker 라이브러리는 뭐에요?
Faker는 가짜 데이터 생성 전용 Python 라이브러리예요. 한국식 이름, 주소, 이메일, 전화번호, 회사명 등 다양한 종류의 "그럴듯한 가짜 데이터"를 자동으로 만들어줍니다.
[꽤 진짜 데이터셋 같죠?]
주소 | 우편번호 | 국가 | 회사명 | 직업 | 전화번호 | 이메일 | 사용자명 | 나이 | IP주소 | 문장 | 색상 |
2 | 김수민 | 충청북도 증평군 오금로 33-4 | 33890 | 중앙아프리카 공화국 | 유한회사 마루정보통신 | 산업전공 | 051-026-5423 | sanghyeon61@example.com | sumin07 | 68 | 10.193.207.66 |
3 | 한경희 | 전라북도 안양시 봉은사가 지하465 | 25534 | 파나마 | (주) 종합 | 통신/방송 및 인터넷 케이블 설치 및 수리원 | 042-832-7648 | yeongsunhong@example.org | jeongsugsong | 51 | 172.26.17.215 |
한국식 자료를 생성하기 위해서는 fake = Faker('ko-KR') 라는 옵션이 꼭 들어가야합니다.
Faker 이상혁님 아님.. 그냥 데이터 만드는거임.. 스펠링만 같은거임
진짜 같은 가짜 데이터 만들기
여기서 한 단계 더 나가볼게요.
현실 데이터는 사실 완벽하지 않아요. 빈 값도 있고, 이상하게 튀는 값도 있고, 특정 값에 몰려 있기도 하죠. 오히려 이런 "불완전함"을 넣어야 진짜처럼 보입니다.
1. 분포 편향 넣기
구매금액은 대부분 10만원 이하로 하고,
가끔 100만원 넘는 큰손도 섞어줘
Plain Text
복사
2. 변수 간 관계 만들기
VIP 등급 고객일수록 구매 횟수가 많도록 해줘
Plain Text
복사
3. 결측치 추가하기
전화번호 컬럼은 10% 정도 비워둬.
미입력 고객이 있는 것처럼.
Plain Text
복사
4. 이상치 넣기
체류시간 데이터 중 1~2건은 비정상적으로 길게 해줘.
3시간 이상으로. 탭 켜놓고 딴 짓 한 케이스처럼.
Plain Text
복사
이렇게 하면 실제 데이터 전처리 연습까지 할 수 있어요.
진짜 데이터가 필요할 땐?
가상 데이터로 충분히 연습했다면, 이제 진짜 데이터로 프로젝트를 해보세요.
사이트 | 뭘 얻을 수 있나요? |
공공데이터포털 (data.go.kr) | 인구, 교통, 부동산, 날씨 등 국내 공공데이터 무료 |
Kaggle (kaggle.com) | 전세계 데이터셋 + 다른 사람 분석 코드까지 |
통계청 KOSIS (kosis.kr) | 대한민국 공식 통계 데이터 |
그리고 여기서 꿀조합이 있어요.
공공데이터의 실제 구조를 참고해서, ChatGPT로 가상의 세부 데이터를 만드는 겁니다.
예를 들면:
서울시 구별 인구 데이터를 참고해서,
각 구에 있는 가상 카페의 월별 매출 데이터 만들어줘.
인구 많은 구가 매출도 높게 해줘.
Plain Text
복사
이러면 현실 기반의 그럴듯한 분석용 데이터가 완성됩니다.
직접 해보세요!
아래 프롬프트를 지금 바로 ChatGPT에 복사해서 실행해보세요.
카페 주문 데이터 15건을 표로 만들어줘.
컬럼: 주문번호, 메뉴명, 사이즈(S/M/L), 가격, 주문시간, 결제방법
조건:
- 아메리카노가 가장 많이 나오게
- 오전 8~10시에 주문이 집중되게
- 카드결제가 70% 정도 되게
Plain Text
복사
결과가 마음에 들면 "CSV로 변환해줘"라고 요청하세요. 복사해서 메모장에 붙여넣고 .csv로 저장하면 바로 엑셀에서 열 수 있어요.
참고로 데이터를 만들 경우
ChatGPT의 추론모드 / Gemini의 사고모드 / Claude의 Opus 모델로 진행하면 좀더 나은 데이터가 생성됩니다.
정리
이제 "데이터가 없어서 못 하겠다"는 핑계는 없습니다. ChatGPT한테 부탁해서 오늘 바로 나만의 데이터셋 만들어보세요!
AI를 활용한 데이터 분석에 대해서 더 많은 정보로 찾아뵙겠습니다. -데이리터-



