Top

Learning PHP, MySQL & JavaScript 한국어판 [소셜 웹 개발자를 위한 3대 핵심 기술 PHP, MySQL, 자바스크립트]

  • 원서명Learning PHP, MySQL, and JavaScript: A Step-By-Step Guide to Creating Dynamic Websites (ISBN 9780596157135)
  • 지은이로빈 닉슨
  • 옮긴이황진호
  • ISBN : 9788960772199
  • 35,000원
  • 2011년 08월 17일 펴냄
  • 페이퍼백 | 656쪽 | 188*235mm
  • 시리즈 : 웹 프로페셔널

판매처

개정판

책 소개

이 책은 빠른 시일 내에 웹 서버의 구축부터 웹을 구성하는 핵심 기술인 PHP와 MySQL, 자바스크립트를 자세히 배우려는 독자를 위해서 쓰여졌다. 기술에 대한 문법과 함께 사용 예제가 있어 단시간 안에 실제로 사용할 수 있는 웹 페이지를 손쉽게 구성할 수 있다. 마지막 부분에서는 이 책에서 소개된 모든 내용을 아우르는 예제로서, 소셜 네트워크 사이트를 실제로 구축해 볼 수 있는 내용이 들어 있다. 보안에 관한 내용뿐만 아니라, 기술적인 사항도 자세히 설명하기 때문에 모든 기술을 연동해 익히는 데 확실히 도움이 된다.


[ 소개 ]

웹과 웹 2.0에 기반한 기술의 훌륭한 지침서다. 읽기 편하고 쉽게 구성되어 즐기면서 읽고, 즐기면서 배울 수 있는 책이다.
- 파스칼 보르기노 / 야후의 데이터베이스 설계자

이 책은 핵심적인 웹 애플리케이션 기술 이상을 제공한다. 잘 설명된 예제를 통해 디자인 분야 초심자에게 사용자 측과 서버 측 모두에서 안전하고 관리하기 쉬운 사이트를 만드는 방법을 알려준다.
- 앨런 솔리스 / 웹 애플리케이션 디자이너

프로그래밍 경험이 부족하더라도 HTML을 안다면, 어떻게 PHP와 MySQL, 자바스크립트를 사용하여 즉각적으로 반응하고, 데이터에 기반한 웹 사이트를 만드는지 쉽게 배울 수 있다. 『Learning PHP, MySQL & JavaScript 한국어판』은 세 가지 기술을 따로 설명한 후에, 각 기술을 조합하는 방법을 보여줄 뿐만 아니라 객체와 XHTML, 쿠키, 세션 관리 등 중요한 웹 프로그래밍의 개념도 소개한다.

이 책에서는 PHP와 MySQL 조합을 통해 동적인 데이터와 사용자 인터랙션을 아우르는 웹사이트를 구축하는 쉽고 빠른 방법을 알려준다. 리치 인터넷 애플리케이션을 생성하기 위해 자바스크립트를 추가하는 방법도 배우게 될 것이다. 또한, 책에서 기술한 요소를 바탕으로 소셜 네트워크 플랫폼 예제를 만들어보고 각자 실력을 검증해 볼 수 있는 연습문제도 제공한다.


[ 이 책에서 다루는 내용 ]

■ PHP의 필수 항목과 객체지향 프로그래밍의 이해
■ 데이터베이스 구조부터 복잡한 쿼리에 이르는 MySQL 완벽 숙달
■ HTML 폼과 특징을 통합해 PHP와 MySQL로 웹 페이지 구성
■ 자바스크립트 함수와 이벤트 처리부터 문서 객체 모델에 접근하는 방법
■ Smarty 웹 템플릿 시스템, PEAR 프로그램 저장소, 야후 사용자 인터페이스(YUI) 라이브러리 등 라이브러리와 패키지 사용법
■ Ajax 호출을 통해 동적 웹사이트를 만드는 방법
■ 파일과 이미지 업로드와 조작, 사용자 입력 검증, 애플리케이션 보호


[ 이 책의 대상 독자 ]

