Laravel 설치

Jmnote (토론 | 기여)님의 2024년 6월 10일 (월) 23:24 판 (→‎개요)
Installation
설치

1 Laravel을 만나보세요

Laravel은 표현력이 풍부하고 우아한 구문을 갖춘 웹 애플리케이션 프레임워크입니다. 웹 프레임워크는 애플리케이션 작성을 위한 구조와 출발점을 제공하므로, 세부사항에 신경 쓰는 대신 놀라운 것을 만드는 데 집중할 수 있습니다.

Laravel은 철저한 의존성 주입, 표현력 있는 데이터베이스 추상화 계층, 큐와 예약작업, 단위/통합 테스트 등 강력한 기능을 제공하면서도 놀라운 개발자 경험을 제공하기 위해 노력합니다.

PHP 웹 프레임워크가 처음이든 다년간의 경험이 있든, Laravel은 여러분과 함께 성장할 수 있는 프레임워크입니다. 여러분이 웹 개발자로서 첫 발을 내딛도록 돕거나, 전문가로서 다음 단계로 도약할 수 있도록 지원하겠습니다. 여러분이 무엇을 만들지 기대됩니다.

Note

Laravel이 처음이신가요? Laravel Bootcamp에서 프레임워크 실습 투어를 통해 첫 번째 Laravel 애플리케이션을 구축하는 방법을 안내합니다.

1.1 왜 Laravel인가?

웹 애플리케이션을 구축할 때 사용할 수 있는 다양한 도구와 프레임워크가 있습니다. 하지만 현대적인 풀스택 웹 애플리케이션을 구축하는 데 Laravel이 최고의 선택이라고 믿습니다.

진보적인 프레임워크

우리는 Laravel을 "진보적인" 프레임워크라고 부릅니다. 이는 Laravel이 여러분과 함께 성장한다는 뜻입니다. 웹 개발에 처음 발을 들이는 경우, Laravel의 방대한 문서, 가이드, 동영상 튜토리얼 라이브러리가 여러분이 부담 없이 배울 수 있도록 도와줍니다.

경험 많은 개발자라면, Laravel은 의존성 주입, 유닛 테스트, , 실시간 이벤트 등을 위한 강력한 도구를 제공합니다. Laravel은 전문적인 웹 애플리케이션을 구축하기 위해 세밀하게 조정되었으며, 기업의 작업 부하를 처리할 준비가 되어 있습니다.

확장가능한 프레임워크

Laravel은 놀라울 정도로 확장가능합니다. PHP의 확장 친화적인 특성과 Redis와 같은 빠르고 분산된 캐시 시스템을 위한 Laravel의 빌트인 지원 덕분에, Laravel을 사용한 수평 확장은 매우 쉽습니다. 실제로, Laravel 애플리케이션은 월간 수억 건의 요청을 처리할 수 있도록 쉽게 확장됩니다.

극단적인 확장이 필요하신가요? Laravel Vapor와 같은 플랫폼을 사용하면 AWS의 최신 서버리스 기술로 거의 무한한 확장성을 가진 Laravel 애플리케이션을 실행할 수 있습니다.

커뮤니티 프레임워크

Laravel은 PHP 생태계에서 최고의 패키지를 결합하여 가장 강력하고 개발자 친화적인 프레임워크를 제공합니다. 또한, 전 세계 수천 명의 재능 있는 개발자들이 이 프레임워크에 기여했습니다. 어쩌면, 여러분도 Laravel 기여자가 될지 모릅니다.

2 Laravel 프로젝트 생성

Laravel 프로젝트를 처음 생성하기 전에 로컬 컴퓨터에 PHP와 Composer가 설치되어 있는지 확인하세요. macOS나 Windows에서 개발하는 경우 Laravel Herd를 통해 PHP와 Composer를 몇 분 만에 설치할 수 있습니다. 또한, Node와 NPM을 설치하는 것도 권장합니다.

PHP와 Composer를 설치한 후에는 Composer의 create-project 명령어를 사용하여 새로운 Laravel 프로젝트를 생성할 수 있습니다:

composer create-project laravel/laravel example-app

또는, Composer를 통해 Laravel 인스톨러를 전역으로 설치하여 새로운 Laravel 프로젝트를 생성할 수도 있습니다:

