Mockaroo와 Entity framework를 사용하여 .NET 애플리케이션용 샘플 데이터를 시드하기
Source: Dev.to
소개
애플리케이션을 철저히 테스트하려면 다양한 샘플 데이터가 필요하지만, 이를 수동으로 만들기는 시간이 많이 소요됩니다. Mockaroo는 현실적인 테스트 데이터를 빠르게 생성해 주어 이 과정을 단순화합니다. 이 튜토리얼에서는 Mockaroo와 Entity Framework Core를 함께 사용해 .NET Web API 프로젝트에 샘플 데이터를 시드(seeding)하는 방법을 알아봅니다.
Visual Studio Community Edition이 필요합니다. 여기에서 다운로드하세요.
Mockaroo에서 데이터셋 만들기
- Mockaroo 웹사이트에 접속합니다.
- 데이터셋 필드를 정의합니다 (아래 예시 스크린샷 참고).

- 출력 형식으로 JSON을 선택합니다 (EF Core를 통해 데이터를 시드할 것이기 때문입니다).
- GENERATE DATA 버튼을 클릭하고 생성된 파일을 다운로드합니다 (예:
MOCK_DATA.json).
Web API 프로젝트 만들기
- Visual Studio를 열고 → Create a new project.
- ASP.NET Core Web API를 검색하고 선택한 뒤 Next를 클릭합니다.
- 프로젝트 이름을 지정합니다 (예:
Mockaroo_Test), 대상 프레임워크를 .NET 10으로 선택하고 기본 옵션을 유지한 뒤 Create를 클릭합니다.

필요한 패키지 설치
Package Manager Console을 열고 다음을 실행합니다:
Install-Package Microsoft.EntityFrameworkCore
Install-Package Microsoft.EntityFrameworkCore.InMemory
Install-Package Microsoft.EntityFrameworkCore.Design
모델 정의
Mockaroo에서 정의한 필드와 일치하도록 Club 클래스를 만듭니다:
using System.Text.Json.Serialization;
public class Club
{
public int Id { get; set; }
[JsonPropertyName("club_name")]
public string ClubName { get; set; }
[JsonPropertyName("country_location")]
public string CountryLocation { get; set; }
[JsonPropertyName("stadium_capacity")]
public int StadiumCapacity { get; set; }
[JsonPropertyName("manager_name")]
public string ManagerName { get; set; }
[JsonPropertyName("founded_year")]
public int FoundedYear { get; set; }
[JsonPropertyName("league_affiliation")]
public string LeagueAffiliation { get; set; }
[JsonPropertyName("captain_name")]
public string CaptainName { get; set; }
[JsonPropertyName("jersey_color")]
public string JerseyColor { get; set; }
[JsonPropertyName("average_attendance")]
public int AverageAttendance { get; set; }
[JsonPropertyName("major_rival")]
public string MajorRival { get; set; }
}
DbContext 만들기
새 클래스 AppDbContext를 추가합니다:
using Microsoft.EntityFrameworkCore;
public class AppDbContext : DbContext
{
public AppDbContext(DbContextOptions options) : base(options) { }
public DbSet<Club> Clubs { get; set; }
}
인‑메모리 데이터베이스 구성
Program.cs에서 컨텍스트를 등록합니다:
builder.Services.AddDbContext<AppDbContext>(options =>
{
options.UseInMemoryDatabase("MockarooDemoDb");
});
데이터 시드하기
-
다운로드한
MOCK_DATA.json파일을 프로젝트 폴더(예: Web API 프로젝트 루트)로 이동합니다.

-
JSON을 읽어 데이터베이스에 채워 넣는
SeedData클래스를 만듭니다:
using System.Text.Json;
public class SeedData
{
public static async Task SeedAsync(AppDbContext context)
{
if (context.Clubs.Any()) return;
var json = await File.ReadAllTextAsync("MOCK_DATA.json");
var clubs = JsonSerializer.Deserialize<List<Club>>(json);
context.Clubs.AddRange(clubs!);
await context.SaveChangesAsync();
}
}
Program.cs에서 앱을 빌드한 뒤 시드 로직을 호출합니다:
var app = builder.Build();
using (var scope = app.Services.CreateScope())
{
var db = scope.ServiceProvider.GetRequiredService<AppDbContext>();
await SeedData.SeedAsync(db);
}
이제 애플리케이션을 실행하면 인‑메모리 데이터베이스 MockarooDemoDb가 모의 데이터로 채워집니다.
시드된 데이터 확인하기
클럽 정보를 API 엔드포인트로 노출하는 컨트롤러를 생성합니다.
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
[ApiController]
[Route("api/[controller]")]
public class ClubController : ControllerBase
{
private readonly AppDbContext _context;
public ClubController(AppDbContext context)
{
_context = context;
}
[HttpGet]
public async Task<ActionResult<List<Club>>> Get()
{
var clubs = await _context.Clubs.ToListAsync();
return Ok(clubs);
}
}
Swagger
Swagger가 아직 설정되지 않았다면, 여기 가이드를 참고하세요.
프로젝트를 실행하고 Swagger UI 페이지로 이동합니다. GET /api/Club 엔드포인트를 실행하면 시드된 클럽 데이터를 확인할 수 있습니다.

전체 프로젝트 소스
전체 프로젝트는 GitHub에서 확인할 수 있습니다.
Happy coding!