이미 소장하고 있다면 판매해 보세요.
|
1장. 간단히 살펴보는 자바스크립트 역사 27
자바스크립트의 출현 28 문서 객체 모델(DOM)에 대해서 29 브라우저 업체 간 전쟁 30 DHTML은 모호한 용어 31 브라우저 간 비호환 문제 발생 31 표준의 중요성 인식 32 다른 분야에서의 표준 33 브라우저 전쟁 종전 선언 34 웹 표준 시대의 개막 34 2장에서 다룰 내용 35 2장. 자바스크립트 문법 익히기 37 코드 작성 전에 알아야 할 점 38 문법 공부 40 명령문 41 주석 41 변수 43 데이터 형식 45 문자열 46 숫자 47 불린 값 48 배열 48 결합형 배열 51 연산자 52 산술 연산자 52 조건문 55 비교 연산자 56 논리 연산자 57 반복문 59 while문 59 do...while문 60 for문 61 함수 62 변수 유효 영역 65 객체 66 네이티브 객체 68 호스트 객체 69 3장에서 다룰 내용 69 3장. 문서 객체 모델(DOM)이란? 71 D는 문서입니다 72 O는 객체입니다 72 M은 모델입니다 73 노드 76 요소 노드 76 텍스트 노드 77 속성 노드 77 CSS와의 관계 78 getElementById 81 getElementsByTagName 83 속성 다루기 85 getAttribute 85 setAttribute 87 4장에서 다룰 내용 89 4장. 자바스크립트로 만드는 온라인 사진첩 91 마크업 코드 작성하기 92 자바스크립트 작성하기 95 DOM 전환 97 함수 완성 97 자바스크립트 적용하기 98 이벤트 핸들러 99 함수 확장 101 childNodes 프로퍼티 102 nodeType 프로퍼티 103 마크업에 설명문 요소 추가 104 설명문을 자바스크립트로 바꾸기 105 nodeValue 프로퍼티 106 firstChild와 lastChild 107 nodeValue로 설명 추가하기 108 5장에서 다룰 내용 112 5장. 꼭 알아야 할 핵심 기본기 113 자바스크립트에 대한 오해 114 문제점 많은 코드의 전파 115 플래시 사례 116 꼭 필요한지 철저히 검토하기 117 단계적 기능 축소 118 javascript: 슈도 프로토콜 119 인라인 이벤트 핸들러 120 사용자 배려 120 CSS 기술의 교훈 122 단계적 기능 향상 123 스크립트 분리 125 하위 호환성 127 브라우저 검사 130 6장에서 다룰 내용 130 6장. 사진첩 기능 개선하기 133 복습 134 단계적 기능 축소가 가능한가? 135 스크립트를 분리했는가? 136 이벤트 핸들러 추가 138 점검 사항 138 변수 지정하기 141 반복 구문 만들기 142 동작 변경 143 마무리 144 작업 나누기 145 검증 코드 작성 147 미세 조정 151 키보드 접근법 153 onkeypress 다시 보기 155 CSS와 지시자 공유하기 157 DOM 코어와 HTML-DOM 161 7장에서 다룰 내용 163 7장. 실행 시에 마크업 코드 생성하기 165 document.write 166 innerHTML 169 찬반 양론 172 DOM 메소드 173 createElement 173 appendChild 175 createTextNode 176 좀더 복잡한 조합 179 사진첩 다시 살펴보기 181 insertBefore 184 insertAfter 함수 만들기 185 insertAfter 함수 사용 187 사진첩 마무리 188 요약 193 8장에서 다룰 내용 194 8장. 의미가 살도록 컨텐츠 개선하기 195 하면 안 되는 것 196 속성을 화면에 표시하기 197 내용 198 HTML이냐? XHTML이냐? 199 마크업 200 CSS 202 자바스크립트 203 축약어 목록 표시 203 displayAbbreviations 함수 만들기 204 마크업 생성 207 웹 브라우저 불발탄 215 인용구 표시 219 displayCitations 함수 만들기 220 접근키 표시 227 마크업 227 자바스크립트 229 요약 231 9장에서 다룰 내용 232 9장. CSS와 DOM 연동하기 233 웹 문서의 세 가지 요소 234 구조 234 표현 235 동작 235 세 가지 요소 분리하기 236 style 프로퍼티 236 스타일 가져오기 238 인라인 스타일만 동작 243 스타일 지정하기 245 DOM을 이용한 스타일 지정이 유용한 사례 247 특정 노드의 모양을 꾸밀 경우 247 반복되는 스타일일 경우 252 이벤트 처리 결과를 보여주는 경우 257 className 260 함수 추상화 264 10장에서 다룰 내용 265 10장. 애니메이션 슬라이드쇼 만들기 267 애니메이션이란? 268 위치 268 시간 271 setTimeout 272 동작 바꾸기 273 재활용 함수 만들기 276 애니메이션 실전 286 요구 사항 286 해결 방법 288 CSS 289 자바스크립트 292 변수 영역 문제 해결 296 부드럽게 만들기 299 마지막 손질 303 마크업 만들기 305 11장에서 다룰 내용 309 11장. 총정리: 더블트랙 밴드 웹사이트 제작 311 소개 312 기본 초안 312 사이트 구조 313 웹 문서 구조 314 디자인 315 CSS 316 색상 318 레이아웃 320 글꼴 322 마크업 324 자바스크립트 325 문서 하이라이트 327 슬라이드 쇼 332 내부 네비게이션 338 자바스크립트 사진첩 343 테이블 기능 향상 347 폼 기능 향상 353 레이블 355 기본 값 356 폼 유효성 확인 360 요약 364 12장에서 다룰 내용 365 12장. DOM 스크립트의 미래 367 웹이란? 368 웹 브라우저 369 파이어폭스 등장 369 웹 디자이너 371 삼각 의자 372 DOM 스크립트 태스크 포스 373 Ajax 374 XMLHttpRequest 객체 376 Ajax 기반 서비스 예제 378 Ajax에 대한 도전 381 Ajax 기능 바르게 쓰기 382 Hijax 383 Ajax의 미래 385 웹 애플리케이션 385 마지막 부탁 387 부록 Ⅰ. 유용한 DOM 메소드와 프로퍼티 389 메소드 390 노드 만들기 390 createElement 390 createTextNode 392 노드 복사하기 393 cloneNode 393 노드 추가 395 appendChild 395 insertBefore 396 노드 삭제 397 removeChild 398 노드 바꾸기 398 replaceChild 398 노드 값 변경 399 setAttribute 400 노드 찾기 400 getAttribute 401 getElementById 401 getElementsByTagName 402 hasChildNodes 403 프로퍼티 404 노드 프로퍼티 404 nodeName 404 nodeType 405 nodeValue 406 노드 내부 구조 보기 407 childNodes 407 firstChild 408 lastChild 408 nextSibling 409 parentNode 409 previousSibling 410 [한국어판 특별 부록] 부록 Ⅱ. 웹 표준 기반의 멋진 DOM 스크립트 예제 - 윤석찬 411 Lightbox2, 슬라이드형 사진첩 412 Sortable Table, 다이내믹 테이블 정렬 415 그 밖에 좋은 예제 찾아보기 419 롤 오버 이미지 기능 419 라운드 박스에서 불필요한 마크업 없애기 420 DHTMLgoodies.com 420 [한국어판 특별 부록] 부록 III. 다이내믹한 웹사이트를 위한 고려 사항 - 강규영 423 사용성 424 즉시 편집 UI 425 사용성은 디자이너가 고민해야 하는 것 아닐까? 428 뒤로가기 버튼과 즐겨찾기 429 협업을 위한 도구와 실천법 431 참고자료 433 |
|
2002년… 어느 날. 한 웹 사이트에서 글쓰기 버튼을 클릭하는 순간 아무 움직임도 없었습니다. 심지어 링크를 클릭했는데도 움직이지 않습니다. 웹 페이지는 그런대로 보였지만 모질라(Mozilla) 웹 브라우저에서는 할 수 있는 것이 아무것도 없었던 웹 사이트였습니다. 알고 보니 document.all 이라는 인터넷 익스플로러 문서 객체(DOM)를 자바스크립트와 짬뽕해서 사용하는 바람에 글쓰기뿐만 아니라 링크 선택도 못하게 만들어 둔 사이트였습니다. 사실 document.getElementById라는 명백한 DOM 표준이 있는데도 말입니다. 그 후 저는 보편적인 사용자 접근성을 담보하면서 구조(XHTML)와 표현(CSS)의 분리를 원칙으로 하는 웹 표준에 대한 이야기를 하기 시작했습니다. 수 년 동안 『실용 예제로 배우는 웹 표준』을 비롯한 여러 책들이 출간되고 많은 국내 주요 웹 사이트들이 웹 표준 기반으로 바뀐 것은 놀랍기도 하고 정말 다행이 아닐 수 없습니다. 하지만 여전히 난제로 남아 있는 것이 DOM과 자바스크립트의 오용입니다. 많은 웹 사이트에는 과거 웹 브라우저 전쟁 시대에 비 표준 방식으로 짠 자바스크립트 코드들이 사람들 사이의 복사 및 붙여넣기(Copy & Paste) 관행을 통해 아직도 살아 남아 있습니다. 심지어 어떤 웹 사이트의 HTML 소스를 열어 보면 이것이 웹 문서인지 프로그래밍 코드인지 분간이 안될 정도로 자바스크립트와 DOM을 잘 못 사용하고 있는 것을 허다하게 봅니다. 이런 비표준 스크립트들이 남아 있는 웹 사이트는 파이어폭스, 오페라, 사파리 같은 브라우저 사용자뿐만 아니라 자바스크립트 기능을 이해하기 어려운 장애인 브라우저 사용자들에게는 지뢰밭과 같습니다. 이 책은 웹 문서 기본 원칙인 구조와 표현의 분리뿐만 아니라 동작(Behavior)의 분리까지 가능한 방법을 알려 줍니다. 마크업에서 자바스크립트를 분리하더라도 핵심 기능과 효과를 동시에 만족할 수 있는 방법을 알려 줍니다. 문서 내에 기능을 단계적으로 확장 혹은 축소하더라도 사용자는 최소한의 접근 기능을 담보해 주는 방식을 가르칩니다. 구조와 표현 그리고 동작을 완벽히 분리해 웹 디자이너와 웹 퍼블리셔 그리고 웹 개발자들이 협업을 통해 웹 사이트를 만들 수 있는 방법을 제시합니다. 옛날 낡은 자바스크립트 문법책을 덮고 ‘DOM 스크립트’를 펴는 순간 새로운 세상이 느껴지실 겁니다. 마지막으로 1년이 넘는 시간 동안 꾹 참고 기다려준 에이콘 출판사 여러분께 감사를 드립니다. 저자인 제레미의 이야기를 우리 식대로 제대로 풀어 냈는지 걱정이 앞서지만, 이 책에 대해 관심과 질책을 보내주실 독자 여러분께도 미리 감사를 전합니다. --- 역자 서문 |
|
이 책은 프로그램 언어를 다룹니다. 하지만 프로그래머만을 위한 책은 아닙니다. 바로 웹 디자이너를 위한 책이기도 합니다. 특별히 XHTML과 CSS의 의미를 알고 자유롭게 다룰 수 있는 웹 표준을 잘 아는 웹 디자이너, 개발자 모두를 위한 책입니다. 여기에 해당되는 분이라면 누구나 이 책을 읽으셔도 됩니다.
책 안에는 프로그램 코드와 개념을 모두 설명해뒀습니다. 코드가 눈에 많이 띈다고 너무 놀라지 마세요. 개념을 잡고 나시면 프로그램 언어를 읽고 쓸 수 있는 자신을 발견하게 될 것입니다. 프로그램 언어를 배운다는 것이 좀 겁나는 일이긴 해도 주저하실 필요는 없습니다. DOM 스크립트가 CSS보다 좀더 많은 것을 배워야 하지만 일단 문법을 이해하시고 나면 여러분은 강력한 웹 개발 도구 하나를 더 얻게 되는 것입니다. 어떤 경우라도 코드는 간단하게 개념을 표현하는 데 쓰입니다. 제가 비밀 하나 알려 드릴까요? 특정 프로그램 언어에 대한 문법을 모조리 다 외우는 사람은 아무도 없습니다. 누구나 책이나 온라인 매뉴얼을 참조합니다. 이 책은 참조를 위한 서적이 아닙니다. 물론 자바 스크립트를 처음 시작하는 데 필요한 최소의 문법은 담고 있지만요. 저는 DOM 스크립트의 중요한 개념들에 초점을 맞출 생각입니다. 아마 한 번쯤은 단계적 기능 축소(graceful degradation)나 기능 확장(progressive enhancement), 사용자 중심 디자인 등이 프론트엔드 웹 개발에서 중요한 측면이라는 이야기를 들어본 적이 있으실 겁니다. 위의 개념들은 책 전반에 걸쳐 설명하고 있는 사진첩이나 애니메이션 슬라이드 쇼 같은 예제와 문서 내 각 요소에 대한 사용자 경험을 향상시키는 모든 코드에 녹아 있습니다. 원하신다면 이 코드들을 복사해서 자신의 작업에 붙여 넣고 사용할 수도 있습니다만 어떻게 그리고 왜 이런 코드를 써야 하는지 이해하는 것이 더 중요합니다. 여러분이 이미 XHTML과 CSS를 사용해서 웹 페이지를 만들고 계시다면 웹 표준의 포스를 이미 알고 계실 것입니다. 태그를 더 이상 사용할 필요가 없다는 사실을 깨닫던 순간의 놀라움과 스릴을 기억하시나요? 웹사이트 내의 모든 웹 페이지 디자인을 단지 CSS 파일 하나만 고치면 바로 적용된다는 사실을 알고 기뻐했던 경험이 있으시죠? 이제 문서 객체 모델(Document Object Model)로 바로 그런 색다른 경험을 하나 더 선사해 드리겠습니다. 하지만 강력한 힘은 책임을 동반합니다. 저는 그저 아주 멋지기만 한 DOM 스크립트 예제를 보여주려는 것이 아닙니다. DOM 스크립트를 이용해 좀더 사용하기 편리하면서도 접근성이 뛰어난 방법을 알려 드리고자 합니다. 이 책에 수록된 모든 예제 코드들은 friends of ED 출판사 사이트 다운로드 페이지(http://www.friendsofed.com/downloads/1590595335/DOMscripting.zip)나 에이콘출판사 도서정보 페이지(http://www.acornpub.co.kr/book/dom/)에서 받으실 수 있습니다. 여러분의 DOM 스크립트 공부가 이 책을 덮고 그냥 끝나 버려서는 안됩니다. 더 많은 토론과 웹 표준 기반 자바 스크립트 사용법과 예제 등을 http://domscripting.com에 올리겠습니다. 이 웹사이트에서 곧 다시 만나길 바라며, 그 때까지 이 책을 즐겁게 읽으시기 바랍니다. --- 저자 서문 |
|
자바스크립트와 문서 객체 모델(DOM)을 통한 표준 기반 웹 디자인
● 자바스크립트를 마크업에 넣지 않고도 다이내믹한 효과 만들어 보기 ● 자바스크립트를 사용할 수 없는 경우에도 핵심 기능이 유지되는 스크립트 코드 짜기 ● 브라우저 호환성을 위해 DOM 표준 방식만 사용하기 ● 온라인 사진첩, 애니메이션 등 다양한 이용자 편의 기능 만들기 ● 웹 표준을 통해 Ajax에 올바르게 접근하기 여러분은 아마 문서 객체 모델, DOM이란 말을 들어보셨을 것입니다. 그리고 자바스크립트에 대해서도 잘 아실 겁니다. 이 책은 어떻게 하면 이 두 가지 기법을 웹 표준에 맞게 조화롭게 사용할 것인가 하는 점을 다룹니다. DOM 스크립트를 꼭 웹 프로그래머만 공부하란 법은 없습니다. 사실 이 책은 웹 표준을 어느 정도 알고 있는 분을 위해 만들었습니다. 코드를 짜는 방법을 아주 쉽게 설명하고 실질적인 예제를 들어 쉽게 이해할 수 있게 했습니다. 이 책에 있는 예제들은 쉬울 뿐만 아니라 현장에서 바로 사용할 수 있는 좋은 코드들입니다. 자바스크립트와 DOM은 함께 잘 이용하면 사용성에 있어 강력한 무기가 되지만, 그렇지 않으면 큰 문제를 일으키게 됩니다. 이 책에 실린 훌륭한 예제와 자세한 설명을 통해 여러분은 사용자를 더 고려하는 방법을 익히게 될 것입니다. 여러분이 이미 XHTML과 CSS를 이용한 웹 표준 기법을 알고 계시다면 DOM 스크립트를 통한 기능 향상을 배울 수 있습니다. CSS를 사용해 구조에서 표현을 분리할 수 있듯이 마크업과 사용성을 희생하지 않고도 다이내믹한 효과를 얻을 수 있는 방법을 알려 드립니다. 구닥다리 자바스크립트 문법책은 이제 접고, DOM 스크립트의 새로운 개념에 빠져 보십시오! |
|
추천평
“자바스크립트요? 그건 안 좋아요. 당신도 알다시피 접근성이 개판입니다. 그걸 쓰면 웹 브라우저마다 엄청난 삽질을 해야 되구요. 마구 뜨는 팝업창의 원조이기도 합니다. 마치 당신이 안 볼 때 당신 애완견을 걷어차는 거나 비슷하다니까요..” 음, 저는 이렇게 생각 합니다. 여러분은 저처럼 자바스크립트 사용을 꺼리는 웹 디자이너 혹은 웹 개발자이신가요? 하지만 우리 중 많은 사람들이 아무 의심 없이 자바스크립트를 웹 사이트에 남용하고 있습니다. 심지어 닷컴 버블시대에 만들어진 아주 질낮은 자바스크립트 코드가 좋은 사례인양 그대로 살아 있기도 하고 이런 것을 아무 꺼리낌 없이 퍼 나르면서 사용하고 있습니다. 감사하게도 옛날의 과오를 깨닫고 관점을 바로잡아 주기 위해 우리에겐 제레미 키스 같은 이가 있습니다. 이 책에서 그는 자바스크립트를 올바르게 사용하면 DOM 스크립트가 웹 개발을 할 때 아주 훌륭한 부가 기능을 제공하는 도구가 된다는 것을 알게 해 줍니다. 사실 ‘DOM 스크립트’의 현 상황을 보면 제가 2002년에 CSS 레이아웃 방식을 처음 도입할 때가 생각 납니다. 그때만 해도 많은 웹 디자이너나 개발자들이 CSS를 그냥 단순히 글꼴색을 바꾸는 데 필요한 것이라고 생각 했습니다. 하지만 CSS 기반 레이아웃 방식이 관심을 끌면서 사람들의 생각이 바뀌기 시작했습니다. 와이어드(Wired)나 ESPN 같은 상업 웹 사이트들이 이 방식을 채택하기 시작했고 2003년 초 저는 웹 디자이너들 사이에 폭발적 관심을 받은 CSS 젠 가든(Zen Garden)을 만들었습니다. 그 해 말 CSS는 이미 거스를 수 없는 대세가 되어 웹 사이트 개발에 적용 되기 시작했습니다. 저는 지금 DOM 스크립트가 비슷한 길을 가고 있다고 생각합니다. 구글맵(Google Maps)과 플리커(Flickr) 같은 상업 사이트들이 DOM 스크립트의 이점을 취해 웹 사이트에 멋진 부가 기능을 제공해 성공했습니다. 사람들은 별 관심이 없던 자바스크립트와 DOM에 대한 기술을 익히기 시작했고 이를 이용해 웹 사이트에서 사용자 경험을 증대시키는 작업을 전개했습니다. 운좋게도 우리는 올바른 방식을 알려 주는 책을 갖게 되었습니다. 저는 이 분야에 있어 제레미보다 더 훌륭한 저자는 없다고 생각 합니다. 그는 웹 표준화 프로젝트의 스크립팅 TF를 이끌고 있고 구조와 표현에서 자바스크립트를 분리하는 방식의 선구자입니다. 사실 저도 그의 소스코드를 가끔 훔쳐 쓰기도 했는데 이 책에 그 코드들이 실려 더 이상 죄책감을 느끼지 않아도 되어 너무 고맙습니다. 후훗. 이 책은 첫 발걸음을 떼기에 매우 훌륭한 책입니다. 처음 코드 예제를 보고 난 후에 더 배우고 싶어졌습니다. 첫 장을 읽고 난 후에 저는 아주 낚여 버렸습니다. 제레미는 고급 개념도 아주 쉽게 풀어 설명하는 재주가 있습니다. 그는 시간을 두고 상식적인 예제를 갖고 차근차근 자신의 주장을 펼칩니다. 결국 여러분이 뭘 하는지는 모르지만 왜 해야 하는지는 알게 됩니다. 이제 객체 판별 방식으로 브라우저를 알아내는 방법을 써야 할 때입니다. 더 이상 모든 방문자가 자바스크립트를 사용할 거라는 착각에 빠져서는 안됩니다. 인라인 이벤트 핸들러에 의존하지 맙시다. 웹은 계속 업그레이드되고 있고 이 책에 있는 다양한 기법들은 모든 사람에게 혜택을 주게 될 것입니다. 데이브 시어 데이브 시어(Dave Shea)는 CSS 젠 가든(www.csszengarden.com)을 만들고 가꾼 장본인이다. 웹 표준 프로젝트 회원이고 Bright Creative의 운영자이면서 그의 블로그 mezzoblue.com에서 웹과 인터넷에 대한 다양한 글을 쓰고 있다. 9년이 넘도록 웹 개발 경력을 쌓았으며 새로운 웹 디자인 세대의 리더로 인정 받고 있다. |