본문 바로가기

도서 소개

라라벨로 배우는 실전 PHP 웹 프로그래밍

이 책은 현재 절판입니다. 그간 읽어주신 독자들께 감사드립니다.

 

2017년 세종도서 학술분야 우수도서 선정!

풀 스택 데브옵스 웹 개발자를 지향하는 라라벨 입문과 실전 프로젝트!

입문에서 중급까지, 한 권으로 배우는 단계별 라라벨 학습!

 

출판사 제이펍

저자명 김주원

출판일 2016년 11월 23일

페이지 548쪽

시리즈 (없음)

판 형 (188*245*22)

제 본 무선(soft cover)

정 가 30,000원

ISBN 979-11-85890-62-3 (93000)

키워드 웹 프로그래밍 / 웹 개발 / 라라벨 / PHP / 풀 스택 / 데브옵스 / HTTP / 프레임워크

분야 웹 프로그래밍 / PHP

 
관련 사이트
관련 포스트
 
관련 시리즈
■ (없음)
 
관련 도서
 
관련 파일 다운로드
 
 
 
 
강의보조 자료
교재로 채택하신 분들은 메일을 보내주시면 아래의 자료를 보내드리겠습니다: jeipubmarketer@gmail.com
■ 본문의 그림과 표
 
샘플 PDF(차례, 머리말, 베타리더 후기, 들어가며, 1장 라라벨 설치, 2장 전역 환경 설정)
 
정오표 페이지
 
도서구매 사이트(가나다순)

 

도서 소개

풀 스택 데브옵스 웹 개발자를 지향하는 라라벨 입문과 실전 프로젝트!

입문에서 중급까지, 한 권으로 배우는 단계별 라라벨 학습!

 

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