2026년 Filament 셋업: 아무도 안 알려준 선택지들
TL;DR
PHP 8.5 + Laravel 12 + Filament v5.3.2 조합이면 어드민 대시보드 15분 컷임. Docker는 Sail로, DB는 PostgreSQL로, 리소스는 --generate 플래그 하나면 자동생성. Laravel AI SDK는 욕심 참고 나중에 얹을 것.
지금 스택부터 정리하자
2026년 중반 기준, Filament으로 어드민 패널 찍어내려면 이 조합이 정답에 가까움:
- PHP 8.5 — 프로퍼티 훅, 파이프 연산자 안정화. 이제 진짜 모던 PHP 맞음.
- Laravel 12 — 군더더기 뺀 릴리스. 큰 변화 없이 내실 다짐.
- Filament v5.3.2 — 테이블, 폼, 액션 전부 컴포넌트 기반. 커스터마이징 자유도가 미침.
- Laravel AI SDK — OpenAI, Anthropic, Ollama 전부 하나로. 근데 이건 나중 얘기.
이거 쓰는 사람들 사이에서는 이미 "Nova 대신 Filament" 흐름이 거의 굳어진 분위기. 무료인데 기능은 더 많으니까.
Choice #1: Docker — Laravel Sail로 가라
로컬에 PHP, Composer, MySQL 하나하나 깔고 있으면 2026년이 아니라 2016년임.
curl -s "https://laravel.build/hanbit-workshop?with=pgsql,redis" | bash
cd hanbit-workshop && ./vendor/bin/sail up -d
⚠️ 첫 빌드 10분 각오할 것. Docker 이미지 풀 받고 컴파일하는 데 시간 걸림. 커피 한 잔 내리고 오면 딱 맞음. 두 번째부터는 30초 컷이니까 첫 판만 참으면 됨.
Sail이 좋은 건 sail artisan, sail composer 이런 식으로 컨테이너 안에서 바로 명령 때릴 수 있다는 것. 로컬 환경 더럽힐 일 없음.
Choice #2: PostgreSQL > MySQL
MySQL 쓰던 사람한테 이 말 하면 "왜?" 하는데, 이유 명확함:
- JSON 칼럼 성능 — Filament 세팅값, 메타데이터 저장할 때 PostgreSQL의
jsonb가 압도적. 인덱싱까지 됨. - 마이그레이션 호환 — Laravel은 어차피 DB 추상화 되어 있어서 코드 변경 제로.
- 풀텍스트 검색 — MySQL의 FULLTEXT보다 PostgreSQL
tsvector가 한국어 처리에 유리함. - Sail 기본 옵션 — 위에서
?with=pgsql한 줄이면 끝.
솔직히 소규모 프로젝트면 MySQL이든 PostgreSQL이든 체감 차이 없음. 근데 나중에 규모 커졌을 때 PostgreSQL 골라놨으면 "그때 잘했다" 할 순간이 반드시 옴.
Choice #3: Filament 설치 — 딱 2줄
sail composer require filament/filament
sail artisan filament:install --panels
끝. 이게 전부임.
/admin 접속하면 로그인 화면 뜸. 유저 하나 만들어주고:
sail artisan make:filament-user
이름, 이메일, 비밀번호 치면 바로 어드민 패널 입장. 여기까지 5분도 안 걸림.
Choice #4: DB First → 자동생성 (이게 핵심)
Filament의 킬러 기능은 이거임. 테이블 먼저 만들고, 리소스를 자동생성하는 워크플로우.
마이그레이션 먼저 짜고:
sail artisan make:model Product -m
sail artisan make:model Order -m
sail artisan make:model Customer -m
마이그레이션에 칼럼 정의하고 sail artisan migrate 돌린 다음:
sail artisan make:filament-resource Product --generate
sail artisan make:filament-resource Order --generate
sail artisan make:filament-resource Customer --generate
--generate 플래그가 DB 스키마 읽어서 폼 필드, 테이블 칼럼, 필터까지 전부 자동으로 만들어줌. string이면 TextInput, text면 Textarea, boolean이면 Toggle, decimal이면 TextInput에 numeric() — 이런 매핑이 알아서 됨.
수동으로 폼 빌더 한 줄 한 줄 쓰고 있었으면... 그 시간 돌려받을 수 있음.
Choice #5: Laravel AI SDK는 디저트다
Laravel AI SDK 재밌음. prism() 헬퍼 하나로 GPT든 Claude든 Ollama든 갈아끼울 수 있고, 스트리밍, 툴 콜링 전부 지원됨.
근데 지금 당장 넣지 마.
대시보드 기본 뼈대가 안 잡혀 있는데 AI 기능부터 붙이면 디버깅 지옥 열림. CRUD 완성하고, 권한 세팅하고, 데이터 흐름 확인한 다음에 얹어도 전혀 안 늦음. 디저트는 식사 끝나고 먹는 거임.
이 시리즈 후반에 AI SDK 붙여서 "주문 데이터 요약", "재고 예측" 같은 기능 만드는 편 따로 다룰 예정.
15분 만에 한빛공방 대시보드 완성
가상의 목공예 업체 "한빛공방"으로 실제로 해봄. 타이머 켜고.
| 단계 | 소요 시간 | 내용 |
|---|---|---|
| Sail 프로젝트 생성 | 0:00 ~ 2:00 | laravel.build + sail up (이미지 캐시됨 가정) |
| Filament 설치 | 2:00 ~ 3:00 | composer require + filament:install |
| 모델/마이그레이션 | 3:00 ~ 8:00 | Product, Order, Customer, Category 4개 |
| 리소스 자동생성 | 8:00 ~ 10:00 | --generate 4번 |
| 관계 설정 + 미세 조정 | 10:00 ~ 15:00 | BelongsToSelect, HasMany 위젯 등 |
15분. 테이블 CRUD, 검색, 필터, 페이지네이션 전부 동작하는 어드민 패널이 나옴. 예전에 직접 Blade로 짜던 시절 생각하면 격세지감.
FAQ
Q. Filament v5는 Livewire 몇 버전?
Livewire 3 기반임. Alpine.js도 같이 들어감. 직접 Livewire 코드 건드릴 일은 거의 없는데, 커스텀 위젯 만들 때는 Livewire 라이프사이클 알아두면 유리함.
Q. Nova 쓰고 있는데 갈아타야 함?
당장은 아님. 근데 새 프로젝트 시작하는 거면 Filament 안 볼 이유가 없음. 무료이고, 커뮤니티 성장 속도가 Nova를 이미 추월함. 플러그인 생태계도 점점 두꺼워지는 중.
Q. PostgreSQL 대신 SQLite로 해도 됨?
로컬 프로토타이핑? 됨. 프로덕션? 비추. Filament 자체는 DB 안 가리는데 동시성 처리에서 SQLite 한계가 빨리 옴.
이 글은 Building with Filament 시리즈의 첫 번째 글입니다.
다음 편에서는 설치하자마자 바로 붙여야 할 Filament 플러그인들을 다룹니다. Shield, Spatie Media Library, Excel Export — 안 쓰면 손해인 것들만 골라서.