<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
  <channel>
    <title>김재호의 디지털보단 아날로그</title>
    <link>http://www.crazytazo.com/</link>
    <description>컴퓨터 서적과 소프트웨어에 관해 이야기 합니다.
　　　　
crazytazo 앳 gmail.com</description>
    <language>ko</language>
    <pubDate>Sun, 05 Jul 2009 22:03:26 +0900</pubDate>
    <generator>Textcube.com 2.0 Garnet</generator>
    <image>
    <title>김재호의 디지털보단 아날로그</title>
    <url><![CDATA[http://fs.textcube.com/blog/0/656/attach/XOguGYW3aX.jpg]]></url>
    <link>http://www.crazytazo.com/</link>
    <description>컴퓨터 서적과 소프트웨어에 관해 이야기 합니다.
　　　　
crazytazo 앳 gmail.com</description>
    </image>
    <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/crazytazo" type="application/rss+xml" /><item>
      <title>천년의 금서 -김진명</title>
      <link>http://feedproxy.google.com/~r/crazytazo/~3/S-E120JCSf4/95</link>
      <description>&lt;div class="ttbReview"&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://www.aladdin.co.kr/shop/wproduct.aspx?ISBN=8988537017&amp;amp;ttbkey=ttbcrazytazo1459001&amp;amp;COPYPaper=1"&gt;&lt;img src="http://image.aladdin.co.kr/cover/cover/8988537017_2.jpg" alt="" border="0"&gt;&lt;/a&gt;&lt;/td&gt;&lt;td style="vertical-align: top;" align="left"&gt;&lt;a href="http://www.aladdin.co.kr/shop/wproduct.aspx?ISBN=8988537017&amp;amp;ttbkey=ttbcrazytazo1459001&amp;amp;COPYPaper=1" class="aladdin_title"&gt;천년의 금서&lt;/a&gt; - &lt;img src="http://image.aladdin.co.kr/img/common/star_s6.gif" alt="6점" border="0"&gt;&lt;br /&gt;김진명 지음/새움&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;br /&gt;최근에 발매된 김진명씨의 새 책이다.&lt;br /&gt;나는 컴퓨터 책이나 자기계발 종류가 아닌 책은 거의 읽지 않지만, 어렸을 적 내가 좋아했던 몇몇 작가들의 신작만큼은 즐거운 마음으로 꼬박꼬박 읽어본다.&lt;br /&gt;&lt;br /&gt;&lt;a target="_blank" href="http://ko.wikipedia.org/wiki/%EA%B9%80%EC%A7%84%EB%AA%85"&gt;김진명&lt;/a&gt;도 그런 작가 중 한명인데, 그의 책을 읽다보면 특유의 박진감과 통쾌함, 그리고 애국심이 고취되는 감정을 갖게 되고는 하는데 나는 그런 느낌들이 너무 좋다.&lt;br /&gt;&lt;br /&gt;이 책은 이정서와 한은원이라는 두 주인공이 우리 대한민국의 한(韓)이라는 이름의 유래에 관해 밝혀가는 내용으로 이루어져있다.&lt;br /&gt;&lt;br /&gt;작가의 말에서도 알 수 있듯이 이정서와 한은원은 바로 김진명 자신이다.&lt;br /&gt;그는 요즈음 소설을 쓰는 것 뿐만이 아니라, 우리들의 잃어버린 역사를 되찾기 위해서 아주 열심히 일하고 있는 것으로 보여지는데, 부디 그의 노력이 좋은 결실을 맺을 수 있기를 진심으로 바란다.&lt;br /&gt;&lt;br /&gt;그의 다른 책들과 달리 이 책은 1권으로 끝나는데, 덕분에 부담없이 읽을 수는 있다만 전체적인 스토리나 박진감에 있어서는 예전의 책들만 못하다고 느꼈다.&lt;br /&gt;&lt;br /&gt;살인 사건과 같은 어떤 의혹의 이벤트 발생, 그리고 주인공이 실마리를 풀어내는 과정.&lt;br /&gt;그의 거의 모든 책은 위와 같이 구성되어져 있는데, 이번 천년의 금서에서는 그 실마리를 풀어내는 과정이 너무 순탄했고(수퍼스마트인 주인공들 덕분에), 또 조금 비현실적이기도 해서 그렇게 느껴진 것 같다.&lt;br /&gt;&lt;br /&gt;그럼에도 불구하고, 그가 했던 노력들과 우리들에게 던져주는 메세지는 충분히 읽어볼만한 가치가 있다.&lt;br /&gt;&lt;br /&gt;나도 여느 사람들과 마찬가지로 &lt;a target="_blank" href="http://www.aladdin.co.kr/shop/book/wletslook.aspx?ISBN=8973379925#letsLook"&gt;무궁화 꽃이 피었습니다&lt;/a&gt;라는 명작을 통해 그를 처음 알게되었었는데, 그 때 느꼈던 떨릴정도의 벅찬 감동을 아직도 잊지 못한다.&lt;br /&gt;&lt;br /&gt;앞으로 또 그런 멋진 책을 만날 수 있기를 기대한다.&lt;br /&gt;&lt;div style="width: 100%;border:0; text-align: center; padding-top: 15px; padding-bottom: 5px;"&gt;&lt;embed src="http://api.v.daum.net/static/recombox1.swf?nid=3584083" quality="high" bgcolor="#ffffff" width="400" height="80" type="application/x-shockwave-flash"&gt;&lt;/embed&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/KuE7Y7b7qSKFy8Y1Alq5YUG1MiY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/KuE7Y7b7qSKFy8Y1Alq5YUG1MiY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/KuE7Y7b7qSKFy8Y1Alq5YUG1MiY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/KuE7Y7b7qSKFy8Y1Alq5YUG1MiY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/crazytazo/~4/S-E120JCSf4" height="1" width="1"/&gt;</description>
      <category>기타 책</category>
      <category>김진명</category>
      <category>무궁화꽃이 피었습니다</category>
      <category>천년의 금서</category>
      <author>김재호</author>
      <guid isPermaLink="false">http://www.crazytazo.com/95</guid>
      <comments>http://www.crazytazo.com/entry/천년의-금서-김진명#entry95Comment</comments>
      <pubDate>Sun, 05 Jul 2009 19:32:37 +0900</pubDate>
    <feedburner:origLink>http://www.crazytazo.com/95</feedburner:origLink></item>
    <item>
      <title>TR1을 이용한 C++에서의 정규식 사용</title>
      <link>http://feedproxy.google.com/~r/crazytazo/~3/rSGnQqrfEXo/94</link>
      <description>&lt;br /&gt;C++을 사용하다 보면 다른 언어의 라이브러리들이 부러운 경우가 많이 있다.&lt;br /&gt;&lt;br /&gt;정규표현식은 그 중 하나였는데, 다행히도 VS2008 SP1 이상을 쓰고 있다면 &lt;a href="http://en.wikipedia.org/wiki/C%2B%2B_Technical_Report_1" target="_blank"&gt;TR1&lt;/a&gt;이 내장되어 있어 다른 어떤 써드파티 라이브러리를 연결하지 않고도 #include &amp;lt;regex&amp;gt; 한 줄만 추가해줌으로써 쉽게 사용할 수 있게 되었다.&lt;br /&gt;&lt;br /&gt;다음은 원하는 문자열을 매치해서 결과를 받아보는 간단한 예제이다.&lt;br /&gt;
&lt;div style="border: 1px solid rgb(255, 183, 151); padding: 10px; background-color: rgb(255, 215, 197);"&gt;const std::string s("Hello World");&lt;br /&gt;&lt;br /&gt;std::tr1::smatch m;&lt;br /&gt;std::tr1::regex rx("&lt;span style="font-weight: bold;"&gt;(\\w+) (\\w+)&lt;/span&gt;");&lt;br /&gt;bool fMatched = std::tr1::regex_match( s, m, rx );&lt;br /&gt;&lt;br /&gt;if ( fMatched )&lt;br /&gt;{&lt;br /&gt;&amp;nbsp; &amp;nbsp; std::cout &amp;lt;&amp;lt; "size : " &amp;lt;&amp;lt; m.size() &amp;lt;&amp;lt; std::endl &amp;lt;&amp;lt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "match0 : " &amp;lt;&amp;lt; m[0] &amp;lt;&amp;lt; std::endl &amp;lt;&amp;lt; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "match1 : " &amp;lt;&amp;lt; m[1] &amp;lt;&amp;lt; std::endl &amp;lt;&amp;lt; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; "match2 : " &amp;lt;&amp;lt; m[2] &amp;lt;&amp;lt; std::endl;&lt;br /&gt;}&lt;/div&gt;&lt;br /&gt;
&lt;div style="border: 1px solid rgb(178, 232, 237); padding: 10px; background-color: rgb(225, 253, 255);"&gt;size : 3&lt;br /&gt;match0 : Hello World&lt;br /&gt;match1 : Hello&lt;br /&gt;match2 : World&lt;/div&gt;&lt;br /&gt;match 객체의 첫번째 요소에는 매치된 모든 문자열이 담기게 되고, 그 다음 요소들 부터는 캡쳐한(괄호로 둘러싼) 문자열들이 저장된다. 위 예제에서는 첫번째 단어와 두번째 단어를 캡쳐해봤다. -물론 캡쳐 없는 괄호 (?: )을 사용해서 캡쳐 기능을 제거할 수도 있다.&lt;br /&gt;파이썬이나 C# 등의 다른 정규식 라이브러리에서도 대부분 위와 흡사한 인터페이스를 제공한다.&lt;br /&gt;&lt;br /&gt;다음 코드는 문자열을 치환한다.&lt;br /&gt;
&lt;div style="border: 1px solid rgb(255, 183, 151); padding: 10px; background-color: rgb(255, 215, 197);"&gt;const std::string s("Hello World");&lt;br /&gt;std::tr1::regex rx("&lt;span style="font-weight: bold;"&gt;^\\w+&lt;/span&gt;");&lt;br /&gt;std::string t = std::tr1::regex_replace( s, rx, std::string("&lt;span style="font-weight: bold;"&gt;Great&lt;/span&gt;") );&lt;br /&gt;std::cout &amp;lt;&amp;lt; t &amp;lt;&amp;lt; std::endl;&lt;/div&gt;&lt;br /&gt;위 코드는 첫 번째 단어를 "Great" 라는 문자열로 치환시킨다.&lt;br /&gt;
&lt;div style="border: 1px solid rgb(178, 232, 237); padding: 10px; background-color: rgb(225, 253, 255);"&gt;Great World&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;치환할 때 백레퍼런스도 역시 사용이 가능하다.&lt;br /&gt;
&lt;div style="border: 1px solid rgb(255, 183, 151); padding: 10px; background-color: rgb(255, 215, 197);"&gt;std::tr1::regex rx("&lt;span style="font-weight: bold;"&gt;(^\\w+)&lt;/span&gt;");&lt;br /&gt;std::string t = std::tr1::regex_replace( s, rx, std::string("&lt;span style="font-weight: bold;"&gt;Great $1&lt;/span&gt;") );&lt;/div&gt;&lt;br /&gt;첫번째 캡쳐그룹을 치환시에 재사용 하였다.&lt;br /&gt;
&lt;div style="border: 1px solid rgb(178, 232, 237); padding: 10px; background-color: rgb(225, 253, 255);"&gt;Great Hello World&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;간단하게 설명하기 위해서 예제의 실용 가치가 없어져 버렸지만, 잘 응용하면 많은 곳에 적용할 수 있을 것이다.&lt;br /&gt;&lt;br /&gt;예전에 이메일 검증 함수를 골뱅이와 .을 찾아가면서 CString의 Find 함수로 떡칠을 하면서 만든적이 있었는데, 시간이 지나고 어느 날 RFC 문서에서 이메일 형식 명세를 보다가 아 내가 엉터리로 만들었구나 하고 깨달았던 기억이 난다. Email이나 URL 형식 같은 것들은 정규식 없이 검증 함수를 만들기엔 생각보다 훨씬 복잡하다.&lt;br /&gt;&lt;br /&gt;다른 언어들보다 사용법이 조금 까다롭고 보기에도 좋지는 않지만, 이 정도만으로도 C++ 프로그래머들은 고마움에 눈물이 날만하다.&lt;br /&gt;&lt;br /&gt;C++0x에서는 파이썬의 r""이나 C#의 @"" 같은 &lt;a href="http://en.wikipedia.org/wiki/C%2B%2B0x#New_string_literals" target="_blank"&gt;raw string&lt;/a&gt; 기능도 언어에 포함될 예정인데, 그 때가 되면 조금 더 보기 좋게 정규식을 사용할 수 있을 것이다.&lt;br /&gt;&lt;br /&gt;&lt;div style="width: 100%;border:0; text-align: center; padding-top: 15px; padding-bottom: 5px;"&gt;&lt;embed src="http://api.v.daum.net/static/recombox1.swf?nid=3545583" quality="high" bgcolor="#ffffff" width="400" height="80" type="application/x-shockwave-flash"&gt;&lt;/embed&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/mVQF1-3vsjlEJVvwq_cqe9qqrxw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/mVQF1-3vsjlEJVvwq_cqe9qqrxw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/mVQF1-3vsjlEJVvwq_cqe9qqrxw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/mVQF1-3vsjlEJVvwq_cqe9qqrxw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/crazytazo/~4/rSGnQqrfEXo" height="1" width="1"/&gt;</description>
      <category>Programming</category>
      <category>back reference</category>
      <category>C++0x</category>
      <category>regex</category>
      <category>TR1</category>
      <category>백레퍼런스</category>
      <category>정규식</category>
      <author>김재호</author>
      <guid isPermaLink="false">http://www.crazytazo.com/94</guid>
      <comments>http://www.crazytazo.com/entry/regex-tr1#entry94Comment</comments>
      <pubDate>Tue, 30 Jun 2009 20:48:32 +0900</pubDate>
    <feedburner:origLink>http://www.crazytazo.com/94</feedburner:origLink></item>
    <item>
      <title>러프 -아다치미츠루</title>
      <link>http://feedproxy.google.com/~r/crazytazo/~3/7IJ3OPY9kTY/93</link>
      <description>&lt;div class="ttbReview"&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://www.aladdin.co.kr/shop/wproduct.aspx?ISBN=892524487x&amp;amp;ttbkey=ttbcrazytazo1459001&amp;amp;COPYPaper=1"&gt;&lt;img src="http://image.aladdin.co.kr/cover/cover/892524487x_1.jpg" alt="" border="0"&gt;&lt;/a&gt;&lt;/td&gt;&lt;td style="vertical-align: top;" align="left"&gt;&lt;a href="http://www.aladdin.co.kr/shop/wproduct.aspx?ISBN=892524487x&amp;amp;ttbkey=ttbcrazytazo1459001&amp;amp;COPYPaper=1" class="aladdin_title"&gt;러프 소장판 1&lt;/a&gt; - &lt;img src="http://image.aladdin.co.kr/img/common/star_s10.gif" alt="10점" border="0"&gt;&lt;br /&gt;아다치 미츠루 지음/대원씨아이(만화)&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;br /&gt;얼마전에 러프 소장판이 발행되었다.&lt;br /&gt;&lt;br /&gt;나는 &lt;a target="_blank" href="http://ko.wikipedia.org/wiki/%EC%95%84%EB%8B%A4%EC%B9%98_%EB%AF%B8%EC%93%B0%EB%A3%A8"&gt;아다치미츠루&lt;/a&gt;의 만화를 너무 좋아하는데, 그 중에서 가장 좋았던 작품 3개를 꼽으라면, 단연 &lt;a target="_blank" href="http://www.crazytazo.com/entry/h2"&gt;H2&lt;/a&gt;와 터치 그리고 러프이다.&lt;br /&gt;&lt;br /&gt;나는 H2를 가장 재미있게 봤지만, 제일 좋아하는 캐릭터는 러프의 여주인공인 니노미야 아미이다.&lt;br /&gt;&lt;br /&gt;아미는 내 이상형이기도 한데, 모든 남자들이 빠져버릴 수 밖에 없는 그런 스타일이다.&lt;br /&gt;&lt;br /&gt;스포츠 만화라고 작품성 없는 그저 그런 만화로 생각해 버릴 수도 있겠지만, 아다치미츠루의 만화들은 잘 만들어진 드라마를 보는 것 같은 감동과 설레임을 가져다준다.&lt;br /&gt;&lt;br /&gt;스포츠(수영)를 양념으로하고 주된 내용은 남녀간의 사랑인데, 50살이 넘은 노총각 영감이 그려냈다고는 믿어지지 않을 정도로 풋사랑의 연애감정을 아주 섬세하게 표현하고있다.&lt;br /&gt;&lt;br /&gt;러프는 '거칠은', '잘 다듬어지지 않은' 이라는 뜻이다.&lt;br /&gt;주인공인 케이스케의 수영이나 그들의 다듬어지지 않은 풋사랑을 의미하는 것이다.(그당시 아다치미츠루의 다듬어지지 않은 스케치도 포함될지 모르겠다. 크크크)&lt;br /&gt;&lt;br /&gt;러프 뿐만이 아니라 H2나 다른 많은 작품들이 드라마로도 쏟아져 나왔는데, 왠지 캐릭터에 대한 환상이 깨져버릴 것만 같아서 보지 않았다.&lt;br /&gt;&lt;br /&gt;어떤 사람들은 이 만화의 결말이 시시하다고 하지만, 나는 러프의 결말이야말로 아다치 미츠루의 작품 들 중 가장 멋진 엔딩이라고 생각한다.&lt;br /&gt;&lt;br /&gt;아아 들리나요? 당신을 좋아합니다. 응답하라 오바.&lt;br /&gt;&lt;div style="width: 100%;border:0; text-align: center; padding-top: 15px; padding-bottom: 5px;"&gt;&lt;embed src="http://api.v.daum.net/static/recombox1.swf?nid=3520812" quality="high" bgcolor="#ffffff" width="400" height="80" type="application/x-shockwave-flash"&gt;&lt;/embed&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/vNcEbLDk5ppbm6paducG9xnKH_s/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/vNcEbLDk5ppbm6paducG9xnKH_s/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/vNcEbLDk5ppbm6paducG9xnKH_s/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/vNcEbLDk5ppbm6paducG9xnKH_s/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/crazytazo/~4/7IJ3OPY9kTY" height="1" width="1"/&gt;</description>
      <category>기타 책</category>
      <category>Rough</category>
      <category>러프</category>
      <category>아다치미츠루</category>
      <author>김재호</author>
      <guid isPermaLink="false">http://www.crazytazo.com/93</guid>
      <comments>http://www.crazytazo.com/entry/rough#entry93Comment</comments>
      <pubDate>Fri, 26 Jun 2009 17:52:25 +0900</pubDate>
    <feedburner:origLink>http://www.crazytazo.com/93</feedburner:origLink></item>
    <item>
      <title>특이점이 온다 -레이 커즈와일</title>
      <link>http://feedproxy.google.com/~r/crazytazo/~3/WBzLp6wYkwA/91</link>
      <description>&lt;div class="ttbReview"&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://www.aladdin.co.kr/shop/wproduct.aspx?ISBN=8934924063&amp;amp;ttbkey=ttbcrazytazo1459001&amp;amp;COPYPaper=1"&gt;&lt;img src="http://image.aladdin.co.kr/cover/cover/8934924063_1.jpg" alt="" border="0"&gt;&lt;/a&gt;&lt;/td&gt;&lt;td style="vertical-align: top;" align="left"&gt;&lt;a href="http://www.aladdin.co.kr/shop/wproduct.aspx?ISBN=8934924063&amp;amp;ttbkey=ttbcrazytazo1459001&amp;amp;COPYPaper=1" class="aladdin_title"&gt;특이점이 온다&lt;/a&gt; - &lt;img src="http://image.aladdin.co.kr/img/common/star_s8.gif" alt="8점" border="0"&gt;&lt;br /&gt;레이 커즈와일 지음, 김명남.장시형 옮김, 진대제 감수/김영사&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;br /&gt;회사에 과학을 아주 좋아하는 사람에게서 이 책의 이야기를 처음 들었다.&lt;br /&gt;앞으로 변할 미래 세계의 모습을 담은 책인데, 그리 멀지 않은 미래임에도 불구하고 엄청난 변화를 예언하고 있어서 나는 사이비같은 이야기라 생각하고 한귀로 흘려들었다.&lt;br /&gt;&lt;br /&gt;그러던 어느날 진대제의 &lt;a target="_blank" href="http://www.crazytazo.com/entry/seduced-by-passion"&gt;열정을 경영하라&lt;/a&gt;라는 책을 아주 재미있게 읽고는, 그가 쓴 다른 책이 없을까 하고 찾아봤는데 이 책이 떡하니 나오는 것이 아니겠는가.(진대제는 감수만했다.)&lt;br /&gt;&lt;br /&gt;책의 부제처럼 특이점이란 기술이 인간을 초월하는 순간이다.&lt;br /&gt;특이점이 오게되면 기술 발전의 속도가 기하급수적으로(우리가 감히 상상도 할 수 없을 만큼) 빨라지게 되고 지금과는 전혀 다른 세상으로 변하게 되는데, 이 책에서 저자는 그 시기를(컴퓨터가 &lt;a target="_blank" href="http://en.wikipedia.org/wiki/Turing_test"&gt;튜링테스트&lt;/a&gt;를 통과하게되는) 2020년대 중반 내지 후반일 것이라고 &lt;a target="_blank" href="http://en.wikipedia.org/wiki/The_Singularity_is_Near"&gt;예측하고 있다.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;특이점이 오게되면, 컴퓨터가 인간보다 똑똑해지고 그 컴퓨터들이 기술을 기하급수적인 속도로 발전시켜서 우리가 상상하던 모든 것들과 상상하지 못했던 일들 조차 이루어 질 것이다.&lt;br /&gt;&lt;br /&gt;물론 당연히 여기에는 많은 의심이 있을 수밖에 없다. 기술 발전 속도가 현재도 빠르다고는 하지만, 90년대 초반 우리들이 어렸을 적에 머리속에 그려왔던 2010년의 모습은 자동차가 스스로 운전하고 심지어는 하늘을 날라 다니는 수준이었다. 하지만 지금 2010년의 도로를 살펴보면 조금 더 고급 자동차들이 달리는 것 말고 큰 변화는 없다.&lt;br /&gt;전철역에서 노란 종이표를 집어 넣고 다시 빼가는 90년대 사람들의 행동은 지금까지도 이어져 오고 있다.&lt;br /&gt;&lt;br /&gt;그런데도 불구하고 앞으로 20년이 지나면, 컴퓨터가 튜링테스트를 통과하게 된다니(너무 똑똑해서 사람인지 컴퓨터인지 구별조차 할 수 없게되는) 많은 사람들이 -전문가들 조차도 의심하고 돌을 던질만 하다.&lt;br /&gt;&lt;br /&gt;하지만 지은이는 선형적으로 계산하면 안되고, 지수적으로 계산해야 한다고 입이 닳도록 설명하는데(아래 그림 참조) 이 책에서 보여주는 &lt;a target="_blank" href="http://en.wikipedia.org/wiki/Ray_Kurzweil"&gt;지은이&lt;/a&gt;의 엄청난 지식이 뒷받침된 견해들과 함께 읽어나가다보면, 엇 정말 그렇게 되는것 아냐? 하는 생각이 드는 것도 사실이다.&lt;br /&gt;&lt;br /&gt;&lt;div class="imageblock center" style="text-align: center; clear: both;"&gt;&lt;a href="http://singularity.com/charts/page70.html"&gt;&lt;img src="http://fs.textcube.com/blog/0/656/attach/XbxJWI0n9r.png" style="width:500px;height:420px;" alt="수확 가속의 법칙" /&gt;&lt;/a&gt;&lt;p class="cap1"&gt;수확 가속의 법칙&lt;/p&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;빌게이츠같은 최고 수준의 미래 예언가들조차 지은이를 찾아가서 의견을 구하는 모습들을 보면 우리는 이 사람의 말들을 그냥 한귀로 흘려버리는 것이 너무 어리석은 행동은 아닐까 라는 생각도 한 번쯤 해볼만하다.&lt;br /&gt;&lt;br /&gt;이런 특이점이 오기 위해서는 컴퓨터 하드웨어와 인공지능 분야뿐만이 아니라, 나노공학이나 유전공학 등 많은 과학 분야의 기술이 함께 발전해야 하는데, 그 중에서 컴퓨터과학 분야가 중요한 위치를 차지하고 있다는 것은 우리들에게 있어 굉장히 고무적인 일이다.&lt;br /&gt;&lt;br /&gt;나는 특히 사람의 뇌를 역공학하는 부분이 아주 재밌었는데 지구상에서 가장 훌륭한 발명품이라고 여겨지던 뇌가, 병렬처리 능력을 빼고는 컴퓨터보다 나은 것이 별로 없다는 사실은 충격적이었다.&lt;br /&gt;뇌에 대한 분석이 완료되면 컴퓨터가 서로간에 데이터를 복사하듯이 우리 뇌에 들어있는 지식들도 다른 사람에게 복사될 수 있을 것이다.&lt;br /&gt;&lt;br /&gt;지은이는 이런 특이점이 오기를 갈망하며, 하루에 영양제 200알씩을 먹어가면서 담당의사까지 두고 건강을 관리하고 있는데, 나는 그런 현실이 별로 기대되지 않아서 그렇게까지 할 필요가 있을까 하는 생각이 든다.&lt;br /&gt;&lt;br /&gt;어렸을 적 놀이터의 흙냄새와 잔디밭의 풀냄새는 나에게 아주 좋은 추억으로 남아있다.&lt;br /&gt;나는 30살이 가까워진 지금도 종종 집근처에 있는 놀이터와 공원에 가서 옛날처럼 캐치볼을 하며 놀고는 하는데, 앞으로 우리의 자식들이 컴퓨터의 가상현실 속에서 스포츠나 연애같은 모든 놀이들을 해결할 것을 상상하면 끔찍하다.&lt;br /&gt;&lt;br /&gt;&lt;div style="width: 100%;border:0; text-align: center; padding-top: 15px; padding-bottom: 5px;"&gt;&lt;embed src="http://api.v.daum.net/static/recombox1.swf?nid=3470502" quality="high" bgcolor="#ffffff" width="400" height="80" type="application/x-shockwave-flash"&gt;&lt;/embed&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/t1lhR9E0newxDqGvVJZze2lGeSE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/t1lhR9E0newxDqGvVJZze2lGeSE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/t1lhR9E0newxDqGvVJZze2lGeSE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/t1lhR9E0newxDqGvVJZze2lGeSE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/crazytazo/~4/WBzLp6wYkwA" height="1" width="1"/&gt;</description>
      <category>가볍게 읽기 좋은 책(컴퓨터)</category>
      <category>The Singularity is Near</category>
      <category>나노기술</category>
      <category>레이 커즈와일</category>
      <category>인공지능</category>
      <category>특이점</category>
      <author>김재호</author>
      <guid isPermaLink="false">http://www.crazytazo.com/91</guid>
      <comments>http://www.crazytazo.com/entry/the-singularity-is-near#entry91Comment</comments>
      <pubDate>Sun, 21 Jun 2009 21:25:56 +0900</pubDate>
    <feedburner:origLink>http://www.crazytazo.com/91</feedburner:origLink></item>
    <item>
      <title>SwingX 1.0 has been released.</title>
      <link>http://feedproxy.google.com/~r/crazytazo/~3/sGpJKe692h4/92</link>
      <description>&lt;a target="_blank" href="http://swinglabs.org/"&gt;&lt;span style="text-decoration: underline;"&gt;SwingX &lt;/span&gt;&lt;/a&gt;라는 오픈소스 프로젝트가 있는데, 꽤 오랫동안 0.9대 버전으로 개발되어 오다가 이번에 1.0 버전이 릴리즈되었다.&lt;br /&gt;&lt;br /&gt;SwingX는 java의 기본 swing을 랩해서 조금 더 기능이 풍부한 UI 구현들을 제공하는 프로젝트이다.&lt;br /&gt;java로 데스크탑 애플리케이션을 만드는 경우는 그렇게 많지 않지만, 만약 그런 일을 접하게 되면&lt;br /&gt;기본 swing으로 뭔가 부족하다 싶을 때 swingx에 혹시 원하는 기능이 있는지 찾아보고 그런 기능이 있다면 직접 구현하는 수고를 덜 수 있다.&lt;br /&gt;&lt;br /&gt;JRE 1.6.10부터 제공되는 &lt;a target="_blank" href="http://java.sun.com/developer/technicalArticles/javase/java6u10/"&gt;Nimbus 룩앤필&lt;/a&gt;(개인적으로는 스윙에서 처음으로 그나마 봐줄만한) 역시 이 swingx 프로젝트에서 시작해서 JRE에 통합되었다.&lt;br /&gt;&lt;br /&gt;&lt;div class="imageblock center" style="text-align: center; clear: both;"&gt;&lt;img src="http://fs.textcube.com/blog/0/656/attach/XG9SXFkHQ0.png" style="width:500px;height:341px;" alt="" /&gt;&lt;/div&gt;&lt;br /&gt;이미 기존에 만들어둔 GUI애플리케이션이 있다면 룩앤필을 설정하는 코드 몇 줄만 추가함으로써 별 다른 수고 없이 더 보기좋은 UI로 탈바꿈 시킬 수 있다.&lt;br /&gt;&lt;br /&gt;MFC로 GUI 프로그래밍을 하게되면 객체에 변경을 가하기 위해 주로 상속을 하거나 서브클래싱을 하게되는데 swing에서는 인터페이스를 구현하는 방법이 많이 사용된다.&lt;br /&gt;&lt;br /&gt;C++ 프로그래밍을 하게 되면 COM같은 특수한 분야를 다루지 않는 이상 인터페이스를 구현하는 일이 그다지 많지 않지만, 자바에서는 곳곳에서 쉽게 찾아볼 수 있다.&lt;br /&gt;&lt;br /&gt;인터페이스를 설계 및 구현하고 또 변경하고 싶은 기능들만 오버라이딩하여 잘 동작하게 될 때의 기쁨은 어쩌면 객체 지향 프로그래밍의 가장 큰 즐거움 중에 하나일 것이다.&lt;br /&gt;나는 C++을 하는 동안 그런 느낌을 한 번도 느껴보지 못했는데, 자바로 프로그래밍을 하면서 많은 것을 배우고 재미를 느끼는 중이다.&lt;br /&gt;&lt;br /&gt;인터페이스가 뭔지 혹은 가상함수가 뭔지에 대한 내용은 어려운 내용이 아니라서 쉽게 배울 수 있지만&lt;br /&gt;인터페이스를 언제 사용해야 할지, 왜 사용해야 하는지에 대한 깨달음은 실제로 많이 사용해봐야만 얻을 수 있는 것 같다.&lt;br /&gt;&lt;br /&gt;그런 면에서 객체 지향 프로그래밍을 배우기에는 확실히 C++보다는 자바가 좋은 선택이다.&lt;br /&gt;&lt;div style="width: 100%;border:0; text-align: center; padding-top: 15px; padding-bottom: 5px;"&gt;&lt;embed src="http://api.v.daum.net/static/recombox1.swf?nid=3464260" quality="high" bgcolor="#ffffff" width="400" height="80" type="application/x-shockwave-flash"&gt;&lt;/embed&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/TlqM7ts6TIAOLrkxxotgs46XzNA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/TlqM7ts6TIAOLrkxxotgs46XzNA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/TlqM7ts6TIAOLrkxxotgs46XzNA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/TlqM7ts6TIAOLrkxxotgs46XzNA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/crazytazo/~4/sGpJKe692h4" height="1" width="1"/&gt;</description>
      <category>Programming</category>
      <category>GUI</category>
      <category>java</category>
      <category>Swing</category>
      <category>swingx</category>
      <category>오픈소스</category>
      <author>김재호</author>
      <guid isPermaLink="false">http://www.crazytazo.com/92</guid>
      <comments>http://www.crazytazo.com/entry/SwingX-10-has-been-released#entry92Comment</comments>
      <pubDate>Fri, 19 Jun 2009 17:40:15 +0900</pubDate>
    <feedburner:origLink>http://www.crazytazo.com/92</feedburner:origLink></item>
    <item>
      <title>열정을 경영하라 -진대제</title>
      <link>http://feedproxy.google.com/~r/crazytazo/~3/sQz9t4jKzpA/90</link>
      <description>&lt;div class="ttbReview"&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://www.aladdin.co.kr/shop/wproduct.aspx?ISBN=8934924543&amp;amp;ttbkey=ttbcrazytazo1459001&amp;amp;COPYPaper=1"&gt;&lt;img src="http://image.aladdin.co.kr/cover/cover/8934924543_1.jpg" alt="" border="0"&gt;&lt;/a&gt;&lt;/td&gt;&lt;td style="vertical-align: top;" align="left"&gt;&lt;a href="http://www.aladdin.co.kr/shop/wproduct.aspx?ISBN=8934924543&amp;amp;ttbkey=ttbcrazytazo1459001&amp;amp;COPYPaper=1" class="aladdin_title"&gt;열정을 경영하라&lt;/a&gt; - &lt;img src="http://image.aladdin.co.kr/img/common/star_s10.gif" alt="10점" border="0"&gt;&lt;br /&gt;진대제 지음/김영사&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;br /&gt;이 책도 역시 &lt;a target="_blank" href="http://www.crazytazo.com/entry/booksmba"&gt;BooksMBA 프로그램&lt;/a&gt;을 통해서 읽어 보게 되었는데, 읽는 내내 너무 즐거웠다. 수재들의 이야기는 언제나 재밌다.&lt;br /&gt;자서전이지만 컴퓨터 엔지니어의 이야기를 담고 있으므로 &lt;a target="_blank" href="http://www.crazytazo.com/category/%EA%B0%80%EB%B3%8D%EA%B2%8C%20%EC%9D%BD%EA%B8%B0%20%EC%A2%8B%EC%9D%80%20%EC%B1%85%28%EC%BB%B4%ED%93%A8%ED%84%B0%29"&gt;가볍게 읽을만한 컴퓨터책 카테고리&lt;/a&gt;에 넣어보았다.&lt;br /&gt;&lt;br /&gt;이 책의 구성은 그가 삼성전자에서 일하던 당시와, 미국에서 유학시절 공부하던 날들, 정통부 장관을 하면서 있던 이야기들로 되어 있는데 모든 이야기가 정말 재미있지만 나는 특히 삼성전자에서 일할 때의 이야기들이 좋았다.&lt;br /&gt;&lt;br /&gt;열정이 있는 사람은 아름답다.&lt;br /&gt;이런 사람들을 볼 때마다 더욱 열심히 살아야겠다고 다짐하곤 한다.&lt;br /&gt;&lt;br /&gt;책의 마지막에는 그가 우리들에게 해주는 조언들이 있다.&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(187, 187, 187); padding: 10px; background-color: rgb(221, 221, 221);"&gt;언제 어디서나 꿈과 목표를 높이 설정하고 끊임없이 열정적으로 최선을 다해 그 목표에 도전하는 것, 그리고 나중의 결과가 어떻든 간에 겸허히 감사하는 마음으로 받아들이는 것.&lt;/div&gt;&lt;br /&gt;바로 그가 말하는 성공의 비결이다.&lt;br /&gt;&lt;br /&gt;하루하루 행복함을 느끼면서 열심히 살아가야겠다.&lt;br /&gt;&lt;br /&gt;&lt;div style="width: 100%;border:0; text-align: center; padding-top: 15px; padding-bottom: 5px;"&gt;&lt;embed src="http://api.v.daum.net/static/recombox1.swf?nid=3178452" quality="high" bgcolor="#ffffff" width="400" height="80" type="application/x-shockwave-flash"&gt;&lt;/embed&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/b1yM7VvOKi_k90AbA-cY4_5kacQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/b1yM7VvOKi_k90AbA-cY4_5kacQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/b1yM7VvOKi_k90AbA-cY4_5kacQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/b1yM7VvOKi_k90AbA-cY4_5kacQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/crazytazo/~4/sQz9t4jKzpA" height="1" width="1"/&gt;</description>
      <category>가볍게 읽기 좋은 책(컴퓨터)</category>
      <category>열정을 경영하라</category>
      <category>자서전</category>
      <category>진대제</category>
      <author>김재호</author>
      <guid isPermaLink="false">http://www.crazytazo.com/90</guid>
      <comments>http://www.crazytazo.com/entry/seduced-by-passion#entry90Comment</comments>
      <pubDate>Sat, 16 May 2009 17:29:04 +0900</pubDate>
    <feedburner:origLink>http://www.crazytazo.com/90</feedburner:origLink></item>
    <item>
      <title>프로그래밍 얼랭 -조 암스트롱</title>
      <link>http://feedproxy.google.com/~r/crazytazo/~3/kA7wzNncZoQ/89</link>
      <description>&lt;div class="ttbReview"&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://www.aladdin.co.kr/shop/wproduct.aspx?ISBN=8991268404&amp;amp;ttbkey=ttbcrazytazo1459001&amp;amp;COPYPaper=1"&gt;&lt;img src="http://image.aladdin.co.kr/cover/cover/8991268404_1.jpg" alt="" border="0"&gt;&lt;/a&gt;&lt;/td&gt;&lt;td style="vertical-align: top;" align="left"&gt;&lt;a href="http://www.aladdin.co.kr/shop/wproduct.aspx?ISBN=8991268404&amp;amp;ttbkey=ttbcrazytazo1459001&amp;amp;COPYPaper=1" class="aladdin_title"&gt;프로그래밍 얼랭&lt;/a&gt; - &lt;img src="http://image.aladdin.co.kr/img/common/star_s8.gif" alt="8점" border="0"&gt;&lt;br /&gt;조 암스트롱 지음, 김석준 옮김/인사이트&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;요즈음 회사에서 동료들과 함께 일주일에 한번씩 모여 &lt;a target="_blank" href="http://erlang.org/"&gt;얼랭&lt;/a&gt;을 공부하고 있다.&lt;br /&gt;&lt;br /&gt;나는 언젠가는 꼭 &lt;a target="_blank" href="http://en.wikipedia.org/wiki/Category:Functional_languages"&gt;함수형 언어&lt;/a&gt;를 한 번 공부해보고 싶었는데, 그 시간이 생각보다 일찍 찾아왔다.&lt;br /&gt;&lt;br /&gt;처음 얼마간 이 책을 공부하면서는 정말 미칠 것만 같았다.&lt;br /&gt;배열도 없고 자료구조에 랜덤액세스로 접근할 수도 없으며 변수에 값을 재할당 할수조차 없으니 불편함이 이만저만이 아니다.&lt;br /&gt;이 모든 것을 재귀적으로 생각하고 표현해야 하는데(간단한 루프조차도), 그것은 고1때 점화식을 공부하면서 수학을 포기해버린 나에게는 참 고통스러운 일이었다.&lt;br /&gt;&lt;br /&gt;그럼에도 불구하고 많은 훌륭한 해커들은 &lt;a target="_blank" href="http://www.catb.org/%7Eesr/faqs/hacker-howto.html"&gt;LISP 같은 함수형 언어를 공부하는 것이 좀 더 나은 프로그래머가 되기 위해 많은 도움을 줄 것이라고 얘기하는데&lt;/a&gt;(비록 실무에서 그런 언어를 사용하지 않을지라도) 나는 얼랭을 공부하면서 그것이 어떤 뜻인지 느껴보고 싶다.&lt;br /&gt;&lt;br /&gt;우리들은 ACM 문제들을 주 마다 하나씩 풀어보고 있는데, 모임이 있는 목요일까지는 아주 고통스러운 나날들이다. 나는 마치 예전 처음 C언어를 공부할 때 &lt;a target="_blank" href="http://en.wikipedia.org/wiki/Linked_list"&gt;Linked List&lt;/a&gt;를 작성하면서 코드를 썼다 지웠다 쩔쩔매던 그 시절로 돌아간 것만 같다. 구조체 안에 자신을 가르키는 포인터가 있다는 것은 나를 아주 미치게 만들었었다. 정말 그 당시와 비슷한 기분이다.&lt;br /&gt;&lt;br /&gt;다음번 과제는 '&lt;a target="_blank" href="http://icpcres.ecs.baylor.edu/onlinejudge/external/1/107.html"&gt;The Cat in the Hat&lt;/a&gt;' 이라는 문제인데, &lt;a target="_blank" href="http://www.wretch.cc/blog/celiaailec/15140793"&gt;C로 작성된 코드가 인터넷&lt;/a&gt;에 있어서 얼랭으로 다시 작성해봤다. 보고 그대로 옮기는 것 조차 쉽지 않다.&lt;br /&gt;아직 함수형 프로그래밍에 익숙하지 않아 몇몇 부분은 마치 C로 작성한 것 같은 느낌을 준다.&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(178, 232, 237); padding: 10px; background-color: rgb(225, 253, 255);"&gt;&lt;br /&gt;&lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8"&gt;&lt;meta name="ProgId" content="Word.Document"&gt;&lt;meta name="Generator" content="Microsoft Word 12"&gt;&lt;meta name="Originator" content="Microsoft Word 12"&gt;&lt;link rel="File-List" href="file:///C:%5CUsers%5Cjhkim%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml"&gt;&lt;link rel="themeData" href="file:///C:%5CUsers%5Cjhkim%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx"&gt;&lt;link rel="colorSchemeMapping" href="file:///C:%5CUsers%5Cjhkim%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml"&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;w:WordDocument&gt;
  &lt;w:View&gt;Normal&lt;/w:View&gt;
  &lt;w:Zoom&gt;0&lt;/w:Zoom&gt;
  &lt;w:TrackMoves/&gt;
  &lt;w:TrackFormatting/&gt;
  &lt;w:DisplayHorizontalDrawingGridEvery&gt;0&lt;/w:DisplayHorizontalDrawingGridEvery&gt;
  &lt;w:DisplayVerticalDrawingGridEvery&gt;2&lt;/w:DisplayVerticalDrawingGridEvery&gt;
  &lt;w:ValidateAgainstSchemas/&gt;
  &lt;w:SaveIfXMLInvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;
  &lt;w:IgnoreMixedContent&gt;false&lt;/w:IgnoreMixedContent&gt;
  &lt;w:AlwaysShowPlaceholderText&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;
  &lt;w:DoNotPromoteQF/&gt;
  &lt;w:LidThemeOther&gt;EN-US&lt;/w:LidThemeOther&gt;
  &lt;w:LidThemeAsian&gt;KO&lt;/w:LidThemeAsian&gt;
  &lt;w:LidThemeComplexScript&gt;X-NONE&lt;/w:LidThemeComplexScript&gt;
  &lt;w:Compatibility&gt;
   &lt;w:SpaceForUL/&gt;
   &lt;w:BalanceSingleByteDoubleByteWidth/&gt;
   &lt;w:DoNotLeaveBackslashAlone/&gt;
   &lt;w:ULTrailSpace/&gt;
   &lt;w:DoNotExpandShiftReturn/&gt;
   &lt;w:AdjustLineHeightInTable/&gt;
   &lt;w:BreakWrappedTables/&gt;
   &lt;w:SnapToGridInCell/&gt;
   &lt;w:WrapTextWithPunct/&gt;
   &lt;w:UseAsianBreakRules/&gt;
   &lt;w:DontGrowAutofit/&gt;
   &lt;w:SplitPgBreakAndParaMark/&gt;
   &lt;w:DontVertAlignCellWithSp/&gt;
   &lt;w:DontBreakConstrainedForcedTables/&gt;
   &lt;w:DontVertAlignInTxbx/&gt;
   &lt;w:Word11KerningPairs/&gt;
   &lt;w:CachedColBalance/&gt;
   &lt;w:UseFELayout/&gt;
  &lt;/w:Compatibility&gt;
  &lt;w:BrowserLevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt;
  &lt;m:mathPr&gt;
   &lt;m:mathFont m:val="Cambria Math"/&gt;
   &lt;m:brkBin m:val="before"/&gt;
   &lt;m:brkBinSub m:val="&amp;#45;-"/&gt;
   &lt;m:smallFrac m:val="off"/&gt;
   &lt;m:dispDef/&gt;
   &lt;m:lMargin m:val="0"/&gt;
   &lt;m:rMargin m:val="0"/&gt;
   &lt;m:defJc m:val="centerGroup"/&gt;
   &lt;m:wrapIndent m:val="1440"/&gt;
   &lt;m:intLim m:val="subSup"/&gt;
   &lt;m:naryLim m:val="undOvr"/&gt;
  &lt;/m:mathPr&gt;&lt;/w:WordDocument&gt;
&lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
  DefSemiHidden="true" DefQFormat="false" DefPriority="99"
  LatentStyleCount="267"&gt;
  &lt;w:LsdException Locked="false" Priority="0" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Normal"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="heading 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 7"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 8"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 9"/&gt;
  &lt;w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/&gt;
  &lt;w:LsdException Locked="false" Priority="10" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Title"/&gt;
  &lt;w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/&gt;
  &lt;w:LsdException Locked="false" Priority="11" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/&gt;
  &lt;w:LsdException Locked="false" Priority="22" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Strong"/&gt;
  &lt;w:LsdException Locked="false" Priority="20" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/&gt;
  &lt;w:LsdException Locked="false" Priority="59" SemiHidden="false"
   UnhideWhenUsed="false" Name="Table Grid"/&gt;
  &lt;w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/&gt;
  &lt;w:LsdException Locked="false" Priority="1" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/&gt;
  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading"/&gt;
  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List"/&gt;
  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid"/&gt;
  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List"/&gt;
  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading"/&gt;
  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List"/&gt;
  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid"/&gt;
  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/&gt;
  &lt;w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/&gt;
  &lt;w:LsdException Locked="false" Priority="34" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/&gt;
  &lt;w:LsdException Locked="false" Priority="29" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Quote"/&gt;
  &lt;w:LsdException Locked="false" Priority="30" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/&gt;
  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="19" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/&gt;
  &lt;w:LsdException Locked="false" Priority="21" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/&gt;
  &lt;w:LsdException Locked="false" Priority="31" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/&gt;
  &lt;w:LsdException Locked="false" Priority="32" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/&gt;
  &lt;w:LsdException Locked="false" Priority="33" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Book Title"/&gt;
  &lt;w:LsdException Locked="false" Priority="37" Name="Bibliography"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/&gt;
 &lt;/w:LatentStyles&gt;
&lt;/xml&gt;&lt;![endif]--&gt;&lt;style&gt;
&lt;!--
 /* Font Definitions */
 @font-face
	{font-family:굴림;
	panose-1:2 11 6 0 0 1 1 1 1 1;
	mso-font-alt:Gulim;
	mso-font-charset:129;
	mso-generic-font-family:modern;
	mso-font-pitch:variable;
	mso-font-signature:-1342176593 1775729915 48 0 524447 0;}
@font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;
	mso-font-charset:0;
	mso-generic-font-family:roman;
	mso-font-pitch:variable;
	mso-font-signature:-1610611985 1107304683 0 0 159 0;}
@font-face
	{font-family:"맑은 고딕";
	panose-1:2 11 5 3 2 0 0 2 0 4;
	mso-font-alt:돋움;
	mso-font-charset:129;
	mso-generic-font-family:modern;
	mso-font-pitch:variable;
	mso-font-signature:-1879047505 165117179 18 0 524289 0;}
@font-face
	{font-family:"\@맑은 고딕";
	panose-1:2 11 5 3 2 0 0 2 0 4;
	mso-font-charset:129;
	mso-generic-font-family:modern;
	mso-font-pitch:variable;
	mso-font-signature:-1879047505 165117179 18 0 524289 0;}
@font-face
	{font-family:"\@굴림";
	panose-1:2 11 6 0 0 1 1 1 1 1;
	mso-font-charset:129;
	mso-generic-font-family:modern;
	mso-font-pitch:variable;
	mso-font-signature:-1342176593 1775729915 48 0 524447 0;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
	{mso-style-unhide:no;
	mso-style-qformat:yes;
	mso-style-parent:"";
	margin:0cm;
	margin-bottom:.0001pt;
	text-align:justify;
	text-justify:inter-ideograph;
	mso-pagination:widow-orphan;
	text-autospace:none;
	word-break:break-hangul;
	font-size:10.0pt;
	font-family:"맑은 고딕";
	mso-bidi-font-family:굴림;}
.MsoChpDefault
	{mso-style-type:export-only;
	mso-default-props:yes;
	mso-bidi-font-size:10.0pt;
	mso-ascii-font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";
	mso-hansi-font-family:"Times New Roman";
	mso-font-kerning:0pt;}
 /* Page Definitions */
 @page
	{mso-page-border-surround-header:no;
	mso-page-border-surround-footer:no;}
@page Section1
	{size:612.0pt 792.0pt;
	margin:3.0cm 72.0pt 72.0pt 72.0pt;
	mso-header-margin:36.0pt;
	mso-footer-margin:36.0pt;
	mso-paper-source:0;}
div.Section1
	{page:Section1;}
--&gt;
&lt;/style&gt;&lt;!--[if gte mso 10]&gt;
&lt;style&gt;
 /* Style Definitions */
 table.MsoNormalTable
	{mso-style-name:"표준 표";
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-priority:99;
	mso-style-qformat:yes;
	mso-style-parent:"";
	mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
	mso-para-margin:0cm;
	mso-para-margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:10.0pt;
	mso-bidi-font-size:11.0pt;
	font-family:"맑은 고딕";
	mso-ascii-font-family:"맑은 고딕";
	mso-ascii-theme-font:minor-latin;
	mso-fareast-font-family:"맑은 고딕";
	mso-fareast-theme-font:minor-fareast;
	mso-hansi-font-family:"맑은 고딕";
	mso-hansi-theme-font:minor-latin;
	mso-bidi-font-family:"Times New Roman";
	mso-bidi-theme-font:minor-bidi;
	mso-font-kerning:1.0pt;}
&lt;/style&gt;
&lt;![endif]--&gt;

&lt;p class="MsoNormal" style="margin-bottom: 12pt;"&gt;&lt;span lang="EN-US"&gt;-module(cat).&lt;br /&gt;
-export([solve/2, pow/2, gcd/2, hcf/1, result/2, f/3, g/5]).&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 12pt;"&gt;&lt;span lang="EN-US"&gt;%greatest
common divisor&lt;br /&gt;
gcd(A, 0) -&amp;gt; A;&lt;br /&gt;
gcd(A, B) -&amp;gt; gcd(B, A rem B).&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom: 12pt;"&gt;&lt;span lang="EN-US"&gt;%power&lt;br /&gt;
pow(_X, 0) -&amp;gt; 1;&lt;br /&gt;
pow(X, Y) -&amp;gt; X * pow(X, Y-1).&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;%highest common factor&lt;br /&gt;
hcf( N ) -&amp;gt; hcf( N, 2, 0, [], [] ).&lt;br /&gt;
hcf( 1, I, P, FL, CL ) -&amp;gt; [ FL ++ [I], CL ++ [P] ];&lt;br /&gt;
hcf( N, I, P, FL, CL ) when ( N rem I ) =:= 0 -&amp;gt; hcf( N div I, I, P + 1, FL,
CL );&lt;br /&gt;
hcf( N, I, 0, FL, CL ) -&amp;gt; hcf( N, I + 1, 0, FL, CL );&lt;br /&gt;
hcf( N, I, P, FL, CL ) -&amp;gt; hcf( N, I + 1, 0, FL ++ [I], CL ++ [P] ).&lt;br /&gt;
&lt;br /&gt;
result(N, K) -&amp;gt; result(N, 0, K, 0, 0).&lt;br /&gt;
result(N, I, K, SUM_LAZYCAT, SUM_HEIGHT) when I &amp;lt; K -&amp;gt;&lt;br /&gt;
 &amp;nbsp; &amp;nbsp;result(N, I + 1, K, SUM_LAZYCAT + pow(N, I), SUM_HEIGHT + (
pow(N, I) * pow(N+1,K-I) ) );&lt;br /&gt;
result(N, _I, K, SUM_LAZYCAT, SUM_HEIGHT) -&amp;gt; [SUM_LAZYCAT, SUM_HEIGHT +
pow(N,K)].&lt;br /&gt;
&lt;br /&gt;
f(K, I, COUNTLIST) when I &amp;lt; length(COUNTLIST) -&amp;gt; &lt;br /&gt;
 &amp;nbsp; &amp;nbsp;A = gcd( K, lists:nth(I+1, COUNTLIST) ),&lt;br /&gt;
 &amp;nbsp; &amp;nbsp;f( A, I+1, COUNTLIST );&lt;br /&gt;
f(K, _I, _COUNTLIST) -&amp;gt; K.&lt;br /&gt;
&lt;br /&gt;
g(FN, CN, I, K, N) when I &amp;lt; length(CN) -&amp;gt; &lt;br /&gt;
 &amp;nbsp; &amp;nbsp;g( FN, CN, I+1, K, N * ( pow(lists:nth(I+1, FN),
lists:nth(I+1,CN) div K) ) );&lt;br /&gt;
g(_FN, _CN, _I, _K, N) -&amp;gt;&lt;br /&gt;
 &amp;nbsp; &amp;nbsp;N.&lt;br /&gt;
&lt;br /&gt;
one(L) -&amp;gt; one(L, 0, 0).&lt;br /&gt;
one(L, CNT, SUM) when (L rem 2) =:= 0 -&amp;gt; one( L div 2, CNT + 1, SUM + L );&lt;br /&gt;
one(L, CNT, SUM) -&amp;gt; [CNT, SUM + L]. &amp;nbsp; &amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
solve( L, N ) when (L =:= 0) and (N =:= 0) -&amp;gt; io:format("bye~n");&lt;br /&gt;
solve( L, N ) when (N =:= 1) -&amp;gt; one(L);&lt;br /&gt;
solve( L, N ) -&amp;gt;&lt;br /&gt;
 &amp;nbsp; &amp;nbsp;[_FL, CL] = hcf( L ),&lt;br /&gt;
 &amp;nbsp; &amp;nbsp;[FN, CN] = hcf( N ),&lt;br /&gt;
 &amp;nbsp; &amp;nbsp;io:format("~w~w~w~n", [CL, FN, CN]),&lt;br /&gt;
 &amp;nbsp; &amp;nbsp;K1 = lists:nth(1, CL),&lt;br /&gt;
 &amp;nbsp; &amp;nbsp;io:format("~w~n", [K1]),&lt;br /&gt;
 &amp;nbsp; &amp;nbsp;K2 = f( K1, 1, CL ),&lt;br /&gt;
 &amp;nbsp; &amp;nbsp;io:format("~w~n", [K2]),&lt;br /&gt;
 &amp;nbsp; &amp;nbsp;K3 = f( K2, 0, CN ),&lt;br /&gt;
 &amp;nbsp; &amp;nbsp;io:format("~w~n", [K3]),&lt;br /&gt;
 &amp;nbsp; &amp;nbsp;N1 = g( FN, CN, 0, K3, 1 ),&lt;br /&gt;
 &amp;nbsp; &amp;nbsp;io:format("~w~n", [N1]),&lt;br /&gt;
 &amp;nbsp; &amp;nbsp;result( N1, K3 ).&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;p class="MsoNormal"&gt;&lt;/p&gt;

&lt;br /&gt;이제 얼랭의 꽃이라고 할 수 있는 병렬 프로그래밍 부분을 보려고 하는데, 그 부분에서 많은 기법들을 얻을 수 있을 것 같아서 기대된다.&lt;br /&gt;&lt;br /&gt;이 책은 구성이 좀 특이하다.&lt;br /&gt;보통의 언어책은 변수, 제어, 루프 등이 책의 초반부에서 많은 장을 할애하는데 반해, 이 책에는 위 내용이 거의 없다. 얼랭의 특징이 그렇기 때문이다. 중요한 것은 오직 함수이다.&lt;br /&gt;&lt;br /&gt;나는 이 책을 공부하면서 문제를 더 작게 쪼개나가는 방법을 배우고, &lt;a target="_blank" href="http://en.wikipedia.org/wiki/Closure_%28computer_science%29"&gt;Closure&lt;/a&gt;와 같은 고차함수를 능숙하게 작성 할 수 있게 되는 것이 목표이다.&lt;br /&gt;&lt;br /&gt;하지만, 이렇게 공부하는 것은 재미있다만 만일 직장에서 프로젝트에 얼랭을 사용하라고 한다면 나는 정말이지 회사를 그만다니고 싶어질 것 같다. 하하하.&lt;br /&gt;&lt;br /&gt;&lt;div style="width: 100%;border:0; text-align: center; padding-top: 15px; padding-bottom: 5px;"&gt;&lt;embed src="http://api.v.daum.net/static/recombox1.swf?nid=3138438" quality="high" bgcolor="#ffffff" width="400" height="80" type="application/x-shockwave-flash"&gt;&lt;/embed&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/xDIcOfgVlnquGFTkeK6onAiOLcg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/xDIcOfgVlnquGFTkeK6onAiOLcg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/xDIcOfgVlnquGFTkeK6onAiOLcg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/xDIcOfgVlnquGFTkeK6onAiOLcg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/crazytazo/~4/kA7wzNncZoQ" height="1" width="1"/&gt;</description>
      <category>가볍게 읽기 좋은 책(컴퓨터)</category>
      <category>ACM</category>
      <category>Erlang</category>
      <category>programming erlang</category>
      <category>the cat in the hat</category>
      <category>얼랭</category>
      <author>김재호</author>
      <guid isPermaLink="false">http://www.crazytazo.com/89</guid>
      <comments>http://www.crazytazo.com/entry/programming-erlang#entry89Comment</comments>
      <pubDate>Mon, 11 May 2009 21:10:30 +0900</pubDate>
    <feedburner:origLink>http://www.crazytazo.com/89</feedburner:origLink></item>
    <item>
      <title>SK브로드밴드 인터넷 + SK텔레콤 이동전화 요금 할인</title>
      <link>http://feedproxy.google.com/~r/crazytazo/~3/Q5uJjCMzX1A/88</link>
      <description>&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;오늘은 문득 집전화를 인터넷전화로 바꾸면 어떨까 하는 생각이 들어 SK브로드밴드 홈페이지에 가서 이것저것 뒤져보았다.&lt;/p&gt;
&lt;p&gt;나는 인터넷을 SK브로드밴드 제품을 쓰고 있었으므로, 인터넷 전화도 함께 사용하면 얼마나 할인이 되나 알아보고 싶었다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;그런데 &lt;a href="http://cs.skbroadband.com/my/prize/discount_add.asp" target="_blank"&gt;SK텔레콤 이동전화 + 초고속인터넷&lt;/a&gt;도 결합상품 안에 포함되어있는 것을 보았다.&lt;br /&gt;예전에 하나로텔레콤의 인수 당시에 이런 
상품이 생긴다는 것을 알고는 있었는데, 나는 너무 순진하게 자동으로 알아서 다 계산해주겠지 하고 생각하고 있었다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;실제로 인터넷요금과 
휴대폰요금이 조금씩 할인되어져서 청구되고 있었기 때문에(이제야 알았지만 그것은 다른이유에서였다) 나는 별로 신경을 쓰지 않고 있었는데, 오늘은 불길한 예감이 들어 &lt;a href="http://tworld.co.kr" target="_blank"&gt;tworld&lt;/a&gt;에 가서 이것저것 찾아보았는데, 다행히도 홈페이지에서 확인이 가능했다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;역시 우려했던대로 그동안 나는 결합상품의 혜택을 받지 못하고 있었다.&lt;br /&gt;TWorld 홈페이지에 &lt;a href="http://www.tworld.co.kr/normal.do?serviceId=SDUMMY0001&amp;amp;viewId=V_COMB1101#" target="_blank"&gt;신청&lt;/a&gt;할 수 있는 곳이 있어서 나는 바로 신청을 했다.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;나처럼 SK브로드밴드의 인터넷과 휴대폰을 쓰면서도 몰라서 할인을 못받고 있는 사람들이 얼마나 많을까 싶은 생각이 들었다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="imageblock center" style="text-align: center; clear: both;"&gt;&lt;img src="http://fs.textcube.com/blog/0/656/attach/XAqxodTbRO.png" style="width:500px;height:324px;" alt="" /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;나는 가족들이 전부 SK 텔레콤 휴대폰을 사용하고 있고 온가족 할인요금에 가입되어 있기 때문에 결합상품도 family형으로 가입되었는데, 조금만 있으면 총 합산년수가 10년을 넘어서 20% 할인을 받을 수 있다.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;이것은 생각보다 작은 돈이 아니다. 1년 넘게 저런 곳에 돈을 흘리고 있었다니 참 한심하다.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;SK 말고 다른 통신업체들도 다 결합상품이 있는 것으로 알고 있는데, 휴대폰과 인터넷을 같은 곳에서 쓰고 있다면 한번쯤 확인해보는 것이 좋을 것이다.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="width: 100%;border:0; text-align: center; padding-top: 15px; padding-bottom: 5px;"&gt;&lt;embed src="http://api.v.daum.net/static/recombox1.swf?nid=3094315" quality="high" bgcolor="#ffffff" width="400" height="80" type="application/x-shockwave-flash"&gt;&lt;/embed&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/K1dLMOtcSG6XZKoDGfsxOWXtekE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/K1dLMOtcSG6XZKoDGfsxOWXtekE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/K1dLMOtcSG6XZKoDGfsxOWXtekE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/K1dLMOtcSG6XZKoDGfsxOWXtekE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/crazytazo/~4/Q5uJjCMzX1A" height="1" width="1"/&gt;</description>
      <category>디지털보단 아날로그</category>
      <category>SK브로드밴드</category>
      <category>SK텔레콤</category>
      <category>결합상품</category>
      <author>김재호</author>
      <guid isPermaLink="false">http://www.crazytazo.com/88</guid>
      <comments>http://www.crazytazo.com/entry/SK-compose-goods#entry88Comment</comments>
      <pubDate>Tue, 05 May 2009 23:48:48 +0900</pubDate>
    <feedburner:origLink>http://www.crazytazo.com/88</feedburner:origLink></item>
    <item>
      <title>크리스탈 리포트 2008 -백영일 저</title>
      <link>http://feedproxy.google.com/~r/crazytazo/~3/1wWpzYzJA7k/87</link>
      <description>&lt;div class="ttbReview"&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://www.aladdin.co.kr/shop/wproduct.aspx?ISBN=8980782225&amp;amp;ttbkey=ttbcrazytazo1459001&amp;amp;COPYPaper=1"&gt;&lt;img src="http://image.aladdin.co.kr/cover/cover/8980782225_1.jpg" alt="" border="0"&gt;&lt;/a&gt;&lt;/td&gt;&lt;td style="vertical-align: top;" align="left"&gt;&lt;a href="http://www.aladdin.co.kr/shop/wproduct.aspx?ISBN=8980782225&amp;amp;ttbkey=ttbcrazytazo1459001&amp;amp;COPYPaper=1" class="aladdin_title"&gt;크리스탈 리포트 2008&lt;/a&gt; - &lt;img src="http://image.aladdin.co.kr/img/common/star_s6.gif" alt="6점" border="0"&gt;&lt;br /&gt;백영일 지음/가메출판사&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;Visual Studio를 설치 할 때 항상 Visual Basic Cristal Reports 라는 프로그램이 눈에 띄었었는데, 뭐하는 프로그램인지를 몰라서 나는 매번 설치에서 제외하곤 했었다.&lt;br /&gt;&lt;br /&gt;얼마전에 새 책 목록을 받아 보다가 낯익은 이름이 있길래 드디어 이것이 뭐하는 프로그램인지 알아볼 기회다하고는 책을 구해보게 되었다.&lt;br /&gt;&lt;br /&gt;나는 크리스탈 레포트가 MS에서 만든 프로그램인 줄로만 생각했었는데, 그냥 번들로 함께 딸려오는 제품이었다. 비주얼 스튜디오 뿐만 아니라 이클립스나 볼랜드의 제품에서도 역시 사용 할 수 있다.&lt;br /&gt;&lt;br /&gt;크리스탈 레포트가 뭐하는 프로그램인지 간단히 설명하면, 임의의 데이터 베이스에 접속해서 데이터를 가져와서 가공하고 보기 좋게 보고서를 만들어 주는 프로그램이다. C#이나 VB.NET 그리고 Visual Basic으로 애플리케이션의 이벤트 처리를 할 수 있는 프로그래밍 인터페이스를 제공해서 조금 더 다이나믹하고 유연한 보고서를 만들 수 있다. &lt;br /&gt;&lt;br /&gt;회사에서 서비스를 개발하다 보면 기획자들에게 통계 데이터를 보내줘야 할 일이 종종 있는데, 나는 데이터베이스에 대충 쿼리에서 결과를 엑셀 프로그램에 툭 붙여넣어 보내주고는 한다.&lt;br /&gt;나는 국민학교 때부터 그림에는 영 소질이 없었는데, 지금도 프리젠테이션에 관련된 애플리케이션은 다 싫다.(Visio나 파워포인트, 엑셀, 워드 등) 이런 프로그램을 사용할 때 나는 아주 저질적인 결과물을 내놓곤 하는데, 다행히 날 컴맹으로 당연시 하는 우리 여기획자들 덕분에 맘 편하게 보고서를 작성할 수 있다.&lt;br /&gt;하지만 입장을 바꿔서, 내가 상사라면 나처럼 보고서를 작성하는 녀석에게는 '저 새끼가 분명 일할 마음이 없는거야...' 라고 생각이 들지도 모르겠다.&lt;br /&gt;&lt;br /&gt;어쨌거나 요즈음에는 그런 면에서도 조금 노력이 필요하다는 생각이 들어서 나는 이 책이 너무 반가웠다. 나도 멋진 보고서를 만들 수 있을테니깐.&lt;br /&gt;&lt;br /&gt;몇 일전에 컴퓨터를 포맷할 일이 있어서 VS2008를 새로 설치하면서는 이 크리스탈 레포트를 포함시켜서 설치를 했다.&lt;br /&gt;
그리고 이 책과 함께 몇 가지 실습을 따라해보았는데, 프로젝트를 만들자마자 프로그램이 뻗고, 수도 없이 나오는 위자드에서 finish 버튼만 누르면 비주얼 스튜디오가 뻗어버려서 아주 짜증이 났다. 최신 버전인데도 이런데 VS2005 였을 때나 다른 제품은 아마도 더했을 것이다.&lt;br /&gt;&lt;br /&gt;어쨌거나 내가 서비스하고 있는 데이터베이스에 연결해서 간단히만 이것 저것 만져보았다.&lt;br /&gt;애플리케이션을 EXE 형태로 만들 수도 있고, 웹 애플리케이션으로 만드는 것도 가능하다.&lt;br /&gt;우리는 지금 하고 있는 서비스를 관리하기 위한 애플리케이션을 ASP.NET으로 만들어서 사용하고 있는데, 크리스탈 레포트를 사용해서 만들 수도 있겠구나 생각이 들었다. 하지만 코드양은 조금 줄일 수 있을지 몰라도, ASP.NET으로 모든 것을 제어하는 것 보다는 훨씬 할 수 있는 것이 적을 것이다.&lt;br /&gt;데이터를 갱신하거나 삭제하는 작업보다는 SELECT 위주의 통계 애플리케이션이 이 프로그램에 더 적절하다.&lt;br /&gt;&lt;br /&gt;나는 크리스탈 레포트가 무엇인지 알아보기 위한 용도로 이 책을 읽어서 대충대충만 살펴봤는데, 중간에 Visual Basic은 없는게 낫지 않나 하는 생각도 들었다.&lt;br /&gt;이 책은 &lt;a target="_blank" href="http://www.crazytazo.com/71"&gt;Windows via C++&lt;/a&gt;과 같은 많은 고급 기술을 담고 있는 책보다 훨씬 낮은 레벨의 지식을 담고 있는 반면에 두께는 더 두껍다. 시대에 맞게 정말 필요한 내용만을 담아 거품을 좀 뺐으면 사용자가 좀 더 부담을 덜 갖고 편하게 이 책을 봤을텐데 말이다.&lt;br /&gt;&lt;br /&gt;어쨌거나 이 책은 수요가 그렇게 많지 않은 분야에 대해 저자가 열심히(자료도 별로 없는 가운데) 연구해서 쓴 책일 것이므로 고맙게 생각해야한다.&lt;br /&gt;좋은 애플리케이션에 대해 가르쳐준 저자에게 감사를 표한다.&lt;br /&gt;&lt;br /&gt;&lt;div style="width: 100%;border:0; text-align: center; padding-top: 15px; padding-bottom: 5px;"&gt;&lt;embed src="http://api.v.daum.net/static/recombox1.swf?nid=3074744" quality="high" bgcolor="#ffffff" width="400" height="80" type="application/x-shockwave-flash"&gt;&lt;/embed&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/--cyjKDtWkA0mrNIB5r51Y17MAI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/--cyjKDtWkA0mrNIB5r51Y17MAI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/--cyjKDtWkA0mrNIB5r51Y17MAI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/--cyjKDtWkA0mrNIB5r51Y17MAI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/crazytazo/~4/1wWpzYzJA7k" height="1" width="1"/&gt;</description>
      <category>가볍게 읽기 좋은 책(컴퓨터)</category>
      <category>Business Object</category>
      <category>crystal reports</category>
      <category>비주얼 스튜디오</category>
      <category>크리스탈 리포트</category>
      <author>김재호</author>
      <guid isPermaLink="false">http://www.crazytazo.com/87</guid>
      <comments>http://www.crazytazo.com/entry/crystal-report#entry87Comment</comments>
      <pubDate>Sat, 02 May 2009 23:47:37 +0900</pubDate>
    <feedburner:origLink>http://www.crazytazo.com/87</feedburner:origLink></item>
    <item>
      <title>네이트온에서 상대방이 자신을 삭제/차단했는지 알아내는 방법</title>
      <link>http://feedproxy.google.com/~r/crazytazo/~3/LR0L8xHfh4k/86</link>
      <description>&lt;div class="imageblock center" style="text-align: center; clear: both;"&gt;&lt;img src="http://fs.textcube.com/blog/0/656/attach/XVah05xsy4.gif" style="width:500px;height:272px;" alt="" /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;오늘 친구랑 이야기를 하다가, 네이트온에서 상대방이 자신을 삭제/차단했는지 알아내는 방법이 있다는 것을 듣고는, 재미삼아 검색도 해보고 몇가지 테스트를 통해서 검증한 결과,&lt;br /&gt;&lt;br style="font-weight: bold;"&gt;&lt;font size="3"&gt;&lt;span style="font-weight: bold;"&gt;1. 상대방이 자신을 삭제했는지는 알아낼 수 있다.&lt;/span&gt;&lt;br style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;2. 상대방이 자신을 차단했는지는 알아낼 수 없다.&lt;/span&gt;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;라는 결론을 얻었다.&lt;br /&gt;&lt;br /&gt;다음 글에 보면 그림과 함께 설명이 잘 나와 있는데,&lt;br /&gt;&lt;a target="_blank" href="http://nohungry.net/tt1/48"&gt;http://nohungry.net/tt1/48&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;살짝 잘못된 부분이 있다.(2006년 포스팅이라 당시에는 저렇게 동작했을 수도 있다.)&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(178, 232, 237); padding: 10px; background-color: rgb(225, 253, 255);"&gt;Step 1. 네이트온 메뉴에서 설정 -&amp;gt; 환경설정 -&amp;gt; 프라이버시 탭에서 대화가 허용된 목록을 본다.&lt;br /&gt;
Step 2. 이름에 대고 마우스 오른쪽 버튼을 클릭한다.&lt;br /&gt;
Step 3. 나타난 팝업창에 삭제 버튼이 활성화되어 있는지 살핀다.&lt;br /&gt;
Step 4. &lt;br /&gt;
If 삭제 버튼 = Enabled Then&lt;br /&gt;
난 상대방으로부터 삭제 또는 차단되었다.&lt;br /&gt;
Else&lt;br /&gt;
난 상대방으로부터 최소 삭제는 당하지 않았다. (차단은 되었을 수도 있다.)&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Step 1과 Step 4 부분이 틀렸는데,&lt;br /&gt;&lt;div style="border: 1px solid rgb(246, 209, 246); padding: 10px; background-color: rgb(255, 235, 255);"&gt;Step 1. 네이트온 메뉴에서 설정 -&amp;gt; 환경설정 -&amp;gt; 프라이버시 탭에서 대화가 &lt;span style="font-weight: bold;"&gt;허용된 목록과 차단된 목록&lt;/span&gt;을 본다.&lt;br /&gt;

Step 2. 이름에 대고 마우스 오른쪽 버튼을 클릭한다.&lt;br /&gt;

Step 3. 나타난 팝업창에 삭제 버튼이 활성화되어 있는지 살핀다.&lt;br /&gt;

Step 4. &lt;br /&gt;

&lt;span style="font-weight: bold;"&gt;If 삭제 버튼 = Enabled Then&lt;/span&gt;&lt;br style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;
&amp;nbsp; 난 상대방으로부터 삭제 되었다. (차단 여부는 알수없다.)&lt;/span&gt;&lt;br style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;
Else&lt;/span&gt;&lt;br style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;
&amp;nbsp; 난 상대방으로부터 삭제는 되지 않았다. (역시 차단 여부는 알 수 없다.)&lt;/span&gt;&lt;br style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;
End If&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;이렇게 쓰여져야 맞다.&lt;br /&gt;&lt;br /&gt;해석하면,&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;삭제 버튼이 회색으로 비활성화 되어있으면 아직까지 나를 친구로 등록하고 있는 것이고(차단한 채로 두고 있는 것일지도 모르지만)&lt;/span&gt;&lt;br style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;삭제 버튼이 클릭할 수 있도록 활성화 되어있다면 날 친구에서 삭제한 것이다.(차단은 했을 수도 있지만)&lt;/span&gt;&lt;br /&gt;&lt;font size="3"&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;그럼 상대방이 나를 차단했는지 알아보는 방법은?&lt;/span&gt;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;아쉽게도 이것은 알 수 없다.&lt;br /&gt;상대방이 원래는 생년월일이나 전화번호를 공개로 해두었었는데, 갑자기 로그인도 한동안 안하고 프로필을 봤더니 생일과 전화번호가 비공개로 되어있으면 의심해볼만 하다.(물론 추측만 해볼 수 있을 뿐이다.)&lt;br /&gt;혹시 정확히 알 수 있는 방법이 있다면 제게도 가르쳐주시라.&lt;br /&gt;&lt;br /&gt;&lt;font style="font-weight: bold;" size="3"&gt;&lt;br /&gt;그래서?&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;오늘은 네이트온을 사용하면서 처음으로 친구 정리라는 것을 해봤다.&lt;br /&gt;아 이 친구가 이제 나를 지워버렸구나 하는 배신감 비슷한 울컥한 감정,&lt;br /&gt;아 이 친구는 몇 년동안이나 대화를 안했는데도 아직까지도 나를 삭제하지 않았구나 하는 고마움과 미안함.&lt;br /&gt;&lt;br /&gt;어쨌거나 재미있는 일이다.&lt;br /&gt;아직 이 방법을 모르고 있었다면 지금 한번 실험해보고 그게 어떤 느낌인지 직접 느껴보시라.&lt;br /&gt;&lt;div style="width: 100%;border:0; text-align: center; padding-top: 15px; padding-bottom: 5px;"&gt;&lt;embed src="http://api.v.daum.net/static/recombox1.swf?nid=3036487" quality="high" bgcolor="#ffffff" width="400" height="80" type="application/x-shockwave-flash"&gt;&lt;/embed&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/adfvSXEhGUZbL59Q1Zk--COgUaQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/adfvSXEhGUZbL59Q1Zk--COgUaQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/adfvSXEhGUZbL59Q1Zk--COgUaQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/adfvSXEhGUZbL59Q1Zk--COgUaQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/crazytazo/~4/LR0L8xHfh4k" height="1" width="1"/&gt;</description>
      <category>블로깅 팁</category>
      <category>네이트온</category>
      <category>친구삭제</category>
      <category>친구차단</category>
      <author>김재호</author>
      <guid isPermaLink="false">http://www.crazytazo.com/86</guid>
      <comments>http://www.crazytazo.com/entry/네이트온에서-상대방이-자신을-삭제차단했는지-알아내는-방법#entry86Comment</comments>
      <pubDate>Mon, 27 Apr 2009 19:30:25 +0900</pubDate>
    <feedburner:origLink>http://www.crazytazo.com/86</feedburner:origLink></item>
  </channel>
</rss>
