출처: http://developer.yahoo.com/performance/rules.html 

8: Make JavaScript and CSS External

자바스크립트나 스타일시트는 인라인코드(하드코딩)하는 것보다 외부파일로 빼내서 사용하는 것이 일반적으로 좋다. 그렇게 하면 브라우저 캐시를 사용할 수 있기 때문에 페이지마다 중복되는 것일 경우 보다 빠르게 페이지를 로딩하는데 도움이 된다.

하지만 무조건 외부파일로 빼는 것이 좋은 것만은 아니다. 유저가 자주 방문하는 페이지가 아니라면 그 효과가 그리 크지 않다.


9: Reduce DNS Lookups

DNS 는 hostname 을 ip 주소로 연결해주는 것인데, 브라우저창에 호스트명을 치는 경우 브라우저를 통해 DNS에 질의를 하고 DNS 가 리턴해주는 IP를  사용하게 된다. DNS 는 거치는 것도 엄밀히 Response time 에 영향을 준다.

DNS 질의 결과는 퍼포먼스 향상을 위해 캐시 될 수 있는데 , 특별한 서버를 두고 인트라넷 등 에서 처리할 수도 있지만 , 개인 pc 에 캐시할 수도 있다. 보통 OS 에서 DNS cache 기능을  제공하는데
윈도우즈의 경우 DNS Client service 가 그 역할을 한다. 대부분의 브라우저는 OS DNS 캐시와 별개의 자신만의 캐시를 따로 관리하는데, 이 캐시안에 목록이 있는 경우 OS DNS 캐시를 찾아보지 않고 바로 사용한다.

IE 의 경우 DNS 질의 결과를 기본적으로 약 30분동안 캐시한다. 이것은 레지스트리에서 DnsCacheTimeout 값을 변경하여 수정할 수 있다.
Firefox 는 1분이 기본값이다. network.dnsCacheExpiration 값을 수정해 변경할 수 있다.

유닉크한 호스트명을 줄인다면 캐시가 저장되지 않은 상태에서(브라우저와 os 모두) 첫방문을 하는 하는 경우 페이내에 존재하는 컴포넌트(이미지나 스트립트..)를 불러오기 위해 DNS 질의를 하는 수를 줄일 수 있다. 그 만큼 페이지 로딩 속도가 빨라지는 것이다.
하지만 앞에서 언급한, 병렬 다운로드를 위해서는 호스명을 나눠서 처리하는 것이 좋다고 했는데 둘이 모순된다.
이 글에서는 그래서 2이상의 호스트명을 쓰되 4개 이상을 초과하지 않는 범위에서 페이지를 구성하는 것을 권고하고있다. 그래서 DNS 질의량을 적정선에 맞추고 병렬 다운로드로 이용하라고 한다.

10: Minify JavaScript

필요없는 문자들을 코드에서 제거해서 로딩속도를 높이란 말.
공백,탭,주석등을 없앤 코드를 실제 서비스에 사용하라는 말이다.(아마 이런기능이 울트라에디트에 있었던 것 같다)
자바스크립트에 대해 이런 처리를 해주는 툴이 JSMin 이란것이 있다고 한다.

ShrinkSafe 가 좋은 툴로 추천되고 있다.

댓글을 달아 주세요