composer global require laravel/installer

laravel new example-app

프로젝트가 생성되면 Laravel Artisan의 serve 명령어를 사용하여 Laravel의 로컬 개발 서버를 시작하세요:

cd example-app

php artisan serve

Artisan 개발 서버를 시작한 후, 웹 브라우저에서 http://localhost:8000 을 통해 애플리케이션에 접속할 수 있습니다. 이제 Laravel 생태계 속에서 다음 단계로 나아갈 준비가 되었습니다. 물론, 데이터베이스를 설정하는 것도 고려해야 할 수 있습니다.

Laravel 애플리케이션을 개발할 때 빠른 시작을 원한다면, Laravel의 스타터 키트를 사용하는 것을 고려해보세요. Laravel의 스타터 키트는 새로운 Laravel 애플리케이션을 위한 백엔드 및 프론트엔드 인증 스캐폴딩을 제공합니다.

3 초기 설정

Laravel 프레임워크의 모든 설정 파일은 config 디렉토리에 저장되어 있습니다. 각 옵션에 대한 문서가 제공되므로 파일을 살펴보고 사용가능한 옵션을 익히는 것이 좋습니다.

Laravel은 기본적으로 추가 설정이 거의 필요하지 않습니다. 개발을 바로 시작할 수 있습니다! 그러나 config/app.php 파일과 그에 관한 문서를 검토해보는 것이 좋습니다. 이 파일에는 애플리케이션에 맞게 변경할 수 있는 timezone(시간대) 및 locale(언어 설정)과 같은 여러 옵션이 포함되어 있습니다.

3.1 환경 기반 설정

Laravel의 많은 설정 옵션 값은 애플리케이션이 로컬 머신에서 실행되는지 또는 프로덕션 웹 서버에서 실행되는지에 따라 달라질 수 있으므로, 중요한 설정 값 중 많은 부분이 애플리케이션 루트에 있는 .env 파일을 통해 정의됩니다.

각 개발자 / 서버는 서로 다른 환경 설정이 필요할 수 있으므로, .env 파일은 애플리케이션의 소스 제어에 커밋하지 않아야 합니다. 또한, 소스 제어 저장소에 침입자가 접근할 경우 민감한 자격증명이 노출되어 보안 위험을 초래할 수 있습니다.

.env 파일과 환경 기반 설정에 대한 자세한 내용은 전체 설정 문서를 참조하십시오.

3.2 데이터베이스 및 마이그레이션

이제 Laravel 애플리케이션을 생성했으니 데이터를 데이터베이스에 저장하고 싶을 것입니다. 기본적으로, 애플리케이션의 .env 설정 파일은 Laravel이 SQLite 데이터베이스와 상호작용하도록 지정합니다.

프로젝트를 생성하는 동안 Laravel은 database/database.sqlite 파일을 생성하고 애플리케이션의 데이터베이스 테이블을 만들기 위해 필요한 마이그레이션을 실행했습니다.

MySQL이나 PostgreSQL과 같은 다른 데이터베이스 드라이버를 사용하려면, 해당 데이터베이스를 사용하도록 .env 설정 파일을 업데이트할 수 있습니다. 예를 들어, MySQL을 사용하려면, .env 설정 파일의 DB_* 변수를 다음과 같이 업데이트하십시오:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=

SQLite가 아닌 다른 데이터베이스를 사용하려면, 데이터베이스를 생성하고 애플리케이션의 데이터베이스 마이그레이션을 실행해야 합니다:

php artisan migrate

macOS에서 개발 중이고 MySQL, PostgreSQL, Redis를 로컬에 설치해야 하는 경우, DBngin 사용을 고려해보세요.

3.3 디렉토리 설정

Laravel은 웹 서버에 구성된 "웹 디렉토리"의 루트에서만 제공되어야 합니다. "웹 디렉토리"의 하위 디렉토리에서 Laravel 애플리케이션을 제공하려고 해서는 안 됩니다. 그렇게 하면 애플리케이션 내의 민감한 파일이 노출될 수 있습니다.

4 Sail을 사용한 Docker 설치

