라라벨을 활용해 쉽고 빠르게 견고한 웹 애플리케이션을 개발할 수 있게 안내합니다!

라라벨(Laravel)은 해외에서 가장 주목받고 있는 PHP 프레임워크입니다. 라라벨을 이용하면 현대적인 PHP의 기능을 최대한 활용해 아름답고 우아한 PHP 코드를 빠르게 작성할 수 있으며, 기능이 풍부하고 사용하기 쉬운 수많은 전용 패키지를 제공합니다.

『쉽게 배우는 라라벨 5 프로그래밍』은 개발자들이 라라벨을 활용해 쉽고 빠르게 견고한 웹 애플리케이션을 개발할 수 있게 안내합니다. 프레임워크 사용에 익숙하지 않은 PHP 개발자를 위해 기본 개념을 자세히 설명하고, 예제와 설명을 따라 하면서 자연스럽게 라라벨 프레임워크의 핵심 기능을 익히도록 구성했습니다. 나아가 실전 프로젝트를 진행하고 서비스 배포까지 해보면서 실제 웹 애플리케이션을 만들고 배포하는 전반적인 과정을 체험할 수 있게 구성했습니다.

★ 이 책에서 다루는 내용 ★

  • 라라벨 프레임워크 설치와 활용
  • URL 라우팅과 HTTP 요청/응답 처리
  • 데이터베이스 마이그레이션을 이용한 스키마 버전 관리
  • 아티즌(Artisan) 명령어를 이용한 라라벨 프레임워크 작업
  • 라라벨의 ORM인 엘로퀀트(Eloquent)
  • 깃허브를 이용한 사용자 인증
  • 데이터 검증과 페이징 처리
  • 크론의 단점을 해결할 수 있는 라라벨 작업 스케줄러
  • Mailgun 서비스와 연동한 메일 전송
  • 레디스와 라라벨 연계
  • 라라벨을 익히기 위한 PHP 5의 주요 기능
  • 패키지 관리자 컴포저

정광섭

유닉스 환경의 C/C++ 개발자로 사회 생활을 시작해 다양한 유닉스용 금융 솔루션을 개발했고, 이어서 퀄컴의 휴대폰용 플랫폼인 BREW 플랫폼을 개선하고 다양한 휴대폰에 이식하는 업무를 수행하고 윈도우와 유닉스용 보안 소프트웨어와 PKI 솔루션을 개발했다. 현재는 아키텍트와 관리 업무를 담당하고 있으며, 백엔드에는 자바와 스프링을 사용하고 웹 애플리케이션은 라라벨을 사용해 업무 효율을 높일 수 있는 방법을 고민하고 있다.

자동화와 업무 프로세스 개선, 정보의 공유와 협업에 관심이 많으며, 위키, 이슈 관리, 지속적인 통합 등을 활용해 협업 시스템을 구축하고 구성원의 참여를 이끌어내어 공유와 협력의 업무 문화를 만들기 위해 노력 중이다.

