PHP

PHP 프레임워크: Laravel 시작하기

thebasics 2024. 9. 10. 10:00

목차
1. Laravel이란 무엇인가?
   - Laravel의 개념과 장점
   - 왜 Laravel을 선택해야 하는가?
2. Laravel 설치 및 설정
   - Composer를 사용한 설치
   - Laravel 설정 파일 구성
3. 기본 라우팅 및 컨트롤러 생성
   - 라우팅 설정
   - 컨트롤러 생성
4. 뷰 파일 생성 및 데이터 전달
   - 뷰 파일 생성
   - 컨트롤러에서 뷰로 데이터 전달
5. 코드 예제
6. 결론 및 추가 학습 자료


1. Laravel이란 무엇인가?

Laravel의 개념과 장점

Laravel은 PHP로 작성된 웹 애플리케이션 프레임워크로, 웹 애플리케이션 개발을 쉽고 빠르게 할 수 있도록 다양한 도구와 기능을 제공합니다. Laravel은 MVC(Model-View-Controller) 아키텍처 패턴을 따르며, 세션, 인증, 라우팅, 데이터베이스 ORM(Eloquent) 등을 포함한 강력한 기능을 제공합니다.

왜 Laravel을 선택해야 하는가?

- 간결한 코드: Laravel은 간결하고 표현력이 풍부한 구문을 제공하여 코드의 가독성을 높입니다.
- 광범위한 생태계: Laravel은 수많은 패키지와 도구가 잘 정리된 생태계를 가지고 있어, 다양한 기능을 손쉽게 통합할 수 있습니다.
- 커뮤니티 지원: Laravel은 활발한 커뮤니티와 광범위한 문서화 덕분에, 문제를 빠르게 해결할 수 있습니다.


2. Laravel 설치 및 설정

Composer를 사용한 설치

Laravel 설치는 Composer를 통해 쉽게 진행할 수 있습니다. 다음 명령어를 실행하여 Laravel 프로젝트를 생성할 수 있습니다:

composer create-project --prefer-dist laravel/laravel myproject

위 명령어는 'myproject'라는 이름의 새로운 Laravel 프로젝트를 생성합니다. 이 명령어를 실행하면, Laravel이 필요한 모든 패키지와 의존성을 설치합니다.

Laravel 설정 파일 구성

설치가 완료되면, 프로젝트의 루트 디렉터리에 '.env' 파일이 있습니다. 이 파일에서 애플리케이션의 환경 설정을 관리합니다. 예를 들어, 데이터베이스 설정은 다음과 같이 구성할 수 있습니다:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=mydatabase
DB_USERNAME=myuser
DB_PASSWORD=mypassword

위 설정을 통해 Laravel 애플리케이션이 MySQL 데이터베이스와 연결되도록 설정할 수 있습니다.


3. 기본 라우팅 및 컨트롤러 생성

라우팅 설정

Laravel에서 라우팅은 'routes/web.php' 파일에서 정의됩니다. 이 파일에서 URL 경로와 그에 대응하는 동작을 설정할 수 있습니다. 예를 들어, 다음과 같이 기본 라우트를 설정할 수 있습니다:

use Illuminate\Support\Facades\Route;

Route::get('/', function () {
    return view('welcome');
});

이 코드는 루트 경로('/')로 접근할 때 'welcome' 뷰를 반환합니다.

컨트롤러 생성

컨트롤러는 애플리케이션의 비즈니스 로직을 처리하는 역할을 합니다. Artisan CLI를 사용하여 컨트롤러를 쉽게 생성할 수 있습니다:

php artisan make:controller HomeController

이 명령어는 'app/Http/Controllers/HomeController.php' 파일을 생성합니다. 이 컨트롤러에서 메서드를 정의하고, 이를 라우팅과 연결할 수 있습니다.

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class HomeController extends Controller
{
    public function index()
    {
        return view('home');
    }
}

?>

이 예제에서 'index' 메서드는 'home' 뷰를 반환합니다.


