<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>xozu</title>
    <link>https://xozu.tistory.com/</link>
    <description></description>
    <language>ko</language>
    <pubDate>Tue, 14 Apr 2026 05:16:07 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>xozu</managingEditor>
    <item>
      <title>NSIS 파일 설치 중 취소하면 설치 된 파일을 모두 지우자.</title>
      <link>https://xozu.tistory.com/270</link>
      <description>&lt;p&gt;간만의 포스팅(3년만...)&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;간만의 NSIS...&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;퀘스트는 제목과 같았다...&lt;/p&gt;&lt;blockquote class=&quot;tx-quote-tistory&quot;&gt;&lt;p&gt;설치 중 취소하면 취소 전 설치 된 파일을 모두 삭제해 주세요.&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;고난의 시작이었다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;파일을 설치하기 전단계에서의 취소는 어차피 하드에 기록한게 없으니 상관 없다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;문제는 파일을 설치하는 도중에 취소를 할 경우...&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;파일 설치는 별도의 thread 에서 처리되고 있어서, 파일 설치 중 강제로 페이지를 이동시키거나 해도 파일 설치 thread 는 계속 동작한다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;그러니&amp;nbsp;main thread 에서 파일을 삭제해도 제대로 지워지지 않는다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;파일 설치 thread 를 제어할 방법이 있으려나해서 nsis 소스까지 까봤으나 없다. 왜!!&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;google 느님에게 물어보면 복잡스런 코드가 있기는 한데 이건 취소하면 변수 하나에 취소 했다고 체크해두고&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;파일 설치에서 한 아이템을 설치 할 때마다 해당 변수를 체크해서 중단하거나 한다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;blockquote class=&quot;tx-quote-tistory&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 9pt; line-height: 1.5; background-color: transparent;&quot;&gt;요거 -&amp;gt; http://nsis.sourceforge.net/InstFiles_Cancel_-_Allowing_a_user_to_cancel_installation_during_InstFiles&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;span style=&quot;font-size: 9pt; line-height: 1.5; background-color: transparent;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 9pt; line-height: 1.5; background-color: transparent;&quot;&gt;하지만, 문제는 너무 번거롭기도 하거니와 설치 스크립트를 아래처럼 폴더로 지정한 경우는 사용이 불가하다. Orz...&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 9pt; line-height: 1.5; background-color: transparent;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;blockquote class=&quot;tx-quote-tistory&quot;&gt;&lt;p&gt;&lt;span style=&quot;background-color: transparent;&quot;&gt;&amp;nbsp; &amp;nbsp; File /r ..\src\* # 이 경우 하나의 아이템으로 처리되고 있어 중단할 수 없다.&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;span style=&quot;font-size: 9pt; line-height: 1.5; background-color: transparent;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;결국, 3 일간의 삽질 끝에 해결한 방법을 대충 정리하면&amp;nbsp;아래와 같다.&lt;/p&gt;&lt;ul style=&quot;list-style-type: disc;&quot;&gt;&lt;li&gt;설치 SECTION에서&amp;nbsp;가장 먼저 uninstall.exe 파일을 설치한다. ( 원래는 -post 에서 설치된다. )&lt;/li&gt;&lt;li&gt;!define MUI_CUSTOMFUNCTION_ABORT &quot;onUserAbort&quot; # 취소 처리를 제어할 수 있도록 등록한다.&lt;/li&gt;&lt;li&gt;전역 변수 하나를 설정하여, 파일 설치 전 취소 처리에서 알 수 있도록 값을 지정해둔다.&lt;/li&gt;&lt;li&gt;onUserAbort 함수에서 파일 설치 중에 취소 했음이 확인 되면 uninstall.exe 를 silent 모드로 실행한다.&lt;br /&gt;예)&amp;nbsp;ExecWait '&quot;cmd.exe&quot; /C start &quot;&quot; &quot;$INSTDIR\uninstall.exe&quot; /S'&lt;/li&gt;&lt;li&gt;uninstall.exe 호출시 주의할 점은 nsExec::Exec 를 이용하면 안된다. nsExec::Exec 를 이용하면 파일 손상 에러가 난다. (이유는 모름.)&lt;/li&gt;&lt;li&gt;un.onInit 에서 silent 모드인 경우 설치 프로세스를 종료하도록 처리 한다.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;blockquote class=&quot;tx-quote-tistory&quot;&gt;&lt;p&gt;Function un.onInit&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 9pt; line-height: 1.5; background-color: transparent;&quot;&gt;&amp;nbsp; &amp;nbsp; ${GetParameters} $R0&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; ${If} $R0 == &quot;/S&quot;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nsExec::Exec 'taskkill /F /IM ${OutFile}'&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Sleep 2000&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; ${EndIf}&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;상세 코드는 귀찮으니.... 나중에 생각나면 정리해서 올려야겠다.&lt;/p&gt;</description>
      <category>저장고/기타</category>
      <category>NSIS</category>
      <author>xozu</author>
      <guid isPermaLink="true">https://xozu.tistory.com/270</guid>
      <comments>https://xozu.tistory.com/270#entry270comment</comments>
      <pubDate>Fri, 1 Aug 2014 02:51:43 +0900</pubDate>
    </item>
    <item>
      <title>승하 돌잔치 예약했습니다.</title>
      <link>https://xozu.tistory.com/259</link>
      <description>오랜만의 글입니다. :) 요즘은 아들 보느라 정신없어서.. ㅎㅎㅎ&lt;br /&gt;
