Top

웹킷이 주도하는 미래형 웹 개발 [HTML5+CSS3 반응형 웹 표준 앱의 필수 기술 WebKit]

  • 원서명Smashing WebKit (ISBN 9781119999133)
  • 지은이존 라쉬
  • 옮긴이정상욱
  • ISBN : 9788960774261
  • 35,000원
  • 2013년 04월 30일 펴냄 (절판)
  • 페이퍼백 | 448쪽 | 188*235mm
  • 시리즈 : 웹 프로페셔널

판매처

  • 현재 이 도서는 구매할 수 없습니다.

책 소개

HTML5+CSS3 반응형 웹 표준 사이트를 만들고 검증하는 가장 손쉬운 방법!
구글 크롬, 애플 사파리가 선택한 오픈소스 웹브라우저 렌더링 엔진, 웹킷 가이드


웹킷을 알면 웹의 미래가 보인다. 구글 크롬과 애플 사파리의 핵심 기술이자 사실상 표준인 가장 강력한 웹브라우저 렌더링 엔진인 오픈소스 프로젝트 웹킷(WebKit)에 관한 국내 최초 개론서. 웹킷이 무엇이며, 어떻게 활용되는지를 살펴보고, HTML5와 CSS3로 만드는 반응형 웹 표준 사이트를 만들고 검증하는 방법을 배운다. 또한 캔버스와 SVG의 개념, iOS와 안드로이드용 모바일 웹앱을 만드는 방법도 익힐 수 있다. 웹표준과 반응형 웹 사이트를 만들어야 하는 웹 개발자와 디자이너는 물론이고 웹사이트와 브라우저 품질을 검증하고 테스트하는 담당자까지, 미래형 웹을 지향하는 일을 하는 이라면 모두 읽어야 한다. 웹킷과 웹킷 기반 브라우저의 기능, 웹표준 사이트 제작과 검증 방법, 그리고 웹의 미래까지를 꿰뚫는 책이다.


[ 이 책에서 다루는 내용 ]

■ 외부 이미지 대신 CSS3 속성을 이용한 스타일링 옵션 확장
■ 마크업에 클래스와 아이디의 필요성을 줄이는 고급 CSS3 선택자 사용
■ 비디오와 오디오 태그 마크업을 이용한 미디어 임베드
■ 캔버스와 SVG로 만드는 놀라운 2D와 3D 그래픽 작업
■ 풍부한 웹 폼 생성을 위한 HTML5 폼 요소 사용법
■ iOS와 안드로이드 앱의 룩앤필을 흉내 낼 수 있는 웹 앱 만들기
■ 가속도계와 지오로케이션 지원 같은 모바일 디바이스 하드웨어 기능 활용
■ 브라우저 간 호환성 문제의 쉽고 빠른 해결법
■ 웹킷의 최적화 기술을 통한 성능 개선


[ 이 책의 구성 ]

1부: 웹킷의 기초
1부에서는 엔진이 어떻게 발전했는지뿐만 아니라 어떤 플랫폼과 디바이스에서 웹킷을 사용하는지를 살펴보고, 웹킷의 간단한 역사부터 설명한다. 그리고 웹킷 개발에 필요한 다양한 브라우저와 모바일 디바이스 에뮬레이터 설치 등 컴퓨터 환경 설정 방법도 배운다. 각각 이런 환경 안에서 자바스크립트 버그를 해결하고 찾아내기 위한 툴 사용법도 설명한다. 실시간 스타일링 옵션을 테스트하고, 웹 사이트의 성능을 확인한다. 마지막으로 인터넷 익스플로러와 파이어폭스처럼 비 웹킷 브라우저용 테스트 환경을 설정하는 방법에 대해서도 살펴본다.

2부: 웹킷에서 지원하는 CSS3
2부에서는 스타일 능력을 확장하고 외부 이미지에 대한 의존성을 줄이기 위해 다양한 CSS3 프로퍼티를 사용하는 법을 알아본다. 웹킷은 현대 브라우저에서 다양한 CSS3 프로퍼티를 지원하도록 혁신했고, 다양한 실험적인 스타일 옵션을 꾸준히 개발하고 있다.
고급 CSS3 선택자가 마크업에서 id와 클래스가 필요한 상황을 줄이고 어떻게 요소를 더 잘 선택하게 하는지도 알아본다. 마지막으로 필요한 곳에서 어떻게 네이티브 지원을 사용할 수 있는지, 그리고 구 버전 브라우저용으로 대안을 사용하는 법을 포함, CSS3 프로퍼티와 선택자를 지원하는 브라우저 간 호환성에 대해 배운다.

