[PHP] Laravel-01

Dev_Honey·2022년 10월 10일
0

Laravel

목록 보기
1/5
post-thumbnail

Laravel Framework

1. 라라벨 프레임워크란?

먼저, 왜 프레임워크를 사용하는 것인가??
누군가가 많은 고민을하고 유지 보수를 하는 코드를 가진 패키지를 활용하여 개발을 진행하게 되면, 잘 구조화된 기능을 사용할 수 있다는 특장점이 있기 때문이다.
또한, 프레임워크 개발자가 이미 프레임워크를 사용하는데 있어서 기능들끼리 어떻게 결합을 해야할지 충분히 고민을하고 만들어 놓았기 때문에 복잡한 로직을 고민하지않아도 잘 작동하는 웹 에플리케이션을 만들 수 있기 때문이다.

라라벨 프레임워크을 우리는 왜 사용해야 할까??

  • 라라벨은 배우기 쉽고, 작성하기가 간단하며, 문법 구조가 쉽고 코드 가독성이 좋다.
  • 라라벨은 개발자 중심의 프레임워크이기때문에 개발자가 이 프레임워크로 개발을 진행하는동안 즐거움을 느낄 수 있다.
  • 빠르게 애플리케이션 개발을 가능하게 해준다. 즉, 데이터베이스 작업, 사용자 인증, 큐 기능, 이메일, 캐싱까지 필요한 일반적인 작업을 모두 쉽게 구현 할 수 있다.
  • 애플리케이션의 개발에만 국한되지않고, 운영하기 위한 지원 도구도 제공한다.
  • CoC(Convention over Configuration) 디자인 패러다임을 따른다. 즉, 라라벨을 기반으로 한 프로젝트는 다른 PHP 프레임워크보다 구축하는 시간이 적다.
    • 여기서 말하는 CoC 디자인이란?
    • '설정 대신 관례'라는 뜻의 소프트웨어 설계 패러다임이다. 어떤 기능을 사용하기 위해서 세세하게 설정하기보다는 관례에 따른 방식으로 코드를 작성하는 것을 의미.이는 적은 코드로 원하는 기능을 쉽게 구현할 수 있도록 해준다.
  • 라라벨은 단순함이 강점이다. 필요하다면 CQRS(command query responsibility segregation)패턴 및 복잡한 아키텍처 패턴을 그대로 사용가능하다.
  • 모던 PHP는 '자바스러운'특성을 많이 수용하였으나, 라라벨은 유연하고, 역동적이며, 간단한 코드만으로 언어의 기능을 작동하게 한다.

라라벨 프레임워크 version 7
2020년 3월 릴리즈된 라라벨 버젼 7의 특징은 SPA(Single Page Application)을 위한 보다 가벼운 인증 시스템, 라우팅 캐싱 속도 향상, 블레이드 컴포넌트 태그, CORS 기능 향상이 포함
LTS는 아니다.


2. Laravel 의 설치 및 환경 구성

들어가기전에 코드에서 자주 보이는
:: , @ , &가 무엇인지 간단하게 짚고 넘어가보자

  • 먼저 ::의 의미는
    class 속 const, static 변수에 접근할 수 있는 연산자
    $변수명:: 이나 $class명:: 의 형태로 사용할 수 있다.
    ex)
<?php 
class Cafe {
        static $cafename = "TwosomePlace";
        static $location = "서울특별시 금천구 시흥대로";
    }
$classname = 'Cafe';
    echo $classname::$cafename . "<br>";
    echo $classname::$location . "<br>";
?>

  • &는 C의 포인터 같은 것. 바로가기 같은 것
<?php
    $a = 1;
    $b = &$a;
    $b = $b + 1;
    echo "a값: " . $a;
    echo "b값: " . $b;
?>
  • @(Error control opertator)
<?php
    @include("test.php"); 
?>
//만약, test.php가 없으면 error가 떠야하는데, @를 앞에 붙이면 에러를 띄우지 않는다.