&lt;br /&gt;
이제 111일 되었지만... 돌잔치 장소는&amp;nbsp;미리 예약하지 않으면 자리 없다고 해서 -_-&lt;br /&gt;
마침 집에서 그리 멀지 않은 곳에 &lt;strong&gt;파티유플러스(party-u+)&lt;/strong&gt;라는 돌잔치 전문점이 생겼다고 해서 유모차 끌고 살짝 알아보러 다녀왔습니다.&lt;br /&gt;
&amp;nbsp;
&lt;p style=&quot;MARGIN: 0px&quot;&gt;&lt;iframe id=&quot;emap_602287&quot; src=&quot;/script/powerEditor/pages/attach/map_iframe_new.html?ver=1.1.193&amp;amp;id=emap_602287&amp;amp;mapGb=V&quot; width=&quot;521px&quot; height=&quot;451px&quot; frameborder=&quot;0&quot; scrolling=&quot;no&quot; mapdata=&quot;mapInfo=%7B%22mapWidth%22%3A%20537%2C%20%22mapHeight%22%3A%20410%2C%20%22mapCenterX%22%3A%20503668%2C%20%22mapCenterY%22%3A%201136201%2C%20%22coordinate%22%3A%20%22congnamul%22%2C%20%22mapScale%22%3A%201.25%2C%20%22mapLevel%22%3A%202%2C%20%22markInfo%22%3A%20%5B%7B%22key%22%3A%20%22%22%2C%20%22otype%22%3A%20%22user%22%2C%20%22x%22%3A%20503660%2C%20%22y%22%3A%201136249%2C%20%22coordinate%22%3A%20%22congnamul%22%2C%20%22label%22%3A%20%22%22%2C%20%22tooltip%22%3A%20%22%22%2C%20%22URL%22%3A%20%22%22%2C%20%22target%22%3A%20%22%22%2C%20%22isClickable%22%3A%20%22%22%2C%20%22isHigh%22%3A%20false%2C%20%22isDrag%22%3A%20true%2C%20%22isClose%22%3A%20true%2C%20%22icon%22%3A%20%7B%22offsetX%22%3A%20-9%2C%20%22offsetY%22%3A%20-25%2C%20%22width%22%3A%2017%2C%20%22height%22%3A%2025%2C%20%22src%22%3A%20%22http%3A%2F%2Fcafeimg.daum-img.net%2Fcf_img2%2Fmap%2Fpin_01.gif%22%7D%2C%20%22infowindow%22%3A%20%7B%22contents%22%3A%20%22%3Cdiv%20style%3D%5C%22font-size%3A12px%3Bfont-weight%3Abold%3B%5C%22%3E%EC%84%9C%EC%9A%B8%ED%8A%B9%EB%B3%84%EC%8B%9C%20%EC%84%B1%EB%B6%81%EA%B5%AC%20%EB%8F%99%EC%84%A0%EB%8F%99%3C%2Fdiv%3E%22%2C%20%22options%22%3A%20%7B%22removable%22%3A%20false%2C%20%22zindex%22%3A%20402%2C%20%22show%22%3A%20true%2C%20%22coordinate%22%3A%20%22%22%2C%20%22width%22%3A%20%22%22%2C%20%22height%22%3A%20%22%22%2C%20%22type%22%3A%20%22%22%2C%20%22vertex%22%3A%20true%2C%20%22opacity%22%3A%201%2C%20%22flash_quality%22%3A%20%22%22%2C%20%22flash_wmode%22%3A%20%22%22%2C%20%22flash_bgcolor%22%3A%20%22%22%2C%20%22flash_pluginspace%22%3A%20%22%22%2C%20%22flash_allowScriptAccess%22%3A%20%22%22%2C%20%22flash_vars%22%3A%20%22%22%2C%20%22use_graybg%22%3A%20false%2C%20%22use_opacitybg%22%3A%20false%2C%20%22isDualShow%22%3A%20false%7D%7D%7D%5D%2C%20%22graphicInfo%22%3A%20%5B%5D%2C%20%22routeInfo%22%3A%20%5B%5D%7D&amp;amp;map_type=TYPE_MAP&amp;amp;map_hybrid=false&amp;amp;mapWidth=492&amp;amp;mapHeight=362&amp;amp;idx=1&amp;amp;title=%ED%8C%8C%ED%8B%B0%EC%9C%A0%ED%94%8C%EB%9F%AC%EC%8A%A4(party-u%2B)&amp;amp;title2=%ED%8C%8C%ED%8B%B0%EC%9C%A0%ED%94%8C%EB%9F%AC%EC%8A%A4(party-u%2B)&amp;amp;addr=%EC%84%9C%EC%9A%B8%ED%8A%B9%EB%B3%84%EC%8B%9C%20%EC%84%B1%EB%B6%81%EA%B5%AC%20%EB%8F%99%EC%84%A0%EB%8F%99&amp;amp;mapX=503668&amp;amp;mapY=1136201&amp;amp;ifrW=490px&amp;amp;ifrH=378px&amp;amp;addtype=1&amp;amp;map_level=2&amp;amp;rcode=1108083&amp;amp;docid=&amp;amp;confirmid=0&amp;amp;toJSONString=&quot;&gt;&lt;/iframe&gt;&lt;br /&gt;
&lt;br /&gt;
건물 로드뷰 링크&amp;nbsp;: &lt;a href=&quot;http://dmaps.kr/7ks9&quot; target=&quot;_blank&quot;&gt;http://dmaps.kr/7ks9&lt;/a&gt;&lt;br /&gt;
파티유플러스 홈페이지 : &lt;a href=&quot;http://partyuplus.com&quot; target=&quot;_blank&quot;&gt;http://partyuplus.com&lt;/a&gt;&lt;br /&gt;
파티유플러스 카페 : &lt;a href=&quot;http://cafe.naver.com/partyuplus.cafe&quot; target=&quot;_blank&quot;&gt;http://cafe.naver.com/partyuplus.cafe&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
영화보러 종종 가던 성신여대 CGV 있는 건물 13층 전체를 사용하고 있었습니다.&lt;br /&gt;
지하철역이랑 연결되어있는 건물이고 바로 앞에 버스정류장도 있어서 대중교통을 이용해 오시는 손님들에게는 좋을 것 같았습니다.&lt;br /&gt;
다만, 저 건물에 주차하기가 좀 어렵다는 얘기는 있습니다. -_-;;;&lt;br /&gt;
&lt;br /&gt;
가본 느낌은, 내부 분위기는 최근에 다녀본 돌잔치 장소와 구조는&amp;nbsp;크게 다르지는 않았지만, 새로 생겨서인지 깔끔했고, 상담해주시는 분도 친절했습니다.&lt;br /&gt;
&lt;br /&gt;
장점으로 느꼈던 부분들입니다.&lt;br /&gt;
- 홀별로 수유실 구비&lt;br /&gt;
- 기본식사(떡갈비/등심/랍스타,안심)&amp;nbsp;+ 무한 부페 (다만, 음료수는 별도 계산)&lt;br /&gt;
- 13층이라 확 트인 전망&lt;br /&gt;
- 편한 대중교통&lt;br /&gt;
&lt;br /&gt;
오픈한지 얼마 안되서 이런 저런 오픈이벤트도 하고 있으니, 돌잔치 장소를 알아보고 계신분들은 한번 알아보시는 것도 괜찮을 듯 합니다.&lt;/p&gt;</description>
      <author>xozu</author>
      <guid isPermaLink="true">https://xozu.tistory.com/259</guid>
      <comments>https://xozu.tistory.com/259#entry259comment</comments>
      <pubDate>Sun, 9 Oct 2011 02:39:33 +0900</pubDate>
    </item>
    <item>
      <title>NSIS CreateShortcut 사용시 시작 위치(Start in) 정보 설정 방법</title>
      <link>https://xozu.tistory.com/258</link>
      <description>&lt;div&gt;
