<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Humbrollog</title>
	<atom:link href="http://humbroll.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://humbroll.wordpress.com</link>
	<description>The log between emotional and rational life</description>
	<lastBuildDate>Thu, 09 Jun 2011 04:32:09 +0000</lastBuildDate>
	<language>ko</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='humbroll.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Humbrollog</title>
		<link>http://humbroll.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://humbroll.wordpress.com/osd.xml" title="Humbrollog" />
	<atom:link rel='hub' href='http://humbroll.wordpress.com/?pushpress=hub'/>
		<item>
		<title>번역 &#8211; 블렌더와 SIO2를 이용한 아이폰 3D 프로그래밍</title>
		<link>http://humbroll.wordpress.com/2010/08/20/%ec%b1%85-%eb%b2%88%ec%97%ad-%eb%b8%94%eb%a0%8c%eb%8d%94%ec%99%80-sio2%eb%a5%bc-%ec%9d%b4%ec%9a%a9%ed%95%9c-%ec%95%84%ec%9d%b4%ed%8f%b0-3d-%ed%94%84%eb%a1%9c%ea%b7%b8%eb%9e%98%eb%b0%8d/</link>
		<comments>http://humbroll.wordpress.com/2010/08/20/%ec%b1%85-%eb%b2%88%ec%97%ad-%eb%b8%94%eb%a0%8c%eb%8d%94%ec%99%80-sio2%eb%a5%bc-%ec%9d%b4%ec%9a%a9%ed%95%9c-%ec%95%84%ec%9d%b4%ed%8f%b0-3d-%ed%94%84%eb%a1%9c%ea%b7%b8%eb%9e%98%eb%b0%8d/#comments</comments>
		<pubDate>Fri, 20 Aug 2010 08:02:49 +0000</pubDate>
		<dc:creator>humbroll</dc:creator>
				<category><![CDATA[rational]]></category>
		<category><![CDATA[iphone sio2 blender humbroll 정상일 번역]]></category>

		<guid isPermaLink="false">http://humbroll.wordpress.com/?p=116</guid>
		<description><![CDATA[6월 이후로 블로그를 쓴다. 그간 개인적으로 쓸거리가 없던것은 아니지만 개발자로 몇몇의 방점들을 맞이했었다. (새로운 일터로의 이전을 준비하고 있고, 나름 개발자 인생의 질풍노도의 시기를 보내기도 했다.) 얼마전에 지인분들과 같이 3D를 스터디하면서 병행했던 번역이 완결되는 이 시점에 블로깅을 하지 않으면 타이밍을 놓칠까하여 블로그 admin 화면을 띄워본다. 원서의 제목은  &#8221;3D for iPhone Apps with Blender and SIO2: Your [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=humbroll.wordpress.com&amp;blog=4870074&amp;post=116&amp;subd=humbroll&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>6월 이후로 블로그를 쓴다.<br />
그간 개인적으로 쓸거리가 없던것은 아니지만 개발자로 몇몇의 방점들을 맞이했었다.<br />
(새로운 일터로의 이전을 준비하고 있고, 나름 개발자 인생의 질풍노도의 시기를 보내기도 했다.)</p>
<p>얼마전에 지인분들과 같이 3D를 스터디하면서 병행했던 번역이 완결되는 이 시점에 블로깅을 하지 않으면 타이밍을 놓칠까하여 블로그 admin 화면을 띄워본다.<br />
원서의 제목은  &#8221;<a href="http://www.amazon.com/iPhone-Apps-Blender-SIO2-Open-Source/dp/0470574925/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1282289624&amp;sr=8-1" target="_blank">3D for iPhone Apps with Blender and SIO2: Your Guide to Creating 3D Games and More with Open-Source Software</a>&#8220;이다. 번역본의 제목은 &#8220;<a href="http://www.yes24.com/24/goods/4107157?scode=032&amp;srank=1">블렌더와 SIO2를 이용한 아이폰 3D 프로그래밍 : 오픈소스로 3D 앱/게임 개발하기</a>&#8220;이다.</p>
<p style="text-align:center;"><a href="http://www.yes24.com/24/goods/4107157?scode=029&amp;srank=1"><img class="aligncenter" title="SIO2" src="http://image.yes24.com/goods/4107157/L" alt="SIO2" width="318" height="400" /></a></p>
<p>책 작업을 하는 것이 처음은 아니다. SOA를 검색하면 제일 상위에 랭크되는 &#8220;SOA : 자바 웹 서비스로 통하는 서비스 지향 아키텍처&#8221;의 glossary 번역하면서 번역에 살짝 발을 담구기도 하였고(역자로는 본인이 사양하여 이름을 넣지는 않았다:), 현재 나름 아이폰개발서적으로 1위를 달리고 있는(yes24 기준) &#8220;<a href="http://www.yes24.com/24/goods/3583279?scode=032&amp;srank=1">시작하세요! 아이폰 3 프로그래밍 : iPhone SDK를 이용한 아이폰 개발</a>&#8220;의 아이폰 SDK 3.0에 대한 부록을 공저했었고, 대중에게 빛을 보지 못한 책이지만 이 외에도 번역을 하기도 했었다.<br />
번역을 많이 해본 것은 아니지만, 할때마다 많은 어려움을 느낀다. 원서의 영문을 국문으로 옮기기까지 실은 몇단계가 지나야 한다.<br />
(1)영문을 읽고 그것을 머릿속으로 직역한다. 직역은 단어와 문법 그대로를 가지고 뜻을 국문으로 옮기는 작업이다. (2)다음으로 앞선 문장이나 챕터 전반에 걸친 내용과 전체적은 문맥에 근거하여 최대한 국문에 맞도록 수정한다. (3) 그리고 나서는 그 글을 쓰는 입장이 아닌 읽는 사람의 입장으로 문장을 보고 다시 다듬는다. (4) 3단계를 거쳤음에도 매끄럽지 않고 부자연스럽다면 소위 의역이라고 말하는 단계를 거친다.<br />
이게 지금 당장 생각나는 단계들이다. 물론 그 사이사이에 단계들이 껴들어가긴 한다. 책 전체의 단어를 통일하기 위해 glossary 테이블을 공유하여 채워가는 것이 예이다. 많이 부족한 실력에도 나름대로의 체계를 실어 점진적인 발전을 꾀하고자 하지만, 항상 쉽지 않음을 느낀다.<br />
이렇게 쉽지 않게 번역한 이 책이, 독자분들의 냉철한 심판을 받으면서 어떤 책으로 기억될런지 두렵기도 하다.<br />
적어도 SIO2와 블렌더를 다루기 위해 가볍게 읽으며 따라해볼만한 가벼운 느낌의 책이 되었으면 하는 것이 내 바람이다.</p>
<p>많이 부족하지만 앱 개발자들의 필연적인 다음 레벨이 될 3D영역으로의 항해에 작은 바람이라도 되었으면 한다.<br />
아울러 썼던 역자 서문도 첨부해본다.<br />
<span id="more-116"></span></p>
<div>정상일<br />
새로운 학습의 시작은 약간의 두려움과 설렘으로 시작되고, 흘린 땀방울만큼의 보람으로 이어지는 것 같습니다. 이 역서가 많은 분들의 아이폰 3D개발의 입문에 도움이 된다면 그보다 큰 보람은 없을 것입니다.</p>
<p>개발자들에게 좋은 아이디어만으로 성공의 파이를 얻게 해 주었던 앱스토어는 현재 22만 5천개 이상의 앱들로, 이제 아이디어와 품질, 그리고 그 이상의 것들을 필요로 합니다. 혁신적인 아이디어와 미려한 디자인과 훌륭한 UX를 제공한 수많은 앱들은 사용자들의 요구수준을 높여 놓았습니다.<br />
이러한 상황과 함께 아이폰 OS 2.0b4 Beta 4에서부터 지원했던 OpenGL ES와 강력함 그 자체로 다시 태어난 아이폰4라는 플랫폼은 이제 필연적으로 3D의 시대가 왔음을 선포하는 듯합니다.</p>
<p>앱스토어는 성공을 위한 투자수익(ROI)면에서 여전히 인디개발자 혹은 소규모 개발 스튜디오에게 유리한 시장입니다. 그동안 3D개발이  비교적 많은 개발 리소스를 필요로 하여 섣불리 뛰어들지 못했던 많은 분들에게 SIO2/블렌더라는 파이프라인은 훌륭한 도구로 부족함이 없습니다. 이 역서가 개발자들의 또 다른 혁신에 조금이나마 보탬이 되길 바랍니다.</p>
<p>이 책을 읽는 분들께,<br />
이 책은 아이폰 개발 입문서가 아닙니다.<br />
아이폰에서의 3D 앱/게임 개발을 위한 도구인 SIO2와 블렌더의 입문서에 가깝습니다.<br />
3D 그래픽 개발을 처음 접하거나 블렌더를 한번도 다루어보지 않은 독자 분들께는 꼭 부록을 먼저 학습할 것을 강력히 추천 드립니다. 부록 A.블렌더기초 를 먼저 학습해두면 블렌더를 사용하는 각 장들을 따라오는데 매우 수월할 것이고, 부록 B. 그래픽 프로그래밍 핵심 은 각 장들에서는  다루지 않는 기본적인 3D 그래픽 프로그래밍의 기초 개념을 집고 넘어가도록 해주며, 기초 심화학습을 해 나아갈 방향을 제시해줄 것입니다.</p>
<p>감사합니다,<br />
개발자 인생의 멘토로 항상 영감과 자극을 주시고 이 책의 감수해주신  존경하는 이창신(ias)님, 함께 스터디하고 번역하느라 공휴일은 버닝하라고 빨간색임을 깨우치게 된 임성필님,  끊임없이 세세한 부분까지 신경써주셔서 부족했던 부분을 채워주신 BJ퍼블릭 대표 김범준님,<br />
언제나 큰 스승으로 기억하고 있는 오픈마루의 선배님들과 동기친구들,<br />
술 한 잔 기울이며 재충전하게 해준 친구들,<br />
주말에는 번역을 위해 주말에도 카페나 도서관에서 함께해야 했음에도 조용히 옆에 있어준 여자친구 이윤미씨,<br />
마지막으로 퇴근 후에도 컴퓨터 앞에 앉아서 끙끙거리며 번역하던 저를 걱정해주시는 사랑하는 아버지, 어머니, 형에게<br />
고개 숙여 큰 감사를 드립니다.</p>
<p>&#8212;-<br />
[Update] <a href="http://bjpublic.tistory.com/104">출판사 출판 포스트</a></p>
</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/humbroll.wordpress.com/116/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/humbroll.wordpress.com/116/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/humbroll.wordpress.com/116/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/humbroll.wordpress.com/116/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/humbroll.wordpress.com/116/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/humbroll.wordpress.com/116/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/humbroll.wordpress.com/116/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/humbroll.wordpress.com/116/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/humbroll.wordpress.com/116/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/humbroll.wordpress.com/116/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/humbroll.wordpress.com/116/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/humbroll.wordpress.com/116/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/humbroll.wordpress.com/116/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/humbroll.wordpress.com/116/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=humbroll.wordpress.com&amp;blog=4870074&amp;post=116&amp;subd=humbroll&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://humbroll.wordpress.com/2010/08/20/%ec%b1%85-%eb%b2%88%ec%97%ad-%eb%b8%94%eb%a0%8c%eb%8d%94%ec%99%80-sio2%eb%a5%bc-%ec%9d%b4%ec%9a%a9%ed%95%9c-%ec%95%84%ec%9d%b4%ed%8f%b0-3d-%ed%94%84%eb%a1%9c%ea%b7%b8%eb%9e%98%eb%b0%8d/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2de0467d1db18b880332b154a7ff6a3a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">humbroll</media:title>
		</media:content>

		<media:content url="http://image.yes24.com/goods/4107157/L" medium="image">
			<media:title type="html">SIO2</media:title>
		</media:content>
	</item>
		<item>
		<title>스타트업체에서의 클라우드 컴퓨팅 발표.</title>
		<link>http://humbroll.wordpress.com/2010/06/15/%ec%8a%a4%ed%83%80%ed%8a%b8%ec%97%85%ec%b2%b4%ec%97%90%ec%84%9c%ec%9d%98-%ed%81%b4%eb%9d%bc%ec%9a%b0%eb%93%9c-%ec%bb%b4%ed%93%a8%ed%8c%85-%eb%b0%9c%ed%91%9c/</link>
		<comments>http://humbroll.wordpress.com/2010/06/15/%ec%8a%a4%ed%83%80%ed%8a%b8%ec%97%85%ec%b2%b4%ec%97%90%ec%84%9c%ec%9d%98-%ed%81%b4%eb%9d%bc%ec%9a%b0%eb%93%9c-%ec%bb%b4%ed%93%a8%ed%8c%85-%eb%b0%9c%ed%91%9c/#comments</comments>
		<pubDate>Tue, 15 Jun 2010 09:53:52 +0000</pubDate>
		<dc:creator>humbroll</dc:creator>
				<category><![CDATA[emotional]]></category>
		<category><![CDATA[rational]]></category>
		<category><![CDATA[amazon ec2]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[cloud computing]]></category>
		<category><![CDATA[gae]]></category>
		<category><![CDATA[google app engine]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[nexr]]></category>
		<category><![CDATA[nexr icube cloud]]></category>

		<guid isPermaLink="false">http://humbroll.wordpress.com/?p=110</guid>
		<description><![CDATA[참 오랜만에 블로깅을 한다. 일이 바빴다.(핑계다.) 최근에 가장 나한테 있었던 큰 이슈라면, 얼마 전에 있었던 크라우드 컴퓨팅 컨퍼런스에서의 발표였던 것 같다. ACC(Advanced Computing Conference) 2010의 국내 최초 크라우드 컴퓨팅 서비스 업체인 NexR의 &#8220;NexR 아이큐브 클라우드적용사례:프라이빗 &#38;모바일 클라우드&#8221;에서 실제 적용 사례를 발표 했었고,  IBM dw Live에서 &#8220;스타트업에서의 모바일 서비스와 클라우드 컴퓨팅 적용&#8221;이란 세션으로 발표를 했다. 매번 발표 [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=humbroll.wordpress.com&amp;blog=4870074&amp;post=110&amp;subd=humbroll&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>참 오랜만에 블로깅을 한다.<br />
일이 바빴다.(핑계다.)</p>
<p>최근에 가장 나한테 있었던 큰 이슈라면, 얼마 전에 있었던 크라우드 컴퓨팅 컨퍼런스에서의 발표였던 것 같다.<br />
<a href="http://acc.zdnet.co.kr/Program.aspx?a=10">ACC(Advanced Computing Conference) 2010</a>의 국내 최초 크라우드 컴퓨팅 서비스 업체인 NexR의 &#8220;NexR 아이큐브 클라우드적용사례:프라이빗 &amp;모바일 클라우드&#8221;에서 실제 적용 사례를 발표 했었고,  <a href="http://www.ibm.com/developerworks/kr/event/seminar/dwlive_0525/final.html">IBM dw Live</a>에서 &#8220;스타트업에서의 모바일 서비스와 클라우드 컴퓨팅 적용&#8221;이란 세션으로 발표를 했다.</p>
<div id="attachment_112" class="wp-caption alignleft" style="width: 310px"><a href="http://humbroll.files.wordpress.com/2010/06/dwlive.jpeg"><img class="size-medium wp-image-112 " title="IBM dw Live - 스타트업에서의 크라우드 컴퓨팅 " src="http://humbroll.files.wordpress.com/2010/06/dwlive.jpeg?w=300&#038;h=201" alt="" width="300" height="201" /></a><p class="wp-caption-text">cloud mobile </p></div>
<p>매번 발표 기회는 갑자기 오는 듯 하다. 작년 회사 서비스 시작부터 GAE(Google App Engine)과 Amazon EC2를 전전긍긍하면서 각각 크라우드 서비스에 대한 장단점이나 현실적인 한계나 대처 방법등을 학습하게 되었고, 현재는 국내 최초 크라우드 컴퓨팅 업체인 NexR의 iCube Cloud를 잘 쓰고 있다.<br />
발표는 대략, 크라우드 컴퓨팅과 모바일 클라우드 컴퓨팅에 대한 정의 정립, 클라우드 컴퓨팅 도입 팁, 각 벤더들의 장단점, 한계 등을 실제 경험과 구체적인 측정 자료를 근거로 진행했다.</p>
<p>언제나 느끼는 것이지만, 적어도 개발자분들은 &#8216;현실&#8217;적인 측면을 원한다.<br />
윗선에서는 기획이나 전략에 대한 트렌드 뿐만 아니라 기술적인 측면에서도 최신 트렌드를 따라가거나 또는 앞서 가기를 원한다. 기업의 경쟁력이 될 수 있다는 생각이 어느정도는 들어있을 것이다.  하지만 실제 그것을 사용하는 개발 직군에서는 다양한 한계에 부딪히게 되고, 그것을 해결, 보완 혹은 우회하기 위해서 인적, 물적 리소스를 소비한다. 그 리소스는 바로 개발자들의 시간과 에너지인 만큼, 그것을 줄여주길 바란다. 거기에 집중해서 자료를 만들고 발표를 했다.</p>
<p>그래서인지 Q&amp;A타임뿐만 아니라 발표 후에도 많은 분들이 도움이 됬다는 격려성 메시지를 날려주셨고 많은 질문을 주시기도 하였다.<br />
굉장히 큰 보람을 느꼈고 나 자신한테도 많은 도움이 되었다.<br />
물론 프레젠테이션 스킬에 있어서는 TED의 연사들처럼 몰입도 200%의 스킬을 구사하지는 못했지만, 도움이 된 것 자체로 큰 만족을 한다.<br />
아래는 발표자료이다.</p>
<object type='application/x-shockwave-flash' wmode='opaque' data='http://static.slideshare.net/swf/ssplayer2.swf?id=4373151&doc=ibmcc-100601023143-phpapp02' width='450' height='369'><param name='movie' value='http://static.slideshare.net/swf/ssplayer2.swf?id=4373151&doc=ibmcc-100601023143-phpapp02' /><param name='allowFullScreen' value='true' /></object>
<p>다른 사람들이 쉽게 도입하지 않는 기술들을 쓰는 것은 언제나 가려운 나의 호기심을 긁어주고 많은 배움을 얻게 해주지만, 그만큼 외롭고 힘든 여정인 것은 사실이다.<br />
하지만 누군가 그러지 않았던가, 새로운 기술에 대한 습득은 &#8220;두려움&#8221;이 가장 큰 벽이라고. 그 두려움이 없는 편이라 다행이다.</p>
<p>P.S&gt; 아쉽게도 기술과 서비스는 &#8216;=&#8217;관계가 아닌지라 모든 기술이 대중에게 빛을 보이는 것은 쉽지가 않다. 기획/전략/운영 등등이 시기 적절하게 맞아 떨어져 market pull이 있고 tech push가 일어나게 될때 비로소 큰 성공을 이룬다. 서비스를 기술적인 측면보다는 &#8216;서비스&#8217;측면에서 바라보는 것이 좋다고 굳게 믿던 내 신념이 좀 흔들리긴 한다. 개발자라는 직군으로써 그런 자세가 집중력을 흐트릴 수도 있기때문이다. 그래서, 이제는 구현을 하면서도, &#8220;이 기획은 이거보다 이게 좋겠어.&#8221;, &#8220;이 버튼은 여기보다 저기에 놓는게 좋겠어&#8221;라는 내가 만드는 서비스에 대한 무한애정행각은 좀 자제하고, 철저히 기술적인 측면에서만 바라보고 일하며, 또 그런 환경으로 몸을 옮기려 준비하고 있다. 이제 날을 세워야 할때가 아니던가.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/humbroll.wordpress.com/110/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/humbroll.wordpress.com/110/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/humbroll.wordpress.com/110/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/humbroll.wordpress.com/110/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/humbroll.wordpress.com/110/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/humbroll.wordpress.com/110/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/humbroll.wordpress.com/110/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/humbroll.wordpress.com/110/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/humbroll.wordpress.com/110/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/humbroll.wordpress.com/110/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/humbroll.wordpress.com/110/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/humbroll.wordpress.com/110/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/humbroll.wordpress.com/110/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/humbroll.wordpress.com/110/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=humbroll.wordpress.com&amp;blog=4870074&amp;post=110&amp;subd=humbroll&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://humbroll.wordpress.com/2010/06/15/%ec%8a%a4%ed%83%80%ed%8a%b8%ec%97%85%ec%b2%b4%ec%97%90%ec%84%9c%ec%9d%98-%ed%81%b4%eb%9d%bc%ec%9a%b0%eb%93%9c-%ec%bb%b4%ed%93%a8%ed%8c%85-%eb%b0%9c%ed%91%9c/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2de0467d1db18b880332b154a7ff6a3a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">humbroll</media:title>
		</media:content>

		<media:content url="http://humbroll.files.wordpress.com/2010/06/dwlive.jpeg?w=300" medium="image">
			<media:title type="html">IBM dw Live - 스타트업에서의 크라우드 컴퓨팅 </media:title>
		</media:content>
	</item>
		<item>
		<title>QuickPress#4 개발</title>
		<link>http://humbroll.wordpress.com/2010/04/07/quickpress4-%ea%b0%9c%eb%b0%9c/</link>
		<comments>http://humbroll.wordpress.com/2010/04/07/quickpress4-%ea%b0%9c%eb%b0%9c/#comments</comments>
		<pubDate>Wed, 07 Apr 2010 16:32:47 +0000</pubDate>
		<dc:creator>humbroll</dc:creator>
				<category><![CDATA[emotional]]></category>
		<category><![CDATA[developer]]></category>

		<guid isPermaLink="false">http://humbroll.wordpress.com/?p=105</guid>
		<description><![CDATA[개발자라는 직군으로 일을 시작했지만 보통 &#8216;개발&#8217;에만 집중할 수 있는 시기는 거의 없었다. 물론 개발에 집중하는 시간이 제일 많다. 내 팔자가 그러한지, 아니면 벼랑끝으로 자신을 몰아세워 혹독한 환경을 만드는 내 몹쓸 욕심때문인지는 모르겠지만, 어쨌든 항상 그랬다. 지금은 작은 벤처 회사의 개발 디렉터로서 일을 하고 있고 어쩌면 내 개발 연차에 비해서는 가볍지 않은 일을 하고 있음에 분명하고 [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=humbroll.wordpress.com&amp;blog=4870074&amp;post=105&amp;subd=humbroll&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong>개발자</strong>라는 직군으로 일을 시작했지만 보통 &#8216;개발&#8217;에만 집중할 수 있는 시기는 거의 없었다. 물론 개발에 집중하는 시간이 제일 많다. 내 팔자가 그러한지, 아니면 벼랑끝으로 자신을 몰아세워 혹독한 환경을 만드는 내 몹쓸 욕심때문인지는 모르겠지만, 어쨌든 항상 그랬다.</p>
<p>지금은 작은 벤처 회사의 개발 디렉터로서 일을 하고 있고 어쩌면 내 개발 연차에 비해서는 가볍지 않은 일을 하고 있음에 분명하고 또, 그에 대한 많은 긴장감,부담감,자신감. 자부심 등등으로 채찍질을 하며 나날을 보낸다.</p>
<p>현재는 서버개발과 아이폰개발을 동시에 진행하고 있다.<br />
서버는 크라우드 컴퓨팅 업체의 테스터로 좋은 조건(?)으로 사용하고 있지만, 안정성은 보장이 되는지, 프로덕션을 여기서 낼 수 있는지, 서버호스팅이 좋은지, 장비 구입이 좋은지.<br />
WAS는 glassfish를 쓰기로 했는데 여기서는 클러스터링과 static resource에 대한 관리를 위해 어떤 설정들이 들어가야 하는지, 보통 하는 gate server로 apache를 두어서 해야하는지<br />
DB서버는 분리해야하는데, 성능을 위한 리플리케이션을 mysql에서 어떻게 적용을 해야할지, 디비는 수평분리가 좋을지 수직분리가 좋을지, 백업 정책을 어떻게 잡아나갈 것인지,<br />
서버사이드로직 개발 위한 프레임워크로 요즘 대세인 spring을 쓸 것인지, ORM으로 hibernate, iBatis, 아니면 가볍게 JPA를 쓸 것인지, RESTful API구현을 위해 JAX-RS는 뭐로 할지(jersey), API인증은 OAuth를 적용해야하는지 아니면 service specific auth protocol을 만들어버릴지, 내가 설계하고 있는 API가 진짜 RESTful한지에서부터 클라이언트 입맛대로 많은 일을 할 수 있을지,<br />
클라이언트 사이드(웹)을 할때는, 브라우저 지원은 어디까지 해야하는지, webkit기반은 모두, IE7이상에 모바일 브라우저는 optional, 자바스크립트 프레임웍은 jQuery를 쓰기로 했는데 그안에서 어떤어떤 플러그인을 쓸지,<br />
아이폰 개발을 하는데 DB handler로 CoreData를 쓸지 와일드하게 sqlite를 쓸지, IB(Interface Builder)를 쓸지 날코딩을 해서 fully 내손안의 있소이다를 외칠지. 로컬 캐싱은 몇row까지 지원할지, 로깅 포맷은 어떻게 정할지, 추후 버전에서 모델이 바뀔 경우를 대비해야할지,  뷰단을 담당하고 있는 주니어개발자에게 어느 범위까지 개발을 위임할지, 서버및 로컬디비 모듈과 연계를 위해서 내가 직접 하는것이 낫은지 주니어에게 내가 만든 모듈 API를 학습시킬지, 메모리릭 체킹은 어느 시점에 해야할지,<br />
개발자 수는 나까지 3명뿐이지만 TRAC을 쓰고 있는데, 어떻게 하면 지금 self motivation용도뿐인 이 이슈트래커를 사내개발프로세스에 잘 흡수시킬지, 개발 하면서 보는 기획문서에 적잖이 보이는 수많은 워크플로우나 UX상의 오류나 더 좋은 대안을 찍고 넘어가야하는지 아니면 일단 무아지경으로 개발에만 집중을 해 나갈 것인지. priority에 대한 감이라고는 냉장고에 있는 홍시를 백개정도는 먹어야 찾을 거 같은 기획상의 작업 순서에 대해서 어떻게 설득을 해야할지.<br />
등. 등. 등. 등. 등.</p>
<p>이런 전체적인 뒷고민들이야 어찌됬든 번듯한 애프리케이션과 웹서비스 하나면 만족할 비개발자들에게 이런 고민과 결정에 따른 필요한 인적, 물적 리소스 산정에 대한 당위성은 어떻게 설득을 시켜야 할지.</p>
<p>오늘 전 회사에서 같이 일하던 개발자분의 말로 &#8220;날이 선 개발자&#8221;(한기술에 정통한)가 되기 위해서는 내가 가는 이 길이 아닐지도 모르겠단 생각을 하지만<br />
generalist-&gt;speciallist로의 결정을 하기엔 아직은 때가 아니라는, 그리고 정말 날을 세우기 위해 필요한 힘이 아직 부족하다는 확고한 믿음 때문에</p>
<p>힘들지만 달린다.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/humbroll.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/humbroll.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/humbroll.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/humbroll.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/humbroll.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/humbroll.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/humbroll.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/humbroll.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/humbroll.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/humbroll.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/humbroll.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/humbroll.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/humbroll.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/humbroll.wordpress.com/105/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=humbroll.wordpress.com&amp;blog=4870074&amp;post=105&amp;subd=humbroll&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://humbroll.wordpress.com/2010/04/07/quickpress4-%ea%b0%9c%eb%b0%9c/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2de0467d1db18b880332b154a7ff6a3a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">humbroll</media:title>
		</media:content>
	</item>
		<item>
		<title>QuickPress#3 최근 내 머릿속</title>
		<link>http://humbroll.wordpress.com/2010/01/15/quickpress3-%ec%b5%9c%ea%b7%bc-%eb%82%b4-%eb%a8%b8%eb%a6%bf%ec%86%8d/</link>
		<comments>http://humbroll.wordpress.com/2010/01/15/quickpress3-%ec%b5%9c%ea%b7%bc-%eb%82%b4-%eb%a8%b8%eb%a6%bf%ec%86%8d/#comments</comments>
		<pubDate>Fri, 15 Jan 2010 16:20:34 +0000</pubDate>
		<dc:creator>humbroll</dc:creator>
				<category><![CDATA[emotional]]></category>
		<category><![CDATA[생각]]></category>

		<guid isPermaLink="false">http://humbroll.wordpress.com/?p=97</guid>
		<description><![CDATA[환율, 원화가치 상승에 따른 환태크 경험의 시작을 위한 좋은 시기. 외환입출금통장 만들어서 맞춤 환전으로 일정 환율 이하로 떨어지면 자동 환전하도록 등록해 놓았다.(국민은행) 엔화와 달라. 큰돈은 당연히 없고, 좋은(?) 경험이라 생각하고 해봤다. 이런것 하나하나가 나중의 또 다른 내 좋은 눈이 되리라. self motivation, 내가 하는 개발일에 대한 동기부여가 많이 떨어져 있는 매우 위험한 상태. 환경과 컨디션에 [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=humbroll.wordpress.com&amp;blog=4870074&amp;post=97&amp;subd=humbroll&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>환율, 원화가치 상승에 따른 환태크 경험의 시작을 위한 좋은 시기. 외환입출금통장 만들어서 맞춤 환전으로 일정 환율 이하로 떨어지면 자동 환전하도록 등록해 놓았다.(국민은행) 엔화와 달라. 큰돈은 당연히 없고, 좋은(?) 경험이라 생각하고 해봤다. 이런것 하나하나가 나중의 또 다른 내 좋은 눈이 되리라.</p>
<p>self motivation, 내가 하는 개발일에 대한 동기부여가 많이 떨어져 있는 매우 위험한 상태. 환경과 컨디션에 의존성이 걸려 있다면 그건 이미 아마추어란 소리. 밀림에서든 동물원 철장 안에서든 사자는 사자여야 하는 법. 추스리고, 안되면 허황된 당위성에 대한 자기 최면이라도.</p>
<p>개발방법론, blah blah~ driven 같은 정립된 방법론 말고, 현재 내가 처한 프로젝트를 좀 더 주도적으로 체계적으로 갈등 없이 진행하는 방법. 큰 고민거리임. &#8220;프로젝트가 서쪽으로 간 까닭은(톰 드마르코, 팀 리스터외 지음, 박재호,이해영 옮김)&#8221;을 다 읽어가고 있으며 챕터 하나하나 뼛속 깊이 되새기고 다시는 저런 우에 휘말리지 말자고, 휘말리더라도 무슨 문제가 있는지는 &#8220;알고&#8221; 당하자는(다시 그런 우에 진입도 하기 전에 알아차릴 수 있도록)</p>
<p>이렇게 세개인듯.</p>
<p>누군가 그랬다, 서쪽으로 가고 있는지 아는게 어디냐.</p>
<p>그래, 난 나침반은 있으니까, 움직이면 된다.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/humbroll.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/humbroll.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/humbroll.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/humbroll.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/humbroll.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/humbroll.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/humbroll.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/humbroll.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/humbroll.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/humbroll.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/humbroll.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/humbroll.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/humbroll.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/humbroll.wordpress.com/97/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=humbroll.wordpress.com&amp;blog=4870074&amp;post=97&amp;subd=humbroll&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://humbroll.wordpress.com/2010/01/15/quickpress3-%ec%b5%9c%ea%b7%bc-%eb%82%b4-%eb%a8%b8%eb%a6%bf%ec%86%8d/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2de0467d1db18b880332b154a7ff6a3a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">humbroll</media:title>
		</media:content>
	</item>
		<item>
		<title>QuickPress#2 악순환의 고리</title>
		<link>http://humbroll.wordpress.com/2010/01/08/quickpress2-%ec%95%85%ec%88%9c%ed%99%98%ec%9d%98-%ea%b3%a0%eb%a6%ac/</link>
		<comments>http://humbroll.wordpress.com/2010/01/08/quickpress2-%ec%95%85%ec%88%9c%ed%99%98%ec%9d%98-%ea%b3%a0%eb%a6%ac/#comments</comments>
		<pubDate>Fri, 08 Jan 2010 16:41:47 +0000</pubDate>
		<dc:creator>humbroll</dc:creator>
				<category><![CDATA[emotional]]></category>
		<category><![CDATA[생활 악순환]]></category>

		<guid isPermaLink="false">http://humbroll.wordpress.com/2010/01/08/quickpress2-%ec%95%85%ec%88%9c%ed%99%98%ec%9d%98-%ea%b3%a0%eb%a6%ac/</guid>
		<description><![CDATA[아침에 부비적거리며 겨우겨우 일어나 지하철 6-3문으로 들어가 정신이 말똥할땐 iphone으로 RSS 받아먹고 눈감고 있다가 내리면 바로 나가는 계단, 회사에서 열심히(?) 일과 공부를 하고 보통 직장인들 보다는 약간은 더 늦게 퇴근하여 집에오면 하루가 가는 것이 아쉬운지 10시가 11시를 잡고 11시가 12시를 잡고 12시가 1시를 잡으며 결국 ical의 다음날을 맞이한다. 오늘 하루 나이를 더 먹은 나에게 어떤 [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=humbroll.wordpress.com&amp;blog=4870074&amp;post=86&amp;subd=humbroll&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>아침에 부비적거리며 겨우겨우 일어나<br />
지하철 6-3문으로 들어가<br />
정신이 말똥할땐 iphone으로 RSS 받아먹고<br />
눈감고 있다가 내리면 바로 나가는 계단,<br />
회사에서 열심히(?) 일과 공부를 하고<br />
보통 직장인들 보다는 약간은 더 늦게 퇴근하여<br />
집에오면 하루가 가는 것이 아쉬운지<br />
10시가 11시를 잡고 11시가 12시를 잡고 12시가 1시를 잡으며<br />
결국 ical의 다음날을 맞이한다.</p>
<p>오늘 하루 나이를 더 먹은 나에게<br />
어떤 변화가 있었고 얼마만큼 진한 하루였던가, 그런 아쉬움으로<br />
2시를 맞으면 아차싶어 또 다시 내일을 위해 잠을 청한다.<br />
그리고 다시 부비적 거리며 일어날테지. </p>
<p>나쁘지도 좋지도 않은 생활, 그저 생활이지만<br />
나에겐 이게 악순환처럼 느껴진다. </p>
<p>이젠 그 고리를 잘라야 할 때. </p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/humbroll.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/humbroll.wordpress.com/86/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/humbroll.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/humbroll.wordpress.com/86/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/humbroll.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/humbroll.wordpress.com/86/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/humbroll.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/humbroll.wordpress.com/86/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/humbroll.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/humbroll.wordpress.com/86/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/humbroll.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/humbroll.wordpress.com/86/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/humbroll.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/humbroll.wordpress.com/86/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=humbroll.wordpress.com&amp;blog=4870074&amp;post=86&amp;subd=humbroll&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://humbroll.wordpress.com/2010/01/08/quickpress2-%ec%95%85%ec%88%9c%ed%99%98%ec%9d%98-%ea%b3%a0%eb%a6%ac/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2de0467d1db18b880332b154a7ff6a3a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">humbroll</media:title>
		</media:content>
	</item>
		<item>
		<title>#5 iBATIS, Hibernate, 그리고 JPA: 무엇을 선택할 것인가?</title>
		<link>http://humbroll.wordpress.com/2010/01/03/5-ibatis-hibernate-%ea%b7%b8%eb%a6%ac%ea%b3%a0-jpa-%eb%ac%b4%ec%97%87%ec%9d%84-%ec%84%a0%ed%83%9d%ed%95%a0-%ea%b2%83%ec%9d%b8%ea%b0%80/</link>
		<comments>http://humbroll.wordpress.com/2010/01/03/5-ibatis-hibernate-%ea%b7%b8%eb%a6%ac%ea%b3%a0-jpa-%eb%ac%b4%ec%97%87%ec%9d%84-%ec%84%a0%ed%83%9d%ed%95%a0-%ea%b2%83%ec%9d%b8%ea%b0%80/#comments</comments>
		<pubDate>Sun, 03 Jan 2010 13:30:17 +0000</pubDate>
		<dc:creator>humbroll</dc:creator>
				<category><![CDATA[rational]]></category>
		<category><![CDATA[persistence ibatis hibernate jap java persistence api]]></category>

		<guid isPermaLink="false">http://humbroll.wordpress.com/?p=81</guid>
		<description><![CDATA[Hibernate 사용하기 애플리케이션에서 SessionFactory 인스턴스가 생성될 때 Hibernate는 설정 파일을 읽고 각각의 매핑 파일을 식별한다. SessionFactory에서 생성된 세션 객체는 데이터베이스로의 연결을 하며, 이는 퍼시스턴스 클래스의 인스턴스에 대한 퍼시스턴스 컨텍스트이다. 인스턴스는 transient, persistent, detached 중 한가지의 상태에 놓이게 된다. transient 상태에서 객체는 아직 테이블과 연관이 없으며 persistence 상태에서 객체는 테이블과 연결이 되어 있고, detached  상태에서는 테이블과의 [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=humbroll.wordpress.com&amp;blog=4870074&amp;post=81&amp;subd=humbroll&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<h3>Hibernate 사용하기</h3>
<p>애플리케이션에서 SessionFactory 인스턴스가 생성될 때 Hibernate는 설정 파일을 읽고 각각의 매핑 파일을 식별한다. SessionFactory에서 생성된 세션 객체는 데이터베이스로의 연결을 하며, 이는 퍼시스턴스 클래스의 인스턴스에 대한 퍼시스턴스 컨텍스트이다. 인스턴스는 transient, persistent, detached 중 한가지의 상태에 놓이게 된다. transient 상태에서 객체는 아직 테이블과 연관이 없으며 persistence 상태에서 객체는 테이블과 연결이 되어 있고, detached  상태에서는 테이블과의 싱크를 보장하지 않는다. Employee 객체를 저장하는 Hibernate코드는 Listing7과 같다.</p>
<h4>Listing 7. Persisting an object with Hibernate</h4>
<div id="codewrap">
<div id="codewrap189">
<pre><code>Session session = null;
Transaction tx = null;

// At this point the Configuration file is read
SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();

// A specific session object is obtained
session = sessionFactory.openSession();

// A new database transaction is started
tx = session.beginTransaction();

// Employee Object is created &amp; populated
Employee emp = new Employee();
emp.setId(1);
emp.setEmpFirstname("K L");
emp.setEmpLastname("Nitin");

// Using the session, emp object is persisted in the database
session.save(emp);</code></pre>
</div>
</div>
<p>매핑정보가 있는 설정 파일은 특정 퍼시스턴스 클래스에서 데이터베이스 테이블로의 매핑을 식별한다. 이는 특정 column들을 특정 field들로 매핑시키고 관계, 집합, 주키(primary key)매핑, ID 값 생성 메커니즘을 가진다. 매핑파일은 기본적으로 매핑되고자 하는 테이블에 기반한 이름으로 지어진다. 예제 애플리케이션에서는 EMPLOYEE테이블에 대응하는 Employee.hbm.xml 를 설정파일로 사용하였다. Listing 8에서 볼 수 있듯이 매핑파일은 데이터베이스에 있는 id, emp_firstname, emp_lastname 칼럼을 가지고 있는 EMPLOYEE 테이블에 매핑되는 Employee클래스에 대한 설정 정보를 가진다. id는 주키(primary key)이며 반드시 값이 할당 되어 있어야 한다.</p>
<h4>Listing 8. Employee.hbm.xml</h4>
<div id="codewrap">
<div id="codewrap199">
<pre><code>&lt;hibernate-mapping package="demo"&gt;
  &lt;class name="Employee" table="employee" &gt;
    &lt;meta attribute="sync-DAO"&gt;false&lt;/meta&gt;
      &lt;id name="Id" type="integer" column="emp_id"&gt;
        &lt;generator/&gt;
      &lt;/id&gt;
       &lt;property name="EmpFirstname" column="emp_firstname"
              type="string" not-null="true" length="30" /&gt;
      &lt;property name="EmpLastname" column="emp_lastname"                      type="string" not-null="true" length="30" /&gt;
    &lt;/class&gt;
&lt;/hibernate-mapping&gt;</code></pre>
</div>
</div>
<h3>언제 Hibernate를 사용하는 것이 좋을까</h3>
<p>Hibernate는 하나부터 열까지 OR매핑을 하고자 할때 가장 좋다. 이는 완벽한 ORM솔루션을 제공하지만 쿼리에 대한 제어를 어렵게 한다. Hibernate는 애플리케이션과 데이터베이스 각각에 대한 설계에 대한 완벽한 통제가 가능한 상황에서 이상적인 솔루션이다. 이런 경우 애플리케이션을 데이터베이스에 맞도록 수정하거나 데이터베이스를 애플리케이션에 맞도록 수정할 것이다. 이런 경우에 완전한 object-relational 애플리케이션을 구축하기 위하여 Hibernate를 사용할 수 있을 것이다. Hibernate는 SQL에 익숙하지 않은 객체지향 프로그래머에게 최고의 옵션이다.</p>
<h2>The Java Persistence API</h2>
<table border="1" width="40%" align="right">
<tbody>
<tr>
<th><span style="color:#000000;">Hibernate and JPA</span></th>
</tr>
<tr>
<td>Hibernate가 어떻게 독립적인 퍼시스턴스 솔루션으로 제공되는지에 대하여 배웠다면, Hibernate가 JPA와 함께 동작할 수 있다는 것에 놀랄 것이다. 정확히 말해서, 만약 Hibernate 자체를 사용하고자 한다면 당신은 아마도 JDBC 객체를 조작할 필요 없이 HQL을 사용하여 SQL을 생성하는 Hibernate Core 모듈을 사용하게 될 것이다(애플리케이션은 여전히 데이터베이스에 독립적이다)</p>
<p>Hibernate Core는 어떤 애플리케이션 서버든간에 사용될 수 있으며 object-relational 매핑의 수행을 필요로 하는 그 어떤 Java 애플리케이션에도 사용될 수 있다. 이 매핑은 navtive Hibernate API인 Hibernate Query Language와 XML 매핑에 의해 이루어질 것이다. Hibernate 팀은 EJB3 스팩 개발에 깊이 관여를 해왔다. EJB3에 대한 도입에 이어서 EJB3 퍼시스턴스의 스탠드얼론 구현은 Hibernate의 일부로 가용해 졌다-Hibernate 어노테이션과 Hibernate EntityManager. 이 두가지는 Hibernate Core의 최상위에 구현되어 있다. EJB3의 사용을 필요로 하는 Java EE 5를 사용하여 개발된 애플리케이션을 위하여 Hibernate EntityManager 는 퍼시스턴스 프로바이더에 대한 선택사항으로서 고려될 수 있다. Java EE 5로 개발된 애플리케이션은 Hibernate와 JPA를 함께 사용할 수 있을 것이다.</td>
</tr>
</tbody>
</table>
<p>Java Persistence API는 표준 object-relational 매핑이며 JavaEE 5플랫폼에 대한 퍼시스턴스 관리 인터페이스이다. EJB3  스팩 활동의 노력으로 모든 주요 Java 벤더들이 제공한다. Java Persistence API는 Hibernate, Oracle TopLink, Java Data Objects(JDO), EJB container-managed persistence와 같은 주요 퍼시스턴트 프레임워크와 API들의 아이디어에 기반하여 구현되었다. JPA는 특정 퍼시스턴스 프로바이더의 구현체가 사용될 수 있는 플랫폼을 제공한다. Java Persistence API의 주요 특징은 어떤 persistence provider든 그것에 끼워 맞춰질 수 있다는 것이다.</p>
<p>JPA는 ORM을 위한  POJO기반의 표준 퍼시스턴스 모델이다. 이는 EJB3스팩의 한 부분이며 entity benas를 대체한다. entity beans는 실제 개발 현장에서 여러 이유에서 완전한 퍼시스턴스 솔루션으로서 인정받는데 실패한 EJB2.1의 한 부분이었다:</p>
<ul>
<li>Entity beans는 무거운 컴퍼넌트이며 Java EE서버와 강하게 결합되어 있었다. 이떄문에 재사용에 적합한 가벼운 POJO에 비해 적합치 않게 받아들여 졌다.</li>
<li>Entity beans는 개발과 배포하기 어렵다.</li>
<li>CMP entity beans가 자체의 설정과 ORM 선언이  Java EE 서버에 많이 의존하는데 반하여, BMP entity beans은 JDBC를 사용하도록 강제한다.</li>
</ul>
<p>이 이슈들을 해결하기 위하여  EJB3 소프트웨어 전문 그룹은 JSR220의 일부로 JPA을 개발중이다. JPA는 다른 퍼시스턴스 기술들로부터 제일 좋은 아이디어들을 빌려왔다. JPA는 모든 자바 애플리케이션에 대하여 표준 퍼시스턴스 모델을 정의한다. JPA는 Java SE와 Java EE 애플리케이션 둘 모두에서 퍼시스턴스 솔루션으로 사용될 수 있다.</p>
<p>JPA는 애플리케이션 도메인에 있는 자바 객체와 관계 데이터베이스에 있는 테이블간의 매핑설정을 하기 위하여 메타데이터 어노테이션 그리고(혹은) XML 디스크립터 파일을 사용한다. JPA는 완전한 ORM 솔루션이며 상속과 다형성을 지원한다. 또한 entity beans에서 사용하던 EJB-QL JPQL(Java Persistence Query Language) 과는 다른 JPQL(Java Persistence Query Language)라는 SQL과 비슷한 쿼리 언어를 정의한다.</p>
<p>JPA를 사용하면 현재 사용하고 있는 Java  EE container에서 제공하는 기본 퍼시스턴스 프로바이더를 사용하는 대신에 JPA 스팩을 구현한 어떤 퍼시스턴스 프로바이더든 간에 연결시킬 수 있다. 예를들어 GlassFish서버는 기본 퍼시스턴스 프로바이더로 Oracle에서 제공하는 TopLink Essentials를 사용한다. 하지만 당신은 애플리케이션에 필요한 모든 JAR파일들을 포함시키는 대신에  퍼시스턴스 프로바이더로  Hibernate를 선택할 수 있다.</p>
<p>to be continue…</p>
<p>p.s&gt; 금새 끝날거 같았는데 속도가 많이 줄었다. 페이퍼를 요즘 안 읽어서 그런가보다. ^^; 어쨌든 수고. ㅋ</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/humbroll.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/humbroll.wordpress.com/81/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/humbroll.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/humbroll.wordpress.com/81/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/humbroll.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/humbroll.wordpress.com/81/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/humbroll.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/humbroll.wordpress.com/81/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/humbroll.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/humbroll.wordpress.com/81/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/humbroll.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/humbroll.wordpress.com/81/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/humbroll.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/humbroll.wordpress.com/81/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=humbroll.wordpress.com&amp;blog=4870074&amp;post=81&amp;subd=humbroll&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://humbroll.wordpress.com/2010/01/03/5-ibatis-hibernate-%ea%b7%b8%eb%a6%ac%ea%b3%a0-jpa-%eb%ac%b4%ec%97%87%ec%9d%84-%ec%84%a0%ed%83%9d%ed%95%a0-%ea%b2%83%ec%9d%b8%ea%b0%80/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2de0467d1db18b880332b154a7ff6a3a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">humbroll</media:title>
		</media:content>
	</item>
		<item>
		<title>QuickPress#1 2010 새해의 시작</title>
		<link>http://humbroll.wordpress.com/2010/01/03/quickpress1/</link>
		<comments>http://humbroll.wordpress.com/2010/01/03/quickpress1/#comments</comments>
		<pubDate>Sun, 03 Jan 2010 06:46:54 +0000</pubDate>
		<dc:creator>humbroll</dc:creator>
				<category><![CDATA[emotional]]></category>
		<category><![CDATA[2010]]></category>

		<guid isPermaLink="false">http://humbroll.wordpress.com/2010/01/03/quickpress1/</guid>
		<description><![CDATA[나에겐 1월 1일보다는 새해 첫 월요일이 새로운 한해의 시작처럼 느껴진다. 2009년 한 가운데에 있었던 도전이 2010에도 거침없이 나아가기를 바라는 마음에 첫 QuickPress를 2010 첫 월요일을 준비하는 일요일 오후에 적어본다. 내 일에 있어서는 시작의 설레임으로 힘차게 내딛던 2008년 그때 처럼, 내 인생에 있어서는 인생의 큰 방점이자 큰 선물이었던 군대 전역의 해 2005년 그때의 벅참으로 살아가기를. 좀더 [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=humbroll.wordpress.com&amp;blog=4870074&amp;post=82&amp;subd=humbroll&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>나에겐 1월 1일보다는 새해 첫 월요일이 새로운 한해의 시작처럼 느껴진다. </p>
<p>2009년 한 가운데에 있었던 도전이 2010에도 거침없이 나아가기를 바라는 마음에 첫 QuickPress를 2010 첫 월요일을 준비하는 일요일 오후에 적어본다. </p>
<p>내 일에 있어서는 시작의 설레임으로 힘차게 내딛던 2008년 그때 처럼,<br />
내 인생에 있어서는 인생의 큰 방점이자 큰 선물이었던 군대 전역의 해 2005년 그때의 벅참으로 살아가기를. </p>
<p>좀더 긍정적이고 좀더 진취적이고 좀더 열정적으로 </p>
<p>2010 화이팅!!!!!!!!!!!!!!!!!!!!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/humbroll.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/humbroll.wordpress.com/82/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/humbroll.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/humbroll.wordpress.com/82/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/humbroll.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/humbroll.wordpress.com/82/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/humbroll.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/humbroll.wordpress.com/82/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/humbroll.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/humbroll.wordpress.com/82/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/humbroll.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/humbroll.wordpress.com/82/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/humbroll.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/humbroll.wordpress.com/82/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=humbroll.wordpress.com&amp;blog=4870074&amp;post=82&amp;subd=humbroll&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://humbroll.wordpress.com/2010/01/03/quickpress1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2de0467d1db18b880332b154a7ff6a3a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">humbroll</media:title>
		</media:content>
	</item>
		<item>
		<title>#4 iBATIS, Hibernate, 그리고 JPA: 무엇을 선택할 것인가?</title>
		<link>http://humbroll.wordpress.com/2010/01/02/4-ibatis-hibernate-%ea%b7%b8%eb%a6%ac%ea%b3%a0-jpa-%eb%ac%b4%ec%97%87%ec%9d%84-%ec%84%a0%ed%83%9d%ed%95%a0-%ea%b2%83%ec%9d%b8%ea%b0%80/</link>
		<comments>http://humbroll.wordpress.com/2010/01/02/4-ibatis-hibernate-%ea%b7%b8%eb%a6%ac%ea%b3%a0-jpa-%eb%ac%b4%ec%97%87%ec%9d%84-%ec%84%a0%ed%83%9d%ed%95%a0-%ea%b2%83%ec%9d%b8%ea%b0%80/#comments</comments>
		<pubDate>Sat, 02 Jan 2010 07:48:24 +0000</pubDate>
		<dc:creator>humbroll</dc:creator>
				<category><![CDATA[rational]]></category>
		<category><![CDATA[persistence ibatis hibernate jap java persistence api]]></category>

		<guid isPermaLink="false">http://humbroll.wordpress.com/?p=63</guid>
		<description><![CDATA[Hibernate: Hibernate는 오픈소스로 경량의 객체관계 매핑 솔루션이다. Hibernate의 주요 특징은 객체 기반의 모델링을 지원함으로서 퍼시스턴스에 대하여 투명한 체계를 제공한다는 점이다. 데이터페이스와 애플리케이션간의 매핑을 위해 XML을 이용하고 매우 정제되어 이는 객체를 지원한다. 현재 Hibernate 버전은 3.x이며 향후 Java annotation의 지원하고 EJB스팩을 모두 지원해나갈 예정이다. Hibernate in brief Hibernate는 Gavin King을 주축으로 한 팀에 의해 개발되었따. Hibernate [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=humbroll.wordpress.com&amp;blog=4870074&amp;post=63&amp;subd=humbroll&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<h2>Hibernate:</h2>
<p>Hibernate는 오픈소스로 경량의 객체관계 매핑 솔루션이다. Hibernate의 주요 특징은 객체 기반의 모델링을 지원함으로서 퍼시스턴스에 대하여 투명한 체계를 제공한다는 점이다. 데이터페이스와 애플리케이션간의 매핑을 위해 XML을 이용하고 매우 정제되어 이는 객체를 지원한다. 현재 Hibernate 버전은 3.x이며 향후 Java annotation의 지원하고 EJB스팩을 모두 지원해나갈 예정이다.</p>
<table border="1" width="40%" align="right">
<tbody>
<tr>
<th><span style="color:#ffffff;">Hibernate in brief</span></th>
</tr>
<tr>
<td>Hibernate는 Gavin King을 주축으로 한 팀에 의해 개발되었따. Hibernate 개발은 2001년에 시작되었고 그 팀은 현재 JBoss를 유지보수하고 있는 팀으로 JBoss의 후발로 만들어진 팀이다. Hibernate는 Java로 만들어졌으며 2005년에는 NHibernate라고 소개되었던 .Net버전을 출시하였다</td>
</tr>
</tbody>
</table>
<p>Hibernate는 Hibernate Query Language 혹은 HQL이라 불리는 매우 강력한 쿼리 언어를 포함하고 있다. HQL은 SQL과 매우 비슷하며 추가적인 컨벤션을 정의할 수도 있다. HQL은 완전히 객체 지향적이며 이로써 상속, 다형성, 관계등의 객체지향의 강점을 누릴수 있다. HQL쿼리는 자바 클래스와 프로퍼티의 이름을 제외하고는 대소문자를 가린다. HQL은 쿼리 결과로 객체를 반환하며 프로그래머의에 생성되고 직접적으로 접근되어질 수 있다. HQL은 페이지네이션이나 동적 프로파일링같은 SQL은 지원하지 않는 향상된 기능을 제공한다. HQL은 여러 테이블을 작업할때에 명시적인 join을 요구하지 않는다.</p>
<h3>왜 Hibernate를 필요로 하는가?</h3>
<p>객체 관계 매핑을 위해 전통적으로 사용되어 오던 Entity beans는 이해하기 어려우며 유지관리가 어렵다. Hibernate는 특정 클래스에 매핑되어야 하는 데이터베이스의 테이블에 대한 관계 정의가 되어 있는 XML 파일의 메타데이터로 객체관계 매핑을 간단하게 수행시키신다. 다른 persistence 프레임워크는 객체관계의 매핑을 위해 애플리케이션 클래스를 수정해야할지 미로즤만 Hibernate에서는 그렇게 할 필요가 없다.</p>
<p>Hibernate를 사용하면 데이터베이스가 변경되더라도 SQL스크립트를 변경하는등의 작업을 피할 수 있다. 애플리케이션에서 사용되는 데이터베이스를 변경시키고자 한다면 설정파일의 dialect 프로퍼티를 수정함으로서 쉽게 처리할 수 있다. Hibernate는  기존의 상업용 ORM 프레임워크로부터는 제공되지 못했던 SQL 모든 기능을 완벽하게 지원한다. Hibernate는 MySQL, Oracle, Sybase, Derby, PostgreSQL를 포함한 많은 데이터베이스를 지원하며 POJO기반의 모델과도 원활하게 동작한다.</p>
<p>Hibernate는 선택된 데이터베이스에 기반하여 JDBC코드를 생성하므로써 JDBC코드를 쓰면서 사용하는 문제로부터 해방시켜준다. 또한 커넥션 풀도 지원해준다. Hibernate에서 사용되는  API은 매우 간단하고 배우기 쉽다. 개발자는 SQL에 대한 기초 지식만 있떠라도 Hibernate를 사용할 수 있으며 SQL쿼리를 집합을 쉽게 사용할 수 있게 해준다.</p>
<h3>Hibernate 아키텍쳐</h3>
<p>내부적으로 Hibernate는 다른 애플리케이션과의 통함을 위한 JTA(Java Transaction API)와 JNDI를 적용하기 위한 데이터베이스의 추상화 계정을 제공하는 JDBC를 사용한다. 데이터베이스와의 상호작용에 필요한 Hibernate의 연결 정보는 JDBC의 connection pool에 의해 제공된다.</p>
<p>Hibernate의 아키텍쳐는 두개의 주요 인터페이스로 구성되는데 Session과 Transaction이 그것이다. 이는 애플리케이션의 퍼시스턴스 계층에 있는  Query 인터페이스와 함께 사용된다. 애플리케이션의 비즈니스 계층에 정의된 클래스들은 특정 JDBC API들을 사용하는 데이터베이스 계층과의 상호작용을 하기 위한 Hibernate 퍼스스턴스 계층과의 독립적인 메타데이터를 통하여 상호작용한다. 더하여 Hibernate는 Configureation클래스라는 설정을 위한 인터페이스를 사용한다. Hibernate는 callback 인터페이스를 사용하게끔 하며 몇몇 추가적인 인터페이스는 기능적인 매핑의 확장을 위해 사용된다. Hibernate의 전체적인 아키텍쳐는 Figure3에서 볼 수 있다.</p>
<p><img src="http://www.javaworld.com/javaworld/jw-07-2008/images/orm-fig3.jpg" alt="Hibernate architecture: The big picture" width="350" height="195" /></p>
<h4>Figure 3. Hibernate architecture: The big picture</h4>
<p>Hibernate의 일부인 주요 프로그래밍 인터페이스는 다음과 같다</p>
<ul>
<li><code>org.hibernate.SessionFactory 는 session 인터페이스를 얻는데 사용되며 connection pool 메커니즘과 유사하게 보여질 수 있다. 모든 애플리케이션 내의 쓰레드가 하나의 SessionFactory를 사용하기 때문에 thread safe하다(Hibernate가 하나의 데이터베이스를 사용하는 한은.)</code><code>. 이 인터페이스는 설정 파일을 통해서 어떤 파일들이 로딩될지 결정된다. </code><code> </code></li>
<li><code>org.hibernate.Session는 애플리케이션과 데이터베이스간의 상호작용을 결정하기 위한 하나의 쓰레드를 제공한다. 이는 single connection과 유사하며 매우 경량이긴 하나 thread safe하지 않다.<br />
</code></li>
<li><code>org.hibernate.Transaction는 애플리케이션에서의 원자적인 하나의 작업단위를 결정하는 하나의 쓰레드 객체를 제공한다. 이는 기본적으로 JDBC, JTA, CORBA 트랜잭션에 기초한다.<br />
</code></li>
<li><code> </code><code>org.hibernate.Query는 HQL이나 데이터베이스에 있는  SQL과 같은 쿼리를 수행하는데 쓰인다. Query인스턴스는 가벼우며, 그 쿼리가 생성된 세션 밖에서는 사용할 수 없다는 것에 주의해야 한다.<br />
</code></li>
<li></li>
</ul>
<h3>Hibernate 설정</h3>
<p>Hibernate의 설정은 hibernate.cfg.xml이라는 XML파일을 통해 할 수 있다. 이 설정 파일은 특정 관계 데이터베이스로의 연결을 하기 위한 정보가 들어 있다. 설정 파일은 참조해야할 매핑파일을 알고 있어야 한다. 런타임에서 Hibernate는 매핑파일을 읽고 데이터베이스의 테이블에 대응하는 동적 자바 클래스를 빌드하는데 그 매핑 파일을 사용한다. 예제 설정 파일은 Listing 6에서 볼 수 있다.</p>
<h4>Listing 6. hibernate.cfg.xml</h4>
<div id="codewrap">
<div id="codewrap177">
<pre><code>&lt;hibernate-configuration&gt;
   &lt;session-factory&gt;
    &lt;!-- local connection properties --&gt;
     &lt;property name="hibernate.connection.url"&gt;
        jdbc:mysql://localhost/hibernateDemo
     &lt;/property&gt;
     &lt;property name="hibernate.connection.driver_class"&gt;
        com.mysql.jdbc.Driver
     &lt;/property&gt;
     &lt;property  name="hibernate.connection.username"&gt;
root
 &lt;/property&gt;
     &lt;property name="hibernate.connection.password"&gt;
infosys
 &lt;/property&gt;
     &lt;!-- dialect for MySQL --&gt;
     &lt;property name="dialect"&gt;
        org.hibernate.dialect.MySQLDialect
     &lt;/property&gt;
     &lt;property name="hibernate.show_sql"&gt;false&lt;/property&gt;
     &lt;property name="hibernate.transaction.factory_class"&gt;
        org.hibernate.transaction.JDBCTransactionFactory
     &lt;/property&gt;
     &lt;mapping resource="Employee.hbm.xml" /&gt;
  &lt;/session-factory&gt;
&lt;/hibernate-configuration&gt;</code>
</pre>
</div>
</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/humbroll.wordpress.com/63/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/humbroll.wordpress.com/63/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/humbroll.wordpress.com/63/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/humbroll.wordpress.com/63/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/humbroll.wordpress.com/63/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/humbroll.wordpress.com/63/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/humbroll.wordpress.com/63/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/humbroll.wordpress.com/63/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/humbroll.wordpress.com/63/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/humbroll.wordpress.com/63/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/humbroll.wordpress.com/63/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/humbroll.wordpress.com/63/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/humbroll.wordpress.com/63/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/humbroll.wordpress.com/63/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=humbroll.wordpress.com&amp;blog=4870074&amp;post=63&amp;subd=humbroll&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://humbroll.wordpress.com/2010/01/02/4-ibatis-hibernate-%ea%b7%b8%eb%a6%ac%ea%b3%a0-jpa-%eb%ac%b4%ec%97%87%ec%9d%84-%ec%84%a0%ed%83%9d%ed%95%a0-%ea%b2%83%ec%9d%b8%ea%b0%80/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2de0467d1db18b880332b154a7ff6a3a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">humbroll</media:title>
		</media:content>

		<media:content url="http://www.javaworld.com/javaworld/jw-07-2008/images/orm-fig3.jpg" medium="image">
			<media:title type="html">Hibernate architecture: The big picture</media:title>
		</media:content>
	</item>
		<item>
		<title>JQuery IE7 IE8 UserAgent</title>
		<link>http://humbroll.wordpress.com/2009/11/30/jquery-ie7-ie8-useragent/</link>
		<comments>http://humbroll.wordpress.com/2009/11/30/jquery-ie7-ie8-useragent/#comments</comments>
		<pubDate>Mon, 30 Nov 2009 06:52:37 +0000</pubDate>
		<dc:creator>humbroll</dc:creator>
				<category><![CDATA[rational]]></category>
		<category><![CDATA[JQuery IE6 IE7 IE8 User Agent]]></category>

		<guid isPermaLink="false">http://humbroll.wordpress.com/2009/11/30/jquery-ie7-ie8-useragent/</guid>
		<description><![CDATA[멀티 브라우져 웹개발을 하다보면 독보적으로 표준을 위반하는 IE7이하 혹은 IE6버전을 위한 분기를 치게되기 마련이다. JQuery를 쓰게 되면 브라우저 분기를 하기 쉽지만 IE의 버전을 분기해주는 것은 빌트인되지 않은 기능이다. 특히 요즘 거의 &#8220;무시&#8221;의 대상이 되고 있고, 또 그래야만 하는(?) IE6에 대한 분기를 위해 보통 다음과 같은 코드를 사용하게 되는데 jQuery.browser.msie6 = $.browser.msie &#38;&#38; /MSIE 6.0/i.test(window.navigator.userAgent); 여기에 [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=humbroll.wordpress.com&amp;blog=4870074&amp;post=67&amp;subd=humbroll&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>멀티 브라우져 웹개발을 하다보면<br />
독보적으로 표준을 위반하는 IE7이하 혹은 IE6버전을 위한 분기를 치게되기 마련이다.</p>
<p>JQuery를 쓰게 되면 브라우저 분기를 하기 쉽지만 IE의 버전을 분기해주는 것은 빌트인되지 않은 기능이다. 특히 요즘 거의 &#8220;무시&#8221;의 대상이 되고 있고, 또 그래야만 하는(?) IE6에 대한 분기를 위해 보통 다음과 같은 코드를 사용하게 되는데</p>
<p>jQuery.browser.msie6 = $.browser.msie &amp;&amp; /MSIE 6.0/i.test(window.navigator.userAgent);</p>
<p>여기에 헛점이 있다. 바로 IE6의 윗 버전 브라우저들에서 하위 버전의 Compatible모드를 지원하기 때문에 UserAgenet에 6.0텍스트가 포함되어 있을 수 있기 때문이다.(정확히 어떤 경우에 아래와 같은 UserAgent설정이 되는지는 확인해보지 않았으나, 본 버전의 바로 하위 버전에 대해 Compatible모드를 지원해주는 듯 하다)</p>
<p><a href="http://humbroll.files.wordpress.com/2009/11/ie7_useragent3.jpg"><img class="aligncenter size-medium wp-image-71" title="IE7_UserAgent" src="http://humbroll.files.wordpress.com/2009/11/ie7_useragent3.jpg?w=299&#038;h=50" alt="" width="299" height="50" /></a></p>
<p>고로, 정확하게는 아래와 같이 사용해야 할 것이다.</p>
<p>jQuery.browser.msie6 = $.browser.msie &amp;&amp; /MSIE 6.0/i.test(window.navigator.userAgent) &amp;&amp; !/MSIE 7.0/i.test(window.navigator.userAgent);</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/humbroll.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/humbroll.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/humbroll.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/humbroll.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/humbroll.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/humbroll.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/humbroll.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/humbroll.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/humbroll.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/humbroll.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/humbroll.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/humbroll.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/humbroll.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/humbroll.wordpress.com/67/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=humbroll.wordpress.com&amp;blog=4870074&amp;post=67&amp;subd=humbroll&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://humbroll.wordpress.com/2009/11/30/jquery-ie7-ie8-useragent/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2de0467d1db18b880332b154a7ff6a3a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">humbroll</media:title>
		</media:content>

		<media:content url="http://humbroll.files.wordpress.com/2009/11/ie7_useragent3.jpg?w=300" medium="image">
			<media:title type="html">IE7_UserAgent</media:title>
		</media:content>
	</item>
		<item>
		<title>#3 iBATIS, Hibernate, 그리고 JPA: 무엇을 선택할 것인가?</title>
		<link>http://humbroll.wordpress.com/2009/11/21/3-ibatis-hibernate-%ea%b7%b8%eb%a6%ac%ea%b3%a0-jpa-%eb%ac%b4%ec%97%87%ec%9d%84-%ec%84%a0%ed%83%9d%ed%95%a0-%ea%b2%83%ec%9d%b8%ea%b0%80/</link>
		<comments>http://humbroll.wordpress.com/2009/11/21/3-ibatis-hibernate-%ea%b7%b8%eb%a6%ac%ea%b3%a0-jpa-%eb%ac%b4%ec%97%87%ec%9d%84-%ec%84%a0%ed%83%9d%ed%95%a0-%ea%b2%83%ec%9d%b8%ea%b0%80/#comments</comments>
		<pubDate>Sat, 21 Nov 2009 07:43:28 +0000</pubDate>
		<dc:creator>humbroll</dc:creator>
				<category><![CDATA[rational]]></category>
		<category><![CDATA[persistence ibatis hibernate jap java persistence api]]></category>

		<guid isPermaLink="false">http://humbroll.wordpress.com/?p=49</guid>
		<description><![CDATA[SQLMap.xml 다른 XML파일은 SQLMap.xml로 , 그 이름처럼 테이블간에 관계에 대한 정보를 가진다. 이 파일은 하나의 애플리케이션에서 여러개를 가질 수 있다. 이 파일은 SQL 문장들과 매핑되는 도메인 객체가 있는 것이 위치한다. 이 디스크립터는 입력으로 쓰일 문장과 SQL ResultSets로 매핑되는 결과에 대한 내용을 표기한다. 이 파일은 쿼리를 포함하기도 한다. 따라서 쿼리를 바꾸려면 애플리케이션의 자바 코드를 바꾸는 것이 [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=humbroll.wordpress.com&amp;blog=4870074&amp;post=49&amp;subd=humbroll&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<h4>SQLMap.xml</h4>
<p>다른 XML파일은 SQLMap.xml로 , 그 이름처럼 테이블간에 관계에 대한 정보를 가진다. 이 파일은 하나의 애플리케이션에서 여러개를 가질 수 있다. 이 파일은 SQL 문장들과 매핑되는 도메인 객체가 있는 것이 위치한다. 이 디스크립터는 입력으로 쓰일 문장과 SQL ResultSets로 매핑되는 결과에 대한 내용을 표기한다. 이 파일은 쿼리를 포함하기도 한다. 따라서 쿼리를 바꾸려면 애플리케이션의 자바 코드를 바꾸는 것이 아니라 XML을 바꾸어야 한다. 매핑은 데이터베이스와 상호작용할 실제 SQL문장을 사용하여 이루어진다. 이렇게 SQL을 사용하는 것은 개발자에게 매우 큰 융통성을 부여하며  SQL프로그래밍 경험을 가진 누구에게나 iBATIS를 쉽게 이해할 수 있게 해준다.</p>
<p>EMPLOYEE테이블에 대한 CRUD연산을 수행하는 SQL문을 정의한 SQLMap.xml파일이 아래 Listing 2에 있다.</p>
<h4>Listing 2. SQLMap.xml for operations on EMPLOYEE</h4>
<div id="codewrap">
<div id="codewrap82">
<pre><code>&lt;sqlMap namespace="Employee"&gt;
  &lt;typeAlias alias="Employee" type="com.sample.Employee"/&gt;
  &lt;resultMap id="EmpResult"&gt;
    &lt;result property="id" column="emp_id"/&gt;
    &lt;result property="firstName" column="emp_firstname"/&gt;
    &lt;result property="lastName" column="emp_lastname"/&gt;
   &lt;/resultMap&gt;
  &lt;!-- Select all data from the table using the result map for Employee class.--&gt;
  &lt;select id="selectAllEmps" resultMap="EmpResult"&gt;
    select * from EMPLOYEE
  &lt;/select&gt;
&lt;!-- Select the data from the table based on the id. --&gt;
&lt;select id="selectEmpById" parameterClass="int" resultClass="Employee"&gt;
 &lt;select emp_id as id,emp_firstname as firstName,     emp_lastname as lastName from EMPLOYEE where emp_id= #id#
&lt;/select&gt;
&lt;!--  insert the data into the table --&gt;
&lt;insert id="insertEmp" parameterClass="Employee"&gt;
    insert into EMPLOYEE (
      emp_id,
       emp_firstname,
       emp_lastname)
    values (
      #id#, #firstName# , #lastName# )
  &lt;/insert&gt;
&lt;!-- update the Employee record based on the id --&gt;
  &lt;update id="updateEmp" parameterClass="Employee"&gt;
    update EMPLOYEE set
      emp_firstname = #firstName#,
      emp_lastname = #lastName#
    where
      emp_id = #id#
  &lt;/update&gt;
&lt;!-- delete the Employee record based on the given id --&gt;
    &lt;delete id="deleteEmp" parameterClass="int"&gt;
    delete from EMPLOYEE where emp_id = #id#
  &lt;/delete&gt;
&lt;/sqlMap&gt;</code></pre>
</div>
</div>
<p>Listing 2에서 typeAlias 태그는 타입에 대한 별칭으로 사용되어서 매번 경로까지 포함한 전체 클래스명을 타이핑하지 않아도 되도록 해준다. 이 태그는 쿼리로부터 반환되는 컬럼과 Employee클래스로 표현되는 클래스의 프로퍼티에 대한 매핑 정보를 가지는 resultMap 태그를 포함한다. 이 resultMap태크에 이어 쿼리들이 정의된다. SQLMap.xml은 여러개의 쿼리들을 포함한다. select, insert, update, delete 문장들은 각각의 태그안에 쓰여진다. 모든 문장은 id 어트리뷰트를 사용하여 이름이 지어진다.</p>
<h3>Loading the descriptor files to your Java application</h3>
<p>XML파일들간에 매핑작업과 전체적인 설정이 완료되면 SQLMapConfig.xml을 자바 애플리케이션에서 가져와 사용해야 한다. 첫단계는 앞서 작성했던 SQLMap.xml 설정파일을 로딩하는 것이다. 이를 위해 Listing 3.에 있는 iBATIS 프레임워크에 포함되어 있는 com.ibatis.common.resources.Resources 클래스를 사용할 것이다.</p>
<h4>Listing 3. Loading SQLMap.xml</h4>
<div id="codewrap">
<div id="codewrap98">
<pre><code>private static SqlMapClient sqlMapper;
...
 try {
      Reader reader = Resources.getResourceAsReader("com/mydomain/data/SqlMapConfig.xml");
      sqlMapper = SqlMapClientBuilder.buildSqlMapClient(reader);
      reader.close();
    } catch (IOException e) {
      // Fail fast.
      throw new RuntimeException("Something bad happened while building the SqlMapClient instance." + e, e);
    }
  }
</code></pre>
</div>
</div>
<p>SqlMapClient클래스는 SQLMaps와 함께 사용된다. 이는 select, insert, update등과 같은 문장들에 해당하는 액션들을 수행한다. SqlMapClient객체는 Thread safe하기때문에 한개의 객체만 사용해도 충분하다. 따라서 static 멤버로 선언하는 것이 적절하겠다. 이 객체는 하나의 SQLMapConfig.xml파일로부터 설정 정보를 읽어와 생성된다. iBATIS프래임워크는 SQLMapConfig.xml파일을 읽기 위한 Resources.getResourceAsReader() 유틸리티를 제공한다. 따라서 SQLMap클래스의 인스턴스를 사용하여 데이터베이스로부터 객체에 접근할 수 있다.(이번 경우에는 Employee객체)</p>
<p>EMPLOYEE테이블에 있는 연산을 호출하기 위해서 여러종류의 메소드가 있지만 그중에서도 queryForList(), queryForObject(), insert(), update(), queryForMap()과 같은 SQLMap에서 제공하는 메소드들이 제공된다.  Listing4에 있는 queryForList()메소드는 Employee객체들의 리스트를 반환한다.</p>
<h4>Listing 4. queryForList()</h4>
<div id="codewrap">
<div id="codewrap117">
<pre><code>sqlMapper.queryForList("selectAllEmps");</code></pre>
</div>
</div>
<p>쿼리의 결과로 한개의 로우를 가져오고자 할때는 queryForObject()를 사용하면 된다. 이 두가지 메소드 모두 파라미터로 쿼리문의 이름을 받는다.</p>
<p>이와 유사하게 Listing 5처럼  insert, update, delete연산을 수해할 수 있는 메소드들이 있다. 이 메소드들은 SQLMap.xml파일에 선언된 쿼리분의 이름과 파라미터로 Employee객체를 넘겨받는다.</p>
<h4>Listing 5. Insert, update, and delete operations</h4>
<div id="codewrap">
<div id="codewrap124">
<pre><code>sqlMapper.insert("insertEmp", emp);
sqlMapper.update("updateEmp", emp);
sqlMapper.delete("deleteEmp", id);</code></pre>
</div>
</div>
<p>iBATIS에서는 이런 방식으로  SQL문장을 직접적으로 사용하여 자바객체를 저장하게 된다.</p>
<h3>언제 iBATIS를 사용하는가</h3>
<p>iBATIS는 SQL에 대한 모든 컨트롤을 하고자 할때 매우 적합하다. SQL쿼리들이 매우 잘 최적화되어있을때에도 유용하다. iBATIS는 애플리케이션과 데이터베이스간의 설계에 대한 모든 조작을 하고자 할때는 적합하지 않다. 그 이유는 애플리케이션과 데이터베이스간에 서로 잘 구조화되도록 설정이 바뀌어야하기 때문이다. 이러한 경우에 객체관계(object-relational)애플리케이션을 개발할 수 있으며 다른 ORM툴을 사용하는것이 더 올바른 선택일 것이다. iBATIS는 상대적으로 더 SQL중심적이기때문에, ORM툴들이 생성해내는 SQL에 반해 iBATIS는 SQL을 직접적으로 사용하게 된다. iBATIS는 관계 데이터베이스가 아닌 데이터베이스들을 사용할때에도 적절치 않다. 그러한 데이터베이스들은 트랜잭션이나 iBATIS가 사용하는 주요 기능들을 제공하지 않기 때문이다.</p>
<p>&nbsp;</p>
<p>to be continue&#8230;</p>
<p>p.s&gt;이제 좀 알고 싶은 내용이 나온다&#8230;-0-; 회사일이 바뻐서 진도를 못빼고 틈날때 바짝 하느라 번역질이 낮을거 같지만,,,<br />
쿨하게 publish를 눌러본다.-_-;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/humbroll.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/humbroll.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/humbroll.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/humbroll.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/humbroll.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/humbroll.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/humbroll.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/humbroll.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/humbroll.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/humbroll.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/humbroll.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/humbroll.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/humbroll.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/humbroll.wordpress.com/49/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=humbroll.wordpress.com&amp;blog=4870074&amp;post=49&amp;subd=humbroll&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://humbroll.wordpress.com/2009/11/21/3-ibatis-hibernate-%ea%b7%b8%eb%a6%ac%ea%b3%a0-jpa-%eb%ac%b4%ec%97%87%ec%9d%84-%ec%84%a0%ed%83%9d%ed%95%a0-%ea%b2%83%ec%9d%b8%ea%b0%80/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2de0467d1db18b880332b154a7ff6a3a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">humbroll</media:title>
		</media:content>
	</item>
	</channel>
</rss>