라라벨 버전 7.x를 설치할 것인데, php 버젼이 7.2.5 이상이 필요하다.
라라벨을 설치하고 개발하는데 있어서 꼭 필요한 것이 Composer 이다.
Composer은 Global로 설치를 진행해야한다.
Composer가 뭔지 모르시는 분들도 있는데, Node.js의 NPM과 같은 역할을 하는 패키지 매니저라고 보면된다.
즉, 테스팅, 로컬 스크립트 로딩, 추가 스크립트 설치 기능도 있다.
라라벨을 설치하고 업데이트하거나, 외부 의존 패키지들을 설치하는 데 composer가 필요하다.

2-1 로컬 개발 환경

MAMP, WAMP, XAMPP가 이미 설치되어 있다면, 라라벨을 실행하는 데 전혀 문제가 없다. 라라벨을 실행하기 위한 PHP 버전과 확장 기능이 준비됐다면 PHP 내장 웹 서버 기능을 실행해 라라벨을 바로 구동할 수도 있다.
나도 MAMP를 PHP를 공부한다고 설치를 하였으나, 교재에 있는 발렛 또는 홈스테드라는 로컬 개발 환경 구성 도구를 이용하여 사용해 볼 것이다.

2-1-1. 라라벨 발렛

  • 발렛?
    PHP 내장 웹 서버를 사용할 때 가장 간단한 옵션은 로컬호스트 도메인으로 프로젝트 웹사이트를 띄우는 것이다.
    라라벨 프로젝트 루트 디렉터리에서
    php -S localhost:8000 -t public 을 입력 후 실행하면 http://localhost:8000으로 접속하는 웹사이트를 구동한다.
    만약, 애플리케이션이 제대로 설치되어 있다면, php artisan serve를 통해서 사이트를 띄울 수 있다.
    만약, 별도로 개발 도메인을 지정하려면, 직접 시스템의 호스트 파일을 수정하거나 dnsmasq(https://en.wikipedia.org/wiki/Dnsmasq)와 같은 툴을 사용 해야 한다. 발렛을 사용하면 이러한 작업을 좀 더 간단하게 처리 할 수 있다.
    특히 맥OS사용자는 발렛을 사용하면 애플리케이션 디렉터리를 도메인에 일일이 연결하지 않아도 된다.
    즉, 발렛은 dnsmasq와 여타 PHP 스크립트를 설치해서 laravel new myapp && open myapp.test가 가능하게 즉, 라라벨 설치 후, 곧바로 브라우저에서 디렉터리.test로 접속해서 바로 화면을 확인하게 해준다.

설치
먼저, homebrew가 없으면 homebrew를 설치해줘야한다.
설치하는 방법은 구글링을 통해서 쉽게 설치할 수 있다.
1. 터미널을 열어서
brew update 를 입력한다.

arch -arm64 brew install php를 입력한다. 나는 mac m1 air 기준이다.

진행중~~~
늘 느끼는 것이지만, 코딩하고 개발하는 것도 재밌지만 프레임워크를 깔거나 환경 구성을하고 환경변수를 설정하고 이런 설정하는 것도 재미있다!! SO.. FUNNY!!

나는 laravel_lab이라는 디렉터리를 미리 documents 하위에 만들어 두었다.

설치가 되고나니, 나의 php 버전 8.1이 깔린 것을 볼 수 있다.

mysql, php를 restart해주었다.
다음 단계로는, Composer을 설치할 것이다.
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === '55ce33d7678c5a611085589f1f3ddf8b3c52d662cd01d4ba75c0ee0459970c2200a51f492d557530c71c15d8dba01eae') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" php composer-setup.php php -r "unlink('composer-setup.php');"
이거를 고대로 복사해서 터미널에 입력을한다.
그리고 전역으로 설정해줘야하는데,
sudo mv composer.phar /usr/local/bin/composer
comoser.phar를 usr/local/bin/composer에 옮겨줘서 composer 명령어가 되도록 해야한다.