nsis 에서 바로가기를 생성해주는 CreateShortcut 명령어.&lt;br /&gt;
근데 사용하다보니 생성된 바로가기의 &quot;시작 위치&quot; 정보가 이상하게 들어가고 있어 메뉴얼을 봤지만 CreateShortcut 에는 해당 정보 설정이 없다.&amp;nbsp;해서 우짜저짜 하다가 알게 된 방법. 사실 맞는 방법인지는 모르겠지만, 잘 되니까 뭐 -_-&lt;br /&gt;
&lt;br /&gt;
CreateShortcut 명령 사용 전에 &amp;nbsp;SetOutPath 을 통해 &quot;시작 위치&quot; 로 지정할 폴더를 지정해주면 된다.&lt;br /&gt;
&lt;br /&gt;
사용 예)&lt;br /&gt;
&lt;textarea name=&quot;code&quot; class=&quot;c++&quot;&gt;SetOutPath $INSTDIR
CreateShortcut &quot;$SMPROGRAMS\$StartMenuGroup\$(^Name).lnk&quot; &quot;$INSTDIR\run.exe&quot; &quot;&quot; &quot;$INSTDIR\run.exe&quot; 0
&lt;/textarea&gt;
&lt;/div&gt;</description>
      <category>저장고/기타</category>
      <category>CreateShortcut</category>
      <category>NSIS</category>
      <category>Start in</category>
      <category>시작 위치</category>
      <author>xozu</author>
      <guid isPermaLink="true">https://xozu.tistory.com/258</guid>
      <comments>https://xozu.tistory.com/258#entry258comment</comments>
      <pubDate>Thu, 1 Sep 2011 10:36:43 +0900</pubDate>
    </item>
    <item>
      <title>string &amp;lt;-&amp;gt; wstring</title>
      <link>https://xozu.tistory.com/257</link>
      <description>작업하다가 필요해서 찾은 코드. 뭐 간략하고 사용하기 편한 듯&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;출처 :&amp;nbsp;&lt;a href=&quot;http://social.msdn.microsoft.com/Forums/en-US/Vsexpressvc/thread/0f749fd8-8a43-4580-b54b-fbf964d68375/&quot; target=&quot;_self&quot; title=&quot;[http://social.msdn.microsoft.com/Forums/en-US/Vsexpressvc/thread/0f749fd8-8a43-4580-b54b-fbf964d68375/]로 이동합니다.&quot;&gt;http://social.msdn.microsoft.com/Forums/en-US/Vsexpressvc/thread/0f749fd8-8a43-4580-b54b-fbf964d68375/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;
