완숙의 블로그

[Django] Week 5.5 Faker 본문

Programing Language/Web_Django

[Django] Week 5.5 Faker

완숙 2019. 3. 9. 11:49

페이커???

가짜 데이터!

 

가짜 데이터, 왜 필요할까?

데이터가 많은 상황을 염두해 둔 기능을 구현할 때

이것을 구현해보고 싶어서!

 

기본적으로 제공하는 기능이다!

 

실습

  1. 가상환경을 킨다.

    $ source myvenv/bin/activate
    
  2. faker를 설치한다.

    $ pip install faker
    
  3. 최상위 폴더에 fake.py 를 만들자.

    여기서 주의해야하는점. 패키지 이름과 동일하게 파이썬 파일을 만들면 에러가 뜬다.

    2019-03-04 1 47 32

  4. faker import 하자.

    # fake.py
    from faker import Faker
    
  5. 이 페이커 객체의 메소드로 부터 어떤 종류의 가짜 데이터를 뽑아낼지 결정이 가능하다.

    # fake.py
    from faker import Faker
    
    myfake = Faker()
    myfake.name()
    myfake.address()
    myfake.text()
    myfake.state()		# 미국의 주이름
    myfake.sentence()	# 문장
    myfake.random_number()
    
  6. 한번 출력해볼까?

    # fake.py
    from faker import Faker
    
    myfake = Faker()
    print(myfake.name())
    print(myfake.address())
    print(myfake.text())
    print(myfake.state())		# 미국의 주이름
    print(myfake.sentence())	# 문장
    print(myfake.random_number())
    
    $ python fake.py
    
    $ Output
    Shannon Harris
    9201 Bruce Brook Apt. 624
    Thomasland, NH 31255
    Letter including provide raise yeah. Anyone economic heart night middle production. Form style bring right improve keep.
    Nevada
    Address rest woman interview decide.
    15
    

    이런식으로 아무말 대잔치 시작.

  7. 어, 근데 한국말로 된건 없졍?.. ㅠ

    가능해!

    # fake.py
    from faker import Faker
    
    myfake = Faker('ko_KR')
    print(myfake.name())
    print(myfake.address())
    print(myfake.text())
    print(myfake.state())		
    print(myfake.sentence())	
    print(myfake.random_number())
    
    $ Output
    김순옥
    충청남도 평택시 서초중앙606가 (성민김동)
    Eligendi dolores natus neque. Consectetur dolorem dolorum eos laborum animi deserunt. Quibusdam alias officia hic. Expedita tempora quo eaque praesentium.
    Traceback (most recent call last):
      File "fake.py", line 8, in <module>
        print(myfake.state())               # 미국의 주이름
    AttributeError: 'Generator' object has no attribute 'state'
    

 

  1. 그런데 안되는 녀석도 있네,,

    그런데 맨날 랜덤으로 뜨는 것 말고, 하나 쓰는 녀석이 계속 유지되었으면 좋겠어!

  2. 이 때 사용되는게 Seed file!

    # fake.py
    from faker import Faker
    
    myfake = Faker()
    
    myfake.seed(1)
    
    print(myfake.name())
    print(myfake.address())
    print(myfake.text())
    print(myfake.state())		
    print(myfake.sentence())	
    print(myfake.random_number())
    
  3. 이 녀석이 뭐냐면, seed는 랜덤화된 숫자가 이미 저장되어 있는 꾸러미라고 생각하면 좋다.

    $ Output
    Ryan Gallagher
    6317 Mary Light
    Smithview, HI 13900
    Against power across. Rather why rise month shake voice. Do discuss despite least face again study.
    Control yeah team building. Time wind may whose medical travel. Field onto think suffer measure.
    New Hampshire
    Collection dinner activity current.
    31162152
    

    아마 다른 컴퓨터에서 실행해도 같은 녀석이 출력될 것이다.

  4. 그래서 이녀석을 잘 쓰면, fake 데이터로 내 모델에 넣는 녀석을 테스트 해볼 수 있다!

Comments