Faker.Net는 .NET / C# 용 오픈소스 모의 테스트 데이터 생성 라이브러리입니다. Ruby Faker 생태계에서 영감을 받았으며 개발 디버깅, 데이터베이스 초기화, 유닛 테스트 시 대량의 실제와 유사한 테스트 데이터가 부족한 문제를 해결해줍니다.
프로젝트 주소:https://github.com/jonwingfield/Faker.Net
실제 업무 환경과 유사한 가짜 데이터를 빠르게 생성할 수 있으며 주요 데이터 유형은 다음과 같습니다:
- 개인 정보: 성명, 성별, 휴대폰 번호, 이메일, 신분증 번호
- 지리 정보: 시도, 상세 주소, 우편번호
- 업무 데이터: 회사명, 직책, 텍스트 요약, 날짜 및 시간
- 네트워크 정보: IP 주소, URL, 사용자 이름
수동 입력 없이 이름, 성별, 연락처가 각각 다른 수백 건의 레코드를 사용자 테이블에 한 번에 삽입할 수 있습니다.
NuGet 패키지
Install-Package Faker.NetCode language: CSS (css)
혹은 CLI
dotnet add package Faker.NetCode language: CSS (css)
코드 예시
using Faker;
// 전체 이름 생성
string fullName = Name.FullName();
// 휴대폰 번호 생성
string phone = Phone.Number();
// 이메일 생성
string email = Internet.Email();
// 전체 주소 생성
string address = Address.FullAddress();Code language: JavaScript (javascript)
대량 데이터 생성 데모
// 반복문으로 테스트 사용자 데이터 10건 생성
var userList = new List<User>();
for (int i = 0; i < 10; i++)
{
userList.Add(new User()
{
Name = Name.FullName(),
Phone = Phone.Number(),
Email = Internet.Email(),
Address = Address.FullAddress()
});
}Code language: HTML, XML (xml)
무작위 이름 생성
콘솔 앱 예제
static void Main(string[] args)
{
// 무작위 영문 이름 100건 출력
for (int i = 0; i < 100; i++)
{
Console.WriteLine(Name.GetName());
}
Console.ReadKey();
}Code language: JavaScript (javascript)
실행 결과: Bonnie Eichmann、Adrien Crooks 같은 영문 전체 이름이 출력됩니다. 일부 이름에는 호칭(Miss, Mrs) 또는 학위 접미사(PhD, IV)가 포함될 수 있습니다.
소스 코드 내부 구현 분석
public static class Name
{
public static string GetName()
{
// 0~9 사이 난수 획득
switch (FakerRandom.Rand.Next(10))
{
// 10% 확률: 호칭 + 이름 + 성 (Miss Deontae Mante)
case 0:
return GetPrefix() + " " + GetFirstName() + " " + GetLastName();
// 10% 확률: 이름 + 성 + 접미사 (Haskell Morissette PhD)
case 1:
return GetFirstName() + " " + GetLastName() + " " + GetSuffix();
// 나머지 80%: 표준 형식 이름 + 성 (Adrien Crooks)
default:
return GetFirstName() + " " + GetLastName();
}
}
// 내장 이름 배열에서 무작위로 이름 가져오기
public static string GetFirstName()
{
return FIRST_NAMES.Rand();
}
}Code language: PHP (php)
소개
Next: Lorem 무작위 텍스트 생성