&lt;textarea name=&quot;code&quot; class=&quot;c++&quot;&gt;std::wstring s2ws (const std::string&amp;amp; s)
{
    std::wstring ws;
    ws.assign (s.begin (), s.end ());
    return ws;
}

std::string ws2s (const std::wstring&amp;amp; ws)
{
    std::string s;
    s.assign (ws.begin (), ws.end ());
    return s;
}
&lt;/textarea&gt;</description>
      <author>xozu</author>
      <guid isPermaLink="true">https://xozu.tistory.com/257</guid>
      <comments>https://xozu.tistory.com/257#entry257comment</comments>
      <pubDate>Fri, 22 Jul 2011 12:30:19 +0900</pubDate>
    </item>
    <item>
      <title>'해운대' 봤습니다. :)</title>
      <link>https://xozu.tistory.com/252</link>
      <description>&lt;div&gt;
&lt;table key=&quot;44774&quot; category=&quot;cinema_detail&quot; openpost=&quot;false&quot; width=&quot;374&quot; height=&quot;120&quot; cellpadding=&quot;12&quot; cellspacing=&quot;0&quot; border=&quot;0&quot; style=&quot;border:1px #F3F3F3 solid; background-color:#ffffff; line-height:17px !important;&quot;&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td style=&quot;padding-bottom:0px&quot;&gt; &lt;table width=&quot;350&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; border=&quot;0&quot;&gt;
 &lt;tbody&gt;&lt;tr&gt;
  &lt;td width=&quot;60&quot; valign=&quot;top&quot;&gt;&lt;a href=&quot;http://movie.daum.net/moviedetail/moviedetailMain.do?movieId=44774&quot; target=&quot;_blank&quot;&gt;&lt;img width=&quot;60&quot; height=&quot;87&quot; src=&quot;https://t1.daumcdn.net/cfile/blog/110B83234A3F1C04EA&quot; border=&quot;0&quot;&gt;&lt;/a&gt;&lt;/td&gt;
   &lt;td width=&quot;12&quot;&gt;&lt;/td&gt;
  &lt;td width=&quot;278&quot; valign=&quot;top&quot;&gt;   &lt;table width=&quot;100%&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; border=&quot;0&quot;&gt;
   &lt;tbody&gt;&lt;tr&gt;
    &lt;th height=&quot;18&quot; colspan=&quot;2&quot; align=&quot;left&quot; valign=&quot;top&quot;&gt;     &lt;span style=&quot;height:17px; font-size:12px; overflow:hidden; font-weight:bold; font-family:굴림,gulim,sans-serif;&quot;&gt;&lt;a style=&quot;color:#333333 !important;text-decoration:none !important;&quot; href=&quot;http://movie.daum.net/moviedetail/moviedetailMain.do?movieId=44774&quot; target=&quot;_blank&quot;&gt;해운대&lt;/a&gt;&lt;/span&gt;    &lt;/th&gt;   &lt;/tr&gt;
   &lt;tr&gt;
    &lt;td width=&quot;40&quot; height=&quot;18&quot; align=&quot;left&quot; valign=&quot;top&quot;&gt;     &lt;span style=&quot;height:17px; font-size:12px; font-family:굴림,gulim,sans-serif; color:#999;&quot;&gt;감독&lt;/span&gt;    &lt;/td&gt;
    &lt;td height=&quot;18&quot; align=&quot;left&quot; valign=&quot;top&quot;&gt;     &lt;span style=&quot;height:17px; font-size:12px; font-family:굴림,gulim,sans-serif; color:#333;display:block; overflow:hidden; text-overflow:ellipsis;&quot;&gt;윤제균 (2009 / 한국)&lt;/span&gt;    &lt;/td&gt;
   &lt;/tr&gt;
   &lt;tr&gt;
    &lt;td width=&quot;40&quot; height=&quot;36&quot; align=&quot;left&quot; valign=&quot;top&quot;&gt;     &lt;span style=&quot;height:17px; font-size:12px; font-family:굴림,gulim,sans-serif; color:#999;&quot;&gt;출연&lt;/span&gt;    &lt;/td&gt;
    &lt;td height=&quot;36&quot; align=&quot;left&quot; valign=&quot;top&quot;&gt;     &lt;span style=&quot;height:34px; font-size:12px; font-family:굴림,gulim,sans-serif; color:#333;display:block; overflow:hidden; text-overflow:ellipsis;&quot;&gt;설경구, 하지원, 박중훈, 엄정화&lt;/span&gt;    &lt;/td&gt;
   &lt;/tr&gt;
   &lt;tr&gt;
    &lt;td colspan=&quot;2&quot; align=&quot;left&quot; valign=&quot;top&quot;&gt;     &lt;a style=&quot;padding:0px 5px 0px 0px; background:url(http://deco.daum-img.net/contents/info/ic_more.gif) no-repeat 100% 3px; font-size:11px; color:#999999 !important; font-family:돋움,dotum,verdana; text-decoration:underline;&quot; href=&quot;http://movie.daum.net/moviedetail/moviedetailMain.do?movieId=44774&quot; target=&quot;_blank&quot;&gt;상세보기&lt;/a&gt;    &lt;/td&gt;
   &lt;/tr&gt;
   &lt;/tbody&gt;&lt;/table&gt;
  &lt;/td&gt;
  &lt;/tr&gt;
&lt;/tbody&gt; &lt;/table&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
그닥 기대가 안되었던 영화라 극장에서 볼 생각은 안하고 있었는데&amp;nbsp;갑작스래 후배가 '해운대' 관람 벙개를 때려서 롯데시네마 홍대입구점에서 보고 왔습니다. 홍대입구에 사람 정말 무쟈게 많더군요... =ㅅ=;;; (서울촌놈... Orz..) 롯데 시네마에도 사람이 너무 많아서 엘레베이터 타고 올라가기가 힘들었습니다.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
영화 보기 전 해운대에 대해 들은 내용은 CG 홍보밖에 없어서 내용은 좀 유치하겠거니... 하고 있었기에 별 기대 없이 봤습니다. 역시 말이 많던 CG 부분은 외국의 블록버스터들로 인해 눈이 한참 올라간 관객들을 만족시키기에는 좀 부족하지 않았나 합니다. 외국 CG팀에 의뢰까지 해가며 만든 것 치고는 어색한 부분이 많더군요.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
대신, 기대하지 않았던 드라마 부분에서는 괜찮은 점수를 주고 싶습니다. CG에 기대어 유치할거라 생각했던 선입견과는 달리 꽤나 짜임새 있고 지루하지 않게 진행되기 때문에 시간 가는 줄 모르고 몰입해서 볼 수 있었습니다. :)&lt;/div&gt;</description>
      <category>박중훈</category>
      <category>설경구</category>
      <category>엄정화</category>
      <category>영화</category>
      <category>윤제균</category>
      <category>하지원</category>
      <category>해운대</category>
      <author>xozu</author>
      <guid isPermaLink="true">https://xozu.tistory.com/252</guid>
      <comments>https://xozu.tistory.com/252#entry252comment</comments>
      <pubDate>Sun, 2 Aug 2009 22:55:48 +0900</pubDate>
    </item>
    <item>
      <title>_heapchk() 메모리 긁는 문제의 실마리...</title>
      <link>https://xozu.tistory.com/251</link>
      <description>&lt;div&gt;