그리고 composer -v를 입력하면 composer의 버젼을 확인할 수 있고, composer을 입력하면 명령어를 확인 할 수 있다.
그리고 `valet install을 원하는 폴더에 해주면 되는데, 환경설정을 해줘야한다.

환경변수를 넣어주고
source ~/.zshrc를 입력해 환경변수를 불러오면 valet 명령어가 사용될 것이다.
그러면 아까 만든 laravel_lab으로 가서 valet install 하여 설치하면 된다.

하지만, 이러한 nginx가 설치안된다고 오류가 뜨니,,,
arch -arm64 brew install nginx를 입력해서 설치하라고 오류에 친절하게 나와있으니 따라하자 !!

설치하고 나서 다시 valet install을 해당 폴더에서 입력을 하게되면 이렇게 작동하는 것을 볼 수 있다.

왜이래..아마추어 같이.. 요놈도 같이 설치해주자


valet park로 현재 디렉토리도 added해주고, 현재 디렉토리를 ping으로 통신이 되는지 확인해보자 !
ping laravel_lab.test
http://<directory-name>.test를 url에 입력하여 바로 확인할 수 있다.

라라벨 인스톨러를 사용해서도 프로젝트가 가능!!
composer global require "laravel/installer"을 입력
원하는 폴더에 가서
laravel new projectName을 입력
여기서 projectName은 원하는 프로젝트명을 입력해주면된다.


이렇게 똑같이 라라벨 프레임워크 프로젝트를 시작할 수 있다.

2-1-2. 라라벨 홈스테드

라라벨 홈스테드는 개발 환경을 구성하기 위해서 가상머신을 사용하여 환경을 설정하는 도구다. Virtual Box, VM웨어 같은 가상화 소프트웨어의 머신 관리 도구인 베이그런트 위에서 작동한다.
따라서, 홈스테드를 사용하려면 베이그런트를 먼저 설치를한다.
홈스테드는 라라벨 개발 환경에 꼭 맞춘 최적의 가상 머신 이미지를 미리 준비해 제공한다.
이 가상머신은 실제로 라라벨 사이트가 운영되는 가장 공통적이고 실제 환경에 근접한 환경을 제공한다.
윈도우 OS라면 홈스테드가 로컬 개발 환경을 구성하는 데 가장 편리한 선택지라고 본다.

설치
1. 가상화 소프트웨어를 설치한다(버츄어박스, VM웨어 같은 것)
2. 베이그런트를 설치한다.
3. vagrant box andd laravel/homestead를 실행하여 홈스테드 박스를 추가한다.
4. git clone https://github.com/laravel/homestead.git ~/Homestead를 실행한다.(만약, Git이 없으면 git 설치)
5. 홈스테드를 설치하고 초기화 하면 끝!
6. 자세한 설정방법은 https://laravel.kr/docs/homestead를 참고 !

도커를 활용한 라라벨 환경 구축

베슬(vessel)
공식 라라벨 프로젝트는 아니지만, 크리스 피다오가 도커를 사용한 라라벨 개발 환경을 구축하기위해서 만든 툴 !!

2-1-3. 라라벨 프로젝트 시작

cd Documents/laravel_lab 입력
composer create-project laravel/laravel laravel-project 입력

그러면 해당 폴더에 이렇게 프로젝트를 할 수 있게 프레임워크가 설치되었다.

앞으로 라라벨로 만드는 개발 프로젝트는 VSC를 통해서 할 것이다.
VSC에서 php와 관련된 확장들을 설치해두자 !!


php artisan serve라고 입력을하게되면 사이트에 바로 접속할 수 있다.

이렇게 8000번 포트에서 사이트를 확인 할 수 있다.


참조 및 출처

O'REILLY Laravel Up & Running 처음부터 제대로 배우는 라라벨 책 참조

profile
자습서 같은 공부 블로그 만들기!

0개의 댓글