이 책은 효과적이고 동적인 웹 사이트를 어떻게 만드는지 배우길 원하는 독자를 대상으로 한다. 정적 웹 사이트는 만들 수 있지만 기량을 좀 더 끌어올리려는 웹 마스터나 웹 디자이너뿐만 아니라 고등학생과 대학생, 대학원생, 독학을 원하는 사람들도 손쉽게 익힐 수 있다.

사실, Ajax로 알려진 웹 2.0 기술에 뒤에 숨은 기본을 배울 준비가 된 사람이라면 누구나 PHP와 MySQL, 자바스크립트 등 세 가지 핵심 기술에 대한 기초 교육을 철저히 받을 것이다.


[ 이 책의 구성 ]

이 책의 각 장은 특별한 순서로 작성됐다. 우선, PHP, MySQL, 자바스크립트 세 가지 핵심 기술을 모두 소개한 후에 웹 개발 서버를 설치하는 것을 살펴본 다음 예제를 다룬다.

그 다음 부분에서는 PHP 프로그래밍 언어의 문법과 배열, 함수, 객체지향 프로그램의 기초를 포괄하는 기본을 배운다.

앞에서 배운 PHP를 바탕으로 MySQL 데이터베이스 시스템의 구조부터 복잡한 쿼리를 생성하는 것까지 소개한다.

그 후에 폼 등의 HTML 특징을 통합하여, 동적인 웹 페이지를 만들어기 위해 PHP와 MySQL을 조합하는 방법을 배운다. Smarty 템플릿을 사용해 웹 개발의 시간을 단축할 수 있는 방법도 살펴본다.

다음 세 개 장에서는 다양하고 유용한 함수와 쿠키와 세션뿐만 아니라 높은 수준의 보안을 유지하는 방법을 배움으로써 PHP와 MySQL 개발의 핵심적이고도 실용적인 면을 낱낱이 살펴본다.

그 다음 네 개 장에서는 간단한 함수에서 문서 오브젝트 모델(Document Object Model)에 접근하는 이벤트 처리까지 자바스크립트와 브라우저 검증과 오류 처리에 대한 기초를 배운다. 세 가지 핵심 기술의 이해를 바탕으로 보이지 않는 Ajax 호출을 만들고 웹 사이트를 매우 동적인 환경으로 만드는 방법을 살펴본다.

마지막으로 배운 내용을 모두 합쳐서 완벽히 동작하는 소셜 네트워크 웹 사이트를 구성하는 PHP 프로그램의 완전한 세트를 만든다.

책을 읽으면서 좋은 프로그래밍 습관을 키우는 데 있어서 많은 충고와 조언, 발견하기 어려운 프로그래밍 오류를 찾아내고 해결하는 데 도움을 줄 팁을 볼 수 있을 것이다. 책에서 다루는 주제에 관해 자세한 내용을 찾아 볼 수 있는 웹 사이트 링크가 많이 제공된다.

저자/역자 소개

로빈 닉슨 Ronbin Nixon
1980년대 초반부터 컴퓨터에 관해 일과 집필을 병행했다(그의 첫 번째 컴퓨터는 엄청나게 큰 4KB의 램을 장착한 Tandy TRS 80 모델 1이었다!). 이 기간 동안 영국의 최고 컴퓨터 잡지에 500개가 넘는 기사를 기고했다. 『Learning PHP, MySQL & JavaScript 한국어판』은 그의 세 번째 책이다.
로빈은 몸이 불편한 사람들을 위해 체셔(Cheshire) 주택 단지에서 컴퓨터 관련 일을 시작했다. 장애인들이 거주하는 각 집에 컴퓨터 방을 설치해주고, 몸이 불편한 장애인들이 새로운 기술을 사용할 수 있도록 하드웨어와 소프트웨어를 평가하고 맞춤 개발하는 일을 맡았다. 개중에는 입이나 손가락으로 조작하는 스위치 등으로 동작하는 기술도 있었다.
장애인에 대한 자신의 업무 성과를 컴퓨터 잡지에 기고하기도 하고, 유명 IT 잡지의 발행인으로 일하며 편집과 홍보, 표지 편집 등 여러 가지 역할을 역임했다.
1990년대 인터넷이 발전하기 시작할 무렵 로빈은 웹 사이트를 개발하는 사업을 시작했다. 그 중에서 전 세계에서 처음으로 음악 저작권자들에게 승인을 받고 방송을 송출한 인터넷 라디오 방송국은 영국의 텔레비전과 라디오 네트워크 등 여러 뉴스에 특집 기사로 실렸다. 또한 로빈은 음악을 듣는 중에도 웹서핑을 계속할 수 있도록 로빈은 처음으로 알려진 팝업창을 개발하기도 했다.
로빈은 아내 줄리와 간호사, 다섯 명의 아이들과 함께 영국의 남쪽 해안에 산다. 그곳에서 몸이 불편한 아이들 세 명을 맡아서 양육할 뿐만 아니라 기술 저자로서 재택근무를 한다.