3부: 웹킷에서 지원하는 HTML5
3부에서는 다양한 HTML5 기능을 배운다. 먼저 오디오와 비디오 태그를 이용해서 브라우저에 직접 미디어를 임베드하는 방법을 알아본다. 쉽게 사용할 수 있고, 더 많은 상호 작용을 하는 풍부한 웹 폼을 만들기 위해 HTML5 form 요소를 사용하는 방법을 배운다.
마지막으로 HTML5 canvas와 SVG를 써서 복잡한 모양을 그리는 방법도 알아본다. 이런 고급 요소를 통해 2D와 3D 장면을 그리고, 플래시처럼 멋진 애플리케이션을 만들 수 있다.

4부: 모바일 웹킷
4부에서는 다양한 안드로이드폰과 태블릿, 아이폰, 아이패드용 웹 앱을 개발하는 다양한 기술을 논의하는 웹킷의 모바일 버전에 대해 설명한다. 가속도계와 터치 스크린, 지리 정보 같은 디바이스의 독특한 기능을 활용하는 방법에 대해서도 알려준다.
또한 어떻게 네이티브 iOS와 안드로이드 앱의 UI를 흉내 내는지 설명한다. 센차 터치 같은 자바스크립트로 인터넷에 연결하지 않고도 웹 앱이 오프라인으로 접속될 수 있는지에 대해서도 살펴본다. 마지막으로 폰갭 프레임워크와 이미 잘 알고 있는 HTML, CSS, 자바스크립트를 써서 완벽한 기능을 하는 네이티브 앱을 만드는 방법을 배운다.

5부: 웹킷 파고들기
1~4부와 마찬가지로 중요한 5부에서는 속도 향상을 다룬다. 최적화뿐만 아니라 모든 브라우저에서 성능을 개선할 수 있는 일반적인 방식의 좋은 예제를 검토한다. 또한 웹킷이 페이지를 그리는 방법에서 가질 수 있는 장점을 사용해 웹킷에 특화된 최적화 기술을 배운다.
마지막으로 웹과 웹킷의 미래와 전망을 살펴보고, 웹킷 코어에 패치와 버그 리포트를 올림으로써 웹킷 프로젝트에 기여를 할 수 있는 방법도 알아본다.

저자/역자 소개

[ 저자 서문 ]

출판사에서 웹킷 책 집필을 내게 제안했을 때, 처음에는 주제가 조금 이상하다고 생각했다. 물론, 웹킷에서 지원하는 고급 기능을 사용해서 개발하는 작업을 특히 좋아하지만, 웹 사이트는 단일 환경에 국한되지 않으며, 또 웹킷 브라우저에 맞춰 설계된 프로젝트를 해본 적도 없었기 때문이다.

하지만 내가 생각한 것 이상으로 웹킷에 대한 책은 매우 유용할 수 있다는 사실을 깨달았다. 웹킷 엔진에 대해 배운다고 해서 웹킷에 기반을 둔 브라우저만 지원한다는 의미는 아니었기 때문이다. 그보다는 웹킷을 배우는 것은 웹 표준을 배운다는 의미가 강했다.

몇 년 전에 둥근 모서리와 그라디언트 같은 CSS3 기능은 웹킷에 기반을 둔 사파리에서만 지원했다. 당시 이런 기능이 있는 사이트를 만드는 과정은 흥미로운 작업이었지만, 분명히 생산적인 웹 사이트에는 맞지 않는 작업이었다.

인터넷 환경이 급변하는 요즘, 웹 표준과 관련한 CSS3 기능 대부분은 모든 주요 브라우저에서 지원된다. CSS3는 사파리 마니아들의 취미에서 벗어나 주요 웹 사이트에서 사용되는 주요한 접근 방법으로 자리잡았다. 웹킷에 한 번 적용된 기능은 모든 웹 개발 전반에 걸쳐 표준으로 채택되며 유용하다는 사실이 증명됐기 때문이다.

