Laravel 시작 및 프로젝트 생성

Laravel을 사용할 수 있도록 준비를 하고, 프로젝트를 만들고 실행에 대해서 설명한다.

Laravel 준비

Laravel은 PHP Web 응용 프로그램 프레임워크이다. Model-View-Controller에 의해 응용 프로그램을 구성하는 이른바 ‘MVC 아키텍처 “에 기초하여 만들어진 것으로, 예를 들어 CakePHP 등과 같은 역할을 한다.

Laravel은 다음 사이트에서 공개되어 있다.

https://laravel.com/

한국어 싸이트는 아래와 같다.

https://laravel.kr/

여기에서 Laravel의 소프트웨어를 다운로드하고 설치하는 방식은 하지 않는다. Laravel은 패키지 관리 도구를 사용하여 설치한다. 여기에서는 PHP 패키지 관리 도구 “Composer"를 이용하기로 한다.

Composer 준비

Composer는 다음의 주소에서 공개되어 있다.

https://getcomposer.org/

여기에서 Comoser 설치 프로그램을 다운로드하여 설치한다. 프로젝트의 작성 등은 모두 Composer를 이용하여 실시한다. 따라서 Laravel 자체를 설치하는 작업은 특별히 필요 없다.

이 Composer는 명령 프롬프트에서 명령으로 실행한다. 명령 프롬프트를 기동하고 “composer"고 실행한다. 그러면 Composer 명령 목록이 나타나는 것이다. 이 목록이 나오면 Composer를 사용할 수 있게 된 것이다.

만약 “composer는 내부 또는 외부 명령, 실행할 수 있는 프로그램 또는 배치 파일이 인식되지 않다"라는 메시지가 나타나면 Composer 경로가 들어가 있지 않는 것이다. Composer는 다음 중 하나에 저장되어 있다.

C:\ProgramFies(x86)\ComposerSetup\bin;
C:\ProgramData\ComposerSetup\bin;

이중 하나에 composer.bat가 있을 것이므로, 파일이 있는 쪽의 경로를 path 변수에 추가하도록 한다.

Laravel 프로젝트 생성

Laravel 예제를 만들어 보자. Laravel은 “프로젝트"를 작성하고 개발한다.

프로젝트라는 것은 만드는 응용 프로그램에 필요한 파일과 설정 등을 모두 한 묶음으로 모은 것으로, Laravel의 개발은 기본적으로 프로젝트를 만들고, 거기에 필요한 파일을 추가하거나 편집하고 가는 방식으로 한다.

이 프로젝트 생성은 명령 프롬프트를 사용하여 composer 명령을 실행한다.

Laravel 프로젝트 만들기

composer create-project laravel/laravel 프로젝트명 --prefer-dist

composer create-project laravel/laravel는 조금 긴데, 이는 composer으로 Laravel 프로젝트를 만드는 명령이다. 이 명령 이후에 프로젝트명을 넣는다. 그러고 --prefer-dist라는 것은 패키지의 다운로드 하는 위치에 관한 것으로, --prefer-source--prefer-dist 중 하나를 지정한다.

그럼, “myapp"라는 프로젝트를 만들어 보자. 명령 프롬프트를 열고, 프로젝트를 저장할 위치로 cd로 이동하고, 다음과 같이 실행한다.

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

이것으로 현재 디렉터리에 “myapp"이라는 폴더가 생성되고, 그 안에 필요한 파일들이 저장된다.

Laravel 설치에 대해

Laravel 이용은 Composer를 사용하여 수행할 수 있지만, 좀 더 쉽게 사용할 수 있도록 하고 싶다면 Laravel 인스톨러을 이용하면 된다. 이는 명령 프롬프트에서 다음과 같이 실행한다.

composer global require "laravel/installer=~1.1"

이제 Laravel 프로그램이 포함된다. 그러고 Laravel 설치 프로그램의 위치를 path 변수에 추가한다.

C:\Users\사용자명\AppData\Roaming\Composer\vendor\bin;

“사용자명"은 각각의 맞는 이름으로 대체한다. 이것으로 Laravel 설치 프로그램을 사용할 수 있게 된다. 이것을 사용하면 다음과 같이 쉽게 프로젝트를 만들 수 있다.

laravel new 프로젝트명

명령 프롬프트에서 이렇게 실행하면 프로젝트를 만들 수 있다. myapp라면 laravel new myapp라고 입력만 하면 된다.

Composer를 사용하여도, Laravel 인스톨러에서 생성되어도 프로젝트에는 차이가 없다. 어느 방법이라도 선호하는 방법으로 하면 된다.

Laravel 프로젝트 실행

생성된 프로젝트를 동작시켜 보자.

생성된 Laravel 프로젝트에 대한 작업은 “artisan"라는 프로그램을 사용한다. 우선 cd 명령으로 프로젝트로 이동한다.

$ cd myapp

그리고 내장 서버를 시작한다. Laravel은 내장의 서버 프로그램을 사용하여 로컬 환경에서 프로젝트를 Web 응용 프로그램으로 시작할 수 있다.

$ php artisan serve

artisan는 PHP 프로그램이다. php artisan라는 명령 뒤에 옵션으로 실행하는 내용을 지정한다. “serve"를 지정하면 내장 서버를 시작한다. 실행이 되면, Web 브라우저에서 다음 주소를 접근해 본다.

http://localhost:8000/

