스타터 키트
업데이트됨번역일: 2026년 8월 20일
이 페이지는 원문이 업데이트되어 번역이 갱신되었습니다.
- 원문 수정
- 2026년 8월 20일
- 번역 갱신
- 2026년 8월 20일
스타터 키트
- 소개
- 스타터 키트로 애플리케이션 만들기
- 제공되는 스타터 키트
- 스타터 키트 커스터마이징
- 인증
- 팀
- WorkOS AuthKit 인증
- Inertia SSR
- 커뮤니티 스타터 키트
- 자주 묻는 질문
소개
새 Laravel 애플리케이션을 빠르게 시작할 수 있도록 공식 애플리케이션 스타터 키트를 제공합니다. 스타터 키트에는 사용자 등록과 인증에 필요한 라우트, 컨트롤러, 뷰가 모두 포함되어 있으며, 인증 처리는 Laravel Fortify를 기반으로 합니다.
스타터 키트는 선택 사항입니다. 새로운 Laravel 설치본을 그대로 사용해 처음부터 직접 구성해도 됩니다. 어느 방식을 택하든 훌륭한 결과물을 만들 수 있습니다.
스타터 키트로 애플리케이션 만들기
스타터 키트를 사용해 새 Laravel 애플리케이션을 만들려면 먼저 PHP와 Laravel CLI 도구를 설치해야 합니다. PHP와 Composer가 이미 설치되어 있다면, Composer를 통해 Laravel 인스톨러를 전역으로 설치할 수 있습니다:
composer global require laravel/installer그런 다음 Laravel 인스톨러로 새 애플리케이션을 생성합니다. 설치 과정에서 원하는 스타터 키트를 선택하라는 안내가 표시됩니다:
laravel new my-app애플리케이션이 생성되면 NPM으로 프론트엔드 의존성을 설치하고 개발 서버를 시작합니다:
cd my-app
npm install && npm run build
composer run dev개발 서버가 시작되면 http://localhost:8000에서 애플리케이션에 접속할 수 있습니다.
제공되는 스타터 키트
React
React 스타터 키트는 Inertia를 활용해 React 프론트엔드를 갖춘 Laravel 애플리케이션을 구축하기 위한 현대적인 출발점을 제공합니다.
Inertia를 사용하면 서버 사이드 라우팅과 컨트롤러를 그대로 유지하면서도 완전한 단일 페이지 React 애플리케이션을 만들 수 있습니다. React의 강력한 프론트엔드 기능과 Laravel의 생산성, Vite의 빠른 빌드 속도를 동시에 누릴 수 있습니다.
React 스타터 키트는 React 19, TypeScript, Tailwind, shadcn/ui 컴포넌트 라이브러리를 사용합니다.
Svelte
Svelte 스타터 키트는 Inertia를 활용해 Svelte 프론트엔드를 갖춘 Laravel 애플리케이션을 구축하기 위한 현대적인 출발점을 제공합니다.
Inertia를 사용하면 서버 사이드 라우팅과 컨트롤러를 그대로 유지하면서도 완전한 단일 페이지 Svelte 애플리케이션을 만들 수 있습니다. Svelte의 강력한 프론트엔드 기능과 Laravel의 생산성, Vite의 빠른 빌드 속도를 동시에 누릴 수 있습니다.
Svelte 스타터 키트는 Svelte 5, TypeScript, Tailwind, shadcn-svelte 컴포넌트 라이브러리를 사용합니다.
Vue
Vue 스타터 키트는 Inertia를 활용해 Vue 프론트엔드를 갖춘 Laravel 애플리케이션을 구축하기 위한 훌륭한 출발점을 제공합니다.
Inertia를 사용하면 서버 사이드 라우팅과 컨트롤러를 그대로 유지하면서도 완전한 단일 페이지 Vue 애플리케이션을 만들 수 있습니다. Vue의 강력한 프론트엔드 기능과 Laravel의 생산성, Vite의 빠른 빌드 속도를 동시에 누릴 수 있습니다.
Vue 스타터 키트는 Vue Composition API, TypeScript, Tailwind, shadcn-vue 컴포넌트 라이브러리를 사용합니다.
Livewire
Livewire 스타터 키트는 Laravel Livewire 프론트엔드를 활용한 Laravel 애플리케이션 구축에 최적화된 출발점을 제공합니다.
Livewire는 순수 PHP만으로 동적이고 반응형 UI를 구성할 수 있는 강력한 도구입니다. 주로 Blade 템플릿을 사용하는 팀이나 React, Svelte, Vue 같은 JavaScript 기반 SPA 프레임워크보다 간단한 대안을 원하는 경우에 특히 잘 맞습니다.
Livewire 스타터 키트는 Livewire, Tailwind, Flux UI 컴포넌트 라이브러리를 사용합니다.
스타터 키트 커스터마이징
React
React 스타터 키트는 Inertia 3, React 19, Tailwind 4, shadcn/ui로 구성됩니다. 모든 스타터 키트와 마찬가지로, 백엔드와 프론트엔드 코드 전체가 애플리케이션 안에 포함되어 있어 자유롭게 커스터마이징할 수 있습니다.
프론트엔드 코드의 대부분은 resources/js 디렉터리에 위치합니다. 원하는 대로 코드를 수정해 애플리케이션의 외관과 동작을 바꿀 수 있습니다:
resources/js/├── components/ # 재사용 가능한 React 컴포넌트├── hooks/ # React 훅├── layouts/ # 애플리케이션 레이아웃├── lib/ # 유틸리티 함수 및 설정├── pages/ # 페이지 컴포넌트└── types/ # TypeScript 타입 정의추가 shadcn 컴포넌트를 추가하려면 먼저 shadcn/ui에서 원하는 컴포넌트를 찾은 뒤, npx로 퍼블리시합니다:
npx shadcn@latest add switch위 예시에서는 Switch 컴포넌트가 resources/js/components/ui/switch.tsx에 생성됩니다. 이후 어느 페이지에서든 해당 컴포넌트를 사용할 수 있습니다:
import { Switch } from "@/components/ui/switch"
const MyPage = () => {
return (
<div>
<Switch />
</div>
);
};
export default MyPage;사용 가능한 레이아웃
React 스타터 키트는 두 가지 기본 레이아웃을 제공합니다: "사이드바" 레이아웃과 "헤더" 레이아웃. 기본값은 사이드바 레이아웃이며, resources/js/layouts/app-layout.tsx 파일 상단의 import를 변경해 헤더 레이아웃으로 전환할 수 있습니다:
import AppLayoutTemplate from '@/layouts/app/app-sidebar-layout'; //import AppLayoutTemplate from '@/layouts/app/app-header-layout'; //사이드바 변형
사이드바 레이아웃은 기본(sidebar), "inset", "floating" 세 가지 변형을 제공합니다. resources/js/components/app-sidebar.tsx 컴포넌트를 수정해 원하는 변형을 선택할 수 있습니다:
<Sidebar collapsible="icon" variant="sidebar"><Sidebar collapsible="icon" variant="inset">인증 페이지 레이아웃 변형
로그인, 회원가입 등 인증 관련 페이지도 세 가지 레이아웃 변형을 지원합니다: "simple", "card", "split".
인증 레이아웃을 변경하려면 resources/js/layouts/auth-layout.tsx 파일 상단의 import를 수정합니다:
import AuthLayoutTemplate from '@/layouts/auth/auth-simple-layout'; //import AuthLayoutTemplate from '@/layouts/auth/auth-split-layout'; //Svelte
Svelte 스타터 키트는 Inertia 3, Svelte 5, Tailwind, shadcn-svelte로 구성됩니다. 모든 스타터 키트와 마찬가지로, 백엔드와 프론트엔드 코드 전체가 애플리케이션 안에 포함되어 있어 자유롭게 커스터마이징할 수 있습니다.
프론트엔드 코드의 대부분은 resources/js 디렉터리에 위치합니다:
resources/js/├── components/ # 재사용 가능한 Svelte 컴포넌트├── layouts/ # 애플리케이션 레이아웃├── lib/ # 유틸리티 함수, 설정, Svelte rune 모듈├── pages/ # 페이지 컴포넌트└── types/ # TypeScript 타입 정의추가 shadcn-svelte 컴포넌트를 추가하려면 먼저 shadcn-svelte에서 원하는 컴포넌트를 찾은 뒤, npx로 퍼블리시합니다:
npx shadcn-svelte@latest add switch위 예시에서는 Switch 컴포넌트가 resources/js/components/ui/switch/switch.svelte에 생성됩니다. 이후 어느 페이지에서든 해당 컴포넌트를 사용할 수 있습니다:
<script lang="ts">
import { Switch } from '@/components/ui/switch'
</script>
<div>
<Switch />
</div>사용 가능한 레이아웃
Svelte 스타터 키트도 "사이드바"와 "헤더" 두 가지 기본 레이아웃을 제공합니다. 기본값은 사이드바 레이아웃이며, resources/js/layouts/AppLayout.svelte 파일 상단의 import를 변경해 전환할 수 있습니다:
import AppLayout from '@/layouts/app/AppSidebarLayout.svelte'; //import AppLayout from '@/layouts/app/AppHeaderLayout.svelte'; //사이드바 변형
사이드바 레이아웃은 기본(sidebar), "inset", "floating" 세 가지 변형을 제공합니다. resources/js/components/AppSidebar.svelte 컴포넌트를 수정해 원하는 변형을 선택할 수 있습니다:
<Sidebar collapsible="icon" variant="sidebar"><Sidebar collapsible="icon" variant="inset">인증 페이지 레이아웃 변형
인증 관련 페이지도 "simple", "card", "split" 세 가지 레이아웃 변형을 지원합니다.
인증 레이아웃을 변경하려면 resources/js/layouts/AuthLayout.svelte 파일 상단의 import를 수정합니다:
import AuthLayout from '@/layouts/auth/AuthSimpleLayout.svelte'; //import AuthLayout from '@/layouts/auth/AuthSplitLayout.svelte'; //Vue
Vue 스타터 키트는 Inertia 3, Vue 3 Composition API, Tailwind, shadcn-vue로 구성됩니다. 모든 스타터 키트와 마찬가지로, 백엔드와 프론트엔드 코드 전체가 애플리케이션 안에 포함되어 있어 자유롭게 커스터마이징할 수 있습니다.
프론트엔드 코드의 대부분은 resources/js 디렉터리에 위치합니다:
resources/js/├── components/ # 재사용 가능한 Vue 컴포넌트├── composables/ # Vue composables / 훅├── layouts/ # 애플리케이션 레이아웃├── lib/ # 유틸리티 함수 및 설정├── pages/ # 페이지 컴포넌트└── types/ # TypeScript 타입 정의추가 shadcn-vue 컴포넌트를 추가하려면 먼저 shadcn-vue에서 원하는 컴포넌트를 찾은 뒤, npx로 퍼블리시합니다:
npx shadcn-vue@latest add switch위 예시에서는 Switch 컴포넌트가 resources/js/components/ui/Switch.vue에 생성됩니다. 이후 어느 페이지에서든 해당 컴포넌트를 사용할 수 있습니다:
<script setup lang="ts">
import { Switch } from '@/components/ui/switch'
</script>
<template>
<div>
<Switch />
</div>
</template>사용 가능한 레이아웃
Vue 스타터 키트도 "사이드바"와 "헤더" 두 가지 기본 레이아웃을 제공합니다. 기본값은 사이드바 레이아웃이며, resources/js/layouts/AppLayout.vue 파일 상단의 import를 변경해 전환할 수 있습니다:
import AppLayout from '@/layouts/app/AppSidebarLayout.vue'; //import AppLayout from '@/layouts/app/AppHeaderLayout.vue'; //사이드바 변형
사이드바 레이아웃은 기본(sidebar), "inset", "floating" 세 가지 변형을 제공합니다. resources/js/components/AppSidebar.vue 컴포넌트를 수정해 원하는 변형을 선택할 수 있습니다:
<Sidebar collapsible="icon" variant="sidebar"><Sidebar collapsible="icon" variant="inset">인증 페이지 레이아웃 변형
인증 관련 페이지도 "simple", "card", "split" 세 가지 레이아웃 변형을 지원합니다.
인증 레이아웃을 변경하려면 resources/js/layouts/AuthLayout.vue 파일 상단의 import를 수정합니다:
import AuthLayout from '@/layouts/auth/AuthSimpleLayout.vue'; //import AuthLayout from '@/layouts/auth/AuthSplitLayout.vue'; //Livewire
Livewire 스타터 키트는 Livewire 4, Tailwind, Flux UI로 구성됩니다. 모든 스타터 키트와 마찬가지로, 백엔드와 프론트엔드 코드 전체가 애플리케이션 안에 포함되어 있어 자유롭게 커스터마이징할 수 있습니다.
프론트엔드 코드의 대부분은 resources/views 디렉터리에 위치합니다:
resources/views├── components # 재사용 가능한 컴포넌트├── flux # 커스터마이징된 Flux 컴포넌트├── layouts # 애플리케이션 레이아웃├── pages # Livewire 페이지├── partials # 재사용 가능한 Blade 파셜├── dashboard.blade.php # 인증 사용자 대시보드├── welcome.blade.php # 비로그인 사용자 환영 페이지사용 가능한 레이아웃
Livewire 스타터 키트도 "사이드바"와 "헤더" 두 가지 기본 레이아웃을 제공합니다. 기본값은 사이드바 레이아웃이며, resources/views/layouts/app.blade.php 파일을 수정해 헤더 레이아웃으로 전환할 수 있습니다. 이 때 Flux의 메인 컴포넌트에 container 속성을 추가해야 합니다:
<x-layouts::app.header>
<flux:main container>
{{ $slot }}
</flux:main>
</x-layouts::app.header>인증 페이지 레이아웃 변형
인증 관련 페이지도 "simple", "card", "split" 세 가지 레이아웃 변형을 지원합니다.
인증 레이아웃을 변경하려면 resources/views/layouts/auth.blade.php 파일을 수정합니다:
<x-layouts::auth.split>
{{ $slot }}
</x-layouts::auth.split>인증
모든 스타터 키트는 Laravel Fortify를 사용해 인증을 처리합니다. Fortify는 로그인, 회원가입, 비밀번호 재설정, 이메일 인증 등에 필요한 라우트, 컨트롤러, 로직을 제공합니다.
Fortify는 config/fortify.php 설정 파일에서 활성화된 기능에 따라 다음 인증 라우트를 자동으로 등록합니다:
| 라우트 | 메서드 | 설명 |
|---|---|---|
/login | GET | 로그인 폼 표시 |
/login | POST | 사용자 인증 |
/logout | POST | 로그아웃 |
/register | GET | 회원가입 폼 표시 |
/register | POST | 새 사용자 생성 |
/forgot-password | GET | 비밀번호 재설정 요청 폼 표시 |
/forgot-password | POST | 비밀번호 재설정 링크 발송 |
/reset-password/{token} | GET | 비밀번호 재설정 폼 표시 |
/reset-password | POST | 비밀번호 업데이트 |
/email/verify | GET | 이메일 인증 안내 표시 |
/email/verify/{id}/{hash} | GET | 이메일 주소 인증 |
/email/verification-notification | POST | 인증 이메일 재발송 |
/user/confirm-password | GET | 비밀번호 확인 폼 표시 |
/user/confirm-password | POST | 비밀번호 확인 |
/two-factor-challenge | GET | 2단계 인증 코드 입력 폼 표시 |
/two-factor-challenge | POST | 2단계 인증 코드 검증 |
php artisan route:list Artisan 명령어를 사용하면 애플리케이션에 등록된 모든 라우트를 확인할 수 있습니다.
기능 활성화 및 비활성화
config/fortify.php 설정 파일의 features 배열을 통해 어떤 Fortify 기능을 활성화할지 제어할 수 있습니다:
use Laravel\Fortify\Features;
'features' => [
Features::registration(),
Features::resetPasswords(),
Features::emailVerification(),
Features::twoFactorAuthentication([
'confirm' => true,
'confirmPassword' => true,
]),
],특정 기능을 비활성화하려면 해당 항목을 주석 처리하거나 배열에서 제거하면 됩니다. 예를 들어 Features::registration()을 제거하면 공개 회원가입이 비활성화됩니다.
React, Svelte, Vue 스타터 키트를 사용하는 경우, 비활성화한 기능의 라우트를 프론트엔드 코드에서도 제거해야 합니다. 이 스타터 키트들은 빌드 시점에 라우트 정의를 생성하는 Wayfinder를 사용하기 때문에, 존재하지 않는 라우트를 참조하면 빌드에 실패합니다.
사용자 생성 및 비밀번호 재설정 커스터마이징
사용자가 회원가입하거나 비밀번호를 재설정할 때, Fortify는 app/Actions/Fortify 디렉터리에 있는 액션 클래스를 실행합니다:
| 파일 | 설명 |
|---|---|
CreateNewUser.php | 새 사용자 유효성 검사 및 생성 |
ResetUserPassword.php | 비밀번호 유효성 검사 및 업데이트 |
PasswordValidationRules.php | 비밀번호 유효성 검사 규칙 정의 |
예를 들어 회원가입 로직을 커스터마이징하려면 CreateNewUser 액션을 수정합니다:
public function create(array $input): User{ Validator::make($input, [ 'name' => ['required', 'string', 'max:255'], 'email' => ['required', 'email', 'max:255', 'unique:users'], 'phone' => ['required', 'string', 'max:20'], // 'password' => $this->passwordRules(), ])->validate(); return User::create([ 'name' => $input['name'], 'email' => $input['email'], 'phone' => $input['phone'], // 'password' => Hash::make($input['password']), ]);}2단계 인증
스타터 키트에는 2단계 인증(2FA)이 기본으로 포함되어 있어, 사용자가 TOTP 호환 인증 앱(예: Google Authenticator, OTP 앱 등)으로 계정을 보호할 수 있습니다. 2FA는 config/fortify.php의 Features::twoFactorAuthentication()을 통해 기본 활성화되어 있습니다.
confirm 옵션은 2FA 활성화 전 코드 검증을 요구하고, confirmPassword 옵션은 2FA를 활성화하거나 비활성화할 때 비밀번호 확인을 요구합니다. 자세한 내용은 Fortify 2단계 인증 문서를 참고하세요.
속도 제한
속도 제한(Rate Limiting)은 무차별 대입 공격이나 반복적인 로그인 시도로부터 인증 엔드포인트를 보호합니다. FortifyServiceProvider에서 Fortify의 속도 제한 동작을 커스터마이징할 수 있습니다:
use Illuminate\Support\Facades\RateLimiter;
use Illuminate\Cache\RateLimiting\Limit;
RateLimiter::for('login', function ($request) {
return Limit::perMinute(5)->by($request->email.$request->ip());
});팀
React, Svelte, Vue, Livewire 스타터 키트는 팀 기능을 포함해 생성할 수 있습니다. 팀 기능이 활성화되면 각 사용자는 하나 이상의 팀에 소속되며, 현재 활성 팀을 가집니다. 회원가입 시 새 사용자에게는 개인 팀이 자동으로 생성됩니다. 스타터 키트에는 팀 생성, 팀 전환, 멤버 초대, 팀 정보 수정을 위한 팀 관리 화면도 포함되어 있습니다.
라우트가 현재 팀으로 범위가 지정되면 URL에 현재 팀의 슬러그가 포함됩니다. 예를 들어 대시보드 라우트는 /{current_team}/dashboard가 되고, 팀 관리 페이지는 settings/teams/{team} 형태의 라우트를 사용합니다. {current_team} 및 {team} 라우트 파라미터를 사용할 때 스타터 키트는 인증된 사용자가 해당 팀에 소속되어 있는지 자동으로 확인합니다.
팀 URL 생성을 편리하게 하기 위해, 스타터 키트는 인증된 사용자의 현재 팀에 대한 URL 기본값을 등록합니다. 덕분에 route('dashboard') 같은 헬퍼 호출 시 현재 팀의 슬러그가 자동으로 포함됩니다. 사용자가 로그인, 회원가입, 팀 전환 시 스타터 키트는 현재 팀과 URL 기본값을 갱신해 생성되는 링크가 항상 올바른 팀 컨텍스트를 사용하도록 합니다.
팀을 생성하거나 이름을 변경할 때, 라우트 세그먼트와 충돌하거나 안전하지 않은 이름(예: settings, login, dashboard 등)은 사용할 수 없습니다.
WorkOS AuthKit 인증
기본적으로 React, Svelte, Vue, Livewire 스타터 키트는 모두 Laravel의 내장 인증 시스템을 사용해 로그인, 회원가입, 비밀번호 재설정, 이메일 인증 등을 제공합니다. 이에 더해 WorkOS AuthKit 기반의 스타터 키트 변형도 제공하며, 다음 기능을 추가로 지원합니다:
- 소셜 인증 (Google, Microsoft, GitHub, Apple)
- 패스키(Passkey) 인증
- 이메일 기반 "Magic Auth"
- SSO(Single Sign-On)
WorkOS를 인증 제공자로 사용하려면 WorkOS 계정이 필요합니다. WorkOS는 월 활성 사용자 100만 명 이하의 애플리케이션에 무료로 인증 서비스를 제공합니다.
WorkOS AuthKit을 사용하려면 laravel new로 새 애플리케이션을 만들 때 WorkOS 옵션을 선택하면 됩니다.
WorkOS 스타터 키트 설정
WorkOS 기반 스타터 키트로 새 애플리케이션을 만든 후, .env 파일에 WORKOS_CLIENT_ID, WORKOS_API_KEY, WORKOS_REDIRECT_URL 환경 변수를 설정해야 합니다. 이 값들은 WorkOS 대시보드에서 확인할 수 있습니다:
WORKOS_CLIENT_ID=your-client-id
WORKOS_API_KEY=your-api-key
WORKOS_REDIRECT_URL="${APP_URL}/authenticate"또한 WorkOS 대시보드에서 애플리케이션 홈페이지 URL을 설정해야 합니다. 이 URL은 사용자가 로그아웃한 후 리디렉션되는 주소입니다.
AuthKit 인증 방법 설정
WorkOS 기반 스타터 키트를 사용할 때는 WorkOS AuthKit 설정에서 "Email + Password" 인증을 비활성화하는 것을 권장합니다. 이렇게 하면 사용자는 소셜 인증, 패스키, Magic Auth, SSO만으로 로그인할 수 있으며, 애플리케이션이 비밀번호를 직접 처리할 필요가 없어집니다.
AuthKit 세션 타임아웃 설정
WorkOS AuthKit의 세션 비활성 타임아웃을 Laravel 애플리케이션의 세션 타임아웃(일반적으로 2시간)과 일치하도록 설정하는 것을 권장합니다.
Inertia SSR
React, Svelte, Vue 스타터 키트는 Inertia의 서버 사이드 렌더링(SSR) 기능을 지원합니다. SSR 호환 번들을 빌드하려면 다음 명령어를 실행합니다:
npm run build:ssr편의를 위해 composer dev:ssr 명령어도 제공됩니다. 이 명령어는 SSR 호환 번들을 빌드한 후 Laravel 개발 서버와 Inertia SSR 서버를 함께 시작하여, 로컬 환경에서 SSR을 테스트할 수 있게 합니다:
composer dev:ssr커뮤니티 스타터 키트
Laravel 인스톨러로 새 애플리케이션을 만들 때, --using 플래그를 사용해 Packagist에 공개된 커뮤니티 스타터 키트를 사용할 수 있습니다:
laravel new my-app --using=example/starter-kit스타터 키트 만들기
직접 만든 스타터 키트를 다른 개발자들과 공유하려면 Packagist에 퍼블리시해야 합니다. 스타터 키트의 .env.example 파일에 필요한 환경 변수를 정의하고, 설치 후 실행할 명령어는 composer.json의 post-create-project-cmd 배열에 등록해야 합니다.
자주 묻는 질문
스타터 키트를 어떻게 업그레이드하나요?
스타터 키트는 새 애플리케이션의 탄탄한 출발점을 제공합니다. 모든 코드의 소유권이 개발자에게 있으므로 원하는 대로 수정하고 확장할 수 있습니다. 스타터 키트 자체를 별도로 업데이트할 필요는 없습니다.
이메일 인증을 활성화하려면 어떻게 하나요?
App/Models/User.php 모델에서 MustVerifyEmail 인터페이스를 구현하면 이메일 인증을 추가할 수 있습니다:
<?php
namespace App\Models;
use Illuminate\Contracts\Auth\MustVerifyEmail;
// ...
class User extends Authenticatable implements MustVerifyEmail
{
// ...
}회원가입 후 사용자에게 인증 이메일이 발송됩니다. 이메일 인증 전까지 특정 라우트에 접근을 제한하려면 해당 라우트에 verified 미들웨어를 추가합니다:
Route::middleware(['auth', 'verified'])->group(function () {
Route::get('dashboard', function () {
return Inertia::render('dashboard');
})->name('dashboard');
});NOTE
WorkOS 기반 스타터 키트를 사용하는 경우 이메일 인증이 필요하지 않습니다.
기본 이메일 템플릿을 수정하려면 어떻게 하나요?
애플리케이션의 브랜드에 맞게 기본 이메일 템플릿을 커스터마이징할 수 있습니다. 이메일 뷰를 퍼블리시하려면 다음 명령어를 실행합니다:
php artisan vendor:publish --tag=laravel-mail이 명령어를 실행하면 resources/views/vendor/mail 디렉터리에 여러 파일이 생성됩니다. 이 파일들과 resources/views/vendor/mail/themes/default.css를 수정해 이메일 템플릿의 외관을 변경할 수 있습니다.