[ 옮긴이의 말 ]

현재 가장 많이 개발되는 애플리케이션의 형태는 단연 웹앱(웹 애플리케이션)이다. 많은 사람이 웹 페이지를 단순한 페이지가 아닌 애플리케이션을 구동할 수 있는 웹앱의 형태로 본다. 아마도 스마트폰의 혁명이 가장 큰 이유가 됐겠지만 윈도우와 리눅스, 맥 OS, 심지어 iOS와 안드로이드에 이르기까지 웹 브라우저가 있는 곳이라면 웹이 모두 아우를 수 있다고 믿는다. 하나의 웹앱만 개발해 놓으면 모든 단말에서 사용할 수 있는데 어느 개발자가 마다할 것인가?

이러한 대세에 맞춰 이 책은 웹 서버와 웹 페이지를 구성하는 핵심 기술 중에서 가장 널리 사용되면서 손쉽게 구할 수 있는 기술을 소개한다. 동적인 웹 페이지를 구성할 수 있는 PHP, 사용자의 데이터를 저장할 수 있는 MySQL, 사용자의 웹 페이지에서 이벤트를 처리하는 자바스크립트를 모두 소개한다.

우선, 동적인 웹 페이지를 생성하기 위한 PHP 기술에 대해 알기 쉽게 설명한 기본 문법과 사용 방법, 사용 예까지 모두 자세히 설명한다. 이 책에 나온 순서대로 잘 따라한다면 훌륭한 동적 웹 페이지를 자유자재로 구성할 수 있게 될 것이다.

또한 사용자에게 보여주거나, 사용자가 직접 입력한 정보를 저장하는 데이터베이스인 MySQL을 소개한다. MySQL은 공짜로 쓸 수 있는 데이터베이스 중에서 가장 강력한 기능을 제공한다. 손쉽게 데이터베이스를 구성할 수 있는 여러 가지 툴이 있어서 개발 시간이 상당히 단축되며, 완성도까지 높여준다. 이 책에서는 MySQL에 직접 들어가서 조작할 때 사용하는 SQL 문법과 함께 예제를 쉽게 따라 하며 익힐 수 있는 형태로 제공한다.

마지막으로, 그야말로 가장 ‘핫한’ 프로그래밍 언어 자바스크립트를 소개한다. 자바스크립트는 오랜 역사 속에서 기억되던 기능적인 프로그래밍 언어의 영역을 확대했다고 할 수 있다. 선언적인 언어의 특성도 그대로 갖춰서 익히기도 쉽다. 하지만, 문법과 사용법, 웹 페이지와의 연동에 대해서는 많은 부분을 익히고 연습해야 한다. 특히, 사용자의 웹 페이지를 다시 불러오지 않고, 데이터를 처리할 수 있는 Ajax 기술은 많은 가능성을 제시한다. 이 책에서는 예제를 통해 이런 가능성을 자세히 설명한다.

바야흐로 웹의 시대다. 웹의 시대에 사는 사람이라면 전문적으로 웹을 개발하는 개발자가 아니더라도, 컴퓨터와 관련된 일을 하면 웹 기술과 관련된 일은 꼭 발생한다. 가령, 요즘은 어떤 시스템을 개발하든지 가시적인 인터페이스를 만들 때는 하나의 플랫폼에서만 돌아가는 스탠드얼론(stand-alone) 애플리케이션보다는 웹과 연동해서 언제 어디서든 접근할 수 있게 만든다.

