Top

PHP와 MariaDB를 활용한 웹 애플리케이션 개발 [빠르고 보안성 높은 인터랙티브 웹사이트 제작 지침서]

  • 원서명Building a Web Application with PHP and MariaDB: A Reference Guide (ISBN 9781783981625)
  • 지은이사이 스리니바스 스리파라사(Sai Srinivas Sriparasa)
  • 옮긴이김무항
  • ISBN : 9788960778573
  • 25,000원
  • 2016년 05월 31일 펴냄
  • 페이퍼백 | 280쪽 | 188*235mm
  • 시리즈 : acorn+PACKT

책 소개

소스 파일은 아래 깃허브 페이지에서 내려 받으실 수 있습니다.
(https://github.com/AcornPublishing/php-mariadb)

요약

이 책은 PHP와 MariaDB를 활용하여 빠르고 보안성 높은 인터랙티브 웹 애플리케이션을 제작하기 위한 지침서다. PHP와 MariaDB를 활용한 웹 애플리케이션 학습에 필요한 내용을 군더더기 없이 핵심만 전달해 단기간에 습득할 수 있도록 돕는다. PHP와 MariaDB에 대한 기초부터 REST API와 보안, 성능 최적화 등의 고급 주제까지 빠짐 없이 다루기 때문에, 프로그래밍 입문자부터 고급 개발자에 이르기까지 PHP와 MariaDB를 활용한 웹 애플리케이션을 개발하는 모든 이에게 유용하다. 단순히 이론만을 다루는 것이 아니라, 각 장마다 상세한 예제를 제공하여 초보 개발자도 쉽게 이해할 수 있다.

이 책에서 다루는 내용

■ PHP와 MariaDB를 활용한 기본 및 고급 프로그래밍 기술
■ CRUD 연산, 집합, 필터링, 조인
■ DDL 연산, 저장 프로시저, 저장 루틴, 트리거
■ PHP를 활용한 객체지향 프로그래밍 개념 적용
■ PHP 5.4 및 5.5 최신 기능 숙지
■ 단위 테스트 사용
■ PHP를 활용한 파일 처리 및 로깅
■ 인증 및 접근 제어 목록 관리
■ 성능 향상 및 보안 강화

이 책의 대상 독자

이 책은 다양한 수준의 개발자를 대상으로 한다. 여러 가지 예제와 팁, 추천 사항 등을 담고 있으며, 이를 통해 독자들은 설치 및 설정뿐만 아니라 웹 애플리케이션 배포까지 가능하다. PHP, MariaDB, 아파치 웹서버에 대한 사전지식은 많은 도움이 되지만 꼭 필요한 것은 아니다.

이 책의 구성

1장, ‘CRUD 연산, 정렬, 필터링, 조인’에서는 생성, 조회, 갱신, 삭제 등 기본적인 SQL 연산에 관해 설명한다. 다음 단계로 분류, 필터링, 테이블 조인도 설명한다.

2장, ‘MariaDB와 고급 프로그래밍’에서는 변경과 드롭(drop) 같은 여러 데이터 조작에 관련된 연산을 소개한다. DML 작업에 대해 이해한 다음, 저장 프로시저, 저장 루틴, 트리거와 같은 고급 개념에 대해 알아본다.

3장, ‘PHP 고급 프로그래밍’에서는 단위 테스트, 예외 처리와 같은 고급 프로그래밍 개념을 소개한다. 또한 PHP 5.4와 5.5에서 새롭게 추가된 기능들을 살펴본다.

4장, ‘학생 포털 만들기’에서는 3장까지 소개된 모든 개념을 활용해 학생 포털을 개발한다.

5장, ‘파일 및 디렉토리 사용법’에서는 학생 포털 애플리케이션을 사용해 파일 불러오기, 파일 올리기, 애플리케이션 로깅과 같은 기능을 소개 및 적용한다.

6장, ‘인증 및 접근 제어’에서는 학생 포털 애플리케이션의 인증 및 출입 관리 기능을 소개 및 적용한다.

7장, ‘캐싱’에서는 캐싱 개념을 소개한다. 이후 캐싱의 여러 타입에 대해 논의하며, 각 캐싱 방법은 어떻게 적용하는지 살펴본다.

8장, ‘REST API’에서는 REST 아키텍처의 개념을 소개한 다음, 학생 포털의 REST API 제작 예제를 다룬다.

9장, ‘보안’에서는 웹 애플리케이션의 보안 강화을 위해 아파치, MariaDB, PHP의 보안을 최적화 방법에 대해 알아본다.

10장, ‘성능 최적화’에서는 애플리케이션 확장성을 위한 여러 성능 최적화 기법들을 소개한다.

부록 1, ‘PHP, MariaDB, 아파치 설치’에서는 PHP, MariaDB, 아파치를 설치하고 설정하는 법에 대해 알아본다.

부록 2, ‘PHP 기반 객체지향 프로그래밍’에서는 PHP 기반 객체지향 프로그래밍OOP 개념을 소개한다. 예를 들어, 상속, 캡슐화, 다형성, 추상 클래스 등 여러 가지 객체지향의 특징에 대해 알아본다. 마지막으로 가장 인기 있는 디자인 패턴을 논의하며 마무리한다.

저자/역자 소개

지은이의 말

인터넷 시대에서 웹 애플리케이션 개발은 더 이상 어려운 일이 아니다. 하지만 올바르지 않은 방식으로 웹 애플리케이션을 개발 중인 개발자들이 아직도 많다. 이 책의 목표는 독자들을 초보 프로그래머에서 중급 또는 고급 프로그래머로 만드는 것이다. 이 책은 PHP와 MariaDB의 기본부터 복잡한 주제인 캐싱, 보안, REST API 제작, 성능 최적화를 모두 책임질 참고서다. 안전하면서도 확장성이 있고, 다양한 가입자를 위한 API를 지닌 웹 애플리케이션을 만드는 것이 쉬운 일은 아니다. 하지만 이 책을 통해 학습하면 이러한 과정은 간단하면서도 쉽고, 기억에 남는 경험이 될 것이다.

지은이 소개

사이 스리니바스 스리파라사(Sai Srinivas Sriparasa)

아틀란타에 거주하는 웹 개발자이자 오픈소스 에반젤리스트다. 닥터 오즈(Dr.Oz)의 웹사이트 수석 개발자였으며, 현재 뉴스 디스트리뷰션 네트워크(NDN, News Distribution Network)에서 예측 분석 알고리즘을 개발하고 있다. 미국의 대기업 Sprint Nextel, West Interactive, Apple, SAC Capital에서 개발팀을 이끈 경력이 있다. 전문 분야는 PHP, 파이썬, MySQL, MariaDB, MongoDB, 하둡(Hadoop), 자바스크립트, HTML 5, 반응형 웹 개발, ASP.NET, C#, 실버라이트(Silverlight) 등 여러 분야다. 팩트출판사의 『JavaScript and JSON Essentials』(2013)을 저술했다.

옮긴이의 말

지금 이 서문을 읽고 있는 여러분이 프로그래밍 입문자든 경험 많은 프로그래머든, 프로그래밍 학습 또는 프로젝트에 필요한 지식을 얻기 위해 700페이지가 넘는 책을 구매하고, 삼분의 일도 채 읽지 못하고 책장에 진열해놓은 경험이 있을 것이다. 결국 해당 프로그래밍 언어 학습을 포기하거나 필요한 지식을 인터넷을 통해 얻었을 것이다.
이 책을 간단히 한 문장으로 정리하면, PHP와 MariaDB를 이용하여 제대로 된 웹 애플리케이션을 만들기 위한 핵심 지식을 전달하는 책이다. 그렇다고 웹 애플리케이션 제작에 있어 중요한 주제가 하나라도 빠져 있다고 생각해서는 안 된다. 이 책은 빠르고, 보안성이 높은 인터랙티브 웹 애플리케이션을 만들기 위해 필요한 모든 주제를 포함한다.
1장부터 3장은 기본적인 SQL문 사용법부터 MariaDB와 PHP 고급 프로그래밍 기법에 이르기까지 웹 애플리케이션 제작에 필요한 핵심 프로그래밍 지식을 다룬다. 4장은 MVC 모델을 소개하며, 간단한 학생 포탈을 만들어 본다. 5장에서 웹페이지를 통해 사용자의 데이터를 가져오고, 로그를 남기는 방법을 배운다. 6장은 웹 애플리케이션 제작에 필수적인 인증과 접근 제어에 대해 다룬다. 7장은 웹 애플리케이션의 사용자가 늘어났을 때를 대비하기 위해, 웹 애플리케이션 성능에 필수적인 캐싱을 활용하는 법을 알아본다. 8장은 다른 애플리케이션이 여러분의 웹 애플리케이션과 연동하는 데 필요한 REST API를 어떻게 제공해야 하는지 살펴본다. 9장과 10장은 아파치 서버와 MariaDB, PHP의 보안성을 강화하는 법과 성능을 최적화하는 방법에 대해 다룬다.
각 장에 대한 소개에서 알 수 있듯이, 이 책은 프로그래밍 입문자부터 고급 개발자 모두를 대상으로 한다. 프로그래밍 입문자에게는 웹 애플리케이션을 제작하기 위해 필요한 지식을 군더더기 없이 핵심만 전달한다. 또한 단순히 이론만 전달하는 것이 아니라 모든 주제에 대해 예제를 제공함으로써 프로그래밍 입문자가 쉽게 개념을 이해할 수 있도록 돕는다. 고급 개발자에게는 기초를 다시금 다질 수 있도록 해줄 뿐 아니라, 성능이 최적화된 보안성이 높은 인터랙티브 웹 애플리케이션을 개발하기 위한 지침을 전달한다.
개인적으로 프로그래밍을 학습하는 데 있어 가장 효과적인 방법은 수백 페이지가 되는 백과사전과 같은 책을 정복하기보다는 필요한 주제의 핵심을 학습하여 근간이 되는 기초를 명확히 이해하고, 직접 애플리케이션 개발을 시작해 필요한 내용들을 인터넷을 통해 찾아가며 애플리케이션을 만들어보는 것이라고 생각한다. 그러한 학습 방법에 있어, 이 책은 더할 나위 없는 지침서가 될 것이라고 확신한다.

옮긴이 소개

김무항

컴퓨터 공학을 전공하고, 보안, IPTV, 위치 기반 서비스 등 다양한 분야에서 연구, 개발을 수행했다. 에이콘출판사에서 펴낸 『드루팔 사용하기』(2013)와 『프로그래머처럼 생각하기』(2014)를 번역했으며, 현재는 보안회사에서 테크니컬 에반젤리스트로 활동 중이다.

목차

목차
  • 1장. CRUD 연산, 정렬, 필터링, 조인
    • 문자열 데이터타입
    • 숫자 데이터타입
    • 날짜 데이터타입
    • students 테이블
      • courses 테이블
      • students_courses 테이블
    • 데이터 삽입
    • 데이터 조회
    • 데이터 정렬
    • 데이터 필터링
    • 데이터 갱신
    • 데이터 삭제
    • 조인
    • 요약

  • 2장. MariaDB와 고급 프로그래밍
    • 기존 테이블 성능 향상
    • 저장 프로시저 활용
    • 저장 루틴 활용
    • 트리거 활용
    • 요약

  • 3장. PHP 고급 프로그래밍
    • PHP 5.4와 PHP 5.5에 포함된 새로운 기능
      • 개선된 배열 선언
      • 배열 역참조
      • foreach 문에서 list( ) 함수 사용
      • 클로저에서 $this 사용 가능
      • 인스턴스 생성 시 클래스 멤버 접근
      • 제너레이터
      • 트레이트
      • 예외 처리 시 finally 블록 추가
    • 단위 테스트
      • PHPUnit 설치
    • MariaDB 사용하기
      • PHP - mysqli
    • PHP – PDO
    • 요약

  • 4장. 학생 포털 만들기
    • 애플리케이션의 기본적인 부분 설정하기
      • URL 재작성 설정
    • MVC 설정
    • 학생 추가
    • 모든 학생 나열하기
    • 코스 추가
    • 모든 코스 나열
    • 학생을 코스에 등록하기
    • 모든 등록 정보 확인
    • 요약

  • 5장. 파일 및 디렉토리 처리
    • 데이터 가져오기
    • 데이터 내보내기
    • 로그 기록
    • 요약

  • 6장. 인증 및 접근 제어
    • 인증
    • 접근 제어
    • 사용자 역할
    • 요약

  • 7장. 캐싱
    • 캐싱이란
    • 데이터베이스 캐싱
    • 애플리케이션 캐싱
    • 고급 캐싱 기법
    • 요약

  • 8장. REST API
    • REST란
    • XML 피드 생성
    • JSON 피드 생성
    • 요약

  • 9장. 보안
    • 아파치 웹서버 보안 강화
      • 서버 정보 숨기기
      • 서버 설정 제한
    • MariaDB 보안 강화
      • 데이터베이스 패스워드 설정
      • 접근을 제한하기 위한 뷰 생성
    • 사용자 생성 및 접근 권한 부여
    • PHP 보안 강화
    • 요약

  • 10장. 성능 최적화
    • 아파치 웹서버 성능 최적화
      • 사용하지 않는 모듈 비활성화
      • 압축 사용
      • 캐싱
    • MariaDB 성능 최적화
      • 데이터 조회 시 추천 사항
      • 쿼리 실행 과정 이해하기
      • 쿼리 최적화와 인덱싱
    • PHP 성능 최적화
    • CDN, 리버스 프록시, 데이터베이스 복제
    • 요약

  • 부록 A. PHP, MariaDB, 아파치 설치
  • 부록 B. PHP 기반 객체지향 프로그래밍

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안