이미 소장하고 있다면 판매해 보세요.
|
01장 역동적인 웹 컨텐츠
___HTTP와 HTML: 버너스 리의 기본 개념 ______요청/응답 절차 ___PHP, MySQL, 자바스크립트, CSS가 뛰어난 이유 ______PHP ______MySQL ______자바스크립트 ______CSS ___아파치 웹서버 ___오픈 소스 ___정리 ___연습문제 02장 개발 서버 설치 ___WAMP, MAMP, LAMP는 무엇인가? ___윈도우에 WAMP 설치 ______설치 후 테스트 ______WAMP 대체 방법 ___맥 OS X에 MAMP 설치 ______MySQL 설정 ______설치 후 테스트 ___리눅스에 LAMP 설치 ___원격 접속 ______로그인 ______FTP 사용하기 ___프로그램 편집기 ___통합개발환경 ___연습문제 03장 PHP 소개 ___HTML 내부에 PHP 포함 ______PHP 파서 호출 ___이 책의 예제 ___PHP의 구조 ______주석 ______기본 문법 ______변수의 이해 ______연산자 ______변수 대입 ______다중 라인 명령어 ______변수 입력 ______상수 ______echo와 print 명령어의 차이점 ______함수 ______변수 범위 ___연습문제 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의 속성과 메소드 ______상속 ___연습문제 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 검증 ___연습문제 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 인젝션 막기 ___연습문제 11장 폼 처리 ___폼 만들기 ___제출된 데이터 추출 ______옛날 방법에 의지하는 register_globals ______기본 값 ______입력 형식 ______입력 보안 처리 ___예제 프로그램 ___연습문제 12장 쿠키와 세션, 인증 ___PHP의 쿠키 ______쿠키 설정 ______쿠키 접근 ______쿠키 삭제 ___HTTP 인증 ______계정 이름과 암호 저장 ______암호 보호 ___세션 ______세션 시작 ______세션 끝내기 ______세션 보안 ___연습문제 13장 자바스크립트 살펴보기 ___자바스크립트와 HTML 텍스트 ______문서 제목에 스크립트 사용 ______오래된 비표준 브라우저 ______자바스크립트 파일 포함 ______자바스크립트 오류 디버깅 ___주석 ___세미콜론 ___변수 ______문자열 변수 ______숫자형 변수 ______배열 ___연산자 ______산술 연산자 ______대입 연산자 ______비교 연산자 ______논리 연산자 ______변수 증가와 감소 ______문자열 연결 ______이스케이프 문자 ___변수 입력 ___함수 ___전역 변수 ______지역 변수 ___문서 객체 모델 ______비호환 브라우저 ______DOM ___자기 진단 문제 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 사용하기 ______애니메이션을 위해 인터럽트 사용하기 ___연습문제 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 함수 |
|
현재 사람들이 가장 많이 개발하는 애플리케이션의 형태는 단연 웹앱(또는 웹애플리케이션)이다. 사람들은 더 이상 웹페이지를 단순한 페이지로만 보지 않고, 많은 애플리케이션을 구동할 수 있는 기능을 가진 웹앱의 형태로 간주한다. 가장 큰 이유는 물론 스마트폰의 혁명으로 인한 것도 있겠지만, 윈도우와 리눅스, 맥 OS, 심지어 iOS와 안드로이드에 이르기까지 웹브라우저만 있다면 어디서나 동일하게 표현되는 애플리케이션의 표준이라고 믿기 때문이다. 하나의 웹앱만 개발해 놓으면 각종 디바이스에서 동일하게 사용이 가능하니 어느 개발자가 마다할 것인가?
초판에 이어 이번 개정판에서도 동적 웹페이지를 구성하는 PHP와, 사용자의 데이터를 저장하는 MySQL, 사용자의 웹페이지에서 이벤트를 처리하는 자바스크립트를 모두 소개한다. 추가로 웹의 외관을 담당하는 핵심 기술인 CSS 기능을 상세하게 다룸과 동시에 PHP와 자바스크립트 기능과의 연관성을 설명한다. 우선, 서버 측에서 동적인 웹페이지를 생성하는 PHP 기술에 대해 알기 쉽게 설명한 기본 문법과 사용 방법, 그리고 사용 예까지 모두 자세히 설명하기 때문에, 이 책에 나온 순서대로만 따라 하면 훌륭한 동적인 웹페이지를 자유자재로 구성할 수 있다. 그리고 사용자에게 보여주거나, 사용자가 직접 입력한 정보를 저장하는 데이터베이스인 MySQL을 소개한다. MySQL은 무료로 쓸 수 있는 데이터베이스 중 가장 강력한 기능을 제공한다. 또한, 손쉽게 데이터베이스를 구성할 수 있는 여러 가지 툴도 제공하기 때문에, 개발 시간을 상당히 단축해 주며, 완성도도 높일 수 있다. 이 책에서는 MySQL에 직접 들어가서 조작할 때 사용하는 SQL 문법과 예제를 쉽게 따라 하며 익힐 수 있는 형태로 함께 제공한다. 또한, 사용자 측면에서 동적인 동작을 제공할 수 있는, 그야말로 가장 ‘핫한’ 프로그래밍 언어인 자바스크립트를 소개한다. 자바스크립트는 오랜 역사 속에서 기억되어 온 기능적인 프로그래밍 언어(functional programming language)의 새로운 저변을 확대했다고 할 수 있다. 선언적 언어의 특성도 그대로 갖추고 있어서, 개발 시에 익히기도 쉽다. 하지만, 문법과 사용 방법, 그리고 웹페이지와의 연동에 대해서는 많은 부분을 익히고 연습할 필요가 있다. 특히, 사용자의 웹페이지를 다시 불러오지 않고(refresh), 데이터를 처리할 수 있는 Ajax 기술은 많은 가능성을 제시한다. 이 책에서는 이에 관한 내용을 자세히 설명하고, 예제를 제공한다. 마지막으로 웹의 외관을 동적으로 변경할 때 없어서는 안 될 CSS에 대해 설명한다. CSS의 첫 번째 장점을 들자면, CSS는 HTML이나 PHP 파일과는 무관하게 독립적으로 정의할 수 있기 때문에 향후에 HTML이나 PHP 파일을 변경하지 않고도 외관을 전체적으로 변경할 수 있다. 그리고 변경하길 원하는 요소를 쉽게 찾고, 수정할 수 있으며, 이미 내장된 동적인 기능을 자바스크립트의 도움 없이 쉽게 사용할 수도 있다. CSS를 한번 쓰기 시작하면 놀라운 기능에 감탄할 것이다. 바야흐로 웹의 시대다. 웹의 시대에서는 전문적으로 웹을 만드는 개발자가 아니더라도, 컴퓨터와 관련된 일에 종사하다 보면 웹 기술과 관련된 일은 꼭 발생하게 마련이다. 가령, 어떤 시스템을 개발하든 간에 가시적인 인터페이스를 만들라치면 특정 플랫폼에서만 돌아가는 독립형(stand-alone) 애플리케이션보다는 웹과 연동해서 언제 어디서든 접근할 수 있게 만드는 쪽을 선호한다. 이 책에서 제공하는 기술만 완전히 익히면, 웹 프로그래머로서의 기본은 모두 갖췄다고 할 수 있다. 이 책을 번역한 역자로서 궁극적으로 바라는 바는 책에서 제공하는 소셜 웹 예제를 더욱 발전시켜, 본인 스스로 소셜 네트워크를 구성하는 웹을 만들고, 페이스북과 정면 대결하는 상상을 해보는 것도 많은 자극이 될 것이다. 웹 개발이 당장 필요하거나, 미리미리 대세를 앞서 배우려는 독자에게 이 책을 강력히 권한다. 한국에서 마크 주커버그 같은 소셜 네트워크의 귀재가 나오기를 기대해 본다. ---「옮긴이의 말」 |
|
웹서버의 구축부터 웹을 구성하는 핵심 기술인 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 프로그램의 완전한 세트를 만든다. 책을 읽으면서 좋은 프로그래밍 습관을 키우기 위해 필요한 많은 충고와 조언, 발견하기 어려운 프로그래밍 오류를 찾아내고 해결하는 데 도움을 줄 팁을 볼 수 있을 것이다. 책에서 다루는 주제에 관해 자세한 내용을 찾아볼 수 있는 웹사이트 링크도 많이 제공된다. |