Laravel는 여러분이 어떤 운영체제를 선호하든 쉽게 시작할 수 있도록 다양한 옵션을 제공합니다. 이러한 옵션들을 나중에 알아볼 수도 있지만, Laravel은 Docker를 사용하여 Laravel 프로젝트를 실행하는 빌트인 솔루션인 Sail을 제공합니다.

Docker는 애플리케이션과 서비스를 작고 가벼운 "컨테이너"에서 실행하는 도구로, 이는 로컬 머신에 설치된 소프트웨어나 설정에 영향을 주지 않습니다. 즉, 웹서버나 데이터베이스와 같은 복잡한 개발도구를 로컬 컴퓨터에 구성하거나 설정하는 것에 대해 걱정할 필요가 없습니다. 시작하려면 Docker Desktop만 설치하면 됩니다.

Laravel Sail은 Laravel의 기본 Docker 설정과 상호작용하는 가벼운 명령줄 인터페이스입니다. Sail은 Docker 경험이 없어도 PHP, MySQL, Redis를 사용하여 Laravel 애플리케이션을 구축하기 위한 훌륭한 출발점을 제공합니다.

이미 Docker 전문가인가요? 걱정 마세요! Sail의 모든 것은 Laravel에 포함된 docker-compose.yml 파일을 사용하여 커스터마이징할 수 있습니다.

4.1 맥OS에서 Sail

맥에서 개발 중이고 Docker Desktop이 이미 설치되어 있다면, 간단한 터미널 명령어로 새 Laravel 프로젝트를 생성할 수 있습니다. 예를 들어, "example-app"이라는 디렉토리에 새 Laravel 애플리케이션을 생성하려면 터미널에서 다음 명령어를 실행하면 됩니다:

curl -s "https://laravel.build/example-app" | bash

물론, 이 URL에서 "example-app"을 원하는 다른 이름으로 변경할 수 있습니다. 단, 애플리케이션 이름에는 영숫자, 대시(-), 언더스코어(_)만 사용해야 합니다. Laravel 애플리케이션 디렉토리는 이 명령어를 실행한 디렉토리 내에 생성됩니다.

Sail 설치는 Sail의 애플리케이션 컨테이너가 로컬 머신에서 빌드되는 동안 몇 분 정도 소요될 수 있습니다.

프로젝트가 생성된 후, 애플리케이션 디렉토리로 이동하여 Laravel Sail을 시작할 수 있습니다. Laravel Sail은 Laravel의 기본 Docker 설정과 상호작용하기 위한 간단한 명령줄 인터페이스를 제공합니다:

cd example-app

./vendor/bin/sail up

애플리케이션의 Docker 컨테이너가 시작된 후, 애플리케이션의 데이터베이스 마이그레이션을 실행해야 합니다:

./vendor/bin/sail artisan migrate

마지막으로, 웹브라우저에서 http://localhost 에 접속하여 애플리케이션에 접근할 수 있습니다.

Laravel Sail에 대해 더 알아보려면, Sail 전체 문서를 참조하세요.

4.2 윈도우에서 Sail

Windows 머신에서 새로운 Laravel 애플리케이션을 만들기 전에 Docker Desktop을 설치해야 합니다. 그런 다음, Windows Subsystem for Linux 2 (WSL2)를 설치하고 활성화해야 합니다. WSL을 통해 Windows 10에서 리눅스 바이너리 실행 파일을 네이티브로 실행할 수 있습니다. WSL2 설치 및 활성화 방법에 대한 정보는 Microsoft의 개발자 환경 문서에서 확인할 수 있습니다.

WSL2를 설치하고 활성화한 후, Docker Desktop이 WSL2 백엔드를 사용하도록 설정되었는지 확인해야 합니다.

이제 첫 번째 Laravel 프로젝트를 생성할 준비가 되었습니다. Windows Terminal을 실행하고 WSL2 리눅스 운영체제에 대한 새로운 터미널 세션을 시작하세요. 그런 다음, 간단한 터미널 명령어로 새로운 Laravel 프로젝트를 생성할 수 있습니다. 예를 들어, "example-app"이라는 디렉토리에 새 Laravel 애플리케이션을 생성하려면 터미널에서 다음 명령어를 실행하면 됩니다:

curl -s https://laravel.build/example-app | bash

