언어 & 프레임워크

    [Laravel] Laravel Zero 로 콘솔 어플리케이션 개발하기

    때때로 콘솔 프로그램을 개발하고 싶을 때가 있다. 기존에는 Go 로 하다가 그래도 조금 더 잘 알고 있는 라라벨로 콘솔 프로그램을 개발하기 수월하게 할 수는 없을까 싶어서 찾아낸 것이 바로 Laravel Zero 다. 물론 라라벨에서도 아티즌 콘솔 명령어를 작성하는 일은 가능하지만, 콘솔 어플리케이션을 위해 라라벨을 사용하는 일은 너무 오버 엔지니어링이다. Laravel Zero 는 콘솔 어플리케이션을 위한 마이크로 프레임워크다. 라라벨의 공식 패키지는 아니지만 오픈소스이며 라라벨에서 아티즌 콘솔 명령어를 따로 떼어낸 듯한 느낌으로 사용할 수 있다. 따라서 기존에 라라벨을 사용하는 방법을 알고 있다면 사용해 볼만하다. 사용법도 아주 간단하며 서비스 컨테이너나 서비스 프로바이더, 파사드, 헬퍼 등 라라벨에..

    [Laravel] 카페24 호스팅에 라라벨 프로젝트 배포하기

    이번 포스팅은 최신기술과는 거리가 멀다. 하지만, 여전히 시장에서는 카페24와 같은 웹호스팅 서비스를 사용하여 서비스를 배포하는 일이 자주 발생하는 만큼, 누군가에게 이 글은 도움이 되리라 생각한다. 나도 내 의지와는 상관없이 카페24에서 프로젝트를 할 일이 생긴데다가, 어떻게하면 카페24 환경에 라라벨 프로젝트를 간편하게 배포할 수 있을까 고민해본 결과 몇가지 가능성에 도달했다. 과거에 카페24를 사용하여 프로젝트를 진행했던 것은 레거시가 대부분이었기 때문에 그냥 아날로그식으로 FTP 를 연결해서 파일을 배포하면 그만이었다만, 라라벨을 할 때는 차마 그러고 싶지 않았다. 이제는 그러한 배포방식에서 벗어나야만 한다. 라라벨 프로젝트를 배포하는 것은 Laravel Envoyer, Laravel Forge ..

    [Laravel] 라라벨 데이터베이스와 모델 (쿼리빌더, 옐로퀸트)

    라라벨에서 쿼리를 작성하는 방법은 간단하다. 레거시 PHP 에서 쿼리를 작성하는 방법은 PDO(PHP Data Object)를 사용하더라도 그다지 보기 좋은 것은 아니었다. 예를 들자면, $pdo = new PDO(...); $sth = $pdo->prepare("SELECT * FROM users"); if ($sth->execute()) { $users = []; while ($user = $sth->fetchObject()) { array_push($users, $user); } } 이렇게 생긴 기존의 레거시 코드(mysqli, mysql 과 같은 더 low Level API 를 사용하면 보기가 안 좋아진다.)를 라라벨의 쿼리빌더를 다음과 같이 간단하게 표현할 수 있다. $users = DB::ta..

    [Laravel] 라라벨 블레이드 템플릿 (상속, 컴포넌트, 슬릇)

    이번에는 블레이드 템플릿에서 상속, 컴포넌트, 뷰 컴포저에 대해 간단히 알아보도록 하자. 블레이드에는 여러 지시어(Directive)가 존재하는데, 상속, 컴포넌트, 슬릇 기능 등은 많이 쓰이는 기능이다. 따라서 이를 대표적으로 알아보자. 지시어의 수가 다소 많은터라 나도 다 알지 못한다. 상속 상속과 관련된 지시어는 @extends, @yield, @section, @show, @stack 이 존재한다. 자바스크립트 템플릿을 사용하듯 블레이드를 사용해서도 템플릿을 상속하고, 다른 템플릿을 포함시킬 수 있는 기능을 가지고 있다. 즉, 템플릿을 기준에 따라 분리가 가능하다는 이야기다. 다만, 다소 헷갈리는 기능들이 많기 때문에 차이점을 알아두면 좋다. @extends @extends 는 자식 템플릿이 특정..

    [Laravel] 라라벨 블레이드 템플릿 (보간, 조건문, 반복문)

    라라벨은 풀스택 프레임워크이기에 프론트엔드도 어느정도 개발할 수 있고, 뷰나 리액트같은 SPA(Single Page Application) 프레임워크를 사용할 수도 있다. 그러한 프레임워크를 사용하여 컴포넌트를 사용하기 위한 기반 템플릿이 있는데, 라라벨의 블레이드 템플릿이 그러하다. PHP는 언어이면서 자체적으로 템플릿의 역할도 겸할 수 있는데, 블레이드는 템플릿의 역할을 보다 강화시킨 것이다. 많이 알려져 있는데 PHP 템플릿인 Twig, Mustache 랑 같은 개념이다. 블레이드 템플릿 블레이드 템플릿은 라라벨에서 프론트엔드 마크업 및 컴포넌트를 포함하고 작성하기 위한 템플릿이다. 일반적인 PHP 템플릿처럼 if, for 와 같은 제어구조를 사용할 수도 있고, 다른 템플릿을 상속받고 슬릇(Slot..