이 책은 현재 절판입니다. 그간 읽어주신 독자들께 감사드립니다.
2017년 세종도서 학술분야 우수도서 선정!
풀 스택 데브옵스 웹 개발자를 지향하는 라라벨 입문과 실전 프로젝트!
입문에서 중급까지, 한 권으로 배우는 단계별 라라벨 학습!
출판사 제이펍
저자명 김주원
출판일 2016년 11월 23일
페이지 548쪽
시리즈 (없음)
판 형 (188*245*22)
제 본 무선(soft cover)
정 가 30,000원
ISBN 979-11-85890-62-3 (93000)
키워드 웹 프로그래밍 / 웹 개발 / 라라벨 / PHP / 풀 스택 / 데브옵스 / HTTP / 프레임워크
분야 웹 프로그래밍 / PHP
도서 소개
풀 스택 데브옵스 웹 개발자를 지향하는 라라벨 입문과 실전 프로젝트!
입문에서 중급까지, 한 권으로 배우는 단계별 라라벨 학습!
PHP 프로그래밍 언어로 작성된 라라벨은 웹 프레임워크뿐만 아니라 개발 환경, 서버 프로비전, 코드 배포까지 웹 서비스 개발에 필요한 모든 도구를 제공한다. 그리고 풀 스택(full stack)과 데브옵스(DevOps)를 지향하는 웹 개발자가 알아야 할 기획, UI와 사용자 경험, 데이터 모델링, 비즈니스 로직, HTTP 프로토콜, 서버 준비 및 운영 등 웹 프로그래머가 갖추어야 할 다양한 소양을 쌓을 수 있을 것이다.
1부에서는 라라벨에 입문하기 위한 기본 스킬을 소개한다. 2부에서 4부까지는 마크다운 뷰어, 포럼, RESTful API 서비스를 직접 만들면서 중급자로 도약할 수 있도록 도와준다. 5부에서는 개발한 웹 서비스를 운영 서버에 배포하는 방법을 다루며, 마지막 부록에서는 이 책을 학습하기 위한 개발 환경 준비와 간단한 PHP 문법, 객체 지향 프로그래밍을 소개한다.
이 책의 목적
라라벨 입문을 돕는다모던 웹 개발 방법론과 모범 사례를 전파한다실전 프로젝트를 통해 중급 개발자로 성장할 수 있도록 돕는다
이 책의 대상 독자
PHP로 웹 프로그래밍을 하려는 초보 개발자라라벨을 배우고자 하는 웹 프로그래머
저자 소개
김주원
H.O.T와 젝스키스가 한참 활동하던 시절, C와 펄(Perl) 언어로 웹 프로그래밍을 시작했다. 대학시절에 취미로 시작했던 웹 프로그래밍을 접고 이후 10년간 휴대 전화 제조사, 반도체 설계 회사, 미디어 스트리밍 솔루션 개발사 등 여러 분야를 거치며 솔루션 아키텍트 및 프로젝트 매니저로 지내다 몇 년 전에 다시 개발자로 돌아왔다. 지금은 물류 솔루션 개발사에서 서버 소프트웨어를 개발하고 있으며, 데브옵스와 풀 스택 웹 프로그래머로서 백발 코딩하는 꿈을 꾸며 산다.
절제할 때를 알고 술을 즐기는 애주가다. 평정심을 찾고 싶을 때는 클래식 기타를 연주하거나 우주과학 다큐멘터리를 보고, 아드레날린이 필요할 때는 격렬하게 테니스를 친다. 서울 중랑구에서 사랑하는 아내와 두 딸아이와 함께 살고 있다.
차례
PART 1 라라벨 입문 _1
CHAPTER 01 라라벨 설치 _ 2
1.1 새로운 라라벨 프로젝트 만들기 _ 2
1.2 라라벨 프로젝트 구조 _ 4
1.3 라라벨 작동 원리 _ 7
1.4 버전 관리 _ 8
CHAPTER 02 전역 환경 설정 _ 9
2.1 dotenv 파일이 하는 일 _ 9
2.2 APP 환경 설정 _ 11
2.3 마치며 _ 12
CHAPTER 03 라우팅 _ 13
3.1 URL _ 13
3.2 라우팅 만들기 _ 16
3.3 URL 파라미터 _ 18
3.4 라우트 이름 _ 19
3.5 마치며 _ 20
CHAPTER 04 뷰와 데이터 바인딩 _ 21
4.1 뷰 반환 _ 21
4.2 데이터 바인딩 _ 22
4.3 마치며 _ 23
CHAPTER 05 블레이드 _ 24
5.1 변수를 이용한 문자열 보간 _ 25
5.2 주석 _ 25
5.3 제어 구조 _ 26
5.4 템플릿 상속 _ 28
5.5 조각 뷰 삽입 _ 31
5.6 마치며 _ 33
CHAPTER 06 데이터베이스와 모델 _ 34
6.1 데이터베이스 준비 _ 35
6.2 REPL _ 36
6.3 데이터베이스 쿼리 _ 37
6.4 쿼리 빌더 _ 40
6.5 엘로퀀트 ORM _ 43
6.6 마치며 _ 49
CHAPTER 07 데이터베이스 마이그레이션 _ 50
7.1 마이그레이션 만들기 _ 51
7.2 마이그레이션 실행 _ 55
7.3 롤백 _ 56
7.4 열 추가 _ 57
7.5 초기화 및 새로고침 _ 58
7.6 마치며 _ 59
CHAPTER 08 컨트롤러 _ 60
8.1 컨트롤러 만들기 _ 60
8.2 RESTful 라우트와 컨트롤러 _ 61
8.3 마치며 _ 70
CHAPTER 09 사용자 인증 _ 71
9.1 HTTP의 무상태 특성 _ 71
9.2 기본기 다지기 _ 73
9.3 라라벨 내장 사용자 인증 _ 79
9.4 마치며 _ 81
CHAPTER 10 엘로퀀트 ORM _ 82
10.1 일대다 관계 _ 82
10.2 다대다 관계 연결 _ 86
10.3 마치며 _ 91
CHAPTER 11 데이터베이스 시딩 _ 92
11.1 시더 만들기 _ 92
11.2 모델 팩토리 _ 93
11.3 마스터 시더 _ 97
11.4 마이그레이션과 시딩 _ 99
11.5 마치며 _ 99
CHAPTER 12 즉시 로드와 페이징 _ 100
12.1 즉시 로드 _ 100
12.2 페이징 _ 104
12.3 마치며 _ 106
CHAPTER 13 입력값 유효성 검사 _ 107
13.1 유효성 검사 기본기 _ 108
13.2 트레이트의 메서드 이용 _ 114
13.3 폼 리퀘스트 클래스 이용 _ 115
13.4 마치며 _ 117
CHAPTER 14 이벤트 시스템 _ 118
14.1 기본기 다지기 _ 119
14.2 이벤트 레지스트리 _ 120
14.3 이벤트 리스너 클래스 _ 121
14.4 이벤트 클래스 _ 122
14.5 실용적인 이벤트 시스템 _ 124
14.6 라라벨 내장 이벤트 채널 _ 126
14.7 마치며 _ 129
CHAPTER 15 예외 처리와 디버깅 _ 130
15.1 전역 예외 처리기 _ 130
15.2 실용적인 예외 처리 _ 132
15.3 디버깅 _ 136
15.4 디버깅 방법 _ 140
15.5 마치며 _ 143
CHAPTER 16 이메일 보내기 _ 144
16.1 지메일로 메일 보내기 _ 145
16.2 메일건으로 메일 보내기 _ 147
16.3 심화 학습 _ 150
16.4 테스트 환경 _ 153
16.5 마치며 _ 153
CHAPTER 17 컴포저 _ 154
17.1 컴포저란? _ 155
17.2 로컬 컴포넌트 레지스트리 둘러보기 _ 156
17.3 컴포넌트 가져오기 실습 I _ 158
17.4 컴포넌트 가져오기 실습 II _ 160
17.5 install? update? _ 164
17.6 문제 해결 _ 164
17.7 오토로드 _ 165
17.8 좋은 컴포넌트 찾기 _ 166
17.9 마치며 _ 167
PART 2 실전 프로젝트 I - 마크다운 뷰어 _169
CHAPTER 18 모델 _ 170
18.1 파일시스템 _ 170
18.2 모델 만들기 _ 171
18.3 테스트 _ 173
18.4 예외 처리 _ 174
18.5 마치며 _ 175
CHAPTER 19 컨트롤러와 도우미 함수 _ 176
19.1 사용자 정의 도우미 함수 _ 176
19.2 컨트롤러 _ 177
19.3 뷰 _ 178
19.4 마치며 _ 180
CHAPTER 20 다듬질 _ 181
20.1 서버 측 캐싱 _ 181
20.2 이미지 응답 _ 183
20.3 클라이언트 측 이미지 캐싱 _ 187
20.4 마치며 _ 191
CHAPTER 21 엘릭서와 프런트엔드 _ 192
21.1 필요 프런트엔드 리소스 _ 192
21.2 필요 도구 설치 _ 193
21.3 엘릭서 _ 194
21.4 빌드 스크립트 작성 _ 196
21.5 활용 사례 _ 201 21.6 마치며 _ 204
PART 3 실전 프로젝트 II - 포럼 _205
CHAPTER 22 계획과 준비 _ 206
22.1 기능 요구 사항 목록 _ 206
22.2 데이터베이스 모델링 _ 207
22.3 프로젝트 준비 _ 209
22.4 마스터 레이아웃 _ 210
22.5 마치며 _ 213
CHAPTER 23 사용자 인증 재구성 _ 214
23.1 라우팅 정의 _ 214
23.2 컨트롤러 _ 216
23.3 사용자 등록 구현 _ 216
23.4 사용자 로그인 구현 _ 225
23.5 비밀번호 바꾸기 구현 _ 229
23.6 마스터 레이아웃 _ 234
23.7 마치며 _ 234
CHAPTER 24 소셜 로그인 _ 236
24.1 소셜라이트 컴포넌트 _ 236
24.2 작동 원리 _ 237
24.3 깃허브 설정 _ 239
24.4 라우트 정의 _ 241
24.5 마이그레이션 _ 241
24.6 로그인 처리 로직 _ 242
24.7 네이티브 로그인 처리 수정 _ 245
24.8 소셜 로그인 링크 _ 247
24.9 다듬질 _ 248
24.10 마치며 _ 249
CHAPTER 25 아티클 기능 구현 _ 250
25.1 라우트 모델 바인딩 _ 250
25.2 글 목록 _ 251
25.3 글 상세 보기 _ 256
25.4 글 수정 _ 257
25.5 글 삭제 _ 260
25.6 인증과 인가 _ 261
25.7 다듬질 _ 264
25.8 마치며 _ 266
CHAPTER 26 태그 기능 구현 _ 267
26.1 태그 데이터 _ 267
26.2 태그 선택 _ 270
26.3 태그 출력 _ 272
26.4 다듬질 _ 276
26.5 마치며 _ 277
CHAPTER 27 파일 첨부 기능 구현 _ 278
27.1 파일 업로드 _ 278
27.2 UI 개선 _ 285
27.3 다듬질 _ 291
27.4 마치며 _ 293
CHAPTER 28 댓글 기능 구현 _ 294
28.1 다형적 다대다 관계 _ 294
28.2 댓글 UI _ 300
28.3 서버 측 구현 _ 305
28.4 투표 기능 _ 309
28.5 마치며 _ 317
CHAPTER 29 다듬질 I _ 319
29.1 아티클 검색, 정렬, 조회 수, 댓글 수 _ 320
29.2 이메일 알림 _ 326
29.3 고아 첨부 파일 청소 _ 330
29.4 댓글 소프트 삭제 _ 334
29.5 모델 쿼리 캐싱 _ 338
29.6 캐시 저장소 변경 _ 343
29.7 마치며 _ 349
CHAPTER 30 다듬질 II _ 350
30.1 다국어 지원 _ 350
30.2 오류 알림 _ 363
30.3 마치며 _ 367
PART 4 실전 프로젝트 III - RESTful API _369
CHAPTER 31 기본기 익히기 _ 370
31.1 RESTful이란? _ 370
31.2 RESTful API 모범 사례 _ 371
31.3 개발 항목 _ 376
CHAPTER 32 구조 설계 _ 377
32.1 HTTP 요청 분기 _ 377
32.2 HTTP 응답 분기 _ 380
32.3 마치며 _ 386
CHAPTER 33 클라이언트 인증 _ 387
33.1 HTTP 기본 인증 _ 388
33.2 JWT 인증 _ 392
33.3 마치며 _ 402
CHAPTER 34 데이터 트랜스폼 _ 404
34.1 트랜스포머 작동 원리 _ 405
34.2 트랜스포머 컴포넌트 _ 408
34.3 컨트롤러 다듬질 _ 413
34.4 다국어 지원 _ 415
34.5 마치며 _ 417
CHAPTER 35 다듬질 I _ 418
35.1 클라이언트 측 캐싱 _ 418
35.2 응답 필드 선택 _ 424
35.3 마치며 _ 425
CHAPTER 36 다듬질 II _ 426
36.1 CORS _ 426
36.2 사용량 제한 _ 429
36.3 리소스 아이디 난독화 _ 434
36.4 마치며 _ 438
PART 5 코드 배포 _439
CHAPTER 37 서버 준비 _ 440
37.1 계정 발급 _ 440
37.2 서버 만들기 _ 441
37.3 서버 접속하기 _ 445
37.4 웹 서버 만들기 _ 447
37.5 마치며 _ 459
CHAPTER 38 코드 배포 _ 461
38.1 엔보이 _ 461
38.2 깃허브 _ 463
38.3 코드 배포 _ 467
38.4 배포 전략과 엔보이 배포 스크립트 _ 470
38.5 마치며 _ 474
APPENDIX 부록 _475
APPENDIX A 운영체제별 개발 환경 준비 _ 476
A.1 코드 에디터 준비 _ 477
A.2 Mac _ 477
A.3 우분투 데스크톱 _ 480
A.4 Windows _ 482
APPENDIX B 속성 PHP 프로그래밍 입문 _ 489
B.1 PHP 스크립트의 작동 원리 _ 489
B.2 PHP 언어 기본 _ 491
B.3 변수와 상수 _ 491
B.4 연산자 _ 493
B.5 데이터 타입 _ 494
B.6 조건문 _ 496
B.7 반복문 _ 498
B.8 함수 _ 499
B.9 클로저 _ 500
B.10 PHP 설명서 _ 502
APPENDIX C 속성 객체 지향 프로그래밍 입문 _ 503
C.1 클래스 _ 503
C.2 생성자 _ 504
C.3 메서드 _ 505
C.4 게터와 세터 _ 506
C.5 캡슐화 _ 507
C.6 상속 _ 508
C.7 추상 클래스 _ 509
C.8 의존성 주입 _ 511
C.9 인터페이스 _ 513
C.10 마치며 _ 515
'도서 소개' 카테고리의 다른 글
스케치로 시작하는 아두이노 프로그래밍(제2판) (0) | 2016.12.06 |
---|---|
좀비 아포칼립스: 오픈 하드웨어를 이용한 인류 생존 가이드 (0) | 2016.12.06 |
ATmega128로 배우는 마이크로컨트롤러 프로그래밍 (7) | 2016.12.06 |
아이폰 이후의 UX (0) | 2016.11.18 |
딥 러닝 제대로 시작하기 (2) | 2016.10.11 |