라라벨

라라벨

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

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

    아임포트(Iamport)로 결제기능 구현하기 - 일반결제

    아임포트(Iamport)로 결제기능 구현하기 - 준비 아임포트(Iamport)로 결제기능 구현하기 - 일반결제 이전 포스트에 이어서 라라벨에 아임포트를 연동해보자. 마이그레이션, 모델, 컨트롤러가 준비되었다면 이제 해야 할 일은 아임포트의 개발가이드를 보면서 코드를 구현하는 일 뿐이다. 개발가이드에서 일반결제 부분에 보면 Node.js 를 사용한 구현 방법이 나와있는데, 이를 PHP로 표현하는 것은 어려운 일이 아니다. 장바구니 장바구니에 해당하는 Order 를 만들고(Create), 읽는(Read)코드를 작성해보자. 수정과 삭제는 주제를 벗어나므로 구현하지 않는다. 쓰기 쓰기는 컨트롤러에서 OrderController::create(), OrderController::store() 에서 진행한다. Or..

    아임포트(Iamport)로 결제기능 구현하기 - 준비

    아임포트(Iamport)로 결제기능 구현하기 - 준비 아임포트(Iamport)로 결제기능 구현하기 - 일반결제 이번에 국내 서비스용 결제와 관련된 기능을 구현해보면서 사용해본 것이 아임포트(I'mport)다. 라라벨에는 물론 결제를 위한 Laravel Cashier 라는 패키지가 존재하고, Stripe, Paddle 과 연동할 수 있으나 국내 서비스에는 그다지 친화적이지 않은 측면이 있다. 따라서 구축하기도 쉽고 국내 서비스에 친화적인 아임포트를 사용해보기로 했다. 또 다른 국내 친화적인 서비스로는 Payple 이 있는데, 나중에 기회가 되면 써보기로 하자. 아임포트는 개발자 친화적으로 문서화가 되어있어서 개발자의 입장에서 볼 때 결제를 구현하기 상당히 수월하게 되어있다. 대표적으로 일반결제, 정기결제,..

    [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..