Laravel 11: 강좌

Laravel 11 기초

Laravel 11은 최신 웹 애플리케이션 개발을 위한 강력하고 세련된 PHP 프레임워크입니다. Laravel 11에서는 더욱 직관적이고 효율적인 개발 경험을 제공합니다. 이 포스팅에서는 Laravel 11의 새로운 기능과 기본 설치 과정을 살펴보고, 라우팅, 데이터베이스, 인증 시스템, 그리고 Vue 3 통합 및 배포 방법에 대해 깊이 있게 탐구하겠습니다.


1. Laravel 11의 주요 특징

Laravel 11에서는 다음과 같은 주요 기능이 추가되었습니다:

1.1 새로운 속성 기반 라우팅

  • 컨트롤러 메서드 위에 직접 속성을 정의하여 라우트를 설정할 수 있습니다.
  • 코드를 더욱 간결하고 가독성 있게 만듭니다.
use Illuminate\Routing\Attributes\Get;

class UserController {
    #[Get('/users')]
    public function index() {
        return User::all();
    }
}

1.2 성능 향상

  • 최신 PHP 버전을 활용하여 실행 속도를 크게 개선하였습니다.
  • 데이터베이스 쿼리 최적화 및 캐싱 메커니즘이 개선되었습니다.
  • 대규모 트래픽 처리에 유리한 아키텍처가 적용되었습니다.

1.3 Vue 3와의 기본 통합

  • Laravel 11은 Vue 3를 기본적으로 지원하며, 최신 빌드 도구(Vite)를 사용합니다.
  • 프론트엔드 개발이 한층 더 편리해졌습니다.

1.4 Task Scheduler 개선

  • 스케줄 작업 관리가 더 직관적으로 바뀌었으며, 디버깅 기능이 추가되었습니다.
  • 작업의 실행 로그를 상세히 확인할 수 있어 문제 해결이 용이해졌습니다.

1.5 향상된 테스트 환경

  • 테스트 성능과 효율성을 높이는 새로운 도구와 기능이 포함되었습니다.
  • 병렬 테스트 및 자동화된 코드 커버리지 보고 기능을 제공합니다.

2. Laravel 11 설치 가이드

2.1 사전 요구 사항

Laravel 11을 설치하려면 다음이 필요합니다:

  • PHP 8.2 이상
  • Composer 최신 버전
  • 데이터베이스 (MySQL, PostgreSQL, SQLite 등)
  • Node.js (Vue 통합 및 빌드 도구 활용 시 필요)

2.2 설치 과정

1단계: Laravel 설치

composer create-project --prefer-dist laravel/laravel:^11.0 laravel11-app

2단계: 프로젝트 디렉토리로 이동

cd laravel11-app

3단계: 환경 설정 파일 복사 및 수정

.env 파일을 복사하여 데이터베이스 및 기타 설정을 변경합니다:

cp .env.example .env
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel11
DB_USERNAME=root
DB_PASSWORD=secret

4단계: 앱 키 생성

php artisan key:generate

5단계: 개발 서버 실행

php artisan serve

6단계: 브라우저에서 확인

http://127.0.0.1:8000에 접속하여 Laravel의 기본 페이지를 확인합니다.


3. 새로운 라우팅 설정하기

Laravel 11에서 새롭게 추가된 속성 기반 라우팅을 사용하여 간단한 API를 만들어보겠습니다:

3.1 컨트롤러 생성 및 설정

use Illuminate\Routing\Attributes\Get;
use Illuminate\Routing\Attributes\Post;

class PostController {
    #[Get('/posts')]
    public function index() {
        return Post::all();
    }

    #[Post('/posts')]
    public function store(Request $request) {
        return Post::create($request->all());
    }
}

routes/web.php에 다음 코드를 추가하여 컨트롤러를 등록합니다:

use App\Http\Controllers\PostController;

Route::controller(PostController::class)->group(function () {
    Route::get('/posts', 'index');
    Route::post('/posts', 'store');
});

4. 데이터베이스 설정 및 Eloquent ORM

Laravel의 Eloquent ORM은 데이터베이스와의 상호작용을 간단하고 직관적으로 만듭니다. 여기서는 데이터베이스 마이그레이션과 Eloquent 모델을 설정하는 방법을 살펴보겠습니다.

