l5essential icon indicating copy to clipboard operation
l5essential copied to clipboard

라라벨 (Laravel) 5 입문 및 실전 강좌

라라벨 (Laravel) 5 입문 및 실전 강좌

Build Status

라라벨은 PHP 언어로 개발된 풀스택 MVC 웹 어플리케이션 프레임웍이다.

종이책 출간 안내

http://blog.appkr.dev/work-n-play/laravel-paper-book-published/

이 강좌를 처음 시작하시는 분들께

2016년 4월 현재 laravel/framework 프로젝트에는 13,000개가 넘는 이슈와 거의 13,000개에 육박하는 커밋이 등록되어 있다. 곧 라라벨 탄생 5주기가 되는데, 5년 동안의 행적치고는 엄청나다. 라라벨이 살아 있다는 증거다. 이 강좌는 1월 말에 다썼다. 불과 3달 남짓 동안 또 엄청난 변화가 있었다. 이 강좌를 읽기 전에, https://github.com/appkr/l5essential/issues/10 를 꼭 읽고 시작하시기 바란다. 이 강좌에서 수정 적용할 부분을 기록해 두었다.

라이브 데모 사이트

클라우드 비용이 꽤 나와서 라이브 데모 사이트는 폐지했다. 대신 강의 내용만 모아 댓글이 가능한 정적 사이트(http://l5.appkr.dev)로 오픈해 두었다.

목적

  1. 라라벨 입문을 돕는다.
  2. 실전 강좌를 통해 중급 이상의 개발자로 성장할 수 있도록 돕는다.
  3. 모던 개발 방법론과 베스트 프랙티스를 전파하여, 국내 PHP 개발자 생태계가 진화할 수 있도록 일조한다.

목표

  1. 8 시간 정도에 라라벨의 기본기를 모두 마스터하는 것을 목표로 한다. (1강 ~ 25강)
  2. 제시된 실전 프로젝트를 통해 중급 이상의 라라벨 개발자로 성장하도록 한다. (26강 ~ 계속 연재 중)

다루지 않는 것들

강좌를 진행하기 위해 사용하지만, 설명하지 않는 것들이다.

  1. PHP 문법
  2. 웹 프로그래밍 일반론
  3. 객체 지향 프로그래밍(OOP) 일반론
  4. 프론트엔드 프로그래밍 일반론

같이 배워 볼 주제들

[입문코스] 라라벨 프레임 입문

라라벨 입문자들이 꼭 알아야 하는 내용만 추렸다 (고 생각한다).

  • 1강 - 처음 만나는 라라벨
  • 2강 - 라라벨 5 설치하기
  • 2강 - 라라벨 5 설치하기 (on Windows)
  • 3강 - 글로벌 설정 살펴보기
  • 4강 - Routing 기본기
  • 5강 - 뷰에 데이터 바인딩하기
  • 6강 - 블레이드 101
  • 7강 - 블레이드 201
  • 8강 - 날 쿼리 :(
  • 9강 - 쿼리 빌더
  • 10강 - 엘로퀀트 ORM
  • 11강 - DB 마이그레이션
  • 12강 - 컨트롤러
  • 13강 - RESTful 리소스 컨트롤러
  • 14강 - 이름 있는 Route
  • 15강 - 중첩된 리소스
  • 16강 - 사용자 인증 기본기
  • 17강 - 라라벨에 내장된 사용자 인증
  • 18강 - 모델간 관계 맺기
  • 19강 - 데이터 심기
  • 20강 - Eager 로딩
  • 추가 - 페이징
  • 21강 - 메일 보내기
  • 22강 - 이벤트
  • 23강 - 입력 값 유효성 검사
  • 24강 - 예외 처리
  • 25강 - 컴포저

[중급코스] 실전 프로젝트

총 3개의 실전 프로젝트를 같이 만들어 본다.

1. Markdown Viewer

마크다운으로 작성된 이 강좌들을 HTML 뷰로 나이스하게 보여주는 기능을 구현해 본다. 이를 통해 Filesystem, Custom Helper, Cache, Elixir 등의 라라벨 기능을 살펴볼 예정이다.

  • 26강 - Document 모델
  • 27강 - Document 컨트롤러
  • 28강 - Cache
  • 29강 - Elixir, 만병통치약?
  • 30강 - Debug & Final Touch

2. Forum

StackOverflow 처럼 댓글이 가능한 포럼을 구현해 본다. 이를 통해 HTTP Request & Response 에 대한 이해를 높인다. 뿐만 아니라, 라라벨을 이용한 CRUD, Event, File/Image Upload, 인증과 권한부여 등에 대해 배워볼 예정이다.

  • 31강 - 포럼 요구사항 기획
  • 32강 - 사용자 로그인
  • 33강 - 소셜 로그인
  • 34강 - 사용자 역할
  • 35강 - 다국어 지원
  • 36강 - 마이그레이션과 모델
  • 37강 - Article 기능 구현
  • 38강 - Tag 기능 구현
  • 39강 - Attachment 기능 구현
  • 32/33 보충 - 인증 리팩토링
  • 40강 - Comment 기능 구현
  • 41강 - UI 개선
  • 42강 - 서버 사이드 개선
  • 43강 - 변경 사항 알림

3. RESTful API

Forum 에서 생성된 게시글/댓글을 JSON API 로 외부에 노출하여, 외부 앱들이 Forum 서비스와 상호 작용할 수 있도록 해 본다. 실험을 위해 프론트엔드 프레임웍을 이용한 간단한 모바일 앱도 만들어 볼 것이다.

  • 44강 - API 기본기 및 기획
  • 45강 - 기본 구조 잡기
  • 46강 - JWT 를 이용한 인증
  • 47강 - 중복 제거 리팩토링
  • 48강 - all() is bad
  • 49강 - API Rate Limit
  • 50강 - 리소스 id 난독화
  • 51강 - CORS
  • 52강 - Caching
  • 53강 - Partial Response
  • 54강 - API Documents

번외. 기타 알면 좋은 내용들

  • Homestead 설치 (on Mac)
  • Homestead 설치 (on Windows)
  • 코드 배포

이 강좌를 보는 방법

강좌들은 Markdown 문법으로 작성되어 있으므로 Github에서 보는 것이 좋다. 이미 PHP 언어와 라라벨을 좀 아는 분이라면, 강좌를 눈으로 읽고 머리로 이해하는 것도 도움이 된다. 강좌의 내용과 더불어, Github Commit 로그 를 이용해서 이전 강좌 대비 달라진 부분들을 보는 것도 좋은 방법이다.

그런데 필자는 이미 만들어진 소스코드를 눈으로 읽는 것 보다, 한 문장, 한 단락씩 따라하면서 실제 실습해 볼 것을 적극 권장한다. 강좌의 단계별 소스코드는 Git Tag 로 저장되어 있다. 먼저 이 프로젝트를 클론하고, 원하는 강좌로 체크아웃하자.

$ git clone [email protected]:appkr/l5essential.git myProject
$ cd myProject
$ composer install # composer가 설치되어 있지 않다면 2강을 참조해서 설치하자.
$ git checkout 03(tab & enter)

참고 학생들과 만나보면, 콘솔을 쓸 줄 모르는 분들이 많다. 문서에 나온 코드 블럭 중에서 $ (윈도우즈의 경우 \>) 로 시작하는 명령들은 콘솔에서 실행하라는 의미이다. 가령, $ ls -al 이라 써 있으면, 콘솔에서 ls -al (enter) 를 하라는 의미이다. 콘솔 명령 블럭에서 # ... 은 주석이다.

Contributors / Sponsors

기여 가이드 를 따라 주세요.

"모두 모두 감사합니다."

라이센스

  • 강좌에 사용된 코드는 MIT 라이센스를 따른다.
  • 강좌 자체는 CC BY-NC 라이센스를 따른다.