&lt;table class=&quot;flickrImgSearch&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a title=&quot;A Sip of Turkish Coffee&quot; href=&quot;http://www.flickr.com/photos/21829439@N04/2870909284&quot; target=&quot;_blank&quot;&gt;&lt;img style=&quot;BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 7px; BORDER-TOP: 0px; BORDER-RIGHT: 0px&quot; alt=&quot;A Sip of Turkish Coffee&quot; src=&quot;http://farm4.static.flickr.com/3104/2870909284_5289c96287.jpg&quot; width=&quot;550&quot;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;span&gt;A Sip of Turkish Coffee by &lt;a href=&quot;http://www.flickr.com/photos/21829439@N04&quot; target=&quot;_blank&quot;&gt;Kuzeytac (OUT, till 20.08.09-see profile)&lt;/a&gt;&lt;/span&gt; &lt;a style=&quot;WIDTH: 550px; PADDING-TOP: 7px&quot; href=&quot;http://creativecommons.org/licenses/by-nc-nd/2.0/kr/&quot; target=&quot;_blank&quot;&gt;&lt;img style=&quot;BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; VERTICAL-ALIGN: middle; BORDER-TOP: 0px; MARGIN-RIGHT: 1px; BORDER-RIGHT: 0px&quot; class=&quot;tix-ccl-by&quot; alt=&quot;저작자 표시&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black01.png&quot; width=&quot;15&quot; height=&quot;15&quot;&gt;&lt;img style=&quot;BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; VERTICAL-ALIGN: middle; BORDER-TOP: 0px; MARGIN-RIGHT: 1px; BORDER-RIGHT: 0px&quot; class=&quot;tix-ccl-nc&quot; alt=&quot;비영리&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black02.png&quot; width=&quot;15&quot; height=&quot;15&quot;&gt;&lt;img style=&quot;BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; VERTICAL-ALIGN: middle; BORDER-TOP: 0px; MARGIN-RIGHT: 1px; BORDER-RIGHT: 0px&quot; class=&quot;tix-ccl-nd&quot; alt=&quot;변경 금지&quot; src=&quot;http://cfs.tistory.com/static/admin/editor/ccl_black04.png&quot; width=&quot;15&quot; height=&quot;15&quot;&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
(위 짤방은 그냥 Filckr 에서 'heap' 으로 검색하니까 나온 이미지로, 본문과는 전혀 상관 없습니다;;;)&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
언젠가부터 자꾸 map 처리에서 exception 이 발생하기 시작했습니다... 
&lt;div&gt;
해당 map 이 상당히 간단하게만 사용되던 부분이라 중첩콜 되는 부분도 없었고, 여러 스레드에서 호출되는 부분도 없었던지라&lt;/div&gt;
&lt;div&gt;
map 사용 오류라기 보다는 어디선가 다른 코드에서의 메모리 쓰기 오류로 판단만 하고 있었죠...&lt;/div&gt;
&lt;div&gt;
자주 발생하고 재현하기가 쉬운 문제라면 디버깅이라도 해서 문제 부분을 잡을 수 있겠지만 그런것도 아니었기에 난감한 상황이었습니다.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
어찌되었든 해결을 해야 했기에 배열 인덱스 검사 코드 강화, map 사용 코드 다시 확인 등등을 해도 찾기가 쉽지 않더군요..&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
인터넷에서 검색을 해보니 도움을 받을 수 있는 프로그램들이 있는 것 같았지만 모두 상용 프로그램인지라 쉽사리 사용할 수도 없었습니다.&lt;/div&gt;
&lt;div&gt;
그러던 중 &lt;b&gt;_heapchk()&lt;/b&gt; 에 대한 내용을 봐서 혹시나 하는 마음에 코드에 추가하여 로그를 살펴보기로 했었습니다.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
결과는 일단은 성공입니다.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
로그에 &lt;b&gt;_heapchk()&lt;/b&gt; 오류가 남은 부분을 다시한번 체크해보니, 배열 사용하는 부분이었는데 배열 인덱스 체크하는 부분이 없어서 잘못된 인덱스에 대한 대비가 안되어있는 부분이더군요.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
정확한 오류부분을 찝어주지는 않지만, 범위를 좁혀가는 식으로 사용하면 큰 도움이 될 것 같습니다. :)&lt;/div&gt;</description>
      <category>저장고/C++</category>
      <category>C++</category>
      <category>heap</category>
      <category>_heapchk()</category>
      <author>xozu</author>
      <guid isPermaLink="true">https://xozu.tistory.com/251</guid>
      <comments>https://xozu.tistory.com/251#entry251comment</comments>
      <pubDate>Sat, 1 Aug 2009 13:57:09 +0900</pubDate>
    </item>
    <item>
      <title>[SQL] SELECT 할 때 동적으로 순위 매기기</title>
      <link>https://xozu.tistory.com/249</link>
      <description>랭킹 관련 작업을 하다가 필요해서 찾은 기능으로 특정 테이블의 데이터를 SELECT 할때 원하는 정렬 값으로 순위를 매길 수 있는 기능&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;SQL2005에서 관련해 추가된 명령어와, 2005 이전버젼에서 사용할 수 있는 쿼리문이 함께 나와있습니다.&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;
