코드를 테스트하다보면 가짜 데이터를 넣어서 코드가 잘 작동하는지 테스트하는 경우가 있습니다. 일일히 테스트용 데이터를 입력하기는 번거롭죠, 자동으로 만들어주는 도구가 있다면 어떨까요? 테스트용 Python 더미 데이터 생성 방법을 살펴보겠습니다.
목차
Python 더미 데이터 생성을 위한 faker 설치
코드를 테스트할 때 더미 데이터가 필요한 경우가 있습니다. 그럴 때 사용할 수 있는 패키지 faker를 살펴보겠습니다.
우선 pip install faker 명령어를 이용해서 faker 패키지를 설치해 줍니다.
pip install faker
Python별 문제가 없다면 아래와 같이 설치가 잘 되는 것을 확인할 수 있습니다.
Python 더미 데이터 생성 방법
이제 직접 더미 데이터를 다양하게 만들어 보겠습니다.
가짜 이름을 10개 만들어 보도록 하겠습니다.
from faker import Faker
fake = Faker()
for i in range(5):
print(fake.name())
Python5개의 더미 이름이 생겼습니다.
그런데 죄다 영문 이름이네요. 우리는 한글로 된 이름이 필요합니다.
Localization 적용해서 더미 데이터 생성하기
Faker 패키지는 지역화 기능을 제공하기 때문에 Faker 클래스로 인스턴스 객체 생성시 로케일 ID를 입력해 주면 한글로 된 더미 이름을 이용할 수 있습니다.
from faker import Faker
fake = Faker('ko_KR')
for i in range(5):
print(fake.name())
Python앞서 사용한 코드에 ‘ko_KR’만 추가해 주었습니다.
이번에는 일본어로 된 일본 이름을 만들어 보겠습니다. LCID만 ja_JP로 변경해 주면 됩니다.
fake = Faker('ja_JP')
Python그러면 아래와 같이 5개의 일본 이름이 만들어진 것을 확인할 수 있습니다.
만약 다국어 서비스를 하고 있고, 고객이 여러 나라의 사람인 경우를 테스트하고 싶다면 어떻게 할 수 있을까요? 영어 이름, 한글 이름, 일본어 이름까지 모두 섞이도록 만들고 싶다면 로케일 ID를 리스트 형태로 여러 개를 넘겨주면 됩니다.
fake = Faker(['en_US', 'ko_KR', 'ja_JP'])
Python그러면 아래와 같이 영어 이름, 한글 이름, 일본어 이름이 모두 나오는 것을 볼 수 있습니다.
생성할 수 있는 데이터 종류
다음과 같은 데이터를 만들 수 있습니다.
- 이름: name()
- 주소: address()
- 상세주소: address_detail()
- 전화번호: phone_number()
- 텍스트: text()
- 월: month()
- AM/PM: am_pm()
- 이메일: email()
- ISBN: isbn10(), isbn13()
- 주민등록번호: ssn()
- 색상값(#RGB): color()
- 불리언 값: boolean()
- 건물 이름: building_name()
- 이 외에도 다양한 값들을 만들어서 이용할 수 있습니다.
위에 작성한 내용을 코드로 작성해 보았습니다.
from faker import Faker
fake = Faker('ko_KR')
print(f"이름: {fake.name()}")
print(f"주소: {fake.address()}")
print(f"상세주소: {fake.address_detail()}")
print(f"전화번호: {fake.phone_number()}")
print(f"텍스트: {fake.text()}")
print(f"월: {fake.month()}")
print(f"AM/PM: {fake.am_pm()}")
print(f"이메일: {fake.email()}")
print(f"ISBN: {fake.isbn10(), fake.isbn13()}")
print(f"주민등록번호: {fake.ssn()}")
print(f"색상값(#RGB): {fake.color()}")
print(f"불리언 값: {fake.boolean()}")
print(f"건물 이름: {fake.building_name()}")
Python위의 코드를 실행하면 아래와 같은 더미 데이터가 생성되는 것을 확인할 수 있습니다.
더미 데이터 때문에 테스트 코드 작성에서 고생하지 않으시길 빕니다.
관련 자료
Faker의 공식문서를 참고하시면 더 다양한 더미 데이터를 만드는 방법이 안내되어 있습니다.