로그인회원가입 장바구니마이페이지
kangcom
전체
Home >   >   > 

웹 사이트 최적화 기법: UI 개발자를 위한 필수 지침서

   
지은이 Steve Souders/박경훈   |   출판사 ITC(아이티씨)  |   발행일 2008년 06월 09일
 
클릭하시면 큰 도서이미지를 보실 수 있습니다.
판매가 16,000원15,680원 2%
마일리지 0% 0원
발행일 2008-06-09
ISBN 8990758963 |  9788990758965
기타정보 번역서 | 204쪽
예상출고일 1~2일 이내 (근무일기준)
배송비 2,000원 (20,000원이상 무료배송)
   
프로그래밍언어
종합지수 8p 111 위
   
이 책의 원서
  High Performance Web Sites: Essential Knowledge for Frontend Engineers
Oreilly & Associates Inc | Steve Souders
 

웹 사이트를 보다 빠르게 로드하길 원하는가?

이 책은 사용자가 웹 페이지를 요청할 경우, 응답 시간을 20~25%나 절감할 수 있는 14개의 규칙에 대해서 설명하고 있다. 이 책의 저자인 스티브 사우더스는 야후에서 성능 최적화 부서의 책임을 맡고 있으며, 웹 페이지를 최적화하고 빠르게 만드는 최선의 방법들을 수집해 오고 있다. 이 책에서 소개하고 있는 14개의 규칙으로 야후 검색과 야후 메인 페이지는 이전보다 훨씬 빠른 로딩을 방문자에게 선사하고 있다. 여러분도 이 간단한 성능 가이드를 이용한다면 야후 못지않은 빠른 사이트를 만들 수 있을 것이다.

이 책에서 다루는 규칙들은 사이트를 만들 때 사용하는 Ajax, CSS, JavaScript, Flash 그리고 이미지와 같은 구성요소들을 어떻게 최적화할 수 있을지에 대한 내용이다. 각각의 성능 규칙들은 예제들을 제공하고 부분적으로 사용이 가능하다. 이 책에서 다루고 있는 14가지 규칙들은 다음과 같다.

․ HTTP 요청을 줄여라
․ 콘텐츠 전송 네트워크를 이용하라
․ 헤더에 만료기한을 추가하라
․ Gzip 컴포넌트
․ 스타일시트를 위에 넣어라
․ 스크립트를 아래에 넣어라
․ CSS Expression을 피해라
․ 자바스크립트와 CSS를 외부파일에 넣어라
․ DNS 조회를 줄여라
․ 자바스크립트를 최소화하라
․ 리다이렉트를 피하라
․ 중복되는 스크립트를 제거하라
․ ETag를 설정하라
․ 캐시를 지원하는 Ajax 만들기


[이 책의 구성]

이 책은 먼저 서론 두 장을 다룬 후에 이 책의 주요 내용인 14가지 성능 규칙을 다루게 된다. 14가지의 규칙은 중요한 순서대로 장마다 한 가지 규칙이 소개된다. 이 책의 규칙들이 모든 사이트에 적용되어서는 안 되며, 모든 사이트에 동일한 방식으로 적용되어서도 안 된다. 즉, 각 규칙을 적용해도 좋을지 고려해 봐야 할 것이다. 이 책의 마지막 장은 실제 사례를 통하여 웹 페이지의 성능을 분석하는 방법을 다루게 된다.