이 책에서 제공하는 기술만 완전히 익히면, 웹 프로그래머로서의 기본은 모두 갖춘 것이라고 할 수 있다. 이 책을 번역한 역자로서 궁극적으로 바라는 바는, 책에서 제공하는 소셜 네트워크 웹 사이트 예제를 더욱 발전시켜, 본인 스스로 소셜 네트워크를 구성하는 웹을 만들고, 마크 주커버거가 만든 페이스북과 정면 대결해보는 상상을 해보는 것도 많은 자극이 될 것이다.

웹 개발이 당장 필요하거나, 미리미리 대세를 앞질러서 배우려는 독자에게 이 책을 강력히 권한다. 한국에서 마크 주커버거 같은 소셜 네트워크의 귀재가 나오기를 기대해 본다.


[ 옮긴이 소개 ]

황진호
IT 경력은 미국에서 시작됐다. 석사과정을 마치고 1년여 동안 미국의 연구기관에서 방문 연구원으로 재직했다. 미국에서 유명 통신회사의 시스템을 연구/개발하는 몇 가지 프로젝트를 잘 마무리하고, 한국으로 돌아와 현재의 POSCO ICT(구 포스데이타)에서 통신 시스템 소프트웨어 개발자로 3년 동안 근무했다. 현재는 미국의 조지 워싱턴 대학교의 컴퓨터 사이언스 학과에서 박사과정을 밟는 중이며 검색 시스템, 스마트폰 앱 등과 관련해 여러 과제를 진행 중이다.

목차

