2 분 소요

데이터가 필요한데 구할수가 없어

  • 어느날 추천시스템을 구현하게 될 날이 생겼다.

구현에 필요한 데이터가 너무 부족해서 직접 데이터를 구하거나, 만들어야하는 상황에 쳐했을 때 해당 라이브러리가 많이 도움이 되었다.

프로토타입을 제작중이여서 해당 라이브러리를 통해 보다 빠르게 작업에 들어갈 수 있었다.
++ 생각보다 퀄리티가 은근 좋다. (다국어를 지원한다는 점!)

Faker

  • 시제품 개발 또는 테스트 모델에 사용되는 데이터가 필요한 경우 사용되는 라이브러리이다.
  • 직접 가짜 데이터를 수집하는 경우도 있지만, 해당 데이터가 없거나 또는 빠르게 테스트를 해야하는 경우 매우 용이하다.

설치

pip install Faker

기본적인 예시

from faker import Faker

fake = Faker()

fake.name()
# 'Alicia Knapp'
fake.address()
# '35926 Christopher Forks Suite 109\nShannontown, TN 07685'
fake.copany()
# 'Weber-Gaines'

Faker 명령어

dir(fake)
'''
'aba',
 'add_provider',
 'address',
 'administrative_unit',
 'am_pm',
 'android_platform_token',
 'ascii_company_email',
 'ascii_email',
 'ascii_free_email',
 'ascii_safe_email',
 'bank_country',
 'bban',
 'binary',
 'boolean',
 'bothify',
 'bs',
 'building_number',
 'cache_pattern',
 'catch_phrase',
 'century',
 'chrome',
 'city',
 'city_prefix',
 'city_suffix',
 'color',
 'color_name',
 'company',
 'company_email',
 'company_suffix',
 'coordinate',
 'country',
 'country_calling_code',
 'country_code',
 'credit_card_expire',
 'credit_card_full',
 'credit_card_number',
 'credit_card_provider',
 'credit_card_security_code',
 'cryptocurrency',
 'cryptocurrency_code',
 'cryptocurrency_name',
 'csv',
 'currency',
 'currency_code',
 'currency_name',
 'currency_symbol',
 'current_country',
 'current_country_code',
 'date',
 'date_between',
 'date_between_dates',
 'date_object',
 'date_of_birth',
 'date_this_century',
 'date_this_decade',
 'date_this_month',
 'date_this_year',
 'date_time',
 'date_time_ad',
 'date_time_between',
 'date_time_between_dates',
 'date_time_this_century',
 'date_time_this_decade',
 'date_time_this_month',
 'date_time_this_year',
 'day_of_month',
 'day_of_week',
 'del_arguments',
 'dga',
 'domain_name',
 'domain_word',
 'dsv',
 'ean',
 'ean13',
 'ean8',
 'ein',
 'email',
 'factories',
 'file_extension',
 'file_name',
 'file_path',
 'filter_by_length',
 'firefox',
 'first_name',
 'first_name_as_list',
 'first_name_female',
 'first_name_female_as_list',
 'first_name_male',
 'first_name_male_as_list',
 'first_name_nonbinary',
 'first_name_nonbinary_as_list',
 'fixed_width',
 'format',
 'free_email',
 'free_email_domain',
 'future_date',
 'future_datetime',
 'generator_attrs',
 'get_arguments',
 'get_formatter',
 'get_providers',
 'hex_color',
 'hexify',
 'hostname',
 'http_method',
 'iana_id',
 'iban',
 'image',
 'image_url',
 'internet_explorer',
 'invalid_ssn',
 'ios_platform_token',
 'ipv4',
 'ipv4_network_class',
 'ipv4_private',
 'ipv4_public',
 'ipv6',
 'isbn10',
 'isbn13',
 'iso8601',
 'items',
 'itin',
 'job',
 'json',
 'language_code',
 'language_name',
 'last_name',
 'last_name_as_list',
 'last_name_female',
 'last_name_female_as_list',
 'last_name_male',
 'last_name_male_as_list',
 'last_name_nonbinary',
 'last_name_nonbinary_as_list',
 'latitude',
 'latlng',
 'lexify',
 'license_plate',
 'linux_platform_token',
 'linux_processor',
 'local_latlng',
 'locale',
 'locales',
 'localized_ean',
 'localized_ean13',
 'localized_ean8',
 'location_on_land',
 'longitude',
 'mac_address',
 'mac_platform_token',
 'mac_processor',
 'md5',
 'military_apo',
 'military_dpo',
 'military_ship',
 'military_state',
 'mime_type',
 'month',
 'month_name',
 'msisdn',
 'name',
 'name_female',
 'name_male',
 'name_nonbinary',
 'nic_handle',
 'nic_handles',
 'null_boolean',
 'numerify',
 'opera',
 'paragraph',
 'paragraphs',
 'parse',
 'password',
 'past_date',
 'past_datetime',
 'phone_number',
 'port_number',
 'postalcode',
 'postalcode_in_state',
 'postalcode_plus4',
 'postcode',
 'postcode_in_state',
 'prefix',
 'prefix_as_list',
 'prefix_female',
 'prefix_female_as_list',
 'prefix_male',
 'prefix_male_as_list',
 'prefix_nonbinary',
 'prefix_nonbinary_as_list',
 'pricetag',
 'profile',
 'provider',
 'providers',
 'psv',
 'pybool',
 'pydecimal',
 'pydict',
 'pyfloat',
 'pyint',
 'pyiterable',
 'pylist',
 'pyset',
 'pystr',
 'pystr_format',
 'pystruct',
 'pytimezone',
 'pytuple',
 'random',
 'random_choices',
 'random_digit',
 'random_digit_not_null',
 'random_digit_not_null_or_empty',
 'random_digit_or_empty',
 'random_element',
 'random_elements',
 'random_int',
 'random_letter',
 'random_letters',
 'random_lowercase_letter',
 'random_number',
 'random_sample',
 'random_uppercase_letter',
 'randomize_nb_elements',
 'rgb_color',
 'rgb_css_color',
 'ripe_id',
 'safari',
 'safe_color_name',
 'safe_domain_name',
 'safe_email',
 'safe_hex_color',
 'secondary_address',
 'seed',
 'seed_instance',
 'seed_locale',
 'sentence',
 'sentences',
 'set_arguments',
 'set_formatter',
 'sha1',
 'sha256',
 'simple_profile',
 'slug',
 'ssn',
 'state',
 'state_abbr',
 'street_address',
 'street_name',
 'street_suffix',
 'suffix',
 'suffix_as_list',
 'suffix_female',
 'suffix_female_as_list',
 'suffix_male',
 'suffix_male_as_list',
 'suffix_nonbinary',
 'suffix_nonbinary_as_list',
 'swift',
 'swift11',
 'swift8',
 'tar',
 'text',
 'texts',
 'time',
 'time_delta',
 'time_object',
 'time_series',
 'timezone',
 'tld',
 'tsv',
 'unique',
 'unix_device',
 'unix_partition',
 'unix_time',
 'upc_a',
 'upc_e',
 'uri',
 'uri_extension',
 'uri_page',
 'uri_path',
 'url',
 'user_agent',
 'user_name',
 'uuid4',
 'weights',
 'windows_platform_token',
 'word',
 'words',
 'year',
 'zip',
 'zipcode',
 'zipcode_in_state',
 'zipcode_plus4']
'''
  • 위와 같이 굉장히 많은 함수들이 존재한다.

한글 예시

from faker import Faker
fake = Faker('ko')

print(fake.company)
# 하전

print(fake.name)
# 김예원