피드로 돌아가기
Generating Realistic Seed Data That Respects Foreign Keys, in 20 Seconds
Dev.toDev.to
Database

FK 제약조건을 준수하는 시드 데이터 자동 생성기 구현

Generating Realistic Seed Data That Respects Foreign Keys, in 20 Seconds

Rohith Gilla2026년 4월 22일10intermediate

Context

수동 시드 스크립트 작성 시 빈번한 Foreign Key 제약 조건 위반과 반복적인 스크립트 수정으로 인한 개발 리소스 낭비 발생. 기존 CLI 도구의 경우 벤더 전용 컬럼 타입 미지원 및 복잡한 YAML 설정으로 인한 낮은 사용성 노출.

Technical Solution

  • 정규표현식 기반의 Heuristic Lookup Table을 구축하여 컬럼명에 따른 데이터 생성기 자동 매핑
  • DB 스키마 분석을 통해 외래 키 참조 컬럼을 식별하고 실제 데이터베이스에서 최대 1,000개의 유효 값을 샘플링하는 FK Sampler 설계
  • 샘플링된 ID 풀에서 무작위 값을 선택하는 방식으로 Foreign Key Constraint Violation 원천 차단
  • 데이터 타입 기반의 Fallback 메커니즘을 적용하여 정의되지 않은 컬럼에 대한 기본 생성 값 할당
  • 전체 데이터 삽입 전 5개의 행만 생성하여 검증하는 Preview 모드를 통한 설정 오류 조기 발견 및 런타임 비용 절감
  • Batch-insert 방식을 채택하여 대량의 데이터 생성 및 삽입 성능 최적화

- 데이터 생성 시 정규표현식을 활용한 Heuristic 매핑으로 설정 자동화 구현 검토 - FK 제약 조건 해결을 위해 정적 값 대신 실제 DB의 유효 값 샘플링 방식 적용 - 대규모 데이터 쓰기 작업 전 최소 단위의 Preview 단계 설계로 롤백 비용 최소화 - 스키마 간 의존성 해결을 위한 Topological Sort 기반의 생성 순서 제어 도입 고려

원문 읽기