A장 - “앞단 성능의 중요성”에서는 웹 페이지를 보여주기 위해 걸리는 전체 시간 중 최소 80%가 HTML 문서가 다운로드된 이후에 일어난다는 것을 설명한다. 그리고 이 책에서 다루는 기술들의 중요성에 대해서 설명한다.
B장 - “HTTP의 이해”에서는 HTTP를 간단히 소개하고 성능과 관련된 중요한 부분을 살펴본다.
1장 - “규칙 1: HTTP 요청을 줄여라”에서는 왜 필요 이상의 HTTP 요청이 성능에 가장 큰 영향을 미치는지 설명한다. 그리고 이미지 맵, CSS Sprite, 인라인 이미지를 포함하고 있는 HTTP 요청(data: URL 스키마) 그리고 스크립트와 스타일시트를 합치는 등의 내용을 살펴본다.
2장 - “규칙 2: 콘텐츠 전송 네트워크를 이용하라”에서는 콘텐츠 전송 네트워크를 이용하면서 얻을 수 있는 장점들을 살펴본다.
3장 - “규칙 3: 헤더에 만료기한을 추가하라”에서는 간단한 HTTP 헤더가 브라우저의 캐시를 이용하게 함으로써 웹 페이지를 개선할 수 있는 방법을 살펴본다.
4장 - “규칙 4: Gzip 컴포넌트”에서는 압축이 어떻게 작동하는지 그리고 사용하고 있는 웹 서버의 설정 방법, 현재 존재하고 있는 여러 호환성 문제에 대해 살펴본다.
5장 - “규칙 5: 스타일시트는 위에 넣어라”에서는 스타일시트가 웹 페이지에서 렌더링에 어떤 영향을 주는지를 살펴본다.
6장 - “규칙 6: 스크립트는 아래에 넣어라”에서는 스크립트가 브라우저 안에서 렌더링과 다운로드에 어떤 영향을 주는지를 살펴본다.
7장 - “규칙 7: CSS Expression을 피하라”에서는 CSS의 표현에 대한 사용과 CSS 양을 정량화하는 것의 중요성을 살펴본다.
8장 - “규칙 8: 자바스크립트와 CSS를 외부 파일에 넣어라”에서는 외부에 존재하는 자바스크립트나 CSS 파일을 페이지에 넣는 것에 대한 이야기를 나눈다.
9장 “규칙 9: DNS 조회를 줄여라”에서는 도메인 이름의 변환 작업에 있어 간과할 수 있는 중요한 부분을 살펴본다.
10장 - “규칙 10: 자바스크립트를 최소화하라”에서는 공백을 줄임으로써 얻는 이익을 살펴본다.
11장 - “규칙 11: 리다이렉트를 피하라”에서는 리다이렉트를 사용할 때 발생할 수 있는 위험요소와 리다이렉트 대신 사용할 수 있는 대안을 살펴본다.
12장 - “규칙 12: 중복되는 스크립트를 제거하라”에서는 한 페이지에서 한 스크립트를 두 번 포함하고 있을 때 일어나는 일들을 살펴본다.
13장 - “규칙 13: ETag를 설정하라”에서는 ETag로 작업하는 방법과 기본적인 구현이 한 대 이상의 웹 서버로 구성하는 경우에 왜 안 좋은지를 살펴본다.
14장 - “규칙 14: 캐시를 지원하는 Ajax 만들기”에서는 Ajax를 이용할 때 이러한 성능 규칙들을 염두하고 이 규칙을 지켜야 하는 이유에 대해서 살펴본다.
15장 - “미국 상위 10개 사이트의 분석”에서는 실제의 웹 사이트에서 성능을 어떻게 개선해야 할지에 대한 예를 살펴본다.


[이 책에 대한 찬사]

“모든 이들이 스티브(Steve)가 추천하는 방법들 중 20%만이라도 구현을 한다면 웹 세상은 훨씬 더 나은 세상이 될 것이다. 이 책과 스티브의 YSlow를 갖고 있다면 더 이상 웹 사이트가 느려야 할 이유가 없다.”
_ 조 에위트(Joe Hewitt), 파이어버그 디버거와 모질라의 DOM Inspector의 개발자

“스티브 사우더스(Steve Souders)는 이 거대하고도 거의 불가해한 예술을 간단하고, 실용적이고 실행 가능한 규칙들로 훌륭하게 풀어 썼다. 이는 웹 성능의 세계를 바꿔 놓을 것이다.”
_ 에릭 로렌스(Eric Lawrence), Fiddler 웹 디버거 개발자, 마이크로소프트

“Zillow.com의 성능과 부하 테스트 책임을 맡고 있는 나는 개발자와 운영자에게 스티브가 이 책에서 말하는 요점들에 대해 얘기해 왔고, 그들은 한결같이 어떻게 이 책을 구할 수 없을까 하고 묻는다. 난 이 책이야말로 모든 UI 및 사용자 경험 개발자들과 성능 엔지니어들이 필수적으로 읽어야 할 교과서라고 생각한다.”
_ 네이트 모크(Nate Moch), www.zillow.com

“이 책은 모든 웹 개발자가 반드시 알아야 하는 가이드이다. 스티브의 명료하고 유용한 조언들을 적용하면 그 어떤 웹 사이트라도 눈에 띄게 빨라질 것이다.”
_ 토니 초어(Tony Chor), 그룹 프로그램 매니저, 인터넷 익스플로러 팀, Microsoft Corporation


[추천사]