근데 보니까.... 양이 많은 데이터에서는 권장하지 않는다고... -_-&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;
URL :&amp;nbsp;&lt;a href=&quot;http://support.microsoft.com/default.aspx?scid=kb;KO;q186133&quot;&gt;http://support.microsoft.com/default.aspx?scid=kb;KO;q186133&lt;/a&gt;&lt;/div&gt;</description>
      <category>저장고/기타</category>
      <category>MSSQL</category>
      <author>xozu</author>
      <guid isPermaLink="true">https://xozu.tistory.com/249</guid>
      <comments>https://xozu.tistory.com/249#entry249comment</comments>
      <pubDate>Wed, 17 Jun 2009 22:07:02 +0900</pubDate>
    </item>
    <item>
      <title>[SQL] NULL + '문자열' = ?</title>
      <link>https://xozu.tistory.com/248</link>
      <description>얼마전 SP를 작업해서 협력사에 넘겼는데 정상 작동을 안한다고 해서 몇시간을 헤맨적이 있습니다.&amp;nbsp;결국 밝혀진 원인은 제목과 같은 NULL + '문자열' 의 결과였는데 이게 MS-SQL 버젼에 따라 결과가 좀 다르게 나오더군요...&lt;div&gt;
&lt;br /&gt;
&lt;div&gt;
두개의 테이블에서 문자열을 하나씩 검색해서 + 연산으로 문자열을 합치는 쿼리문이었는데 앞에 테이블에서 검색된 열 갯수가 0일 때 문제가 된 것이었습니다.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
대충 아래 쿼리와 비슷한 쿼리문이었습니다.&lt;/div&gt;
&lt;textarea name=&quot;code&quot; class=&quot;sql&quot;&gt;
SELECT
    ( SELECT ISNULL(RTRIM(Name) + ' ', '') FROM Table1 WHERE Idx = 1 ) +
    ( SELECT RTRIM(Name) FROM Table2 WHERE Idx = 1 )