물론, 이 URL에서 "example-app"을 원하는 다른 이름으로 변경할 수 있습니다. 단, 애플리케이션 이름에는 영숫자, 대시(-), 언더스코어(_)만 사용해야 합니다. Laravel 애플리케이션 디렉토리는 이 명령어를 실행한 디렉토리 내에 생성됩니다.

Sail 설치는 Sail의 애플리케이션 컨테이너가 로컬 머신에서 빌드되는 동안 몇 분 정도 소요될 수 있습니다.

프로젝트가 생성된 후, 애플리케이션 디렉토리로 이동하여 Laravel Sail을 시작할 수 있습니다. Laravel Sail은 Laravel의 기본 Docker 설정과 상호작용하기 위한 간단한 명령줄 인터페이스를 제공합니다:

cd example-app
 
./vendor/bin/sail up

애플리케이션의 Docker 컨테이너가 시작된 후, 애플리케이션의 데이터베이스 마이그레이션을 실행해야 합니다:

./vendor/bin/sail artisan migrate

마지막으로, 웹브라우저에서 http://localhost 에 접속하여 애플리케이션에 접근할 수 있습니다.

Laravel Sail에 대해 더 알아보려면, Sail 전체 문서를 참조하세요.

WSL2에서 개발하기

물론, WSL2 설치 내에서 생성된 Laravel 애플리케이션 파일을 수정할 수 있어야 합니다. 이를 위해 Microsoft의 Visual Studio Code 에디터와 원격 개발(Remote Development)을 위한 확장기능을 사용하는 것을 권장합니다.

이 도구들이 설치되면, Windows Terminal을 사용하여 애플리케이션 루트 디렉토리에서 code . 명령어를 실행하여 Laravel 프로젝트를 열 수 있습니다.

4.3 리눅스에서 Sail

리눅스에서 개발 중이고 Docker Compose가 이미 설치되어 있다면, 간단한 터미널 명령어를 사용하여 새로운 Laravel 프로젝트를 만들 수 있습니다.

먼저, Docker Desktop for Linux를 사용 중인 경우 다음 명령어를 실행해야 합니다. Docker Desktop for Linux를 사용하지 않는다면 이 단계를 건너뛸 수 있습니다:

docker context use default

그런 다음, "example-app"이라는 디렉토리에 새 Laravel 애플리케이션을 만들려면 터미널에서 다음 명령어를 실행하십시오:

curl -s https://laravel.build/example-app | bash

물론, 이 URL에서 "example-app"을 원하는 다른 이름으로 변경할 수 있습니다. 애플리케이션 이름은 알파벳 문자, 숫자, 대시(-), 밑줄(_)만 포함해야 합니다. Laravel 애플리케이션 디렉토리는 이 명령어를 실행한 디렉토리 내에 생성됩니다.

Sail 설치는 Sail의 애플리케이션 컨테이너가 로컬 머신에서 빌드되는 동안 몇 분 정도 걸릴 수 있습니다.

프로젝트가 생성된 후, 애플리케이션 디렉토리로 이동하여 Laravel Sail을 시작할 수 있습니다. Laravel Sail은 Laravel의 기본 Docker 구성과 상호작용하기 위한 간단한 명령줄 인터페이스를 제공합니다:

cd example-app

./vendor/bin/sail up

애플리케이션의 Docker 컨테이너가 시작된 후, 애플리케이션의 데이터베이스 마이그레이션을 실행해야 합니다:

./vendor/bin/sail artisan migrate

마지막으로, 웹브라우저에서 http://localhost 에 접속하여 애플리케이션에 접근할 수 있습니다.

Laravel Sail에 대해 더 알아보려면, Sail 전체 문서를 참조하세요.

4.4 Sail 서비스 선택하기

Sail을 통해 새로운 Laravel 애플리케이션을 생성할 때, with 쿼리 문자열 변수를 사용하여 새 애플리케이션의 docker-compose.yml 파일에 설정할 서비스를 선택할 수 있습니다. 사용가능한 서비스로는 mysql, pgsql, mariadb, redis, memcached, meilisearch, typesense, minio, selenium, mailpit 등이 있습니다:

curl -s "https://laravel.build/example-app?with=mysql,redis" | bash

