🤔 더미 데이터가 왜 필요해?
상품 데이터는 쿠팡에서 크롤링해 왔지만 실서비스를 목적으로 하지 않는 우리 프로젝트에 유저 경우에는 더미 데이터로 진행하기로 했다.
랜덤으로 데이터를 생성해주는 서비스를 이용하여 집어 넣을 예정이었는데, 언어가 한글인 게 없어서 직접 코딩하기로!
간단히 파이썬으로 코딩
😃 더미 데이터 생성 코드
🪪 랜덤 이름
# 이름 생성 함수들
def firstName():
first = ["김", "이", "박", "최", "정", "강", "조", "윤", "장", "임", "한", "오", "서", "신", "권", "황", "안",
"송", "류", "전", "홍", "고", "문", "양", "손", "배", "조", "백", "허", "유", "남", "심", "노", "정",
"하", "곽", "성", "차", "주", "우", "구", "신", "임", "나", "전", "민", "유", "진", "지", "엄", "채",
"원", "천", "방", "공", "강", "현", "함", "변", "염", "양", "변", "여", "추", "노", "도", "소", "신",
"석", "선", "설", "마", "길", "주", "연", "방", "위", "표", "명", "기", "반", "왕", "금", "옥", "육",
"인", "맹", "제", "모", "장", "남", "탁", "국", "여", "진", "어", "은", "편", "구", "용"]
return random.choice(first)
def LastName():
last = ["가", "강", "건", "경", "고", "관", "광", "구", "규", "근", "기", "길", "나", "남", "노", "누", "다",
"단", "달", "담", "대", "덕", "도", "동", "두", "라", "래", "로", "루", "리", "마", "만", "명", "무", "문", "미", "민", "바", "박",
"백", "범", "별", "병", "보", "빛", "사", "산", "상", "새", "서", "석", "선", "설", "섭", "성", "세", "소", "솔", "수", "숙", "순",
"숭", "슬", "승", "시", "신", "아", "안", "애", "엄", "여", "연", "영", "예", "오", "옥", "완", "요", "용", "우", "원", "월", "위",
"유", "윤", "율", "으", "은", "의", "이", "익", "인", "일", "잎", "자", "잔", "장", "재", "전", "정", "제", "조", "종", "주", "준",
"중", "지", "진", "찬", "창", "채", "천", "철", "초", "춘", "충", "치", "탐", "태", "택", "판", "하", "한", "해", "혁", "현", "형",
"혜", "호", "홍", "화", "환", "회", "효", "훈", "휘", "희", "운", "모", "배", "부", "림", "봉", "혼", "황", "량", "린", "을", "비",
"솜", "공", "면", "탁", "온", "디", "항", "후", "려", "균", "묵", "송", "욱", "휴", "언", "령", "섬", "들", "견", "추", "걸", "삼",
"열", "웅", "분", "변", "양", "출", "타", "흥", "겸", "곤", "번", "식", "란", "더", "손", "술", "훔", "반", "빈", "실", "직", "흠",
"흔", "악", "람", "뜸", "권", "복", "심", "헌", "엽", "학", "개", "롱", "평", "늘", "늬", "랑", "얀", "향", "울", "련"]
return random.choice(last)
# 사용시
name = firstName() + LastName() + LastName()
📨 랜덤 주소
이번 더미데이터 생성의 핵심!
주소 같은 경우에는 어떻게 생성해야하나 고민했는 데 구글링 하다가 전국 건물 주소를 제공하는 서비스가 있었다.
이를 다운 받고 랜덤 줄을 받아와 파이프기준으로 list형태를 만들어 가공해 필요한 정보만 가져오는 식으로 정제하는 방법을 채택했다.
-원 정보 형태 (아래 사이트에서 전국 시도 기준으로 txt 파일을 제공하고 있다. 참고로 2018년 때의 주소!!! 주의!!!)
주소정제전환서비스
주소를 입력하세요. 정제된 도로명주소 및 지번주소로 자동 변환
www.sujiewon.com
- 위 파일을 사용하여 주소 추출
def address():
f_Ad = open('build_seoul.txt', 'r')
random_line = random.choice(list(f_Ad.readlines())).splitlines()[0]
f_Ad.close()
return random_line
# 사용시
address_full = address()
address_list = address_full.split('|')
sido = address_list[1]
sigungu = address_list[2]
eupmyeondong = address_list[3]
street = address_list[9]
zipcode = address_list[19]
🪪 랜덤 아이디와 이메일
def loginId():
n = random.randrange(5,10)
loginId = ""
for x in range(n):
loginId += str(random.choice(string.ascii_lowercase))
return loginId
# 사용시
login_Id = loginId()
email = login_Id + "@google.com"
🔒 랜덤 패스워드
password_make = string.ascii_letters + string.digits
def password():
lenNum = 64
password = "";
for y in range(64) :
password += random.choice(password_make)
return password
# 사용시
password()
📄 CSV파일로 변환
password_make = string.ascii_letters + string.digits
create_cnt = 1000
f_Save = open('random_member.csv', 'w', encoding='utf-8', newline='')
wr = csv.writer(f_Save)
for i in range(create_cnt) :
name = firstName() + LastName() + LastName()
address_full = address()
address_list = address_full.split('|')
login_Id = loginId()
email = login_Id + "@google.com"
sido = address_list[1]
sigungu = address_list[2]
eupmyeondong = address_list[3]
street = address_list[9]
zipcode = address_list[19]
wr.writerow([sido, sigungu, eupmyeondong, street, zipcode, email, login_Id, name, password()])
print([sido, sigungu, eupmyeondong, street, zipcode, email, login_Id, name, password()])
f_Save.close()
🎉 결과물
'Programming > Python' 카테고리의 다른 글
Python] flask 동적 URL 구현 코드 (1) | 2022.10.31 |
---|---|
Python] 유튜브 크롤링 구현 (Selenium / 셀레늄) (0) | 2022.10.25 |
Python] JWT(JSON Web Token) 토큰 구현 (0) | 2022.10.25 |
Python] 기본 환경 설정 - Django 설치 (0) | 2022.08.31 |
Python pip install 또는 uninstall 방법 (0) | 2022.08.31 |