관리 메뉴

java,javascript,android,php,sql,공부용,메모용

라라벨10 - Laravel Seeder & Faker 정리 본문

개발/php

라라벨10 - Laravel Seeder & Faker 정리

yy_dd2 2026. 3. 19. 13:07
반응형

Laravel Seeder & Faker 정리

📌 1. Seeder란 무엇인가?

Seeder는 데이터베이스에 테스트용 데이터를 자동으로 넣어주는 기능입니다.

✔ 왜 사용할까?

  • 테스트용 데이터 빠르게 생성
  • 반복 작업 자동화
  • 개발 중 더미 데이터 필요할 때 사용

** Faker는 현재 seeder에서 사용이 불가능합니다. Factory에서 Faker 사용 가능. 이전 버전처럼 seeder에서 Faker를 사용하는 방법을 작성했습니다. 이후 Factory에서 사용하는 방법 공부하고 티스토리에 작성하고 이전게시글 링크 아래에..


📌 2. Seeder 생성 방법

php artisan make:seeder AuthorsTableSeeder

생성 위치:

database/seeders/AuthorsTableSeeder.php

📌 3. 기본 Seeder 작성

use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;

class AuthorsTableSeeder extends Seeder
{
    public function run(): void
    {
        for ($i = 1; $i <= 10; $i++) {
            DB::table('authors')->insert([
                'name' => 'author'.$i,
                'created_at' => now(),
                'updated_at' => now(),
            ]);
        }
    }
}

📌 4. Seeder 실행 방법

sail artisan db:seed

특정 Seeder만 실행:

sail artisan db:seed --class=AuthorsTableSeeder

📌 5. 실행 결과

idname

1 author1
2 author2
... ...
10 author10

📌 6. Faker란?

Faker는 가짜 데이터를 만들어주는 라이브러리입니다.

✔ 왜 사용할까?

  • 랜덤 데이터 생성
  • 실제처럼 보이는 테스트 데이터 생성
  • 반복 데이터 대신 다양한 값 생성

📌 7. 예전 Laravel vs 현재 Laravel 차이

구분설명

예전 Laravel Seeder에서도 $faker 바로 사용 가능
현재 Laravel Seeder에서는 Faker 자동 제공 ❌
현재 권장 방식 Factory에서 Faker 사용

📌 8. Seeder에서 Faker 사용하는 방법

현재는 직접 생성해야 사용 가능합니다.

✔ 코드

use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;
use Faker\Factory as Faker;

class AuthorsTableSeeder extends Seeder
{
    public function run(): void
    {
        $faker = Faker::create();

        for ($i = 1; $i <= 10; $i++) {
            DB::table('authors')->insert([
                'name' => $faker->name,
                'created_at' => now(),
                'updated_at' => now(),
            ]);
        }
    }
}

📌 9. Faker 사용 결과

idname

1 John Doe
2 Jane Smith
... ...

👉 실행할 때마다 다른 값 생성됨


📌 10. Faker에서 자주 사용하는 데이터

종류코드설명

이름 $faker->name 사람 이름
이메일 $faker->email 이메일
주소 $faker->address 주소
전화번호 $faker->phoneNumber 전화번호
문장 $faker->sentence 랜덤 문장
텍스트 $faker->text 긴 텍스트
숫자 $faker->randomNumber() 랜덤 숫자
날짜 $faker->date() 랜덤 날짜

📌 11. 데이터 초기화 방법 (중요)

Seeder는 실행할 때마다 데이터가 계속 추가됩니다.

✔ 방법 1. 전체 DB 초기화 (가장 많이 사용)

sail artisan migrate:fresh --seed

👉 모든 테이블 삭제 → 다시 생성 → seed 실행


✔ 방법 2. 특정 테이블만 초기화

use Illuminate\Support\Facades\DB;

DB::table('authors')->truncate();

👉 해당 테이블 데이터만 삭제 (id도 1부터 다시 시작)


✔ 방법 3. 데이터만 추가 (초기화 없음)

sail artisan db:seed

👉 기존 데이터 유지 + 뒤에 계속 추가


📌 12. 핵심 정리

  • Seeder = DB에 데이터 넣는 도구
  • Faker = 가짜 데이터 생성기
  • 현재 Laravel에서는
    • Seeder → Faker 자동 제공 ❌
    • 직접 생성해야 사용 가능
  • 실제 개발에서는 Factory + Faker 조합 사용

📌 13. 다음 단계

👉 Faker는 원래 Factory에서 사용하는 것이 표준

다음 단계:

php artisan make:factory AuthorFactory

🚀 한 줄 요약

Seeder는 데이터 넣는 도구, Faker는 데이터 만드는 도구
현재는 Faker를 Factory에서 사용하는 것이 기본이다

반응형
Comments