오늘날 웹킷은 차별화된 렌더링과 혁신적인 새로운 기능, 웹 개발의 미래를 만드는 일을 주도하고 있다. 웹킷의 다양한 CSS3와 HTML5 기술은 이미 다른 브라우저에까지도 적용됐고, 몇 개월 혹은 몇 년 안에 더 많은 기능이 반영될 것으로 예상한다.

따라서 웹킷을 배우는 것은 웹 개발의 미래를 보는 창을 제공하는 것이다. 이렇게 빠르게 발전하는 분야에서 최신 동향을 알고 꾸준히 실천하는 일은 개발자들을 위해 매우 중요하다. 웹킷에 집중하는 것은 오늘날 사용되는 기술뿐만 아니라 미래에 사용될 기술을 배운다는 의미로, 당신이 남들보다 한발 앞설 수 있게 만들어준다.

그러면 웹 사이트를 만들 때 웹킷용으로만 만들어야 하는가? 물론 아니다.

이 책이 웹킷 기반 브라우저 기술에 집중하지만, 그렇다고 해서 결코 웹킷만을 따로 떼어내어 다루지는 않는다. 보편적인 웹 표준 기술을 지원하는지 혹은 ‘단계적 기능 축소’를 채택할 수 있는 대안 해결책이 있는지 등 브라우저 호환성 문제에 대해서도 설명한다.


[ 저자 소개 ]

