Laravel 기초
Laravel은 우아하고 표현력이 풍부한 문법을 가진 PHP 웹 프레임워크입니다. 웹 애플리케이션 개발을 위한 다양한 기능을 제공하여 개발자의 생산성을 높여줍니다.
개요
Laravel은 웹 개발에 필요한 인증, 라우팅, 세션, 캐싱 등 다양한 기능을 제공하는 풀 스택(Full-stack) 프레임워크입니다. MVC(Model-View-Controller) 아키텍처를 기반으로 하며, 개발자들이 보다 쉽게 웹 애플리케이션을 구축할 수 있도록 돕습니다. Composer를 사용하여 의존성 관리를 하며, 강력한 커뮤니티와 방대한 문서가 장점입니다.
Laravel은 PHP 기반이므로, Laravel을 사용하기 전에 PHP와 Composer에 대한 기본적인 이해가 필요합니다.
MVC 패턴
Laravel은 MVC(Model-View-Controller) 디자인 패턴을 따릅니다. 각 역할은 다음과 같습니다:
요소 | 설명 |
---|---|
Model |
애플리케이션의 데이터와 비즈니스 로직을 담당합니다. Eloquent ORM을 통해 데이터베이스와 상호작용합니다. |
View |
사용자에게 보여지는 화면(HTML)을 담당합니다. Blade 템플릿 엔진을 사용합니다. |
Controller |
사용자의 요청을 받아 모델과 뷰를 연결하는 중간자 역할을 합니다. |
Eloquent ORM
Eloquent ORM은 Laravel에 내장된 객체 관계 매퍼로, 데이터베이스 테이블을 클래스로, 테이블의 행을 해당 클래스의 인스턴스로 매핑합니다. SQL 쿼리를 직접 작성하지 않고도 객체 지향적인 방식으로 데이터베이스를 다룰 수 있습니다.
<?php // Post 모델 생성 (Post 테이블과 연결) use App\Models\Post; // 새로운 게시물 생성 $post = new Post; $post->title = '첫 번째 게시글'; $post->content = '안녕하세요!'; $post->save(); // 모든 게시물 조회 $posts = Post::all(); // 특정 id를 가진 게시물 조회 $post = Post::find(1); ?>
Blade 템플릿 엔진
Blade는 Laravel의 강력하고 간단한 템플릿 엔진입니다. HTML 코드에 @
기호를 사용하여 조건문, 반복문, 레이아웃 상속 등 다양한 기능을 구현할 수 있습니다. Blade는
순수 PHP 코드로 컴파일되므로 성능 저하가 거의 없습니다.
<h1>{{ $title }}</h1> @if($isLoggedIn) <p>안녕하세요, {{ $userName }}님!</p> @else <p>로그인이 필요합니다.</p> @endif @foreach($posts as $post) <h3>{{ $post->title }}</h3> @endforeach
사용 예제
간단한 라우팅(Routing)과 컨트롤러(Controller) 예제입니다.
<?php use Illuminate\Support\Facades\Route; use App\Http\Controllers\HomeController; Route::get('/', [HomeController::class, 'index']); ?>
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; class HomeController extends Controller { public function index() { return view('welcome'); } } ?>
주의사항 및 팁
- Laravel은 PHP의 최신 버전(PHP 8 이상)을 요구하며, Composer를 통해 설치 및 의존성을 관리해야 합니다.
artisan
이라는 강력한 명령줄 도구를 사용하여 컨트롤러, 모델, 마이그레이션 파일 등을 쉽게 생성할 수 있습니다.- 데이터베이스 마이그레이션 기능을 사용하면 데이터베이스 스키마를 버전 관리할 수 있어 협업에 유용합니다.
Laravel은 강력한 프레임워크인 만큼, 초기 프로젝트 설정과 개념 학습에 다소 시간이 걸릴 수 있습니다. 하지만 한번 익숙해지면 높은 생산성을 경험할 수 있습니다.