<?xml version="1.0" encoding="utf-8"?>
<!-- generator="empas blog/2.0" -->
<rss version="2.0" 
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
	xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/">
	<channel>
		<!-- if (id exists )	-->
		<title><![CDATA[프로그래머 이창연(lisyoen) 생각]]> </title>
		<userid>lisyoen</userid>
		<link>http://blog.empas.com/lisyoen</link>
		<description><![CDATA[사람을 대하는 기준은 한가지. 프로그래머인가. 프로그래머가 아닌가.]]></description>
		<language>ko</language>
		<copyright>Copyright(c) empas corp. All Rights Reserved.</copyright> 
		<pubDate>Fri, 09 Jan 2009 15:23:49 +0900</pubDate>
		<item>
			<category><![CDATA[내 멋대로 해석하는 종교]]></category>
			<title>이해와 믿음</title>
			<link>http://blog.empas.com/lisyoen/31653064</link>
			<description><![CDATA[나는 한때 기독교 신자였다.
 
기독교의 교리와 성경에 대한 갖가지 의구심으로 똘똘 뭉쳐있던 나를
 
기독교인이 되게 만들었던 한마디.
 
&quot;종교는 이해되서 믿는게 아니고 믿음으로써 이해되는겁니다&quot;
 
 
종교의 근본은 분명 그렇다.
 
만약 충분히 이해되서 믿는거라면. 과학 법칙과 다를게 무언가?
 
 
종교란 닫혀있는 연산과 같다.
 
종교 안에서만 서로 증명할 수 있으면 되는 것이다.
 
 
인간이 이해할 수 없는것. 아니 이해할 수 없어야 하는 것.
 
그것이 종교다.
 
- 그러니 이해하려고 노력하지도. 이해시키려고 노력하지도 말자 -]]></description>
			<pubDate>Wed, 03 Dec 2008 11:44:12 +0900</pubDate>
		</item>
		<item>
			<category><![CDATA[그냥 생각나는대로]]></category>
			<title>무엇을 선택하는가? - 갈등 4단계</title>
			<link>http://blog.empas.com/lisyoen/31631341</link>
			<description><![CDATA[◆ 모든 갈등은 선택에서 비롯된다
인간이 갈등을 하는것은 다음 4가지 선택의 단계에서 오는 딜레마 때문이다.
 
1. 진리(眞理) - 진실과 거짓
2. 정의(正義) - 옳고 그름, 옳은일과 그른일
3. 이해(利害) - 이롭고 해로움, 좋고 나쁨
4. 기호(嗜好) - 좋아하고 싫어함
 
각 단계는 인간이 성장하는 과정에서 서서히 구분되기 시작한다.
이들을 서로 구분한다는 것은 각 단계의 차이를 알게 된다는 뜻이다.
 
이것을 나는 갈등4단계. 다른 말로 선택기준 4단계라고 부른다.
 
◆ 선택의 기준은 하나 - 4단일체의 시기
어렸을 때에는 이 모든 단계가 하나의 선택기준으로 보인다.
즉, ①솔직한게 ②옳은일이고 ③나에게 이로우며 ④그래서 나도 그것을 좋아한다.
이것이 교육과 학습의 결과라고 생각할 수도 있지만 애시당초 구분할 능력이 없기 때문에 교육은 단지 이 일관성있는 선택기준을 다듬어주는데 불과하다고 보는 것이 옳은 견해일 것이다.
이 시기에는 모든게 이해가 쉽고 선택이 분명하다. 갈등이 별로 없다.
 
◆ 그게 과연 옳은가? - 진리와 정의의 분리
나이가 들어가면서 진리와 정의가 구분되기 시작한다.
솔직한게 꼭 옳은일이 아니라는걸 깨닫는다.
거짓도 때론 옳을 수 있고. 솔직한게 틀릴수도 있다.
대개 초등학교나 중학교때 이를 경험하고 구분하기 시작하는듯 하다.
 
◆ 나에겐 이것이 좋다 - 정의와 이해의 분리
좀더 성숙해지면서 일반적인 옳은일이 반드시 나에게 이롭지 않다는걸 깨닫는다.
누군가에게는 유리하지만 나에게 불리한 법과 규칙이 있다. 나는 그로 인해 피해를 보게 된다.
가지지 못한 경우에도. 가진 경우에도. 자신의 세금이 상대적으로 너무 많다고 불평한다.
이 시점에 자기 나름대로의 정의를 만들게 된다.
바로 '나만의 정의' ..]]></description>
			<pubDate>Mon, 01 Dec 2008 17:04:36 +0900</pubDate>
		</item>
		<item>
			<category><![CDATA[그냥 생각나는대로]]></category>
			<title>IP 추적 사이트</title>
			<link>http://blog.empas.com/lisyoen/31367309</link>
			<description><![CDATA[새로 오픈한 IP 추적 사이트.
IP 추적, Whois 검색, IP추적 강좌 제공
 
http://www.ipsearch.co.kr]]></description>
			<pubDate>Wed, 12 Nov 2008 22:48:35 +0900</pubDate>
		</item>
		<item>
			<category><![CDATA[그냥 생각나는대로]]></category>
			<title>김연아 가수 데뷔??</title>
			<link>http://blog.empas.com/lisyoen/31102561</link>
			<description><![CDATA[재미있구나...]]></description>
			<pubDate>Sun, 26 Oct 2008 00:58:32 +0900</pubDate>
		</item>
		<item>
			<category><![CDATA[프로그래머 생각]]></category>
			<title>비어 있어도 0은 아니다.</title>
			<link>http://blog.empas.com/lisyoen/30985468</link>
			<description><![CDATA[class MyBase{
&amp;#160;&amp;#160;&amp;#160; // 멤버 변수가 없는 클래스.};class MyDerived : public MyBase{&amp;#160;&amp;#160;&amp;#160; short&amp;#160;&amp;#160; m_nVar1;};
int main( int argc, char* argv[] ){&amp;#160;&amp;#160;&amp;#160; printf( &quot;MyBase size = %d\n&quot;, sizeof( MyBase ) );&amp;#160;&amp;#160;&amp;#160; printf( &quot;MyDerived size = %d\n&quot;, sizeof( MyDerived ) );&amp;#160;&amp;#160;&amp;#160; return 0;
}
&amp;#160;
결과는 아래와 같다.
&amp;#160;
MyBase size = 1
MyDerived size = 2
&amp;#160;
테스트 환경은 Windows XP, Visual Studio 2003 C++ Complier, 기본 정렬 (정렬 옵션과 무관하게 1,2 가 출력됨)
&amp;#160;
컴파일러 종류에 따라 다른 값이 나올 것이다. 구 버전의 VC++ 컴파일러에서는 Derived size 가 3 이 나오는 것을 봤다.
특이한것은 멤버 변수가 전혀 없는 클래스라도 크기가 1 이라는 점이다.
&amp;#160;
만약 크기가 0이라면 new MyBase 는 아무 주소나 반환해도 될 것이다.
어차피 그 주소로부터 0바이트라는 의미니까.
&amp;#160;
크기가 없다면 데이터라고 부를수나 있을까? 
질량이 없다면 물체라고 부를 수 없는것 처럼.
&amp;#160;]]></description>
			<pubDate>Fri, 17 Oct 2008 14:30:25 +0900</pubDate>
		</item>
		<item>
			<category><![CDATA[그냥 생각나는대로]]></category>
			<title>언행일치</title>
			<link>http://blog.empas.com/lisyoen/30979928</link>
			<description><![CDATA[내가 사용하는 유료 데이터 서비스.
 
home, world 등의 일반명사들부터 1, 2, 3, 4, 5 같은 숫자도 각종 업체로부터 검색금지가 요청되어 있다.
아마도 법의 테두리를 지키기 위해 요청하는대로 다 받아준거겠지.
 
6은 검색이 되던데...]]></description>
			<pubDate>Fri, 17 Oct 2008 02:48:59 +0900</pubDate>
		</item>
		<item>
			<category><![CDATA[프로그래머 생각]]></category>
			<title>에러?</title>
			<link>http://blog.empas.com/lisyoen/30958017</link>
			<description><![CDATA[class TestClass{public:    int TestFunc( int arg ) { return ( arg * 2 ); }};
 
int main( int argc, char* argv[] ){    TestClass* pt = NULL;    int ret = pt-&amp;gt;TestFunc( 4 );    return ret;
}
인스턴스 없이 NULL 을 대입한 클래스 포인터로 멤버함수를 호출하였다.
이 프로그램을 실행하면 어떤 결과가 나올까?
 
단, 최적화 옵션이 낮게 설정되어 있어서 TestFunc 는 inline 처리가 되지 않았다.]]></description>
			<pubDate>Wed, 15 Oct 2008 15:28:14 +0900</pubDate>
		</item>
		<item>
			<category><![CDATA[프로그래머 생각]]></category>
			<title>요즘 내 기분</title>
			<link>http://blog.empas.com/lisyoen/30877437</link>
			<description><![CDATA[#define MB_SHUTUP   MB_OK
 
메시지 박스 띄울 때마다 울컥했다고...]]></description>
			<pubDate>Thu, 09 Oct 2008 15:05:52 +0900</pubDate>
		</item>
		<item>
			<category><![CDATA[프로그래머 생각]]></category>
			<title>MD5, SHA-1 격파..</title>
			<link>http://blog.empas.com/lisyoen/30715762</link>
			<description><![CDATA[뉴스가 아니고.
 
2005년 3월 얘기다. 올드 이슈라고 해야하나...
 
내가 이리도 관심이 없었던건지.
 
이제야 알았다.
 
 
맙소사.. MD5 도 모자라서 SHA-1 이 격파되다니.. (중국 무섭군...)
 
어차피 해시라는게 사용 용도가 넓어서 Collision 이 가능한 공식을 찾았다는것 만으로 쓰레기가 되는건 아니지만.
 
마치 맥가이버칼의 제일 긴 칼이 부러진것 같은 기분이랄까?
 
 
원문 기사
http://www.jabo.co.kr/sub_read.html?uid=10076&amp;amp;section=section4&amp;amp;wdate=1112251408]]></description>
			<pubDate>Sun, 28 Sep 2008 04:03:40 +0900</pubDate>
		</item>
		<item>
			<category><![CDATA[생각의 틀을 깨고]]></category>
			<title>주사위 문제</title>
			<link>http://blog.empas.com/lisyoen/30180293</link>
			<description><![CDATA[11명 중에 한 사람을 선정하기 위해서 주사위를 굴리기로 했다.주사위를 유한한 횟수 이내로 굴려 균등한 확률로 11명 중의 한 명을 선정할 수 있는 방법을 서술하시오. (단, 주사위는 정 6면체이며 주사위 이외의 다른 선택방법은 없다.)


 
이 문제를 풀 수 있습니까?
 
ps. 문제의 출제 배경 및 오답 사례 (2008/09/05 추가)
이 문제는 2008년 8월 22일 (주)네오플에 근무하는 정모씨가 출제한 '버스문제'에 응수하기 위해 출제하였습니다.
애시당초 확률 분배로는 풀 수 없다는게 쉽게 증명되기 때문에 다른 방법의 접근을 시도하라는 의도로 출제하였으나 8~90%의 사람들은 이 문제를 확률 분배, 혹은 경우의수 분배(같은 말임)로 풀려고 시도했습니다.
 
가장 흔한 오답으로는 2회 던져서 주사위 눈의 합을 이용해 배분한다는 것이었고 (이 의견은 끝없이 반복되었습니다.)
그 다음으로는 11회, 혹은 66회를 던지면 경우의수가 11의 배수가 될거라는 의견이었습니다.
예외가 발생하면 다시 굴리는 방법. 주사위가 아닌 다른 도구 혹은 선택수단(사람의 선택 포함)을 동원하는 방법.
 
하지만 이 문제는 결코 '방법을 서술하시오' 가 아닙니다.
제가 궁금했던 질문은 바로 '이 문제를 풀 수 있습니까?' 이기 때문입니다.
 
현재까지 가장 유력한 답은 '없다' 입니다.]]></description>
			<pubDate>Fri, 22 Aug 2008 19:36:16 +0900</pubDate>
		</item>
		<item>
			<category><![CDATA[그냥 생각나는대로]]></category>
			<title>좀 특별한 단축키 소개</title>
			<link>http://blog.empas.com/lisyoen/29558743</link>
			<description><![CDATA[이걸 단축키라고 불러야 하는지 잘 모르겠지만.
 
오래전부터 알고 있던. 그러나 딱히 누군가에게도 알려준적이 없던 단축키를 하나 소개한다.
(숨기려고 했던게 아니라 별로 알려줄 꺼리가 아니었다)
 
바로 Asterisk (별표, *) 다.
그냥 별표(*)가 아니고 숫자키패드(키보드 우측의 숫자 키 모음)에 있는 별표(*)다.
 
기능 및 용도는 '하위 폴더 모두 확장' 이다.
 
아래와 같이 www 폴더를 선택하고 별표(*)를 누르면.

 
아래와 같이 확장된다.

 
 
주의해야 할 점은. 
 
하위폴더가 너무 많을 땐 탐색기가 반쯤 죽는다는거다.
 
 
이 단축키는 탐색기의 폴더뿐 아니라 각종 Tree 컨트롤에서도 적용된다.
 
또다른 주의사항으로. 반대 기능을 하는 단축키는 없다는거.
 
주의사항 맞나?]]></description>
			<pubDate>Mon, 14 Jul 2008 11:48:58 +0900</pubDate>
		</item>
		<item>
			<category><![CDATA[프로그래머 생각]]></category>
			<title>90:10 법칙</title>
			<link>http://blog.empas.com/lisyoen/29459838</link>
			<description><![CDATA[● 90:10 법칙
 
90:10 법칙이라는게 있다. 
(혹자는 80:20 이라고도 부르는데 어차피 그게 그거다)
 
사람이 관계하는 각종 사회, 규칙, 산출물 등에 널리 적용되는 법칙인데 사회/경재학적으로는 이런 의미로 해석된다.
 
'10%의 사람이 90%의 돈를 소유한다'
 
비슷하게 프로그래머에게는 이런 의미로 해석된다.
 
'10% 의 코드가 90% 의 리소스를 사용한다.'
 
여기서 리소스는 주로 CPU 를 뜻한다.
이 법칙은 튜닝에 적용되곤 하는데 퍼포먼스 향상을 위해서는 90%의 리소스를 사용하는 10%의 코드를 찾아서 그 코드를 튜닝해야 한다는 뜻이겠다.
 
 
● 또 다른 90:10 법칙
 
그런데 통계학적으로 보면 또 다른 의미의 90:10 법칙이 있다.
이 법칙은 이렇게 해석한다.
 
'10%의 정답만 있어도 90%의 오답을 걸러낼 수 있다'
 
물론 ox 퀴즈나 4지선다 같은 객관식 문제에 해당되는건 아니다.
이 말은 '표본 집단이 커질 수록 적은 군집도 의미를 갖는다' 라고도 표현할 수 있지만 이 말은 더 어렵다.
 
좀 쉽게 설명하자면 이렇다.
 
승객이 100명인 비행기에 정답을 말하는 사람과 오답을 말하는 사람(?)들이 타고 있다.
이들을 각자 개별적으로 불러서 '이 비행기가 어디로 가는겁니까?' 라고 물었을 때.
답변자 100명중 10명만 정답을 말하더라도 이 비행기의 목적지를 아는데는 충분하다는거다.
 
이유는 간단하다.
오답은 분산되고 정답은 집중되기 때문이다.
 
이 법칙이 생긴 이유는 다음과 같은 잘못된 판단을 막기 위해서다.
 

'대부분 엉터리 정보일텐데 그걸로 뭘 알 수 있겠어?'
'대부분 엉터리 정보일텐데 그걸로 뭘 알 수 있겠어?'
'대부분 엉터리 정보일텐데 그걸로 뭘 알 수 있겠어?'
...
 
다시 한번 어렵게 설명하자면.
'표본 집단이 커..]]></description>
			<pubDate>Mon, 07 Jul 2008 22:00:10 +0900</pubDate>
		</item>
		<item>
			<category><![CDATA[논리와 비판]]></category>
			<title>눈높이.정서에 맞춘 인사</title>
			<link>http://blog.empas.com/lisyoen/29254627</link>
			<description><![CDATA[난 쇠고기를 좋아하는 사람이다.
하지만 정치를 싫어하는 까닭에 미국소가 쓰러지든 자빠지든 외면해왔다.
(사실 정치인들이 하는 일에 대해 언급하는게 싫을 뿐이다)
 
하지만 고개를 돌려도 뚫린 귀는 막지 못해 이런 저런 뉴스들을 듣다보니 이명박 대통령이 이런 용어를 쓰더라.
'국민의 눈높이 맞추기 위한 노력'
 
바로 엇그제 내각이 개편된건지 개판된건지 암튼 뭔가 됐다던데 거기에 두고 한나라당은 같은 말로 자화자찬을 하더라.
'국민의 눈높이와 정서에 맞춘 인사' 
 
참고로. 이건 '잘된 인사' 라는 뜻으로 쓴 말이다.
 
 
 
난 도무지 이해가 안된다.
 
눈높이에 맞춘다는 뜻은. 눈높이를 낮춘다는 뜻이다.
눈높이는 결국 그들의 사고와 이해 수준을 뜻하는 것인데 어떻게 수준을 높여서 맞출 수가 있겠는가.
 
제자가 스승의 눈높이에 맞춰서 과제를 제출할 수 있을까?
아들이 부모의 눈높이에 맞춰서 대화를 할 수 있을까?
 
눈높이를 맞춘다는 뜻은 명백히 '눈높이를 낮춘다'는 뜻이다.
(감이 안오면 '눈높이 교육'을 생각해보자)
 
 
그러니까
'내가 너희들 낮은 수준에 맞춰주겠다' 
라는거다.
 
국민들의 사고와 이해 수준이 낮아서 자기네 고수준의 정치를 감당 하지 못하고 있다는거다.
그러니까 촛불들고 뛰쳐나오는게 아니겠냐는거다.
(내 기억이 맞다면. 국민들이 최근에 멍청한짓을 한건 지난 대선이 마지막이었다.)
 
근데 왜 아무도 이 말에 분개하지 않는걸까..?
이정도로 대놓고 조롱하는것도 흔한 일은 아닌데. 다들 참고 있는건가?
그냥 나도 참고 있을껄 그랬나...
 
듣고있자니 참 어이가 없어서 한마디 적어본다.]]></description>
			<pubDate>Tue, 24 Jun 2008 20:00:18 +0900</pubDate>
		</item>
		<item>
			<category><![CDATA[프로그래머 생각]]></category>
			<title>죽은 Thread를 기다리며..</title>
			<link>http://blog.empas.com/lisyoen/28931813</link>
			<description><![CDATA[Process가 Terminate(강제종료) 될 때. 
 
Process 안에 살던 Thread 들, Object 들, (Open된)File 들도 동시에 생을 마감한다.
물론 실제로 '동시'는 아니다.
 
어떤 순서로 생을 마감하는가?
 
Thread 강제종료 -&amp;gt; Object 소멸자 호출 -&amp;gt; File Closed
 
이 순서다.
 
Thread 가 강제종료(Terminate) 되면 이 Thread 에 대한 Wait 은 영원히 return하지 않는다.
그러므로, 소멸자에서 Thread 를 Wait한 후에 리소스를 해제하도록 구성한다면 (흔한 구성이다)
Thread 가 강제종료 되버린 후 소멸자는 리소스를 해제하지 못한채 데드락에 빠져버린다.
 
따라서, Thread에 대한 Wait 은 언제나 Timeout 을 이용해 반복적으로 Thread Handle 의 유효성을 검사해줘야 한다.
 
죽은 Thread를 영원히 기다리는 일은 없어야 하기에...]]></description>
			<pubDate>Thu, 05 Jun 2008 19:12:35 +0900</pubDate>
		</item>
		<item>
			<category><![CDATA[그냥 생각나는대로]]></category>
			<title>'역지사지(易地思之)의 한계</title>
			<link>http://blog.empas.com/lisyoen/28199829</link>
			<description><![CDATA[누군가를 이해하기 위해 흔히 사용하는 방법으로 '역지사지(易地思之)'가 있다.
즉, 입장을 바꿔 생각해 본다는 거다.
가장 손쉽게 누군가를 이해할 수 있는(?) 방법이다.
 
하지만 입장을 바꿔 생각하는 것 만으로 모든 것을 다 이해할 수는 없다.
그 입장이 실제로 되어봐야 알 수 있는 (외부에서는 볼 수 없는) 수 많은 사실과 경험들
그 사람이 갖고 있는 과거, 정보, 경험들.
그 순간에 발생했던 특별한 사건.
이렇게 당신이 알 수 없는 수 많은 정보가 여전히 변수인 것이다.
 
따라서.
'역지사지'로 누군가를 이해할 수 있다고 생각하는 것 자체가 교만이고 억지다.
운 좋게 당신이 '이해했다' 라는 생각이 들더라도. 결코 자만하지 말자.
그저 당신이 세상을 너무 쉽게 바라보는 것 뿐일지도 모른다.
 
타인의 행동에 대한 당신이 취할 수 있는 마음자세는
그를 '인정' 하는것 뿐이다.]]></description>
			<pubDate>Fri, 25 Apr 2008 12:43:11 +0900</pubDate>
		</item>
	</channel>
</rss>