인터넷의 발전과 더불어 초고속 인터넷 인프라가 구축되는 현재, 사용자는 필요한 10∼20%의 정보를 보기 위해, 불필요한 80∼90%의 이미지, 파일 등을 다운받고 있다. 국내 인터넷 환경은 특히 화려한 디자인과 Rich UI를 구현하는 데 상당히 많은 비용을 소비하고 있다. 이는 서비스 공급업체나 사용자 모두에게 부담스러운 일이 아닐 수 없다.

이를 해결하기 위한 방법을 찾던 중 이 책을 접하게 되었다. 14가지의 웹 성능 향상을 위한 팁을 보게 되었고, 실제 2008년 다음(Daum) 메인 페이지 개편 시 적용하여 디자인이 더 좋아졌음에도 불구하고 로딩 속도 면에서도 이득을 본 경험이 있다. 웹 서비스 전반에 걸친 성능 튜닝에 대한 구체적인 예제가 들어 있어 보는 사람이 직관적으로 인식할 수 있을 것이다. YUI의 기술력을 느낄 수 있었고, 적절한 그림과 설명으로, 노하우를 그대로 전수받는 느낌이 들었다. 기타 기술 서적처럼 두껍진 않지만, 웹 개발자가 알아야 될 14가지 필수 사항에 대한 내용이 담겨 있어, 서비스 구현 시 한 번씩 적용해 보면 좋을 것이다.

다음 사이트 전반에 이 책의 기술이 응용되고 있고, 앞으로 국내 환경에 맞는 테스트를 진행할 예정이다. 웹 개발자라면 꼭 읽어야 할 필독서이고, 실제 비용을 줄이기 위해 꼭 적용했으면 한다.

임종혁
다음 커뮤니케이션 UI 개발팀 팀장
블로그_http://21cboss.tistory.com
A 앞단 성능의 중요성 1
웹 페이지 성능 추적 1
시간은 어디에서 소비될까? 4
성능 황금률 5

B HTTP의 이해 9
압축 10
조건부 GET 요청 11
만료기한 12
Keep-Alive 12
더 많은 정보 13

제1장 규칙 1: HTTP 요청을 줄여라 15
이미지 맵 15
CSS Sprite 17
인라인 이미지 20
스크립트와 스타일시트의 결합 22
결론 24

제2장 규칙 2: 콘텐츠 전송 네트워크를 이용하라 25
콘텐츠 전송 네트워크 26
절감 효과 28

제3장 규칙 3: 헤더에 만료기한을 추가하라 31
헤더의 만료기한 32
max-age와 mod_expires 속성 32
빈 캐시 와 꽉 찬 캐시 34
이미지 그 이상으로 36
파일 이름 의 활용 38
예제 39

제4장 규칙 4: Gzip 컴포넌트 41
압축을 적용하는 방법 42
무엇을 압축해야 하는가? 42
압축률 44
설정 44
프록시 캐싱 46
예외적인 경우 47
Gzip의 효과 49

제5장 규칙 5: 스타일시트는 위에 넣어라 51
점진적인 렌더링 52
sleep.cgi 53
빈 흰색 스크린 54
스타일이 뒤늦게 적용되는 콘텐츠 58
엔지니어는 무엇을 선택할 것인가? 59

제6장 규칙 6: 스크립트는 아래에 넣어라 61
스크립트의 문제 61
동시 다운로드 62
동시 다운로드를 막는 스크립트 65
최악의 경우: 스크립트를 위에 넣는 경우 66
최상의 경우: 스크립트를 아래에 넣을 경우 67
정리 68

제7장 규칙 7: CSS Expression을 피하라 71
Expression의 업데이트 72
이 문제를 피해서 적용하는 방법 73
결론 75

제8장 규칙 8: 자바스크립트와 CSS를 외부 파일에 넣어라 77
외부 파일 vs 인라인 코드 77
실 서비스 현장에서의 일반적인 선택 81
홈페이지 81
두 가지 방법의 장점만을 모아서 82

제9장 규칙 9: DNS 조회를 줄여라 87
DNS 캐싱 과 TTL 88
브라우저 입장에 본 DNS 조회 91
DNS 조회를 줄이자 94

제10장 규칙 10: 자바스크립트를 최소화하라 95
최소화 95
난독화 96
얼마나 절약되는가? 97
예제 100
금상첨화 101

제11장 규칙 11: 리다이렉트를 피하라 105
리다이렉트 타입 105
리다이렉트가 성능에 미치는 영향 107
리다이렉트의 대안 109

제12장 규칙 12: 중복되는 스크립트를 제거하라 117
스크립트가 중복되는 상황 117
스크립트 중복이 성능에 주는 악영향 118
중복 스크립트를 피하는 방법 120