화면의 중앙에 “Laravel 5"라고 표시된 페이지가 나타난다. 이것이 만든 프로젝트의 실행 화면이다. 프로젝트에는 기본적으로 이러한 페이지가 샘플로 준비되어 있다.

프로그램을 종료하려면, 실행중인 명령 프롬프트를 선택하고 Ctrl + C 키를 눌러 작업을 중단하면 된다. 그러면, 서버 프로그램도 실행을 중단하고 입력 대기 상태로 돌아간다.

Laravel 프로젝트 구성

만든 프로젝트 폴더를 열어 보면 살펴 보자. 많은 폴더가 있을 것이다. 여기서 대략 적은 설명을 하겠다

  • app 폴더 : 어플리케이션의 본체 부분이다. 응용 프로그램 개발을 할 때 여기에 PHP 프로그램을 배치하고 있다.

  • bootstrap 폴더 : 어플리케이션의 부트스트랩 프로그램이다. 기동을 하고 각종 처리가 준비되어 있다.

  • config 폴더 : 어플리케이션의 각종 설정 정보 파일이 있는 폴더이다.

  • database 폴더 : 데이터베이스 관련 파일을 정리된 폴더이다.

  • public 폴더 : 공개 폴더이다. MVC 아키텍처를 사용하지 않는 일반 HTML 파일 등은 여기에 배치한다.

  • resources 폴더 : 어플리케이션에서 사용하는 리소스 파일을 두는 폴더이다. MVC의 뷰(화면)의 템플릿 파일 등은 여기에 놓는다.

  • storage 폴더 : 데이터 저장을 위한 폴더이다. 세션 및 캐시 등의 저장 파일이 작성된다.

  • tests 폴더 : 단위 테스트 관련 파일의 폴더이다.

  • vendor 폴더 : 공급 업체가 만드는 프로그램등이 모와둔 폴더이다.

이 밖에 파일들도 여러가지 저장되어 있지만, 우리가 작업해야 하는 것은 특별히 없으므로 생략한다. 많이 있지만, 중요한 것은 app, config, public, resources 정도 일것이다.

app는 실제 프로그래밍을 할 때마다 사용한다. config는 예를 들어 사용하는 데이터베이스를 설정할 때 사용한다. public은 보통의 HTML 파일 등을 설치하는데 사용하는 것이다. resources는 화면 표시를 위한 템플릿을 설치하는데 사용한다.

이것 외에는 즉시 사용하지 않으므로 일단은 기억해 두지 않아도 된다. 우선, 이 4 개의 폴더의 역할 정도는 대충 기억한다.

app 폴더

프로젝트에 포함되어 있는 폴더 중에서 가장 중요한 것이 app 폴더 것이다. 이 폴더는 Laravel 응용 프로그램의 주요 부분을 배치하는 곳이다.

이 app 폴더 안에는 여러 폴더가 포함되어 있다. 정리하면 다음과 같다.

  • Console 폴더 : 콘솔 프로그램(명령 프로그램)을 모와둔 폴더이다.

  • Events 폴더 : 이벤트의 프로그램이 모와둔 폴더이다.

  • Exceptions 폴더 : 예외 처리의 핸들링에 관한 프로그램을 모와둔 폴더이다.

  • Http 폴더 : HTTP 액세스할 때의 처리에 관한 것을 모와둔 폴더이다. 응용 프로그램에서 만드는 기본적인 프로그램은 여기에 포함된다.

  • Jobs 폴더 : 큐에 추가하고 실행되는 프로그램(작업)을 모와둔 폴더이다.

  • Listeners 폴더 : 이벤트 리스너 프로그램을 모와둔 폴더이다.

  • Policies 폴더 : “정책"이라는 인증 처리 프로그램을 모와둔 폴더이다.

  • Providers 폴더 - 서비스 제공자라는 프로그램을 모와둔 폴더이다.

이 중에 잘 모르는 것도 많이 있겠지만, 당분간은 사용하지 않는 것이 많기에 모두 기억할 필요는 없다. 우선 여기서 꼭 기억해야 할 것은 “Http"폴더이다. 실제로 프로그래밍을 시작하면 알겠지만 Laravel 프로그램은 먼저 이 Http 폴더에 “컨트롤러"라는 프로그램을 설치부터 시작한다. 그러므로, 이 “Http"폴더라는 것만은 기억해 두도록 한다.

Http 폴더

가장 중요한 Http 폴더 안에는 더욱 여러 폴더와 파일이 있다. 이도 대충 정리하면 다음과 같다.

  • Controllers 폴더 : 컨트롤러라는 프로그램을 모와두는 폴더이다.

  • Middleware 폴더 : 미들웨어는 소위 필터와 같은 역할을 하는 프로그램을 모와두는 폴더이다.

  • Requests 폴더 : 요청에 대한 프로그램을 모와두는 폴더이다.

  • Kernel.php : HTTP 커널이라는 Http 액세스 미들웨어가 되는 프로그램을 모와두는 폴더이다.

  • routes.php : 액세스 한 주소에 대해 처리를 할당 라우팅 프로그램을 모와두는 폴더이다.

우선, Controllers 폴더와 routes.php은 실제 프로그래밍에 들어가면 바로 사용해야 하기에, 이 2가지 내용은 기억해 두도록 하자.

이것으로 프로젝트의 대략적인 구성에 대해서 살펴 봤다. 다음에는 실제 프로그래밍을 시작해 보도록 하겠다.




최종 수정 : 2018-01-10