Learning PHP, MySQL, JavaScript & CSS, Second Edition 한국어판 [동적인 소셜 웹 개발을 위한 4가지 핵심 기술]
- 원서명Learning PHP, MySQL, JavaScript, and CSS: A Step-by-Step Guide to Creating Dynamic Websites (ISBN 9781449319267)
- 지은이로빈 닉슨
- 옮긴이황진호
- ISBN : 9788960774421
- 40,000원
- 2013년 06월 28일 펴냄
- 페이퍼백 | 704쪽 | 188*235mm
- 시리즈 : 웹 프로페셔널
판매처
개정판책 소개
소스 파일은 아래 깃허브 페이지에서 내려 받으실 수 있습니다.
(https://github.com/AcornPublishing/php-mysql-javascript)
웹서버의 구축부터 웹을 구성하는 핵심 기술인 PHP와 MySQL, 자바스크립트, CSS를 자세하고 신속하게 익힐 수 있는 책이다. 각 기술에 대한 문법과 함께 활용 예제가 들어있으므로, 독자들은 단시간 안에 웹 사이트를 손쉽게 구성하는 방법을 배울 수 있다. 또한, 책에서 소개된 모든 내용을 아우르는 소셜 네트워크 사이트를 구축하는 실전 예제도 들어있다. 실전 소셜 웹 예제에서는 보안 이슈뿐만 아니라, 기술적인 세부사항도 설명하기 때문에, 모든 기술을 연동하여 익히는 데 큰 도움이 된다.
[ 이 책에서 다루는 내용 ]
■ PHP의 필수 개념과 기초 객체지향 프로그래밍
■ 데이터베이스 구조부터 복잡한 쿼리까지 다루는 MySQL
■ 폼과 다른 HTML 기능을 결합하여 PHP와 MySQL로 웹페이지 구성
■ 기능과 이벤트 핸들링부터 문서 객체 모델(DOM)까지 자바스크립트의 핵심
■ 웹페이지 서식 설정과 스타일링을 위한 CSS의 기본
■ Ajax 호출을 사용하여 웹사이트를 매우 동적인 환경에서 구동하는 방법
■ 파일과 이미지 업로드 및 수정, 사용자 입력 검증, 앱 보안
■ 책에서 설명한 모든 기술을 접목한 소셜 네트워크 예제
[ 이 책의 대상 독자 ]
이 책은 효과적이고 동적인 웹사이트를 어떻게 만드는지 배우길 원하는 독자를 대상으로 한다. 정적인 웹사이트는 만들 수 있지만 기량을 좀더 끌어올리려는 웹마스터나 웹디자이너뿐만 아니라 고등학생과 대학생, 대학원생, 독학을 원하는 사람들도 손쉽게 익힐 수 있다.
사실, Ajax로 알려진 웹 2.0 기술 뒤에 숨은 기본을 배울 준비가 된 사람이라면 누구나 PHP와 MySQL, 자바스크립트, CSS 등 4가지 핵심 기술에 대한 기초 지식을 철저히 쌓을 수 있다.
이 책을 보려면 HTML의 기본을 이해하고, 적어도 간단하고 정적인 웹사이트를 작성할 수 있어야 한다. PHP이나 MySQL, 자바스크립트, CSS에 관한 지식이 있어야 하는 것은 아니지만, 알고 있다면 더 빨리 배울 수 있다.
[ 이 책의 구성 ]
이 책의 각 장은 구체적인 순서로 작성됐다. 우선, 4가지 핵심 기술인 PHP, MySQL, 자바스크립트, CSS를 모두 소개하고, 그 후 웹 개발 서버 설치를 살펴본 다음 예제를 다룬다.
그 다음 부분에서는 PHP 프로그래밍 언어의 문법과 배열, 함수, 객체지향 프로그래밍의 기초를 포괄하는 기본을 배운다.
앞에서 배운 PHP를 바탕으로 MySQL 데이터베이스 시스템의 구조부터 복잡한 쿼리를 생성하는 것까지 소개한다.
그 후에 폼 등의 HTML 기능을 결합함으로써, 동적인 웹페이지를 만들기 위해 PHP와 MySQL을 조합하는 방법을 배운다.
다음 세 개 장에서는 다양하고 유용한 함수와 쿠키와 세션뿐만 아니라 높은 수준의 보안을 유지하는 방법을 배움으로써 PHP와 MySQL 개발의 핵심적이고도 실용적인 면을 낱낱이 살펴본다.
그 다음 네 개 장에서는 간단한 함수에서 문서 객체 모델(Document Object Model)에 접근하는 이벤트 처리까지 자바스크립트와 브라우저 검증과 오류 처리에 대한 기초를 배운다. 세 가지 핵심 기술의 이해를 바탕으로 보이지 않는 Ajax 호출을 만들고 웹사이트를 매우 동적인 환경으로 만드는 방법을 살펴본다.
마지막으로 두 장에 걸쳐 웹페이지의 배치와 스타일을 만드는 CSS에 대해 배울 것이다. 그리고 배운 내용을 모두 합쳐서 완벽히 동작하는 소셜 네트워크 웹사이트를 구성하는 PHP 프로그램의 완전한 세트를 만든다.
책을 읽으면서 좋은 프로그래밍 습관을 키우기 위해 필요한 많은 충고와 조언, 발견하기 어려운 프로그래밍 오류를 찾아내고 해결하는 데 도움을 줄 팁을 볼 수 있을 것이다. 책에서 다루는 주제에 관해 자세한 내용을 찾아볼 수 있는 웹사이트 링크도 많이 제공된다.
(https://github.com/AcornPublishing/php-mysql-javascript)
웹서버의 구축부터 웹을 구성하는 핵심 기술인 PHP와 MySQL, 자바스크립트, CSS를 자세하고 신속하게 익힐 수 있는 책이다. 각 기술에 대한 문법과 함께 활용 예제가 들어있으므로, 독자들은 단시간 안에 웹 사이트를 손쉽게 구성하는 방법을 배울 수 있다. 또한, 책에서 소개된 모든 내용을 아우르는 소셜 네트워크 사이트를 구축하는 실전 예제도 들어있다. 실전 소셜 웹 예제에서는 보안 이슈뿐만 아니라, 기술적인 세부사항도 설명하기 때문에, 모든 기술을 연동하여 익히는 데 큰 도움이 된다.
[ 이 책에서 다루는 내용 ]
■ PHP의 필수 개념과 기초 객체지향 프로그래밍
■ 데이터베이스 구조부터 복잡한 쿼리까지 다루는 MySQL
■ 폼과 다른 HTML 기능을 결합하여 PHP와 MySQL로 웹페이지 구성
■ 기능과 이벤트 핸들링부터 문서 객체 모델(DOM)까지 자바스크립트의 핵심
■ 웹페이지 서식 설정과 스타일링을 위한 CSS의 기본
■ Ajax 호출을 사용하여 웹사이트를 매우 동적인 환경에서 구동하는 방법
■ 파일과 이미지 업로드 및 수정, 사용자 입력 검증, 앱 보안
■ 책에서 설명한 모든 기술을 접목한 소셜 네트워크 예제
[ 이 책의 대상 독자 ]
이 책은 효과적이고 동적인 웹사이트를 어떻게 만드는지 배우길 원하는 독자를 대상으로 한다. 정적인 웹사이트는 만들 수 있지만 기량을 좀더 끌어올리려는 웹마스터나 웹디자이너뿐만 아니라 고등학생과 대학생, 대학원생, 독학을 원하는 사람들도 손쉽게 익힐 수 있다.
사실, Ajax로 알려진 웹 2.0 기술 뒤에 숨은 기본을 배울 준비가 된 사람이라면 누구나 PHP와 MySQL, 자바스크립트, CSS 등 4가지 핵심 기술에 대한 기초 지식을 철저히 쌓을 수 있다.
이 책을 보려면 HTML의 기본을 이해하고, 적어도 간단하고 정적인 웹사이트를 작성할 수 있어야 한다. PHP이나 MySQL, 자바스크립트, CSS에 관한 지식이 있어야 하는 것은 아니지만, 알고 있다면 더 빨리 배울 수 있다.
[ 이 책의 구성 ]
이 책의 각 장은 구체적인 순서로 작성됐다. 우선, 4가지 핵심 기술인 PHP, MySQL, 자바스크립트, CSS를 모두 소개하고, 그 후 웹 개발 서버 설치를 살펴본 다음 예제를 다룬다.
그 다음 부분에서는 PHP 프로그래밍 언어의 문법과 배열, 함수, 객체지향 프로그래밍의 기초를 포괄하는 기본을 배운다.
앞에서 배운 PHP를 바탕으로 MySQL 데이터베이스 시스템의 구조부터 복잡한 쿼리를 생성하는 것까지 소개한다.
그 후에 폼 등의 HTML 기능을 결합함으로써, 동적인 웹페이지를 만들기 위해 PHP와 MySQL을 조합하는 방법을 배운다.
다음 세 개 장에서는 다양하고 유용한 함수와 쿠키와 세션뿐만 아니라 높은 수준의 보안을 유지하는 방법을 배움으로써 PHP와 MySQL 개발의 핵심적이고도 실용적인 면을 낱낱이 살펴본다.
그 다음 네 개 장에서는 간단한 함수에서 문서 객체 모델(Document Object Model)에 접근하는 이벤트 처리까지 자바스크립트와 브라우저 검증과 오류 처리에 대한 기초를 배운다. 세 가지 핵심 기술의 이해를 바탕으로 보이지 않는 Ajax 호출을 만들고 웹사이트를 매우 동적인 환경으로 만드는 방법을 살펴본다.
마지막으로 두 장에 걸쳐 웹페이지의 배치와 스타일을 만드는 CSS에 대해 배울 것이다. 그리고 배운 내용을 모두 합쳐서 완벽히 동작하는 소셜 네트워크 웹사이트를 구성하는 PHP 프로그램의 완전한 세트를 만든다.
책을 읽으면서 좋은 프로그래밍 습관을 키우기 위해 필요한 많은 충고와 조언, 발견하기 어려운 프로그래밍 오류를 찾아내고 해결하는 데 도움을 줄 팁을 볼 수 있을 것이다. 책에서 다루는 주제에 관해 자세한 내용을 찾아볼 수 있는 웹사이트 링크도 많이 제공된다.
목차
목차
- 01장 역동적인 웹 컨텐츠
- HTTP와 HTML: 버너스 리의 기본 개념
- 요청/응답 절차
- PHP, MySQL, 자바스크립트, CSS가 뛰어난 이유
- PHP
- MySQL
- 자바스크립트
- CSS
- 아파치 웹서버
- 오픈 소스
- 정리
- 연습문제
- HTTP와 HTML: 버너스 리의 기본 개념
- 02장 개발 서버 설치
- WAMP, MAMP, LAMP는 무엇인가?
- 윈도우에 WAMP 설치
- 설치 후 테스트
- WAMP 대체 방법
- 맥 OS X에 MAMP 설치
- MySQL 설정
- 설치 후 테스트
- 리눅스에 LAMP 설치
- 원격 접속
- 로그인
- FTP 사용하기
- 프로그램 편집기
- 통합개발환경
- 연습문제
- 03장 PHP 소개
- HTML 내부에 PHP 포함
- PHP 파서 호출
- 이 책의 예제
- PHP의 구조
- 주석
- 기본 문법
- 변수의 이해
- 연산자
- 변수 대입
- 다중 라인 명령어
- 변수 입력
- 상수
- echo와 print 명령어의 차이점
- 함수
- 변수 범위
- 연습문제
- HTML 내부에 PHP 포함
- 04장 PHP의 표현식과 흐름 제어
- 표현식
- 문자 형식과 변수
- 연산자
- 연산자 우선순위
- 결합성
- 관계형 연산자
- 조건문
- If 문
- else 문
- elseif 문
- switch 문
- ? 연산자
- 반복문
- while 문
- do...while 문
- for 반복문
- 반복문 빠져나가기
- continue 문
- 암묵적 형변환과 명백한 형변환
- PHP의 동적 링킹
- 동적 링킹 동작
- 연습문제
- 표현식
- 05장 PHP 함수와 객체
- PHP 함수
- 함수 정의
- 변수 반환
- 배열 반환
- 참조로 전달
- 전역 변수 반환
- 변수 범위 다시 살펴보기
- 파일 포함과 요구
- include 문
- include_once
- require와 require_once
- PHP 버전 호환성
- PHP 객체
- 전문 용어
- 클래스 정의
- 객체 생성
- 객체 접근법
- 생성자
- 메소드 작성법
- 속성 선언
- 상수 선언
- PHP 5의 속성과 메소드
- 상속
- 연습문제
- PHP 함수
- 06장 PHP 배열
- 기본 접근법
- 배열의 숫자 인덱스
- 연관 배열
- array 키워드를 사용한 대입
- foreach...as 루프
- 다차원 배열
- 배열 함수의 사용
- is_array
- count
- sort
- shuffle
- explode
- extract
- compact
- reset
- end
- 연습문제
- 기본 접근법
- 07장 실용적인 PHP
- printf
- 자릿수 설정
- 문자열 채우기
- sprintf
- 날짜와 시간 함수
- 날짜 상수
- checkdate
- 파일 처리
- 파일 존재여부 검사
- 파일 생성
- 파일 읽기
- 파일 복사
- 파일 이동
- 파일 삭제
- 파일 갱신
- 다중 접근으로부터 파일 잠금
- 전체 파일 읽기
- 파일 업로드
- 시스템 콜
- XHTML
- XHTML의 이점
- XHTML 버전
- HTML과의 차이점
- HTML 4.01 문서 유형
- HTML5 문서 형식
- XHTML 1.0 문서 유형
- XHTML 검증
- 연습문제
- printf
- 08장 MySQL 소개
- MySQL 기본
- 데이터베이스 용어 정리
- 커맨드라인으로 MySQL 접근
- 커맨드라인 시작
- 커맨드라인 인터페이스
- MySQL 명령어
- 데이터 타입
- 인덱스
- 인덱스 생성
- MySQL 데이터베이스 쿼리
- 테이블 조인
- 논리 연산자
- MySQL 함수
- phpMyAdmin으로 MySQL에 접근
- 윈도우 사용자
- 맥 OS X 사용자
- 리눅스 사용자
- phpMyAdmin
- 연습문제
- 09장 MySQL 정복하기
- 데이터베이스 디자인
- 기본 키: 키에서 관계형 데이터베이스로
- 정규화
- 첫 번째 정규 형식
- 두 번째 정규 형식
- 세 번째 정규 형식
- 정규형을 사용하지 않는 경우
- 관계
- 일대일
- 일대다
- 다대다
- 데이터베이스와 익명성
- 트랜잭션
- 트랜잭션 저장 엔진
- BEGIN
- COMMIT
- ROLLBACK
- EXPLAIN
- 백업과 복구
- mysqldump
- 백업 파일 생성
- 백업 파일로부터 복구
- CSV 포맷으로 데이터 덤프
- 백업 계획
- 연습문제
- 데이터베이스 디자인
- 10장 PHP를 사용해 MySQL에 접근
- PHP로 MySQL 데이터베이스 쿼리
- 절차
- 로그인 파일 생성
- MySQL 연결
- 실용적인 예제
- $_POST 배열
- 기록 지우기
- 폼 출력
- 데이터베이스 쿼리
- 프로그램 실행
- 실용적인 MySQL
- 테이블 생성
- 테이블 묘사
- 테이블 삭제
- 데이터 추가
- 데이터 추출
- 데이터 갱신
- 데이터 삭제
- AUTO_INCREMENT
- 잠금(lock) 사용하기
- 쿼리 추가 실행
- SQL 인젝션 막기
- HTML 인젝션 막기
- 연습문제
- PHP로 MySQL 데이터베이스 쿼리
- 11장 폼 처리
- 폼 만들기
- 제출된 데이터 추출
- 옛날 방법에 의지하는 register_globals
- 기본 값
- 입력 형식
- 입력 보안 처리
- 예제 프로그램
- 연습문제
- 12장 쿠키와 세션, 인증
- PHP의 쿠키
- 쿠키 설정
- 쿠키 접근
- 쿠키 삭제
- HTTP 인증
- 계정 이름과 암호 저장
- 암호 보호
- 세션
- 세션 시작
- 세션 끝내기
- 세션 보안
- 연습문제
- PHP의 쿠키
- 13장 자바스크립트 살펴보기
- 자바스크립트와 HTML 텍스트
- 문서 제목에 스크립트 사용
- 오래된 비표준 브라우저
- 자바스크립트 파일 포함
- 자바스크립트 오류 디버깅
- 주석
- 세미콜론
- 변수
- 문자열 변수
- 숫자형 변수
- 배열
- 연산자
- 산술 연산자
- 대입 연산자
- 비교 연산자
- 논리 연산자
- 변수 증가와 감소
- 문자열 연결
- 이스케이프 문자
- 변수 입력
- 함수
- 전역 변수
- 지역 변수
- 문서 객체 모델
- 비호환 브라우저
- DOM
- 자기 진단 문제
- 자바스크립트와 HTML 텍스트
- 14장 자바스크립트의 표현식과 흐름제어
- 표현식
- 문자 형식과 변수
- 연산자
- 연산자 우선순위
- 결합성
- 관계형 연산자
- with 문
- onError
- try...catch
- 조건문
- if 문
- switch 문
- ? 연산자
- 반복문
- while 루프
- do...while 루프
- for 루프
- 반복문 빠져나오기
- continue 문
- 명백한 형변환
- 연습문제
- 표현식
- 15장 자바스크립트의 함수, 오브젝트, 배열
- 자바스크립트 함수
- 함수 정의
- 값 반환
- 배열 반환
- 자바스크립트 오브젝트
- 클래스 정의
- 오브젝트 생성
- 오브젝트 접근
- prototype 키워드
- 자바스크립트 배열
- 숫자형 배열
- 연관 배열
- 다중 배열
- 배열 메소드
- 연습문제
- 자바스크립트 함수
- 16장 자바스크립트와 PHP 검증, 오류 처리
- 자바스크립트로 사용자 입력 검증
- 첫 번째 .html 문서 검증
- 두 번째 .html 문서 검증
- 정규 표현식
- 메타 문자로 매칭
- 난해한 문자 매칭
- 괄호로 그룹 만들기
- 문자 클래스
- 몇 가지 복잡한 예제
- 메타 문자 정리
- 일반 변경자
- 자바스크립트에 정규 표현식
- PHP에 정규 표현식
- PHP 검증 후 폼 재출력
- 연습문제
- 자바스크립트로 사용자 입력 검증
- 17장 Ajax
- Ajax란 무엇인가?
- XMLHttpRequest
- POST 요청으로 Ajax 구현
- readyState 속성
- Ajax 과정의 서버 측 동작
- POST 대신 GET 사용
- XML 요청 보내기
- XML에 관해
- 왜 XML을 사용하는가?
- Ajax 프레임워크
- 연습문제
- 18장 CSS 소개
- 스타일 시트 불러오기
- HTML 내부에서 스타일 시트 불러오기
- 내장된 스타일 설정
- ID 사용하기
- 클래스 사용하기
- CSS 규칙
- 세미콜론
- 여러 할당
- 주석
- 스타일 형식
- 기본 스타일
- 사용자 스타일
- 외부 스타일 시트
- 내부 스타일
- 인라인 스타일
- CSS 셀렉터
- 형식 셀렉터
- 자손 선택자
- 자식 선택자
- 근접 형제 셀렉터
- ID 셀렉터
- 클래스 셀렉터
- 속성 셀렉터
- 유니버설 셀렉터
- 그룹으로 선택하기
- CSS 종속
- 스타일 시트 생성자
- 스타일 시트 방법
- 스타일 시트 셀렉터
- <div>와 <span>의 차이
- 단위
- 글씨체와 활판술
- font-family
- font-style
- font-size
- font-weight
- 텍스트 스타일 관리
- 장식
- 공백
- 정렬
- 변환
- 들여쓰기
- CSS 색
- 짧은 색 문자열
- 그라디언트
- 엘리먼트 위치 선정
- 절대 위치
- 상대적인 위치
- 고정된 위치
- 위치 형식 비교
- 유사 클래스
- 유사 엘리먼트
- 단축 규칙
- 상자 모델과 배치
- 마진 설정
- 경계 적용하기
- 패딩 조절하기
- 객체 내용
- 연습문제
- 스타일 시트 불러오기
- 19장 고급 CSS와 CSS3
- 속성 선택자
- 문자열의 일부를 일치하기
- box-sizing 속성
- CSS3 소개
- background-clip 속성
- background-origin 속성
- background-size 속성
- 다중 배경
- CSS3 경계
- border-color 속성
- border-radius 속성
- 상자 그림자
- 엘리먼트 오버플로우
- 다중 열 배치
- 색과 투명도
- HSL 색
- HSLA 색
- RGB 색
- RGBA 색
- opacity 속성
- 텍스트 효과
- text-shadow 속성
- text-overflow 속성
- word-wrap 속성
- 웹 글씨체
- 구글 웹 글씨체
- 변형
- 변환
- 변환의 속성
- 변환 기간
- 변환 지연
- 변환 시점
- 속기 문법
- 연습문제
- 속성 선택자
- 20장 자바스크립트에서 CSS 접근하기
- getElementById 함수 다시 살펴보기
- O 함수
- S 함수
- C 함수
- 함수 포함하기
- 자바스크립트에서 CSS 속성 접근하기
- 몇 가지 일반 속성들
- 다른 속성들
- 인라인 자바스크립트
- this 키워드
- 스크립트에서 이벤트를 객체에 붙이기
- 다른 이벤트에 붙이기
- 새로운 엘리먼트 추가하기
- 엘리먼트 제거하기
- 엘리먼트 추가와 제거의 다른 방법들
- 인터럽트 사용하기
- setTimeout 사용하기
- 타임아웃 취소
- setInterval 사용하기
- 애니메이션을 위해 인터럽트 사용하기
- 연습문제
- getElementById 함수 다시 살펴보기
- 21장 종합 프로젝트
- 소셜 네트워크 사이트 설계
- 웹사이트에서
- functions.php
- 함수
- header.php
- setup.php
- index.php
- signup.php
- 계정 이름 사용 가능성
- checkuser.php
- login.php
- profile.php
- ‘About Me’ 텍스트 추가
- 프로파일 이미지 추가
- 이미지 처리
- 현재 프로파일 출력
- members.php
- 사용자 프로파일 보기
- 친구 추가와 삭제
- 모든 멤버 나열
- friends.php
- messages.php
- logout.php
- styles.css
- 부록A 연습문제 해답
- 부록B 온라인 자료
- 부록C MySQL의 FULLTEXT 불용어
- 부록D MySQL 함수
도서 오류 신고
정오표
정오표
[ p156 예제 5-14, 5-15 ]
User와 __construct 함수 내부 문장에서 ‘public’ 키워드 제외
[ p330 마지막 행 ]
mysqlfix -> mysqlfix_string
[ p316 12 행 ]
따라오는 else 문이 실행된다 -> 다음 문장이 실행된다.
[ p398 예제13-5 ]
! (j role="strong">== k) -> ! (j == k)
[ p393 예제13-3 ]