4.1 마이그레이션 생성

Post 테이블을 위한 마이그레이션 파일을 생성합니다:

php artisan make:migration create_posts_table

생성된 마이그레이션 파일에서 테이블 구조를 정의합니다:

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

class CreatePostsTable extends Migration {
    public function up() {
        Schema::create('posts', function (Blueprint $table) {
            $table->id();
            $table->string('title');
            $table->text('content');
            $table->timestamps();
        });
    }

    public function down() {
        Schema::dropIfExists('posts');
    }
}

4.2 마이그레이션 실행

php artisan migrate

4.3 Eloquent 모델 생성

php artisan make:model Post

Post 모델에서 필요한 속성을 설정합니다:

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class Post extends Model {
    use HasFactory;

    protected $fillable = ['title', 'content'];
}

5. Vue 3 통합

Laravel 11은 Vue 3와의 통합을 쉽게 만듭니다. 다음은 Vue 3를 Laravel 프로젝트에 설정하는 기본 단계입니다:

5.1 Vue 설치

npm install vue

5.2 Vite 설정

vite.config.js 파일을 수정하여 Vue 플러그인을 추가합니다:

import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue';
import laravel from 'laravel-vite-plugin';

export default defineConfig({
    plugins: [
        laravel({
            input: ['resources/css/app.css', 'resources/js/app.js'],
            refresh: true,
        }),
        vue(),
    ],
});

5.3 Vue 컴포넌트 작성

resources/js/components/ExampleComponent.vue 파일을 생성합니다:

<template>
    <div>
        <h1>Hello, Vue 3!</h1>
    </div>
</template>

<script>
export default {
    name: 'ExampleComponent',
};
</script>

resources/js/app.js 파일에서 Vue를 등록합니다:

import { createApp } from 'vue';
import ExampleComponent from './components/ExampleComponent.vue';

const app = createApp({});

app.component('example-component', ExampleComponent);
app.mount('#app');

5.4 Blade 파일에 Vue 컴포넌트 추가

resources/views/welcome.blade.php 파일에 Vue 컴포넌트를 삽입합니다:

<div id="app">
    <example-component></example-component>
</div>

@vite(['resources/js/app.js'])

6. 인증 시스템 설정

Laravel은 강력한 인증 시스템을 기본으로 제공합니다. 여기서는 Laravel Breeze 패키지를 사용하여 간단한 인증 시스템을 설정합니다.

6.1 Breeze 설치

composer require laravel/breeze --dev

6.2 설치 및 스캐폴딩

php artisan breeze:install

6.3 의존성 설치

npm install && npm run dev

6.4 마이그레이션 실행

php artisan migrate

이제 기본 로그인, 회원가입, 비밀번호 재설정 페이지가 생성됩니다.


7. 애플리케이션 배포

Laravel 애플리케이션 배포는 다음 단계로 진행됩니다:

7.1 서버 요구 사항

  • PHP 8.2 이상
  • Composer
  • 데이터베이스 (MySQL, PostgreSQL 등)

7.2 배포 도구 사용

Laravel Forge

  • Laravel Forge는 서버 관리를 자동화하고 간단하게 애플리케이션을 배포할 수 있게 해줍니다.
  • Laravel Forge에 가입하여 사용 가능합니다.

Envoyer

  • 무중단 배포를 위해 Laravel Envoyer를 사용할 수 있습니다.
  • Envoyer에서 프로젝트를 설정하고 배포를 자동화합니다.

7.3 수동 배포

1단계: 코드를 서버에 업로드

Git을 사용하여 코드를 원격 서버로 푸시합니다.

git push production main

2단계: 의존성 설치

서버에서 Composer를 사용하여 의존성을 설치합니다.

composer install --optimize-autoloader --no-dev

3단계: 환경 파일 설정

.env 파일을 서버 환경에 맞게 설정합니다.

4단계: 데이터베이스 마이그레이션 실행

php artisan migrate --force

5단계: 캐시 및 최적화

php artisan config:cache
php artisan route:cache
php artisan view:cache

이번 포스팅에서는 설치, 라우팅, 데이터베이스 설정, 인증 시스템, Vue 3 통합, 그리고 배포까지 살펴보았습니다.

0 0 votes
별점
guest
0 댓글
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x