목차
  • 1장 역동적인 웹 컨텐츠
    • HTTP와 HTML: 버너스 리의 기본 개념
      • 요청/응답 절차
    • PHP, MySQL, 자바스크립트가 뛰어난 이유
      • PHP
      • MySQL
      • 자바스크립트
    • 아파치 웹 서버
    • 오픈 소스
    • 정리
    • 자가 진단 문제
  • 2장 개발 서버 설치
    • WAMP, MAMP, LAMP는 무엇인가?
    • 윈도우에 WAMP 설치하기
      • 설치 시 오류 해결
      • 설치 후 테스트
      • WAMP를 대체 가능한 방법
    • 맥 OS X에 MAMP 설치하기
      • 최종 수정 사항
      • MAMP를 대체 가능한 방법
    • 리눅스에 LAMP 설치하기
    • 원격으로 접속하기
      • 로그인
      • FTP 사용하기
    • 프로그램 편집기 사용하기
    • 통합개발환경 사용하기
    • 자가 진단 문제
  • 3장 PHP 소개
    • HTML 내부에 PHP 포함
      • PHP 파서 호출
    • 이 책의 예제
    • PHP의 구조
      • 주석
      • 기본 문법
      • 변수의 이해
      • 연산자
      • 변수 대입
      • 다중 라인 명령어
      • 변수 입력
      • 상수
      • echo와 print 명령어의 차이점
      • 함수
      • 변수 범위
    • 자가 진단 문제
  • 4장 PHP의 표현식과 흐름 제어
    • 표현식
      • 문자 형식과 변수
  • 연산자
    • 연산자 우선순위
    • 결합성
    • 관계형 연산자
  • 조건문
    • If 문
    • else 문
    • elseif 문
    • switch 문
    • ? 연산자
  • 반복문
    • while 문
    • do...while 문
    • for 반복문
    • 반복문 빠져나가기
    • continue 문
  • 암묵적 형변환과 명백한 형변환
  • PHP의 동적 링킹
    • 동적 링킹 동작
  • 자가 진단 문제
  • 5장 PHP 함수와 객체
    • PHP 함수
      • 함수 정의
      • 변수 반환
      • 배열 반환
      • 참조로 전달
      • 전역 변수 반환
      • 변수 범위 다시 살펴보기
    • 파일 포함과 요구
      • include문
      • include once
      • require와 require once
    • PHP 버전 호환성
    • PHP 객체
      • 전문 용어
      • 클래스 정의
      • 객체 생성
      • 객체 접근법
      • 생성자
      • 메소드 작성법
      • 속성 선언
      • 상수 선언
      • PHP 5의 속성과 메소드
      • 상속
    • 자가 진단 문제
  • 6장 PHP 배열
    • 기본 접근법
      • 배열의 숫자 인덱스
      • 연관 배열
      • array 키워드를 사용한 대입법
    • foreach...as 루프
    • 다차원 배열
    • 배열 함수의 사용
      • is array()
      • count()
      • sort()
      • shuffle()
      • explode()
      • extract()
      • compact()
      • reset()
      • end()
    • 자가 진단 문제
  • 7장 실용적인 PHP
    • printf
      • 자릿수 설정
      • 문자열 채우기
      • sprintf
    • 날짜와 시간 함수
      • 날짜 상수
      • checkdate
    • 파일 처리
      • 파일이 있는지 검사
      • 파일 생성
      • 파일 읽기
      • 파일 복사
      • 파일 이동
      • 파일 삭제
      • 파일 갱신
      • 다중 접근으로부터 파일 잠금
      • 전체 파일 읽기
      • 파일 업로드
    • 시스템 콜
      • XHTML
      • XHTML의 이점
      • XHTML 버전
      • HTML과의 차이점
      • HTML 4.01 문서 유형
      • XHTML 1.0 문서 유형
      • XHTML 검증
    • 자가 진단 문제
  • 8장 MySQL 소개
    • MySQL 기본
    • 데이터베이스 용어 정리
      • 커맨드 라인으로 MySQL 접근
      • 커맨드 라인 시작하기
      • 커맨드 라인 인터페이스
      • MySQL 명령어
      • 데이터 타입
    • 인덱스
      • 인덱스 생성
      • MySQL 데이터베이스 쿼리하기
      • 테이블 조인
      • 논리 연산자 사용하기
    • MySQL 함수
    • phpMyAdmin으로 MySQL 접근
      • 윈도우 사용자
      • 맥 OS X 사용자
      • 리눅스 사용자
      • phpMyAdmin 사용
    • 자가 진단 문제
  • 9장 MySQL 정복하기
    • 데이터베이스 디자인
      • 기본 키(관계형 데이터베이스의 키)
    • 정규화
      • 첫 번째 정규 형식
      • 두 번째 정규 형식
      • 세 번째 정규 형식
      • 정규형을 사용하지 않는 경우
    • 관계
      • 일대일
      • 일대다
      • 다대다
      • 데이터베이스와 익명성
    • 트랜젝션
      • 트랜잭션 저장 엔진
      • BEGIN
      • COMMIT
      • ROLLBACK
    • EXPLAIN
      • 백업과 복구
      • mysqldump
      • 백업 파일 생성
      • 백업 파일로부터 복구
      • CSV 포맷으로 데이터 덤프 하기
      • 백업 계획
    • 자가 진단 문제
  • 10장 PHP를 사용해 MySQL 접근
    • PHP로 MySQL 데이터베이스 쿼리
      • 절차
      • 로그인 파일 생성
      • MySQL 연결
    • 실용적인 예제
      • $ POST 배열
      • 기록 지우기
      • 폼 디스플레이
      • 데이터베이스 쿼리
      • 프로그램 실행
    • 실용적인 MySQL
      • 테이블 생성
      • 테이블 묘사
      • 테이블 삭제
      • 데이터 추가
      • 데이터 추출
      • 데이터 갱신
      • 데이터 지우기
      • AUTO INCREMENT 사용
      • 쿼리 추가 실행
      • SQL 인젝션 막기
      • HTML 인젝션 막기
    • 자가 진단 문제
  • 11장 폼 처리
    • 폼 만들기
    • 제출된 데이터 추출
      • 옛날 방법에 의지하는 register globals
      • 기본값
      • 입력 형식
      • 텍스트 상자
      • 텍스트 영역
      • 체크상자
      • 라디오 버튼
      • 숨겨진 필드
      • Select
      • Label
      • 입력 보안 처리
    • 예제 프로그램
    • 자가 진단 문제
  • 12장 Smarty로 템플릿 만들기
    • 왜 Smarty 인가?
    • 설치
    • 스크립트 생성
    • 템플릿 생성
    • 실용적인 예제
    • 자가 진단 문제
  • 13장 쿠키와 세션, 인증
    • PHP에서 쿠키
      • 쿠키 설정
      • 쿠키 추가
      • 쿠키 삭제
    • HTTP 인증
      • 계정 이름과 암호 저장
      • 암호 보호
    • 세션
      • 세션 시작
      • 세션 끝내기
      • 세션 보안
    • 자가 진단 문제
  • 14장 자바스크립트 살펴보기
    • 자바스크립트와 HTML 텍스트
      • 문서 제목에 스크립트 사용
      • 오래된 비표준 브라우저
      • 자바스크립트 파일 포함
      • 자바스크립트 오류 디버깅
    • 주석
    • 세미콜론
    • 변수
      • 문자열 변수
      • 숫자형 변수
      • 배열
    • 연산자
      • 산술 연산자
      • 대입 연산자
      • 비교 연산자
      • 논리 연산자
      • 변수 증가와 감소
      • 문자열 연결
      • 이스케이프 문자
    • 변수 입력
    • 함수
    • 전역 변수
      • 지역 변수
    • 문서 오브젝트 모델
      • 비호환 브라우저
      • DOM
    • 자기 진단 문제
  • 15장 자바스크립트의 표현식과 흐름 제어
    • 표현식
      • 문자 형식과 변수
    • 연산자
      • 연산자 우선순위
      • 결합성
      • 관계형 연산자
    • with 문
    • onError
    • try...catch
    • 조건문
      • if 문
      • switch 문
      • 연산자
    • 반복문
      • while 루프
      • do...while 루프
      • for 루프
      • 반복문 빠져나오기
      • continue 문
    • 명백한 형 변환
    • 자가 진단 문제
  • 16장 자바스크립트의 함수, 오브젝트, 배열
    • 자바스크립트 함수
      • 함수 정의
      • 값 반환
      • 배열 반환
    • 자바스크립트 오브젝트
      • 클래스 정의
      • 오브젝트 생성
      • 오브젝트 접근
      • prototype 키워드
    • 자바스크립트 배열
      • 숫자형 배열
      • 연관 배열
      • 다중 배열
      • 배열 메소드
    • 자가 진단 문제
  • 17장 자바스크립트와 PHP 검증, 오류 처리
    • 자바스크립트로 사용자 입력 검증하기
      • .html 문서 검증(첫 번째)
      • .html 문서 검증(두 번째)
    • 정규 표현식
      • 메타 문자로 매칭
    • 난해한 문자 매칭
    • 괄호로 그룹 만들기
    • 문자 클래스
    • 범위 표시
    • 부정(negation)
    • 몇 가지 복잡한 예제
    • 메타 문자 정리
    • 일반 변경자
    • 자바스크립트에 정규 표현식
    • PHP에 정규 표현식
  • PHP 검증 후에 폼 다시 출력하기
  • 자가 진단 문제
  • 18장 Ajax
    • Ajax는 무엇인가?
    • XMLHttpRequest
      • 첫 번째 Ajax 프로그램
      • POST 대신 GET 사용
      • XML 요청 보내기
    • 자가 진단 문제
  • 19장 Ajax와 그 이상을 위한 YUI
    • 프레임워크 선택
    • YUI
      • 압축된 버전
      • Ajax에 YUI 사용
    • YUI의 여러 가지 사용법
      • 간단한 YUI 달력
    • 자가 진단 문제
  • 20장 모두 종합
    • 소셜 네트워크 사이트 설계
      • 제3자의 애드온에 관해
    • 웹 사이트에서
    • rnfunctions.php
      • 함수
    • rnheader.php
    • rnsetup.php
    • index.php
    • rnsignup.php
      • 계정 이름 가용성 검사
    • rnsignup.php (YUI 버전)
    • rncheckuser.php
    • rnlogin.php
    • rnprofile.php
      • ‘About Me’ 텍스트 추가
      • 프로파일 이미지 추가
      • 이미지 처리
      • 현재 프로파일 출력
    • rnmembers.php
      • 사용자 프로파일 보기
      • 친구 추가와 삭제
      • 모든 멤버 나열
    • rnfriends.php
    • rnmessages.php
    • rnlogout.php
  • 부록 A 각 장의 문제 해답
  • 부록 B 온라인 자료
  • 부록 C MySQL의 FULLTEXT 불용어
  • 부록 D MySQL 함수
  • 도서 오류 신고

    도서 오류 신고

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

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

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