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 통합, 그리고 배포까지 살펴보았습니다.