라라벨 실전 웹 애플리케이션 개발
Description
라라벨 최신 버전(8.x) 대응 & 실무 개발자들의 꼼꼼한 설명이 돋보이는 책!
대세 PHP 프레임워크 라라벨 최신 버전을 기준으로 집필된 이 책은 점점 더 커지고 복잡해지는 웹 애플리케이션 개발을 위한 새로운 설계 방법과 기술을 소개합니다. 저자들의 오랜 실무 경험과 커뮤니티 활동에서 쌓은 노하우를 실전 예제를 통해 아낌없이 공개합니다.
저자

다케자와유키

竹澤有貴
스타페스티벌주식회사소속.PHP,Go,스칼라를중심으로데이터분석기반,플랫폼개발및엔지니어매니지먼트를하고있다.일본내PHP커뮤니티나콘퍼런스등에서발표도활발히하고있다.저서로는《라라벨엑스퍼트양성가이드》(기술평론사),《라라벨레퍼런스》(임프레스),《PHP프레임워크라라벨웹애플리케이션개발》(소시움)등이있다.
블로그:https://blog.ytake.jp.net

목차

옮긴이머리말xiii
머리말xv
베타리더후기xvii

PARTI|라라벨기초1
CHAPTER1|라라벨개요1
1-1라라벨이란?3
1-1-1라라벨의특징3
1-1-2개발정보5
1-2환경구축6
1-2-1라라벨세일을이용한환경구축6
1-2-2홈스테드를이용한환경구축19
1-3첫번째애플리케이션31
1-3-1라라벨의디렉터리구성31
1-3-2Welcome페이지처리32
1-3-3첫번째페이지36
1-3-4첫번째테스트코드37
1-3-5사용자등록구현40
1-3-6사용자인증47
1-3-7이벤트52

CHAPTER2|라라벨아키텍처57
2-1라이프사이클59
2-1-1라라벨애플리케이션실행흐름59
2-1-2엔트리포인트60
2-1-3HTTP커널62
2-1-4라우터63
2-1-5미들웨어64
2-1-6컨트롤러65
2-2서비스컨테이너67
2-2-1서비스컨테이너란?67
2-2-2바인드와리졸브68
2-2-3바인드69
2-2-4리졸브75
2-2-5DI와서비스컨테이너77
2-2-6퍼사드82
2-3서비스프로바이더86
2-3-1서비스프로바이더동작기본87
2-3-2DeferrableProvider인터페이스지연실행89
2-4컨트랙트91
2-4-1컨트랙트기본91
2-4-2컨트랙트를이용한기능대체93

CHAPTER3|애플리케이션아키텍처99
3-1MVC와ADR101
3-1-1MVC101
3-1-2ADR108
3-2아키텍처다루기116
3-2-1프레임워크와아키텍처설계116
3-2-2아키텍처설계의포인트117
3-2-3레이어드아키텍처118
3-2-4레이어드아키텍처이후의세계123

PARTII|실천패턴125
CHAPTER4|HTTP요청과응답125
4-1요청핸들링127
4-1-1요청취득127
4-1-2Request퍼사드128
4-1-3Request객체130
4-1-4폼요청131
4-2밸리데이션135
4-2-1밸리데이션규칙지정방법136
4-2-2밸리데이션규칙137
4-2-3밸리데이션이용140
4-2-4밸리데이션실패처리143
4-2-5규칙커스터마이즈146
4-3응답149
4-3-1다양한응답149
4-3-2리소스클래스를조합한RESTAPI응답패턴155
4-4미들웨어165
4-4-1미들웨어기본165
4-4-2기본제공미들웨어166
4-4-3커스텀미들웨어구현169

