Chapter 01 웹 프로그래밍과 HTML5 개요 1. 웹 개요 = 28 웹의 기본 목적과 구성 = 28 인터넷과 웹은 다르다 = 29 웹 브라우저 = 30 웹 서버와 웹사이트 = 35 웹 문서와 전자 문서의 차이 = 36 웹 페이지의 주소, URL = 38 웹 브라우저와 웹 서버 사이의 통신, HTTP = 39 2. 웹의 시작과 성공 = 40 웹의 시작 = 40 웹의 성공 = 41 모든 곳에 웹이 있다 = 41 3. 웹 페이지 구성 = 42 웹 페이지 구성 3요소 = 42 3요소를 분리하여 웹 페이지 개발 = 42 HTML, CSS, Javascript = 43 HTML, CSS, Javascript로 분리된 웹 페이지 만들기 = 44 4. HTML5 = 47 HTML 언어의 역사 = 47 HTML5의 출현 배경 = 47 HTML5 표준과 의의 = 49 HTML5의 기능 = 50 5. HTML5 웹 프로그래밍 개발 과정 = 52 HTML5 문서 편집 = 52 검증(validation) = 52 디버깅 = 55 요약 01 = 57 Open Challenge 01 = 58 연습문제 01 = 59 Chapter 02 HTML5 기본 문서 만들기 1. HTML5 개요 = 64 HTML 페이지 기본 = 64 HTML 태그 = 65 2. HTML 기본 문서 만들기 = 66 틀 달기,〈title〉 = 66 문단 제목(장, 절, 소제목 등) 달기,〈h1〉,〈h6〉 = 67 툴팁 달기, title 속성 = 68 단락 나누기,〈p〉 = 68 수평선 긋기,〈hr〉 = 69 새로운 줄로 넘어가기,〈br〉 = 69 문자, 기호, 심볼 입력 = 70 개발자 포맷 그대로 출력하기,〈pre〉 = 71 텍스트 꾸미기 = 72 블록 태그와 인라인 태그 = 72 HTML 메타 데이터 삽입 = 73 3. 고급 문서 만들기 = 75 이미지 삽입,〈img〉 = 75 리스트 만들기,〈ol〉,〈ul〉,〈dl〉 = 76 표 만들기,〈table〉 = 80 4. 하이퍼링크와 항해 = 83 하이퍼링크 만들기,〈a〉 = 83 id 속성으로 앵커 만들기 = 86 파일 다운로드 링크 만들기,〈a〉의 download 속성 = 89 5. 인라인 프레임 = 90 인라인 프레임 만들기,〈iframe〉 = 90 인라인 프레임 윈도우의 이름 = 93 브라우저 윈도우와 인라인 프레임 윈도우의 계층 관계 = 93 target 속성에 문서를 출력할 윈도우 지정 = 95 6. 미디어 삽입 = 97 미디어의 표준화,〈audio〉,〈video〉 = 97 비디오 삽입,〈video〉 = 97 오디오 삽입,〈audio〉 = 100 요약 02 = 102 Open Challenge 02 = 104 연습문제 02 = 105 Chapter 03 HTML5 문서 구조화와 웹 폼 1. HTML5의 문서 구조화 = 112 문서의 구조 = 112 기존 HTML의 한계 = 113 검색 엔진이 좋아하는 웹 페이지, 시맨틱 웹 = 113 HTML5 문서의 구조와 시맨틱 태그 = 114 문서의 모양은 구조와 별개 = 115 HTML5 문서 구조화 사례 = 116 기존 HTML 문서와 HTML5 문서 비교 = 117 시맨틱 블록 태그 = 120 시맨틱 인라인 태그 = 122 2. 웹 폼 = 123 웹 폼과 폼 요소 = 123 간단한 로그인 폼 만들기 = 123 폼 태그,〈form〉 = 124 네이버 검색 사례를 통한 폼 전송 과정의 이해 = 125 3. 폼 만들기 = 127 텍스트 입력,〈input type="text|password"〉,〈textarea〉 = 128 데이터 목록을 가진 텍스트 입력 창,〈datalist〉 = 129 텍스트/이미지 버튼 만들기 = 130 선택형 입력 = 133 〈label〉로 폼 요소의 캡션 만들기 = 136 색 입력,〈input type="color"〉 = 139 시간 정보 입력 = 141 스핀버튼과 슬라이드바로 편리한 숫자 입력 = 143 입력할 정보의 힌트 보여주기 = 144 형식을 가진 텍스트 입력 = 145 폼 요소들의 그룹핑,〈fieldset〉 = 146 요약 03 = 148 Open Challenge 03 = 149 연습문제 03 = 150 Chapter 04 CSS3로 웹 페이지 꾸미기 1. CSS3 스타일 시트 개요 = 156 CSS3 = 156 CSS3 맛보기 예제 = 156 CSS3 스타일 시트 구성 = 158 2. CSS3 스타일 시트 만들기 = 159 〈style〉태그로 스타일 시트 만들기 = 159 style 속성에 스타일 시트 만들기 = 160 외부 스타일 시트 파일 불러오기 = 161 CSS3 규칙 = 164 3. 셀렉터 = 167 태그 이름 셀렉터 = 168 class 셀렉트 = 168 id 셀렉터 = 169 셀렉터 조합하기 = 170 전체 셀렉터 = 171 속성 셀렉터 = 171 가상 클래스 셀렉터 = 171 4. 색과 텍스트 꾸미기 = 174 색 = 174 텍스트 = 176 CSS3의 표준 단위 = 178 폰트 = 178 5. 박스 모델 = 182 HTML 태그는 사각형 박스로 다루어진다 = 182 박스의 구성 = 183 박스를 제어하는 CSS3 프로퍼티 = 183 고급 테두리 꾸미기 = 187 배경 = 192 6. 시각적 효과 = 195 텍스트 그림자, text-shadow = 195 박스 그림자, box-shadow = 197 마우스 커서 제어, cursor = 198 요약 04 = 199 Open Challenge 04 = 200 연습문제 04 = 202 Chapter 05 CSS3 고급 활용 1. 배치 = 210 블록 박스와 인라인 박스 = 211 박스의 유형 제어, display = 212 박스의 배치, position = 215 float 프로퍼티를 이용한 유동 배치 = 220 수직으로 쌓기, z-index = 221 보일 것인가 숨길 것인가, visibility = 222 콘텐츠를 자를 것인가 말 것인가, overflow = 223 2. 리스트 꾸미기 = 224 리스트와 아이템의 배경 = 224 마커의 위치, list-style-position = 215 마커 종류, list-style-type = 225 이미지 마커, list-style-image = 226 리스트 단축 프로퍼티, list-style = 227 응용 : 리스트로 메뉴 만들기 = 227 3. 표 꾸미기 = 230 표 테두리 제어, border = 230 셀 크기 제어, width height = 231 셀 여백 및 정렬 = 232 배경색과 테두리 효과 = 233 줄무늬 만들기 = 233 응용 : 마우스가 올라갈 때 행의 배경색이 변하는 표 만들기(:hover 이용) = 234 4. 폼 꾸미기 = 236 input[type=text]로 폼 요소에 스타일 입히기 = 236 input[type=text]로 폼 요소의 테두리 만들기 = 236 폼 요소에 마우스 처리 = 237 5. CSS3 스타일로 태그에 동적 변화 만들기 = 239 애니메이션 = 239 전환 = 242 변환 = 244 요약 05 = 246 Open Challenge 05 = 247 연습문제 05 = 248 Chapter 06 자바스크립트 언어 1. 자바스크립트 시작 = 256 자바스크립트 언어란? = 256 웹 페이지에서 자바스크립트의 역할 = 257 자바스크립트 코드의 위치 = 257 자바스크립트로 HTML 콘텐츠 출력 = 261 자바스크립트 다이얼로그 : 사용자 입력 및 메시지 출력 = 262 2. 데이터 타입과 변수 = 263 자바스크립트 식별자 = 263 문장 구분 = 264 주석문 = 264 데이터 타입 = 265 변수 = 265 상수 = 268 3. 식과 연산자 = 269 산술 연산 = 270 증감 연산 = 271 대입 연산 = 271 비교 연산 = 273 논리 연산 = 274 조건 연산 = 275 비트 연산 = 275 문자열 연산 = 279 4. 조건문 = 280 if 문 = 281 if-else 문 = 281 다중 if-else 문 = 281 switch 문 = 283 5. 반복문 = 285 for 문 = 286 while 문 = 287 do-while 문 = 288 break 문 = 289 continue 문 = 290 6. 함수 = 291 함수 개념 = 291 함수의 구성 = 291 함수 호출 = 292 자바스크립트의 전역 함수 = 293 요약 06 = 297 Open Challenge 06 = 298 연습문제 06 = 299 Chapter 07 자바스크립트 코어 객체 1. 객체 개념 = 308 자바스크립트 객체 = 308 자바스크립트 객체의 유형 = 309 2. 코어 객체 다루기 = 310 코어 객체 종류 = 310 new 키워드로 코어 객체 생성 = 310 객체 접근 = 310 3. 배열과 Array = 312 배열 = 312 배열을 만드는 방법 = 312 []로 배열 만들기 = 313 Array로 배열 만들기 = 314 배열의 원소 개수, length 프로퍼티 = 316 배열의 특징 = 317 Array 객체의 메소드 활용 = 317 4. Date = 319 5. String = 322 String 객체 = 322 String 객체는 수정 불가 = 322 문자열 길이, length = 323 []로 문자 접근 = 323 String 메소드 = 323 String 활용 = 324 6. Math = 327 7. 사용자 객체 만들기 = 329 new Object()로 객체 만들기 = 329 리터럴 표기법으로 객체 만들기 = 332 요약 07 = 333 Open Challenge 07 = 334 연습문제 07 = 335 Chapter 08 HTML DOM과 Document 1. HTML DOM 개요 = 344 HTML 페이지와 자바스크립트 객체 = 344 DOM의 목적 = 345 DOM 트리 = 346 DOM 트리의 특징 = 347 HTML 태그의 출력과 DOM 객체 = 348 DOM 객체의 구성요소 = 349 DOM 객체들 사이의 관계 = 351 2. DOM 객체 다루기 = 354 DOM 객체 구분, id 속성 = 354 DOM 객체 찾기, document.getElementById() = 354 DOM 객체의 CSS3 스타일 동적 변경 = 355 DOM 객체의 innerHTML 프로퍼티 = 358 this = 359 3. document 객체 = 360 document 개요 = 360 이벤트 리스너 = 360 태그 이름으로 DOM 객체 찾기, getElementsByTagName() = 363 class 속성으로 DOM 객체 찾기, getElementsByClassName() = 363 document.write()와 document.writeln() = 365 document.write() 사용 시 주의할 점 = 366 document의 열기와 닫기, open()과 close() = 367 4. HTML 문서의 동적 구성 = 369 DOM 객체 동적 생성 = 369 DOM 트리에 삽입 = 370 DOM 객체의 삭제 = 370 요약 08 = 372 Open Challenge 08 = 373 연습문제 08 = 374 Chapter 09 이벤트 기초 및 활용 1. 이벤트 = 384 이벤트 개요 = 384 이벤트 종류 = 385 이벤트 리스너 만들기 = 386 2. 이벤트 객체 = 391 이벤트 객체란? = 391 이벤트 객체 전달받기 = 391 이벤트 객체에 들어 있는 정보 = 393 이벤트의 디폴트 행동 취소, preventDefault() = 394 3. 이벤트 흐름 = 396 이벤트 흐름과 이벤트 리스너 = 396 이벤트 흐름 사례 = 396 캡쳐 리스너와 버블 리스너 = 398 이벤트 흐름을 중단시킬 수 있는가? YES = 401 4. 마우스 핸들링 = 401 마우스 이벤트 객체의 프로퍼티 = 401 onclick과 ondblclick = 402 onmousedown, onmouseup, onmouseover, onmouseout, onmouseenter, onmouseleave, onwheel = 403 onmousemove = 405 oncontextmenu = 406 5. 문서와 이미지 로딩, onload = 407 문서의 로딩 완료와 onload = 407 이미지 로딩 완료와 onload = 408 new Image()로 이미지 로딩과 출력 = 410 6. 폼과 이벤트 활용 = 412 onblur와 onfocus = 412 라디오버튼과 체크박스 = 413 select 객체와 onchange = 416 키 이벤트, onkeydown, onkeypress, onkeyup = 418 onreset과 onsubmit = 418 요약 09 = 420 Open Challenge 09 = 421 연습문제 09 = 422 Chapter 10 윈도우와 브라우저 관련 객체 1. 브라우저 관련 객체 개요 = 432 BOM 이란 = 432 BOM의 종류 = 433 2. window 객체 = 433 window 객체의 생성 = 433 window 객체의 프로퍼티와 메소드 = 434 window의 이벤트 리스너 = 436 윈도우 속성과 window의 프로퍼티 = 436 윈도우 열기, window.open() = 437 윈도우 닫기 = 440 iframe 객체와 window 객체 = 443 3. window의 타이머 활용 = 443 setTimeout()/clearTimeout() = 443 setInterval()/clearInterval() = 444 4. window 객체 활용 = 447 윈도우 위치 및 크기 조절 = 447 웹 페이지 스크롤 = 448 웹 페이지 프린트 = 448 5. location 객체 = 453 6. navigator 객체 = 455 7. screen 객체 = 457 8. history 객체 = 459 요약 10 = 460 Open Challenge 10 = 461 연습문제 10 = 462 Chapter 11 HTML5 캔버스 그래픽 1. HTML5와 캔버스 = 470 웹 페이지 그래픽의 전통적인 방법 = 470 캔버스 도입 = 470 〈canvas〉태그 = 471 캔버스(canvas) 객체와 컨텍스트 객체 = 472 캔버스의 크기 및 스타일 제어 = 475 캔버스의 그래픽 좌표 = 476 캔버스의 그래픽 기능 = 477 2. 도형 그리기와 채우기 = 477 도형 그리는 과정 = 477 선 그리기 = 479 원호 그리기 = 480 stroke()는 경로에 담긴 도형(직선, 원호, 곡선)을 직선 연결하여 그린다 = 482 사각형 그리기 = 482 beginPath()와 closePath() = 484 캔버스 지우기 = 484 도형 꾸미기 = 484 칠하기 = 485 텍스트 그리기 = 488 3. 이미지 그리기 = 490 이미지 객체 생성 = 490 이미지 로딩과 onload = 490 이미지 그리기 = 490 이미지 그리기 사례 = 491 4. canvas 객체와 마우스 이벤트 활용 = 494 캔버스 태그와 초기화 = 494 마우스 이벤트 처리 = 495 그림 그리기, draw(curX, curY) = 496 요약 11 = 498 Open Challenge 11 = 499 연습문제 11 = 500 Chapter 12 HTTP와 쿠키, 웹 스토리지 1. 웹과 저장 및 통신 = 508 웹의 저장소 = 508 브라우저와 웹 서버의 통신 = 508 실습 1 HTTP 통신 과정 보기 = 511 2. 쿠키 = 515 쿠키란? = 515 쿠키의 도입 = 515 쿠키 데이터 구성 = 516 쿠키 사례 = 517 쿠키는 웹 페이지 사이의 정보 공유에 활용 = 517 실습 2 구글 웹 사이트의 쿠키 보기 = 518 쿠키 파일 = 520 자바스크립트로 쿠키 다루기 = 520 실습 3 쿠키 활용 - 자바스크립트로 방문자 이름과 방문 횟수 관리 = 521 3. 웹 스토리지(Web Storage) = 524 웹 스토리지의 필요성과 쿠키의 한계 = 524 웹 스토리지 종류 = 524 웹 스토리지의 특징 = 525 세션 스토리지 = 525 로컬 스토리지 = 527 자바스크립트로 웹 스토리지 다루기 = 528 실습 4 세션 스토리지 응용 = 530 4. 웹 스토리지 이벤트 = 535 storage 이벤트 = 535 실습 5 로컬 스토리지에 storage 이벤트 = 536 요약 12 = 540 Open Challenge 12 = 541 연습문제 12 = 542 Chapter 13 오디오 비디오 제어 및 위치 정보 서비스, 웹 워커 1. 오디오/비디오 제어 = 548 〈audio〉와〈video〉태그 = 548 자바스크립트로 오디오 제어 = 549 비디오 제어 = 552 미디어 소스 변경/미디어 로드 = 554 2. Geolocation 객체를 이용한 위치 정보 서비스 = 555 위치 정보 서비스 = 555 geolocation 객체 = 555 현재 위치 얻기 = 555 반복 위치 서비스 = 558 반복 위치 서비스 중단 = 559 3. 웹 워커〈Web Workers〉 = 561 웹 워커란 = 561 워커 객체와 워커 태스크 = 562 워커 객체 = 563 워커 태스크의 실행 환경 = 564 워커 태스크에서 워커 객체로 message 이벤트 보내기 = 565 메인 태스크에서 워커 태스크로 message 이벤트 보내기 = 568 워커 태스크 종료 = 572 요약 13 = 574 Open Challenge 13 = 575 연습문제 13 = 576 Chapter 14 웹 프로그래밍 응용 과제 1. 그림판 웹 페이지 = 582 애플리케이션 개요 = 582 2. 숨어있는 강아지 찾기 = 584 애플리케이션 개요 = 584 부록 = 587 부록 A. 비정형 표 만들기 = 587 부록 B. 몽구스 웹 서버로 간단한 웹 사이트 구축 = 590 찾아보기 = 595