[LARAVEL] 기타 핵심 구성요소

김세연·2025년 4월 22일

Laravel

목록 보기
3/14
post-thumbnail

Laravel 기타 핵심 구성요소

1. Middleware (미들웨어)

  • 요청(Request)과 컨트롤러 사이에 동작하는 필터이다.

예: 로그인한 사용자만 접근 가능하게 제한

php artisan make:middleware EnsureUserIsLoggedIn
// app/Http/Middleware/EnsureUserIsLoggedIn.php
public function handle($request, Closure $next)
{
    if (!$request->user()) {
        return redirect('/login');
    }

    return $next($request);
}

2. Request & Response 객체

  • 컨트롤러 메서드에서 HTTP 요청/응답을 처리할 때 사용한다.
    • Request: 입력 데이터 ($request->input('name'), $request->all())
    • Response: 반환 데이터 (response()->json(), redirect() 등)
public function store(Request $request) {
    $name = $request->input('name');
    return response()->json(['name' => $name]);
}

3. Validation (유효성 검사)

사용자 입력값이 조건을 만족하는지 검사한다.

$request->validate([
    'email' => 'required|email',
    'password' => 'required|min:8',
]);

4. Migration (마이그레이션)

  • DB 테이블 구조를 코드로 정의하고 버전 관리가 가능하다.
php artisan make:migration create_users_table
// database/migrations/xxxx_xx_xx_create_users_table.php
Schema::create('users', function (Blueprint $table) {
    $table->id();
    $table->string('name');
    $table->timestamps();
});
php artisan migrate   // 실제 DB에 반영

5. Seeder & Factory

  • 더미 데이터를 코드로 생성해 테스트하거나 초기 데이터를 넣을 수 있도록 한다.
php artisan make:seeder UserSeeder
// database/seeders/UserSeeder.php
User::factory()->count(10)->create();
php artisan db:seed

6. Service Provider

  • 애플리케이션 전체에 영향을 미치는 서비스 등록/부트스트랩 코드이다.
  • 대부분은 자동으로 처리되며, 커스텀 서비스를 등록할 때 사용한다.
// app/Providers/AppServiceProvider.php
public function register() {
    // 서비스 등록
}

7. Config & .env 설정

  • env: 환경 설정 파일이다. (DB 정보, APP_KEY 등)
  • config/*.php: 환경에 따라 동작을 다르게 설정한다.
APP_NAME=MyApp
APP_ENV=local
DB_CONNECTION=mysql
// config/app.php
'name' => env('APP_NAME', 'Laravel')

전체 흐름 예시

요청 → Middleware → Route → Controller
→ Request 유효성 검사 → Model(DB)
→ Response → View or JSON 응답

profile
공부 재밌따

0개의 댓글