다루게 된 배경
위플래닛에서는 기본적으로 NodeJS를 이용해 백엔드를 개발합니다. 가장 큰 이유는 ‘모든 개발자가 다룰 수 있는 ‘ 공통의 기술을 정하기 위함이었고, 이는 1) 개발 생산성이 좋고, 2) 배우기 쉬우며, 3) 협업이 가능해야 한다고 생각했습니다. 물론 NodeJS만을 사용했던 것은 아닙니다. 두 번째 백엔드 언어로 PHP를 꾸준히 사용해왔고, 최근까지 일부 프로젝트는 CodeIgniter로 개발되었습니다. 하지만 여전히 ‘남이 짠’ PHP 코드를 수정하는건 쉽지 않다는 것이 내부 결론이었습니다.
하지만 최근에 PHP 라라벨을 이용한 프로젝트를 진행하게되었고, @steven이 이를 담당하면서 라라벨을 새로 접하게 되었습니다. 이 연재는 라라벨을 새롭게 접하면서 알게된 내용을 맥OS 사용자의 관점으로 정리합니다. 내부 팀 공유를 기본 목적으로 하고 작성하였으나, 누군가에게 도움이 될 것이라는 기대감에 공개합니다.
다루게 될 내용
-
라라벨 특징
-
Mac에서의 PHP 설치
-
Homestead 설치 (On Mac)
-
Homestead 설치 (On Window)
-
Composer 설치
-
Valet 설치
-
개발 생산성을 위한 세팅
-
라라벨 프레임워크 구조
-
라라벨 프레임워크 Routing 세팅
-
라라벨 프레임워크 템플릿 – 블레이드 템플릿
-
DB Connection 세팅
-
DB ORM – 엘리쿼트 ORM
-
라라벨 프레임워크 모델
-
라라벨 프레임워크 Component
-
Envoy 배포
-
실무 – 기본세팅
-
실무 – 사용자 로그인
-
실무 – 소셜 로그인
-
실무 – 다국어 지원
-
실무 – API 기획 및 서비스 구축
-
실무 – JWT를 이용한 인증
-
실무 – 리소스 id 난독화
-
실무 – AWS EC2 세팅
-
실무 – Envoy를 이용한 배포
SitePoint 의 2015년 설문조사에 따르면, 라라벨은 (해외에서) 현재 가장 인기 있는 PHP 프레임워크로 알려져 있습니다. 국산 CMS 중 사용자/사이트 수 측면에서 1위 CMS인 XE에서도 차기 버전인 XE3는 라라벨로 전환한다고 발표한 바 있습니다. 장기적으로 개발할 목적이라면 윈도우는 프롬프트를 사용으로 인해 생산성이 떨어질 수 있기 때문에, 리눅스 또는 Mac으로 대체하기를 권장합니다.
특징
-
단순하고 (== 쉽고) 우아한 문법
-
복잡한 것들은 프레임워크 안에서 처리
-
강력한 확장 기능들
-
PSR(PHP Standards Recommendations) 적용
-
모던 개발 방법론 적용
- RAD RAD RAD (Rapid Application Development)
라라벨의 철학
- 개발 생선성 : 라라벨은 다른 php 프레임웍에 비해 ‘무겁다’, ‘느리다’라는 편견이 일반적이다. 하지만 라라벨의 철학은 개발 생산성입니다. (작은 규모에서는 현명한 선택을 할 필요가 있습니다.)
내장 기능
-
웹 서비스를 위해 필요한 Cache, Queue, Mail 등
-
Service Container 를 이용한 의존성 자동 주입
-
Cron 자동
- Elixir를 이용한 CSS/Sass/Less, JS/Coffee 등 프론트 엔드 워크 플로우 자동화
확장 기능
-
Homestead/Valet 로 개발 환경을 표준화 할 수 있다.
-
Socialite로 소셜 인증을 쉽게 할 수 있다.
-
Cashier로 결제 기능을 쉽게 할 수 있다.
- Envoy로 SSH 원격 작업을 자동화 할 수 있다.
확장 서비스
-
Forge를 이용하여 서버 프로비저닝/서버 관리/코드 배포등을 자동화 할수 있다.
- Envoyer를 이용하여 무중단 코드 배포가 가능하다.
커뮤니티
-
라라벨 뉴스 – 프레임웍 코어 멤버 중의 한명인 Eric Barnes 가 운영하는 뉴스 블로그. 라라벨 개발자라면 꼭 가입하라.
-
라라 캐스트 – 역시 코어 멤버 중의 한명인 Jeffrey Way가 운영하는 동영상 강의 서비스. 매주 2~3개의 강의가 올라오며, 기존에 작성된 거의 400편에 가까운 동영상 강의를 볼 수 있다.
-
LARAVEL.IO – 라라 캐스트 전에 가장 활발한 활동을 하던 포럼이다.
- Codecourse – phpacademy 란 채널이 최근에 이름을 바뀌었다. 무료 동영상 강의를 제공하고 있다.
메뉴얼
앞으로 진행 될 설치 및 기능 구현을 위해 다음과 같이 개발 환경을 맞추도록 하겠습니다.
PHP 라라벨 5 On Mac 포스팅
[PHP 라라벨 5 On Mac] 1 : 다루게 될 내용들
[PHP 라라벨 5 On Mac] 2 : Composer, Valet, Framework
[PHP 라라벨 5 On Mac] 3 : Framework
[PHP 라라벨 5 On Mac] 4 : Routing
[PHP 라라벨 5 On Mac] 5 : 블레이드 템플릿 1 (View)
[PHP 라라벨 5 On Mac] 6 : 블레이드 템플릿 2 (View)
[PHP 라라벨 5 On Mac] 7 : 블레이드 템플릿 3 (View)
[PHP 라라벨 5 On Mac] 8 : 마이그레이션 (Create Table)
[PHP 라라벨 5 On Mac] 9 : 마이그레이션 (컬럼 추가 및 데이타 스토리 엔진 설정)
[PHP 라라벨 5 On Mac] 10 : 마이그레이션 (적용)
[PHP 라라벨 5 On Mac] 11 : 마이그레이션 (컬럼 수정)
[PHP 라라벨 5 On Mac] 12 : Laravel Tinker Shell
[PHP 라라벨 5 On Mac] 13 : Laravel Tinker Shell (쿼리 빌더)
[PHP 라라벨 5 On Mac] 14 : 엘로퀀트 ORM 1
[PHP 라라벨 5 On Mac] 15 : 엘로퀀트 ORM 2
[PHP 라라벨 5 On Mac] 16 : 엘로퀀트 ORM 3
Trackbacks & Pingbacks
[…] [PHP 라라벨 5 On Mac] 1 : 다루게 될 내용들 […]
[…] [PHP 라라벨 5 On Mac] 1 : 다루게 될 내용들 […]
[…] [PHP 라라벨 5 On Mac] 1 : 다루게 될 내용들 […]
[…] [PHP 라라벨 5 On Mac] 1 : 다루게 될 내용들 […]
[…] HP 라라벨 5 On Mac] 1 : 다루게 될 내용들 […]
[…] HP 라라벨 5 On Mac] 1 : 다루게 될 내용들 […]
[…] [PHP 라라벨 5 On Mac] 1 : 다루게 될 내용들 […]
[…] [PHP 라라벨 5 On Mac] 1 : 다루게 될 내용들 […]
[…] [PHP 라라벨 5 On Mac] 1 : 다루게 될 내용들 […]
Leave a Reply
Want to join the discussion?Feel free to contribute!