개인 블로그인 <lesstif.com>에서 지식과 정보를 공유하고 있으며, <github.com/lessitf>에서 몇 가지 작은 오픈소스 프로젝트를 진행 중이다. 저서로 『리눅스를 활용한 회사 인프라 구축의 모든 것』(위키북스, 2014)이 있다

  • ▣ 01장: 라라벨 소개
    • 1.1 모델-뷰-컨트롤러 패턴
    • 1.2 유연한 데이터베이스 지원
    • 1.3 보안을 고려한 설계
    • 1.4 가볍고 익히기 쉬운 템플릿 엔진
    • 1.5 간편 URL
    • 1.6 컴포넌트 기반의 확장성
    • 1.7 의존성 주입과 제어 역전
    • 1.8 설정보다 관례 패러다임
    • 1.9 우아한 문법과 코딩 표준
    • 1.10 국제화 지원
    • 1.11 손쉬운 테스트
    •  
  • ▣ 02장: 개발 환경 구축
    • 2.1 가상 머신과 Vagrant 설치
      • Vagrant란?
      • Vagrant 설치
    • 2.2 홈스테드 구성
      • 라라벨 박스 생성
      • 환경 구성
      • 박스 구동 및 중지
    • 2.3 데이터베이스 설정
    • 2.4 Nginx와 php-fpm 재시작
    • 2.5 HTTP 개요
      • HTTP 이해의 필요성
      • 피들러 설치
      • HTTP 통신 엿보기
      • HTTP 요청 엿보기
      • HTTP 응답 엿보기
    • 2.6 가상 호스트의 추가 및 변경
    •  
  • ▣ 03장: 라라벨과의 만남
    • 3.1 라라벨 프로젝트 만들기
      • 라라벨 설치
      • 환경 구성
      • url
    • 3.2 라라벨 디렉터리 구성
    • 3.3 URL 라우팅
    • 3.4 HTTP 응답 처리
    • 3.5 뷰
    • 3.6 블레이드 템플릿
      • 변수 출력
      • 제어문
      • 레이아웃과 상속
      • 블레이드 디버깅
    •  
  • ▣ 04장: 명령행, 컨트롤러, 고급 라우팅
    • 4.1 서비스 프로바이더와 파사드
      • 서비스 프로바이더
      • 파사드
      • 라라벨 패키지 설치
    • 4.2 HTTP 예외 처리
    • 4.3 artisan
      • 애플리케이션을 정비 모드로 전환하기
      • 단독 실행 서버 구동하기
      • atrisan을 이용한 모델 생성
      • tinker를 이용한 대화형 디버깅
    • 4.4 컨트롤러
      • 기본 컨트롤러와 라우트
      • 암시적 컨트롤러
      • RESTful 리소스 컨트롤러
      • tinker를 이용한 컨트롤러 테스트
    • 4.5 미들웨어
      • 미들웨어란?
    •  
  • ▣ 05장: 마이그레이션과 시딩
    • 5.1 데이터베이스 마이그레이션
      • 마이그레이션 생성
      • 스키마 빌더
    • 5.2 데이터베이스 시딩
      • 시드 생성
    • 5.3 모델 팩토리
      • 모델 팩토리 생성
      • Persistence 데이터 생성
    •  
  • ▣ 06장: 컬렉션
    • 6.1 컬렉션 생성
    • 6.2 주요 컬렉션 메서드
    •  
  • ▣ 07장: 엘로퀀트 ORM
    • 7.1 관례
      • 테이블과 모델명
      • 데이터베이스 연결 정보
    • 7.2 CRUD 실행하기
      • 모델 검색하기(Read)
      • 모든 데이터 읽기
      • 모델 입력과 갱신(Create/Update)
      • 대량 할당 예외 처리
      • 모델 삭제(Delete)
    • 7.3 쿼리 스코프
      • 쿼리 스코프 추가
      • 동적 쿼리 스코프
    • 7.4 모델 이벤트
    • 7.5 접근자와 변경자
    • 7.6 테이블 관계
      • 일대일 관계
      • 일대다 관계
      • 다대다 관계
      • 연결을 통한 다수 관계
      • 다형성 관계
    • 7.7 연관 모델 삽입
      • 참조키 자동 삽입
      • 포함 관계 갱신
      • 다대다 관계 삽입
      • 부모 모델의 타임스탬프 갱신
    • 7.8 연관 모델 삭제
      • 삭제 시 단계적으로 삭제
      • 자식 객체를 삭제한 후 부모 객체 삭제
      • 모델 이벤트로 처리
    •  
  • ▣ 08장: 일정관리 서비스 만들기
    • 8.1 서비스 개요
    • 8.2 프로젝트 생성
    • 8.3 스키마 설계와 마이그레이션
    • 8.4 화면 설계
    • 8.5 메시지 지역화
    • 8.6 외부 패키지를 이용한 기능 확장
      • 패키지 저장소
      • 라라벨 패키지 설치
    •  
  • ▣ 09장: 사용자 등록과 로그인
    • 9.1 아이디와 비밀번호를 이용한 인증
    • 9.2 사용자 계정 등록 페이지
    • 9.3 깃허브를 통한 인증
    • 9.4 세션
      • 세션 설정
      • 세션 사용
    •  
  • ▣ 10장: 프로젝트와 태스크 등록하기
    • 10.1 스캐폴딩 생성 및 관계 설정
      • 컨트롤러와 모델 생성
      • 모델 간 관계 설정
      • 데이터 시딩
    • 10.2 리소스 컨트롤러와 라우팅
      • 컨트롤러 등록
      • 인증 미들웨어 연결
      • 중첩 리소스
    • 10.3 프로젝트 기능 구현
      • 인덱스 구현
      • show 구현
      • 디버그바를 이용한 디버깅
      • 프로젝트 편집 기능 구현과 CSRF/메서드 스푸핑
      • 생성 기능 구현
      • 삭제 구현
    • 10.4 할일 기능 구현
      • 프로젝트별 태스크 인덱스
      • 수정 기능 구현
      • 태스크 생성 기능 구현
    • 10.5 메인 화면 구현
    • 10.6 비중첩 Task 컨트롤러
      • 검색 기능 구현
    • 10.7 로깅
    •  
  • ▣ 11장: 서비스 개선
    • 11.1 즉시 로딩
      • N+1 문제
      • 즉시 로딩
    • 11.2 리소스 권한 검사 미들웨어
    • 11.3 페이지 처리
    • 11.4 데이터 검증하기
      • 컨트롤러에서 처리
      • 폼 요청 검증
      • 검증 규칙
      • 사용자 정의 검증 규칙
    •  
  • ▣ 12장: 외부 서비스와의 연계
    • 12.1 이메일
      • 메일 드라이버 설정
      • 이메일 전송
    • 12.2 비밀번호 재설정
    • 12.3 주기적으로 만료 기한 통보하기
      • cron 설정
      • artisan 명령어 작성
      • 스케줄러 설정
    • 12.4 레디스와의 연동
      • 레디스 맛보기
      • 세션 교체
      • 카운팅 적용
    •  
  • ▣ 13장: 라라벨 배포
    • 13.1 배포 환경 선택
    • 13.2 우분투 서버에 배포
      • 서버 설정
      • 애플리케이션 배포
    • 13.3 AWS EC2에 배포
    •  
  • ▣ 14장: php 5의 특징
    • 14.1 네임스페이스
    • 14.2 간결한 배열
    • 14.3 트레이트
    • 14.4 클래스 자동 로딩
    • 14.5 익명 함수
    • 14.6 동적 프로퍼티/메서드 생성
    • 14.7 ::class 키워드를 이용한 클래스 이름 결정
    • 14.8 타입 힌팅
    • 14.9 PHP 표준 권고(PSR)
    •  
  • ▣ 15장: 컴포저
    • 15.1 프로젝트를 수행할 때 겪는 문제들
      • 라이브러리 설치 관리 문제
      • 의존성 지옥
    • 15.2 유의적 버전
    • 15.3 컴포저의 해결책
    • 15.4 컴포저를 이용한 의존성 관리
    • 15.5 의존 패키지의 버전 지정
    • 15.6 프로젝트 참여자의 의존성 일치시키기
    • 15.7 자동로더

예제코드 관련 깃허브 페이지

관련 글