존 라쉬(Jon Raasch)
15년간 웹 프로그래밍에 몸담아 왔으며 HTML4와 CSS3, 자바스크립트에 능숙한 프론트엔드 웹 개발자이자 UX 디자이너다. Smashingmagazine.com에 정기적으로 기고하며, jonraasch.com에 개인 블로그를 운영한다.
존 라쉬는 14살에 처음으로 지오시티(GeoCities)에 웹 사이트를 만들어 올렸다. 물론 당시에는 형편없는 수준이었지만, 지금은 아주 멋진 웹 사이트와 최신 기술을 사용하는 웹 기반 애플리케이션을 만들고 있다. 웹 표준과 프론트엔드 성능, UX 디자인에 열정을 갖고 활동 중이다.
예전에는 포틀랜드에 살았지만 이제는 원격으로 일하면서 세계를 여행한다(특히 독일 베를린을 아주 좋아한다).
존의 트위터(http://twitter.com/jonraasch)에서 그를 팔로우할 수 있다.


[ 옮긴이의 말 ]

애플의 아이폰이 촉매가 돼 시작된 스마트폰으로의 대변혁은 모바일 업계를 뒤흔들기에 충분했다.

너무도 급작스럽게 스마트폰이 대세가 되면서 휴대기기에서 사용하는 브라우저도 WAP 브라우저에서 웹킷 기반의 모바일 웹 브라우저로 변경됐다. 기존 WAP 브라우저를 답답해하던 사용자들은 모바일 기기에서 PC 기반의 브라우저 수준으로 지원되기를 원했으며, 모바일 웹 브라우저의 선두에 있던 웹킷 기반의 브라우저인 iOS 사파리와 구글의 크롬 브라우저가 이런 사용자 요구를 만족시키며 모바일 브라우저 시장을 양분해 WAP 브라우저 시장을 빠른 속도로 잠식했다.

이들 웹킷 기반의 브라우저를 개발하는 오픈 소스 프로젝트는 웹 표준화 작업에 적극 참여하고 있을 뿐만 아니라, 표준으로 아직 확정되진 않았지만 HTML5와 CSS3 같은 새로운 시도들을 웹 표준 사양으로 제안하고, 먼저 웹킷에 적용함으로써 웹 표준에 관해서는 가장 선두에 서 있다. 이 글을 쓰는 지금 이 순간에도 새로운 시도들이 추가되고 있다.

그렇기 때문에 최신 브라우저와 해당 기능을 원하는 많은 기업의 요구 사항을 만족시키기 위해 무료 오픈 소스인 웹킷을 사용하지 않으면서 최신 웹킷 브라우저 수준의 모바일 브라우저를 개발하는 것은 비용 측면에서도 더 이상 경쟁이 될 수 없다. 이제 웹킷 브라우저 기능을 사용하려는 사람은 누구나 오픈 소스를 가져와서 브라우저 기능을 제공할 수 있게 됐기 때문이다.

그렇다고 단점이 없는 것은 아니다. 웹킷은 매일 개발자 버전을 만들고 있으며, 길지 않은 주기로 릴리스 버전을 찍어내고 있으며, 한 번 내려받은 버전으로 작업하더라도 금세 새로운 버전이 나오기 때문에 새 버전과 이전 버전을 맞춰야 하는 단편화 문제가 발생한다. 검증 측면에서도 이전 버전을 검수했다 하더라도 새로운 버전이 나오면 모든 검수를 다시 해야 하기 때문에 개발 비용보다는 검수 비용이 많이 들어가는 구조가 될 수 있다. 따라서 웹킷을 사용할 때 어느 버전의 어느 기능을 특히 중요하게 볼지, 업그레이드 계획에 대해서 어떤 정책을 가지고 접근할지를 미리 정해놓고 진행하는 것이 최소한의 개발 비용으로 웹킷 브라우저를 사용할 수 있게 하는 방안이 될 것이다.

앞에서 말했듯이 웹킷에 대한 지식을 얻는 것은 비단 특정(웹킷) 브라우저에 대해 공부하는 개념이 아니다. 웹킷은 웹 표준을 선도하고 있으며, 여러 표준 협의회와 소통하면서 새로운 표준을 정의하고 그것을 웹킷에서 지원하게 한다. 따라서 웹킷에 대해 안다는 것은 세계적으로 제일 앞선 웹 표준을 따라간다는 것과 같은 의미다.


[ 옮긴이 소개 ]

정상욱
현재 현대엠엔소프트에 근무하고 있다. 이전에는 오비고에서 9년간 모바일 브라우저 개발을 담당했고, QA 팀장으로 근무하면서 웹킷 브라우저 검증과 웹 표준인 HTML5, CSS3를 분석하고, 관련 테스트 케이스를 작성했다.

목차

목차
  • 1부. 웹킷의 기초
  • 1장 웹킷이란?
    • 웹킷의 역사
    • 웹킷은 어디에 쓰이는가?
      • 웹 브라우저
      • 모바일 디바이스
      • 리치 인터넷 애플리케이션
      • 여러 종류의 디바이스
    • 웹킷이 제공하는 것은 무엇인가?
      • CSS3
      • HTML5와 SVG
    • 웹킷을 사용했더라도 기능이 모두 같진 않다
      • 다양한 버전의 웹킷 사용
      • 코어 수정
    • 요약
  • 2장 웹킷 개발 시작하기
    • 테스팅 환경 설정
      • 테스트하는 방법
      • 맥이나 PC냐
    • 크롬과 사파리 환경
      • 구 버전의 브라우저 테스트
      • 크롬과 사파리 문제 디버깅
    • iOS와 안드로이드 환경
      • 에뮬레이터 선택
      • iOS 시뮬레이터
      • 안드로이드 에뮬레이터
      • iOS와 안드로이드 문제 디버깅
    • 웹킷 브라우저 그 이상
      • 파이어폭스
      • 인터넷 익스플로러
      • 오페라
      • 다른 모바일 브라우저
    • 요약
  • 2부. 웹킷에서 지원하는 CSS3
  • 3장 CSS3의 고급 스타일링
    • CSS3를 사용해 이미지 없이 그래픽 그리기
      • 기본 설정
      • 둥근 모서리
      • 그라디언트
      • 활자체
      • 텍스트와 박스 섀도우
      • RGBa 투명도
    • CSS3 애니메이션
      • 전환하기
      • 키프레임의 사용
    • CSS3 변형
      • 2D 변형
      • 3D 변형
    • 다른 CSS3 프로퍼티
      • 테두리 이미지
      • 마스크
      • 글자 테두리
      • 사각형 반사
      • 웹킷의 움직이는 텍스트
      • 배경 클립
      • 데이터 URI
    • 요약
  • 4장 CSS3의 개선된 선택자 기능
    • CSS3 선택자와 유사 클래스
      • 선택자 속성
      • 구조적인 선택자
      • 구조적인 유사 클래스
      • 다른 유사 클래스
      • 유사 요소에 기반을 둔 텍스트와 콘텐츠
    • 미디어 쿼리
      • 미디어 쿼리의 사용
      • 미디어 쿼리를 이용해 유연한 레이아웃 만들기
      • 특정 디바이스 감지
    • 요약
  • 5장 CSS3로 다중 브라우저 지원
    • 모든 브라우저에서 동작하는 기본 CSS3 스타일
      • 크로스-브라우저에서의 둥근 모서리
      • 크로스-브라우저에서의 그라디언트
      • 크로스 브라우저의 폰트 페이스
      • 크로스 브라우저의 텍스트와 박스 섀도우
      • 크로스 브라우저의 RGBa 투명도
      • 크로스 브라우저의 테두리 이미지
      • 크로스 브라우저의 배경 클립
      • 크로스 브라우저의 데이터 URI
    • 모든 브라우저에서의 CSS3 애니메이션
      • 전환을 지원하지 않는 브라우저에서의 전환
      • 지원하지 않는 브라우저에서 키프레임 애니메이션
    • 모든 브라우저에서의 CSS3 변형
      • IE 구 버전에서의 변형 지원
      • 크로스 브라우저의 3D 변형 지원
    • 크로스 브라우저의 CSS3 선택자와 유사 클래스 지원
      • 크로스 브라우저의 선택자 지원
      • 크로스 브라우저의 유사 클래스와 유사 요소 지원
      • CSS3 선택자 지원을 위한 제이쿼리
    • 크로스 브라우저의 미디어 쿼리 지원
    • 모더나이저를 사용한 기능 감지
    • 요약
  • 3부. 웹킷에서 지원하는 HTML5
  • 6장 HTML5 미디어 태그
    • 왜 HTML5를 사용하는가?
    • HTML5 비디오
      • HTML5 비디오 옵션
      • HTML5 비디오 포맷
      • 다른 포맷 인코딩
      • HTML5 비디오 인코딩 테스트
    • HTML5 오디오
      • HTML5 오디오 포맷
      • HTML5 오디오 인코딩
    • HTML5 미디어 태그와 자바스크립트의 상호 작용
      • 기본 자바스크립트 명령어
    • HTML5 미디어 태그 대안으로 플래시 사용
      • 대안용 플래시 추가
      • 플래시 파일 생성
    • 요약
  • 7장 캔버스 요소
    • 캔버스의 기본
      • 기본적인 모양 그리기
      • 복잡한 모양 그리기
    • 캔버스 꾸미기
      • 이미지 사용하기
      • 채우기와 테두리 스타일
      • 선 스타일
      • 그림자
      • 텍스트 사용
    • 변형
      • 위치 이동
      • 회전
      • 크기 변경
      • 변형
      • 캔버스 상태의 저장과 복구
      • 다양한 상태의 저장과 복구
    • 구성하기와 클리핑 패스
      • 구성하기
      • 클리핑 패스
    • 반응형 캔버스
      • 기본적인 애니메이션
      • 마우스의 상호 작용
      • 물리학 라이브러리 사용하기
    • 3D 캔버스
      • 웹지엘과 오픈지엘
      • 3D 캔버스 라이브러리
    • 캔버스 영감
      • 게임
      • 오디오/비디오
      • 그리기와 만드는 툴
      • 수학/물리학
      • 시각 효과
      • 더 많은 캔버스 영감을 얻으려면
    • 요약
  • 8장 HTML5 폼
    • 특별 입력 형식
      • 숫자
      • 슬라이더
      • 색상과 날짜 선택기
      • 상황에 따른 키보드
      • 검색 박스
    • 상호 작용 기능
      • 플레이스홀더 텍스트
      • 자동 포커스
      • 폼 검사
    • 크로스 브라우저 지원
      • 특별한 입력 형식의 크로스 브라우저 지원
      • 상호 작용 기능용 크로스 브라우저 지원
    • 요약
  • 9장 확장 가능한 벡터 그래픽 SVG
    • SVG를 사용할 때의 장점
      • 벡터화된 이미지 형식
      • 완전한 상호 작용
      • 검색 엔진 최적화
      • 파일 크기
    • SVG 자동 생성
      • SVG 파일 생성
      • SVG 라이브러리
    • SVG 이미지 손으로 직접 작성하기
      • SVG 마크업 포함하기
      • 선과 모양 그리기
      • 텍스트와 링크, 이미지 추가하기
      • 그라디언트 추가하기
      • HTML 속성 대신에 CSS 사용하기
      • 자바스크립트 상호 작용
    • 요약
  • 4부. 모바일 웹킷
  • 10장 iOS와 안드로이드로 개발하기
    • 뷰포트와 회전 방향
      • 뷰포트의 조정
      • 미디어 쿼리를 이용한 CSS 조정
      • 자바스크립트를 통한 뷰포트와 방향, 해상도 액세스
    • 모바일 감지하기
      • 사용자 에이전트 확인
      • 미디어 쿼리
      • 자바스크립트를 이용한 감지
      • 감지하지 않기
    • 모바일용 스타일링
      • 실제 화면 영역의 최대화
      • 파일 크기의 감소
      • 여러 가지 변경
    • 디바이스 기능의 접근
      • 터치 이벤트
      • 위치 정보
      • 자이로스코프와 가속도계
      • 전화 걸기
      • 문자 메시지
      • 상황에 따른 키보드
      • 자동 수정 기능의 비활성화
      • 미디어 캡처
    • iOS를 위한 특별히 고려해야 할 점
      • 플래시 대신 HTML5 이용하기
      • 그 밖의 고려사항
    • 요약
  • 11장 웹 앱 만들기
    • 웹 앱과 네이티브 앱 비교
      • 웹 앱의 장점
      • 네이티브 앱의 장점
    • 북마크 아이콘 생성
      • 북마크와 다운로드 비교
      • 맞춤형 아이콘의 생성
      • 북마크 스크립트
    • 전체 화면 모드
      • 전체 화면 모드의 활성화
      • 브라우저 바 숨기기
    • 자바스크립트 라이브러리 선택
      • 센차터치
      • 제이쿼리 모바일
      • jQTOUCH
      • Zepto.js
    • CSS3를 사용한 iOS UI의 렌더링
      • iOS 스타일링 재현
      • iOS UI 기능 재현
    • CSS3를 이용한 안드로이드 UI의 렌더링
    • 오프라인의 진입
      • 앱이 오프라인인지 확인하기
      • HTML5 캐시 매니페스트
      • 로컬 스토리지
      • 오프라인 SQL 데이터베이스
    • 폰갭을 사용한 네이티브 앱 개발
      • 폰갭의 장점
      • 폰갭의 단점
      • 폰갭 시작하기
      • 폰갭 사용하기
      • 폰갭 API
    • 요약
  • 5부. 웹킷 파고들기
  • 12장 웹킷의 성능
    • 최적화 방법
      • 균형감 유지하기
      • 프로파일링 툴
      • 인지 성능 대 실제 성능
    • 애니메이션의 최적화
      • CSS 애니메이션의 이용
      • 리플로우 피하기
      • 하드웨어 가속
    • 자바스크립트의 최적화
      • 자바스크립트의 로딩
      • 순환문
      • 스코프 체인
      • 돔 조작
    • CSS의 최적화
      • 더 빠른 선택자
      • 피해야 하는 프로퍼티
    • 이미지 최적화
      • 웹용 이미지 저장
      • 웹피
      • 쿠키 없는 도메인 사용
    • 웹 소켓
      • 웹 소켓의 장점
      • 브라우저에서 지원
      • 웹 소켓을 사용하는 방법
    • 요약
  • 13장 웹킷의 미래
    • 웹킷 나이틀리 버전
    • 웹킷을 지원하는 방법
      • 오류 리포트 작성
      • 웹킷 코어에 기여하기
      • 문서 작성
    • 웹킷의 나아갈 방향은 어디인가?
      • 개발 중인 기능
      • 일반적인 개선 사항

도서 오류 신고

도서 오류 신고

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

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

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