<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>따라쟁이 &#187; google-ajax-libraries-api</title>
	<atom:link href="http://www.yuiworld.kr/suguni/tag/google-ajax-libraries-api/feed" rel="self" type="application/rss+xml" />
	<link>http://www.yuiworld.kr/suguni</link>
	<description>승근이의 LifeLog - We learn many things by imitation!</description>
	<lastBuildDate>Fri, 18 Jun 2010 02:17:07 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Google AJAX Libraries API와 Front-end Performance</title>
		<link>http://www.yuiworld.kr/suguni/2008/google-ajax-libraries-api%ec%99%80-front-end-performance</link>
		<comments>http://www.yuiworld.kr/suguni/2008/google-ajax-libraries-api%ec%99%80-front-end-performance#comments</comments>
		<pubDate>Wed, 28 May 2008 14:41:31 +0000</pubDate>
		<dc:creator>suguni</dc:creator>
				<category><![CDATA[Front-end]]></category>
		<category><![CDATA[Web services]]></category>
		<category><![CDATA[exceptional-performance]]></category>
		<category><![CDATA[front-end-performance]]></category>
		<category><![CDATA[google-ajax-libraries-api]]></category>
		<category><![CDATA[google-code]]></category>

		<guid isPermaLink="false">http://www.yuiworld.kr/suguni/?p=165</guid>
		<description><![CDATA[Google Open API(?)에 AJAX Libraries API가 추가되었습니다. 저 제목을 보면 무슨 API인거 같나요? 전 service API가 아닌 JavaScript framework 같은걸 제공하나 했습니다. 쫌만 읽어보니 그게 아니더군여. 요즘 들어 가장 많이 사용되는 JavaScript Framework인 prototype, jQuery 등등을 google에서 제공하는 겁니다. 간단히 얘기해서 저 라이브러리들만 호스팅해주겠다는 겁니다. 예전에도 이런 서비스를 본 적이 있었는데&#8230; 속도가 괜찮을까? 혹은 안정성이 [...]]]></description>
			<content:encoded><![CDATA[<p><a href='http://code.google.com/apis/ajaxlibs/'><img src="http://www.yuiworld.kr/suguni/wp/wp-content/uploads/2008/05/googlecodelogo.png" alt="" title="google code" width="174" height="68" class="alignleft size-full wp-image-167" style="margin-right:1em;" /></a> Google Open API(?)에 <a href="http://googleajaxsearchapi.blogspot.com/2008/05/speed-up-access-to-your-favorite.html" target="_blank">AJAX Libraries API가 추가</a>되었습니다. 저 제목을 보면 무슨 API인거 같나요? 전 service API가 아닌 JavaScript framework 같은걸 제공하나 했습니다.</p>
<p>쫌만 읽어보니 그게 아니더군여. 요즘 들어 가장 많이 사용되는 JavaScript Framework인 prototype, jQuery 등등을 google에서 제공하는 겁니다. 간단히 얘기해서 저 라이브러리들만 호스팅해주겠다는 겁니다. 예전에도 이런 서비스를 본 적이 있었는데&#8230; 속도가 괜찮을까? 혹은 안정성이 보장될까? 뭐 이런 얘기들 하면서 말았었는데&#8230; 그걸 Google이 하네요. 왠지 신뢰가 갈듯한 느낌이 듭니다.</p>
<p>지금은 jQuery, prototype, script.aculo.us, MooTools, dojo 이렇게 5가지를 제공하고 있고 각 라이브러리에 대한 url은 <a href="http://code.google.com/apis/ajaxlibs/documentation/#AjaxLibraries" target="_blank">Developer&#8217;s Guide</a>를 참조하심 되겠습니다.</p>
<p>각 라이브러리를 참조하는 방법은 단순하게 <code>&lt;script&gt;</code>의 <code>src</code> 속성에 해당 url을 적어줘도 되지만, Google AJAX API Loader를 이용하면 좀 더 편하게(?) 사용할 수 있습니다. 구체적인 사항은 <a href="http://googleajaxsearchapi.blogspot.com/2008/05/speed-up-access-to-your-favorite.html" target="_blank">Speed up access to your favorite frameworks via the AJAX Libraries API</a>를 보심 되지만 장점을 간단하게 말씀드리면, 라이브러리의 versioning을 알아서 해 준다는 점(버전을 1.2로 명시한 경우 1.2 대의 버전들-1.2.4, 1.2.8- 중에서 가장 최신 버전을 로드해 줌)과 가능한 경우에는 몇가지 옵션을 제공해 준다는 점입니다.  </p>
<p>음&#8230; 이제부터 performance와 관련된 내용입니다. 요 서비스를 이용하게 되면 성능상 몇 가지 장점을 얻을 수 있습니다. 물론 Google이 최소한 내 서버만큼의 bandwidth를 제공해준다는 가정하에서 말입니다(내 서버에 올려두는거보다 다운로드 속도가 느리다면&#8230; 뭐 별로).</p>
<p><img src='http://rcm-images.amazon.com/images/I/51ATkHaUd9L._SL110_.jpg' alt='high performance web site' class='alignright' style="margin-left:1em;" /></p>
<h4>CDN</h4>
<p>Google의 CDN을 이용할 수 있습니다. Exceptional Performance의 두 번째 항목 <a href="http://developer.yahoo.com/performance/rules.html#cdn">Use a Content Delivery Network</a>입니다. 그만큼 중요하겠죠. CDN은 클라이언트에서 가장 가까운 곳에서 다운로드 받을 수 있게 여러곳으로 리소스를 분산하여 속도를 높이기 위해 사용되는데, 그치만 미국에서 CDN 하나의 커버리지가 우리나라 규모보다 크다는&#8230; Google에서 제공해 줄 수 있는 bandwidth가 내 서버정도라면 울 나라에서는 큰 잇점은 아니지 싶습니다. 우리같은 경우는 IDC의 트래픽에 부하가 걸려 다른 서비스에 영향을 주지 않으려고 CDN을 쓰는 것으로 알고 있습니다.</p>
<h4>Expire</h4>
<p>Expire가 request 시점으로부터 1년으로 설정되어 있습니다. Exceptional Performance의 세 번째 항목 <a href="http://developer.yahoo.com/performance/rules.html#expires" target="_blank">Add an Expires or a Cache-Control Header</a>입니다. 제공되는 버전의 경우 변경 사항이 없기 때문에 &#8211; 변경이 있으면 버전이 틀려지겠죠? &#8211; 이 정도면 충분하리라 봅니다. 캐쉬 할경우 만기일을 어떻게 설정해야 하는지에 대해서는&#8230;&#8211;;;; 아직까지는 제 영역 밖의 문제인듯합니다. 암튼&#8230; 제가 직접 해보니 expire를 설정하는게 생각만큼 쉽진 않던데&#8230; 이것도 어느정도 수긍이 가게끔 잘 셋팅해서 보내줍니다. Google AJAX Libraries API를 다른곳에서도 사용한다면 cache의 사용을 극대화할 수 있겠습니다.</p>
<p>Firebug로 확인해보니 다음처럼 깔끔한 response가 오네요.</p>
<p><img src="http://www.yuiworld.kr/suguni/wp/wp-content/uploads/2008/05/googleajaxlibrariesapirequestresponse.png" alt="" title="google ajax libraries api request/response" width="500" height="248" class="aligncenter size-full wp-image-166" /></p>
<h4>Gzip</h4>
<p>HTTP 1.1 gzip으로 압축되어 전송됩니다. Exceptional Performance의 네 번째 항목 <a href="http://developer.yahoo.com/performance/rules.html#gzip" target="_blank">Gzip Components</a> 입니다. 알려진 바와 같이 JavaScript는 다른 resource에 비해 특히나 gzip 했을 경우 효율이 커집니다. 텍스트 파일인데다, 대부분 프로그래밍시에 가독성이 중요하므로 공백이 많이 존재하기 때문이죠. 위 그림에서 Content-encoding이 gzip인것을 확인할 수 있습니다.</p>
<h4>Minify</h4>
<p>JavaScript 소스코드가 minify 되어 전송됩니다. gzip으로 압축되어 내려오기 때문에 큰 의미는 없을거 같기도 하지만 어쨌든 이것도 가능합니다. Google API loader(<code>google.load()</code>)를 이용할 경우 uncompressed 옵션을 통해 minify 여부를 결정할 수 있습니다.</p>
<h4>관리</h4>
<p>성능하고는 상관없지만&#8230; 아주 아주 중요한 문제죠. Google API loader(<code>google.load()</code>)를 이용하면 버전에 대한 관리 포인트가 하나 없어집니다. 앞서 잠깐 언급했듯이 버전을 정확히 지정하지 않아도 알아서 해당 버전을 찾아줍니다. 현재 major 버전이 2이고 major 버전이 올라가기 전까지는 계속 쓰겠다고 하면 , 2로만 지정하면 이들 중 최신 버전을 보내줍니다. 물론 Google에서 해당 라이브러리들의 모든 버전을 가지고 있진 않을거 같습니다. 특정 버전이 불안정하거나 문제가 존재할 경우는 제공하지 않을테니까요.</p>
<p>Google AJAX Libraries API를 front-end performance 관점에서 쪼끔 봤는데&#8230; 상용 서비스에서 쓰기에는 어떨지&#8230; 아. 라이센스를 안봤네요. 왠지 트래픽 제한이 있을지도 모른다는 생각이&#8230;</p>
<p>개인적으로는 YUI도 같이 제공했으면 했는데&#8230; 없습니다. 물론 Yahoo에서도 <a href="http://developer.yahoo.com/yui/articles/hosting/">Serving YUI Files from Yahoo! Servers</a> 하고 있습니다. 단지 같은데서 다 받을수 있음 좋지 않을까라는 생각에. ^^</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yuiworld.kr/suguni/2008/google-ajax-libraries-api%ec%99%80-front-end-performance/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