4. 뷰 파일 생성 및 데이터 전달

뷰 파일 생성

Laravel의 뷰는 Blade 템플릿 엔진을 사용하여 작성됩니다. 뷰 파일은 'resources/views/' 디렉터리에 저장됩니다. 예를 들어, 'home.blade.php'라는 뷰 파일을 생성하려면, 다음과 같이 파일을 생성합니다:

<!-- resources/views/home.blade.php -->
<!DOCTYPE html>
<html>
<head>
    <title>Home</title>
</head>
<body>
    <h1>{{ $title }}</h1>
    <p>Welcome to the home page!</p>
</body>
</html>

이 파일에서 Blade 문법을 사용하여 PHP 코드를 삽입할 수 있습니다.

컨트롤러에서 뷰로 데이터 전달

컨트롤러에서 뷰로 데이터를 전달하려면, 'view' 함수의 두 번째 인수로 데이터를 전달할 수 있습니다:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class HomeController extends Controller
{
    public function index()
    {
        $data = [
            'title' => 'Home Page'
        ];

        return view('home', $data);
    }
}

?

이 예제에서는 'title' 변수를 'home' 뷰로 전달하여, 뷰 내에서 사용할 수 있게 합니다.


5. 코드 예제

다음은 Laravel을 사용하여 간단한 홈 페이지를 생성하고, 데이터를 전달하는 예제입니다.

1. 프로젝트 생성:

composer create-project --prefer-dist laravel/laravel myproject

2. 라우팅 설정 ('routes/web.php'):

use Illuminate\Support\Facades\Route;
use App\Http\Controllers\HomeController;

Route::get('/', [HomeController::class, 'index']);

3. 컨트롤러 생성 ('app/Http/Controllers/HomeController.php'):

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class HomeController extends Controller
{
    public function index()
    {
        $data = [
            'title' => 'Home Page'
        ];

        return view('home', $data);
    }
}

?>

4. 뷰 파일 생성 ('resources/views/home.blade.php'):

<!DOCTYPE html>
<html>
<head>
    <title>Home</title>
</head>
<body>
    <h1>{{ $title }}</h1>
    <p>Welcome to the home page!</p>
</body>
</html>

5. 서버 실행:

php artisan serve

이 명령어를 실행하면 Laravel의 내장 서버가 실행되어, 로컬에서 애플리케이션을 확인할 수 있습니다.

코드 분석:
- 'HomeController'에서 'index' 메서드는 'home' 뷰로 'title' 데이터를 전달하고, 뷰는 이 데이터를 사용하여 페이지를 렌더링합니다.
- 라우트는 '/' 경로로 접근할 때 'HomeController'의 'index' 메서드를 호출하도록 설정됩니다.


6. 결론 및 추가 학습 자료

이번 글에서는 Laravel의 기본적인 사용법에 대해 알아보았습니다. Laravel은 강력한 기능을 갖춘 PHP 프레임워크로, 웹 애플리케이션 개발을 쉽게 할 수 있도록 다양한 도구와 기능을 제공합니다. Laravel의 설치, 라우팅, 컨트롤러 생성, 뷰 파일 생성 및 데이터 전달까지의 기본 흐름을 이해하면, Laravel로 복잡한 웹 애플리케이션을 개발하는 데 큰 도움이 될 것입니다.

추가 학습 자료:
- [Laravel 공식 문서](https://laravel.com/docs) Laravel의 기능과 사용법을 자세히 다루는 공식 문서입니다.
- [Laracasts](https://laracasts.com/) Laravel 및 PHP에 관한 다양한 튜토리얼을 제공하는 학습 사이트입니다.
- [Laravel News](https://laravel-news.com/) Laravel 커뮤니티의 최신 뉴스와 팁을 제공하는 사이트입니다.


이제 Laravel을 사용하여 프로젝트를 시작하고, 더 복잡한 웹 애플리케이션을 구축할 수 있습니다. 지속적인 학습을 통해 Laravel의 모든 기능을 익히고 활용해보세요!

반응형