어떤 서비스를 설정할지 지정하지 않으면, 기본적으로 mysql, redis, meilisearch, mailpit, selenium이 설정됩니다.

또한 devcontainer 파라미터를 URL에 추가하여 Sail이 기본 Devcontainer를 설치하도록 지시할 수 있습니다:

curl -s "https://laravel.build/example-app?with=mysql,redis&devcontainer" | bash

5 IDE 지원

Laravel 애플리케이션을 개발할 때는 원하는 코드 편집기를 자유롭게 사용할 수 있지만, PhpStorm은 Laravel 및 그 생태계에 대한 광범위한 지원을 제공하며, Laravel Pint도 포함됩니다.

또한, 커뮤니티에서 유지관리하는 Laravel Idea PhpStorm 플러그인은 코드 생성, Eloquent 구문 완성, 유효성 검사 규칙 완성 등 다양한 유용한 IDE 확장을 제공합니다.

6 다음 단계

이제 Laravel 프로젝트를 생성했으니 다음에 무엇을 배워야 할지 궁금하실 것입니다. 먼저, 다음 문서를 읽고 Laravel이 어떻게 작동하는지 익히기를 강력 추천합니다:

Laravel을 어떻게 사용하고 싶은지에 따라 다음 학습 단계가 달라질 수 있습니다. Laravel을 사용하는 다양한 방법이 있으며, 아래에서 프레임워크의 두 가지 주요 사용사례를 알아 보겠습니다.

Laravel이 처음이신가요? Laravel 부트캠프를 확인해 보세요. 처음 Laravel 애플리케이션을 구축하는 과정을 안내하며 프레임워크를 체험할 수 있는 실습 가이드를 제공합니다.

6.1 Laravel을 풀스택 프레임워크로

Laravel은 풀스택 프레임워크로 사용될 수 있습니다. "풀스택" 프레임워크란, Laravel을 사용하여 애플리케이션의 요청을 라우팅하고,Blade 템플릿이나 Inertia와 같은 싱글 페이지 애플리케이션 하이브리드 기술을 통해 프론트엔드를 렌더링하는 것을 의미합니다. 이것이 Laravel 프레임워크를 사용하는 가장 일반적인 방법이며, 저희 생각에는 가장 생산적인 방법입니다. https://laravel.com/docs/11.x/frontend 이 방식으로 Laravel을 사용하려면 프론트엔드 개발, 라우팅, , Eloquent ORM에 대한 문서를 확인하는 것이 좋습니다. 또한, LivewireInertia와 같은 커뮤니티 패키지에 대해 배우는 것도 좋습니다. 이 패키지들은 Laravel을 풀스택 프레임워크로 사용할 때, 싱글 페이지 자바스크립트 애플리케이션이 제공하는 많은 UI 이점을 누릴 수 있게 해줍니다.

Laravel을 풀스택 프레임워크로 사용하는 경우, Vite를 사용하여 애플리케이션의 CSS 및 자바스크립트를 컴파일하는 방법도 꼭 배우시길 권장합니다.

애플리케이션을 빠르게 구축하고 싶다면, 공식 애플리케이션 스타터 키트 중 하나를 확인해 보세요.

6.2 Laravel을 API 백엔드로

Laravel은 JavaScript 싱글 페이지 애플리케이션이나 모바일 애플리케이션의 API 백엔드로도 사용될 수 있습니다. 예를 들어, Laravel을 API 백엔드로 사용하여 Next.js 애플리케이션을 구현할 수 있습니다. 이 경우 Laravel을 사용하여 애플리케이션의 인증, 데이터 저장/조회를 제공하는 동시에, 큐, 이메일, 알림 등 Laravel의 강력한 서비스를 활용할 수 있습니다.

이와 같이 Laravel을 사용할 계획이라면, 라우팅, Laravel Sanctum, Eloquent ORM에 대한 문서를 참조하는 것이 좋습니다.

Laravel 백엔드와 Next.js 프론트엔드의 스캐폴딩을 빠르게 시작하고 싶으신가요? Laravel Breeze는 API 스택Next.js 프론트엔드 구현을 제공하여 몇 분 안에 시작할 수 있습니다.

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}