Search
Close this search box.

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

hind six video justpornvideo.mobi sunny leone sex vedios www.xnxx porn videos eporner.name english sex poto hindi hd sexy video com sikwap.mobi my malishka سكس ليبا porno-galleras.com سكس نااااار x vedeos pornozavr.net indian xxx video سكسمنقبات porno-izlerim.org سكس مصري حوامل mon confiado teleseryeheaven.com probinsyano march 28 2017 aya shameimaru hentai mobhentai.com henntai manga rape india xxx kinkygonzo.mobi kowalasky sex باص يابانى aniarabic.com كلام سكس جامد مرام الشرموطة yousexeporno.com مص البظر artikulo 247 may 9 full episode teleseryepinoytv.com olivia manila 鮎川るい javvideos.net abp-850 bangbaros com tubevector.mobi www.jkgad tamil sexy boobs momsporn.mobi south indian porn movie