CHAPTER5|데이터베이스173
5-1마이그레이션175
5-1-1마이그레이션처리흐름175
5-1-2마이그레이션파일작성176
5-1-3정의기술178
5-1-4마이그레이션실행과롤백183
5-2시더186
5-2-1시더작성186
5-2-2시더클래스이용설정187
5-2-3시딩실행188
5-2-4Faker이용188
5-2-5Factory이용예190
5-3Eloquent193
5-3-1클래스작성193
5-3-2규약과속성194
5-3-3데이터검색및업데이트기본197
5-3-4데이터조작응용200
5-3-5연관성이있는테이블그룹의값을일괄조작한다(릴레이션)205
5-3-6실행된SQL확인207
5-4쿼리빌더210
5-4-1쿼리빌더형식211
5-4-2쿼리빌더얻기211
5-4-3처리대상및내용의특징213
5-4-4쿼리실행215
5-4-5트랜잭션과테이블락217
5-4-6데이터조작기본218
5-5리포지터리패턴220
5-5-1리포지터리패턴개요220
5-5-2리포지터리패턴구현221
5-5-3리팩터링224

CHAPTER6|인증과인가231
6-1세션기반인증233
6-1-1인증지원클래스및그기능233
6-1-2인증처리이해234
6-1-3데이터베이스/세션을이용한인증처리237
6-1-4폼인증적용242
6-1-5인증처리커스터마이즈244
6-1-6비밀번호초기화249
6-2토큰인증252
6-2-1api_token저장용테이블작성253
6-2-2시더를이용한레코드작성255
6-2-3커스텀인증프로바이더작성257
6-2-4토큰인증이용방법263
6-3JWT인증265
6-3-1tymon/jwt-auth설치265
6-3-2tymon/jwt-auth이용준비266
6-3-3tymon/jwt-auth이용267
6-3-4토큰발행268
6-4OAuth클라이언트를이용한인증및인가272
6-4-1Socialite272
6-4-2깃허브OAuth인증273
6-4-3동작확장276
6-4-4OAuth드라이버추가278
6-5인가처리283
6-5-1인가처리이해283
6-5-2인가처리283
6-5-3Blade템플릿을이용한인가처리293

CHAPTER7|이벤트와큐를이용한처리분산297
7-1이벤트299
7-1-1이벤트기본299
7-1-2이벤트작성300
7-1-3이벤트를이용한견고한옵저버패턴303
7-1-4이벤트취소306
7-1-5비동기이벤트를이용한분리패턴307
7-2큐310
7-2-1큐기본310
7-2-2비동기실행드라이버준비(Queue드라이버)311
7-2-3큐사양312
7-2-4큐를이용한PDF파일출력패턴312
7-2-5Supervisor를이용한상주프로그램패턴317
7-2-6손쉬운분산처리패턴321
7-3이벤트와큐를이용한CQRS325
7-3-1CQRS(커맨드쿼리책임분리)325
7-3-2애플리케이션사양326
7-3-3애플리케이션구현준비329
7-3-4리뷰등록기능구현334
7-3-5리뷰작성컨트롤러구현337
7-3-6리스너클래스를이용한엘라스틱서치조작339
7-3-7Command실행과Query구현343

CHAPTER8|콘솔애플리케이션347
8-1Command기초349
8-1-1클로저를이용한Command작성349
8-1-2클래스를이용한Command작성350
8-1-3Command로의입력353
8-1-4Command에서의출력356
8-1-5Command실행358
8-2Command구현361
8-2-1샘플구현사양361
8-2-2Command생성363
8-2-3유스케이스클래스와서비스클래스분리364
8-2-4유스케이스클래스모형작성366
8-2-5서비스클래스구현367
8-2-6유스케이스클래스구현369
8-2-7Command클래스마무리371
8-3배치처리구현375
8-3-1배치처리사양375
8-3-2Command클래스구현377
8-3-3유스케이스클래스구현378
8-3-4Command클래스사양381
8-3-5배치처리로그출력385
8-3-6스케줄태스크를이용한배치처리실행390