&lt;/textarea&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
제 작업 환경은 MS-SQL2000, 협력사의 테스트 환경은 MS-SQL2005 였는데 2000에서는 앞의 테이블 검색 결과가 없어도 뒤 테이블에서 검색된 데이터가 출력되는 반면에 2005에서는 앞의 테이블 검색수가 0이면 뒤 테이블 검색 결과에 상관없이 무조건 NULL 이더군요. 결국 ISNULL() 을 사용해서 해결은 했습니다.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
근데 또 다른 비슷한 경우를 만들어서 테스트를 해보니 NULL 나오는게 정상인듯 싶네요. 앞으로 주의해야겠습니다;;;&lt;/div&gt;
&lt;/div&gt;</description>
      <category>저장고/기타</category>
      <category>MS-SQL</category>
      <category>query</category>
      <author>xozu</author>
      <guid isPermaLink="true">https://xozu.tistory.com/248</guid>
      <comments>https://xozu.tistory.com/248#entry248comment</comments>
      <pubDate>Thu, 11 Jun 2009 22:06:28 +0900</pubDate>
    </item>
    <item>
      <title>std::string 문자열 공백 자르기 함수</title>
      <link>https://xozu.tistory.com/246</link>
      <description>문자열에서 공백(스페이스, 텝 등)을 제거해주는 함수.&lt;div&gt;
코드가 간결하고 좋다&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
출처 : &lt;a href=&quot;http://kldp.org/node/1694&quot; target=&quot;_blank&quot;&gt;http://kldp.org/node/1694&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;

&lt;textarea name=&quot;code&quot; class=&quot;c++&quot;&gt;
inline string trim_left(const string&amp; str)
{
    string::size_type n = str.find_first_not_of(&quot; \t\v\n&quot;);
    return n == string::npos ? str : str.substr(n, str.length());
}