제13장 규칙 13: ETag를 설정하라 123
ETag란 무엇인가? 123
ETag의 문제 126
ETag: 사용해야 하나 버려야 하나? 128
실제 사이트의 ETag 129

제14장 규칙 14: 캐시를 지원하는 Ajax 만들기 133
웹 2.0, DHTML, Ajax 133
‘비동기’와 ‘즉시’는 같은가? 136
Ajax 요청의 최적화 137
실제 사이트의 Ajax 캐싱 138

제15장 미국 상위 10개 사이트의 분석 143
페이지의 무게, 응답 시간, YSlow 등급 143
어떻게 테스트했는가? 146
아마존(Amazon) 148
AOL 151
CNN 155
eBay 157
구글(Google) 161
MSN 165
마이스페이스(MySpace) 169
위키피디아(Wikipedia) 172
야후(Yahoo!) 174
유튜브(YouTube) 177

찾아보기 181
[저자 소개]

스티브 사우더스 (Steve Souders)
저자는 야후에서 성능 최적화 부서 팀장으로서 웹 사이트를 더욱 빠르게 할 수 있는 일련의 방법론들을 개발했다. 2000년부터 야후에서 일하면서 야후의 많은 플랫폼 및 제품들과 작업을 해오기도 한 그는 현재 직책을 맡기 전에는 ‘My 야후!’ 팀을 맡아 운영하기도 했다.

야후로 오기 전에는 몇 개의 작은 창업 회사들에서 일을 했고, 이 중 Helix Systems와 CoolSync는 그가 공동 창업자이기도 하다. 그는 또한 General Magic, WhoWhere, 그리고 라이코스에서도 근무했다. 1980년도 초에 그는 인공지능에 관심을 갖고 Machine Learning 관련 연구를 하는 회사들에서 일하기도 했다. 그는 버지니아 대학교에서 System Engineering 분야의 학사과정을 마쳤고, 스탠포드 대학교에서는 Management Science and Engineering 분야의 석사과정을 마쳤다.


[역자 소개]

박경훈
Microsoft의 Visual C# MVP로 활동 중이고, 다수의 닷넷 관련 서적의 집필 및 번역에 참여했다. 여러 컨퍼런스 행사 및 세미나에서 닷넷과 관련된 많은 강의를 진행했고 또한 KBS의 ‘미래를 이끌 젊은 주역 60인’으로 선정되기도 하였다. 현재는 HOONS 닷넷(www.hoon.kr)이라는 개발자 커뮤니티를 운영하고 있다.
웹 사이트 최적화 기법
이균환님이 쓰신 서평보기 I 평점 I 조회수(3233) I 공감 (0) I 블로그
사다 놓은지 1년 좀 된것 같은데..  왜 안보고 있을까라는 생각에 단숨에 읽어버렸네요 ㅡ 저자는 야후에서 성능 최적화 부서 팀장으로서 당장 써먹을 수 있는 내용을 많이 밝히고 있습니다. 보통 우리가 속도가 느리면 DAO쪽에만 치중을 하는데.. 웹쪽이 느려서 기껏 빠르게 해놓은 API가 무용지물이 될수 있으니.. 웹쪽도 잘 봐두어야겠습니다. 책에서는 14가지의 규칙을 내세우며 적용하는 법을 가르켜줍니다. 하나씩 찬찬히 보도록 하겠습니다. 규칙 1. HTTP ...
이 책은 비급이다.
천명조님이 쓰신 서평보기 I 평점 I 조회수(2396) I 공감 (0) I 블로그
이 책은 참으로 비급이다. 내 문향 표국 생활 6년 만에 이런 비급은 처음이다. 비급 자체가 없었다는 뜻이 아니라, 가려운 곳을 정확하게 긁어주는, 나에게 정말 때가 맞는 비급은 처음이란 뜻이다. 새롭게 알게 된 내용도 많지만 전부터 알고 있었던 것도 있었다. mod_expire 나 mod_deflate 같은 건 알고는 있었지만 정확히 어떤 경우에 무엇을 위해서 써야할 지 일반적인 매뉴얼만 가지고는 현업 서버에 적용하기가 두려웠다.그런 차에 정확한 조언을 해주는 이런 책이 나왔으니......
 
전체평균(38)
회원평점   회원서평수 2
웹 사이트 최적화 기법
이균환 님  2009-08-09
이 책은 비급이다.
천명조 님  2008-07-15
이메일주소수집거부