CHAPTER9|테스트397
9-1단위테스트399
9-1-1테스트대상클래스399
9-1-2테스트클래스생성401
9-1-3테스트메서드구현404
9-1-4데이터프로바이더활용407
9-1-5예외테스트410
9-1-6테스트전처리및후처리412
9-1-7테스트설정414
9-2데이터베이스테스트417
9-2-1테스트대상테이블과클래스417
9-2-2데이터베이스테스트기초424
9-2-3Eloquent클래스테스트430
9-2-4서비스클래스테스트433
9-2-5목을이용한테스트(서비스클래스)435
9-3WebAPI테스트438
9-3-1WebAPI테스트기능438
9-3-2테스트대상API443
9-3-3API테스트구현450
9-3-4WebAPI테스트의편리한기능456

CHAPTER10|에러핸들링과로그활용463
10-1에러핸들링465
10-1-1에러표시465
10-1-2에러종류465
10-1-3에러핸들링기초466
10-1-4Fluentd활용467
10-1-5예외메시지표시템플릿변경469
10-1-6에러핸들링패턴471
10-2로그활용패턴475
10-2-1로그기본475
10-2-2로그출력설정476
10-2-3엘라스틱서치를이용한커스텀로그드라이버구현479

PARTIII|애플리케이션개발485
CHAPTER11|테스트주도개발실천485
11-1테스트주도개발이란?487
11-1-1가능한작게구현487
11-1-2샘플애플리케이션사양488
11-1-3데이터베이스사양489
11-1-4API엔드포인트491
11-2API엔드포인트작성493
11-2-1애플리케이션작성및사전준비493
11-2-2첫번째테스트493
11-2-3테스트메서드작성내용495
11-2-4최소한의구현498
11-2-5두번째이후의테스트498
11-2-6하나의테스트메서드에서는한가지만검증500
11-2-7테스트코드확인501
11-3테스트용데이터베이스설정505
11-3-1데이터베이스설정505
11-3-2마이그레이션/모델/팩토리508
11-3-3초기데이터입력용시더준비515
11-4데이터베이스테스트517
11-4-1테스트용트레이트이용및초기데이터입력517
11-4-2데이터베이스관련테스트518
11-4-3임시구현을통한빠른테스트520
11-4-4첫번째리팩터링521
11-4-5반환값내용검증521
11-4-6성공하는테스트추가524
11-4-7데이터추가검증525
11-4-8의존테스트수정527
11-4-9밸리데이션테스트528
11-5리팩터링유스케이스531
11-5-1컨트롤러사용531
11-5-2프레임워크표준에맞는리팩터링①534
11-5-3정확한테스트를쓸수없을때의대처방법535
11-5-4프레임워크표준에맞는리팩터링②538
11-5-5서비스클래스분리540

찾아보기544

출판사 서평

라라벨최신버전(8.x)대응&실무개발자들의꼼꼼한설명이돋보이는책!
가볍고기민한모던PHP대세프레임워크,라라벨

대세PHP프레임워크라라벨최신버전을기준으로집필된이책은점점더커지고복잡해지는웹애플리케이션개발을위한새로운설계방법과기술을소개합니다.저자들의오랜실무경험과커뮤니티활동에서쌓은노하우를실전예제를통해아낌없이공개합니다.

모던PHP애플리케이션에서MVC를대신해채택되고있는ADR에대한이해를높여주고,테스트코드를이용한동작검증의기본부터라라벨을이용한테스트주도개발도입시나리오,클래스분할에필요한개념과기법,설계패턴설명,애플리케이션사양에맞는기능확장,에러핸들링과로그수집등운용에꼭필요한노하우가가득합니다.이책만제대로습득해도테스트주도개발,데이터베이스연동법,사용자인증과운용을포함하여PHP기반의웹애플리케이션개발전반에자신감을얻게될것입니다.

이책의대상독자
ㆍ PHP를배우고자하는타언어웹프로그래머
ㆍ 최신라라벨을배우고자하는PHP초보프로그래머
ㆍ 개발을넘어애플리케이션설계를하고싶은PHP중급프로그래머