inline string trim_right(const string&amp; str)
{
    string::size_type n = str.find_last_not_of(&quot; \t\v\n&quot;);
    return n == string::npos ? str : str.substr(0, n + 1);
}
string trim(const string&amp; str){return trim_left(trim_right(str));}
&lt;/textarea&gt;</description>
      <category>저장고/C++</category>
      <category>LTRIM</category>
      <category>RTRIM</category>
      <category>trim</category>
      <category>문자열 공백제거</category>
      <author>xozu</author>
      <guid isPermaLink="true">https://xozu.tistory.com/246</guid>
      <comments>https://xozu.tistory.com/246#entry246comment</comments>
      <pubDate>Tue, 28 Apr 2009 15:05:44 +0900</pubDate>
    </item>
    <item>
      <title>COptionTree를 vs2003에서 사용하기</title>
      <link>https://xozu.tistory.com/244</link>
      <description>&lt;a href=&quot;http://www.codeproject.com/KB/tree/coptiontree.aspx&quot; target=&quot;_blank&quot; title=&quot;[http://www.codeproject.com/KB/tree/coptiontree.aspx]로 이동합니다.&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: bold;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: rgb(108, 168, 199);&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(255, 255, 255);&quot;&gt;&lt;span style=&quot;font-size: 10pt; &quot;&gt;COptionTree Codeproject Page Link&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
위 링크를 가보면 알겠지만 상당히 유용한 라이브러리인 COptionTree&lt;/div&gt;
&lt;div&gt;
하지만, vs2003에서는 위 링크에서 제공하는 소스를 컴파일 할 경우 여러가지 에러가 나며 컴파일 되지 않습니다.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/1471FD1749DF3500A6&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F1471FD1749DF3500A6&quot; width=&quot;669&quot; height=&quot;199&quot; alt=&quot;&quot; filename=&quot;coptiontree_build_error.png&quot; filemime=&quot;image/png&quot;/&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
이를 해결하기 위한 방법입니다.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: bold;&quot;&gt;1. 포함 파일을 열 수 없습니다. '..\src\afximpl.h': No such file or directory&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
afximpl.h 파일 include 에러가 나는 코드를 찾아가서 아래와 같이 수정합니다.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
OptionTreeFontSelSizeCombo.cpp&lt;/div&gt;
&lt;div&gt;
OptionTreeFontSel.cpp&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;textarea class=&quot;cpp&quot; name=&quot;code&quot;&gt;
//#include &lt;..\src\afximpl.h&gt; //!&lt; xozu 원래 코드입니다. 아래 코드로 교체
#if _MFC_VER &lt; 0x0700
#   include &lt;..\src\afximpl.h&gt;
#else
#   include &lt;..\src\mfc\afximpl.h&gt;
#endif
&lt;/textarea&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: bold;&quot;&gt;2. 매개 변수 2을(를) 'HTASK'에서 'DWORD'(으)로 변환할 수 없습니다.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: bold;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
아래 파일들에 선언/사용된 함수의 HTASK 인자형식을 모두 DWORD 로 변경해줍니다.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
OptionTreeColorPopUp.h(123):&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre&quot;&gt;	&lt;/span&gt;afx_msg void OnActivateApp(BOOL bActive, &lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: bold;&quot;&gt;HTASK&lt;/span&gt; hTask);&lt;/div&gt;
&lt;div&gt;
OptionTreeColorPopUp.cpp(1181):void COptionTreeColorPopUp::OnActivateApp(BOOL bActive, &lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: bold;&quot;&gt;HTASK&lt;/span&gt; hTask) &lt;/div&gt;
&lt;div&gt;
OptionTreeImagePopUp.h(88):&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre&quot;&gt;	&lt;/span&gt;afx_msg void OnActivateApp(BOOL bActive, &lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: bold;&quot;&gt;HTASK&lt;/span&gt; hTask);&lt;/div&gt;
&lt;div&gt;
OptionTreeImagePopUp.cpp(284):void COptionTreeImagePopUp::OnActivateApp(BOOL bActive, &lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: bold;&quot;&gt;HTASK&lt;/span&gt; hTask) &lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
위의 두가지 수정작업만 해주면 vs2003에서도 COptionTree 를 문제 없이 사용할 수 있습니다. :)&lt;/div&gt;
&lt;div&gt;
vs2005는 안써봐서 잘 모르겠지만, vs2005에서도 위와 같은 방법으로 사용가능한 것으로 알고 있습니다. :)&lt;/div&gt;
&lt;/div&gt;</description>
      <category>저장고/C++</category>
      <category>C++</category>
      <category>COptionTree</category>
      <category>vs2003</category>
      <author>xozu</author>
      <guid isPermaLink="true">https://xozu.tistory.com/244</guid>
      <comments>https://xozu.tistory.com/244#entry244comment</comments>
      <pubDate>Fri, 10 Apr 2009 21:16:21 +0900</pubDate>
    </item>
  </channel>
</rss>