<?xml version="1.0" encoding="utf-8" ?>
<?xml-stylesheet href="http://rss.egloos.com/style/blog.xsl" type="text/xsl" media="screen"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
	<title>Progressive ICT</title>
	<link>http://codecrue.egloos.com</link>
	<description>Progressive Information and Communication Technology   
진보적 성향이 미래를 바꾼다    

karisma70kr@hanmail.net
</description>
	<language>ko</language>
	<pubDate>Thu, 29 Oct 2009 01:41:39 GMT</pubDate>
	<generator>Egloos</generator>
	<image>
		<title>Progressive ICT</title>
		<url>http://pds14.egloos.com/logo/200902/18/37/f0002937.jpg</url>
		<link>http://codecrue.egloos.com</link>
		<width>80</width>
		<height>63</height>
		<description>Progressive Information and Communication Technology   
진보적 성향이 미래를 바꾼다    

karisma70kr@hanmail.net
</description>
	</image>
  	<item>
		<title><![CDATA[ 제 4회 Korea Android 세미나 참관기 ]]> </title>
		<link>http://codecrue.egloos.com/1556006</link>
		<guid>http://codecrue.egloos.com/1556006</guid>
		<description>
			<![CDATA[ 
  구글의 안드로이드에 대해 소문으로만 듣고있던 터에,&nbsp;과연 안드로이드가 뭔가 궁금해서 참석해봤다. <br><br>발표내용과 나름대로의 소견을 정리해 보고자 한다.<br><br>참석인원은 대략 300여명 정도?&nbsp; 참석자들이 의외로 꽤 많은 호응과 관심이 있었다고 느꼈으며, 이미 그들과 나는 상당한<br>격차가 있음을 느낄 수 있었다.&nbsp; 발표자들의 내용과 질문자들의 내용이 외계어라고 느껴졌기 때문에.....<br><br>1. 꾸준한 스마트폰의 신장세<br>&nbsp;&nbsp; 이건 대세라고 누구나 자신있게 말할 수 있을듯... 나도 이미 스마트폰을 사용중이니까.. <br>&nbsp;&nbsp; - 스마트폰의 시장은 전년대비 10~20%의 성장률을 기록하였다.&nbsp;&nbsp;: &nbsp;엄청난 확산 속도다.<br>&nbsp;&nbsp; - OS 점유는 Symbian이 가장 컸고, 다음이 BlackBerry, WinMobile, iPhone, 다음이 마지막으로 Android의 순이었다<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Symbian?&nbsp; 스마트폰 OS중에 Symbian이라는게 있단다.&nbsp; 너무 내가 무심했다는 생각<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;여기서 2012년 예상 시장점유율은 Android를 14.5%로 Symbian 다음 순으로 예상하고 있었다.&nbsp; 무슨 근거로?<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1) 안드로이드 OS는 오픈소스 라는 점&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2) Google 이라는 네임밸류로...<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3) 구글이 주도하는&nbsp;스마트폰 S/W의 오픈 마켓(Android Market)&nbsp;확산&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 그러나 내 의견은 글쎄다...&nbsp;&nbsp;<br><br>2.&nbsp; 구글의 안드로이드 OS는 스마트폰이 타겟이 아니라 모든 디바이스다<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;오픈소스라는&nbsp;독특한 접근방법으로 스마트폰을 시작으로 점점 우리가 흔히 접할 수 있는 모든 디바이스에<br>&nbsp;&nbsp;&nbsp;&nbsp; 적용가능하도록 안드로이드는 확대될 것이라는 얘기를 하고 있다.&nbsp; 예를 들면 IPTV, 전자액자, 셋톱박스<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;로봇, 디지털 사이니지 이외 휴대용 디바이스로서 게임기, 미디어 플레이어, 디지털 카메라 전자사전,&nbsp;PMP, MID에<br>&nbsp;&nbsp;&nbsp;&nbsp; 이르기까지.....&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp; 흠.. 그렇담&nbsp;PC시장에서 크게 자리다툼을 하고 있는 마이크로소프트의 윈도우즈와 리눅스, Mac OS X외에 구글의<br>&nbsp;&nbsp;&nbsp;&nbsp; 안드로이드까지&nbsp;시장 점유가&nbsp;이루어 진다는 얘긴데...&nbsp;&nbsp; 앞으로 개발자로서&nbsp;어떻게 준비해야 할지 난감하다.&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;참고로&nbsp;정확하게 얘기한다면 스마트폰 OS 까지 구글에서&nbsp;추천하는 OS는 Android이며, 그&nbsp;외 PMP 또는 MID 부터는<br>&nbsp;&nbsp;&nbsp;&nbsp; Chrome&nbsp;OS가 적당하다고 얘기하고 있다.&nbsp;<br><br>3.&nbsp;세계 굴지의 스마트폰 생산자들이 Android를&nbsp;탑재하여 신제품을 출시 준비하고 있다.<br>&nbsp;&nbsp;&nbsp;&nbsp; 특히 대만 스마트폰 전문업체인 HTC는 추후 발표되는&nbsp;스마트폰 제품에 Android를 적극 탑재하여 출시중이며 그외&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp; 삼성, LG, 소니에릭슨등에서도 출시되었거나 출시할 예정이다.&nbsp;&nbsp;(이미 출시된 제품들은 우리는 경험해 보지 못한 <br>&nbsp;&nbsp;&nbsp;&nbsp; 모델들이었다.&nbsp;왜냐하면 수출용 모델에만 적용되어 있었다. )&nbsp;<br><br>4. Android 플랫폼은 Open<br>&nbsp;&nbsp;&nbsp;&nbsp;Android플랫폼은&nbsp;Linux기반의 소스로서 공개되어 있으므로 누구든 OS를 수정하고 보완하여 사용 가능하다.&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;그래서 경계가 없고&nbsp;가격이 무료다 라는 장점이 있으므로&nbsp;"Linux의 또다른 Fragmentation"이라고도 부른다.&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;누구나 Android를 수정하고 보완하여 배포할 수 있으며, 이를 기반으로 한 어플리케이션 개발도 자유롭다.&nbsp;<br>&nbsp;&nbsp;&nbsp; 단&nbsp;어느 누구도 Android OS의&nbsp;재판매나 어플리케이션 판매는 특정 시장에서 판매할 수 없다. 구글이 이를<br>&nbsp;&nbsp;&nbsp; 용인하지 않는 이유는&nbsp;시장의 Filtering을 허용하지 않기 때문이다.&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(이 사실은 S/W 시장에 매우 자극적인 요소가 될것 같다.)<br><br>&nbsp;&nbsp;&nbsp; * 구글의 소스는 100% 공개되는 것이 아니다.&nbsp; 예를 들면&nbsp;Google Map Client 소스는 공개되지&nbsp;않는다.&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;어떤 소스가 공개되고, 어떤 소스가 공개되지 않는지 잘 관찰한다면 구글의 마케팅 전략이 보일 것이라 믿는다.&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp; * 핸드폰도 이젠 특정 회사의 제품에&nbsp;특정&nbsp;OS가 설치된 것을 구매하는 것이 아니라, 용산의 조립품 PC를 우리가 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 손쉽게 구매하듯이 표준화된&nbsp;폰 디바이스에 자신이 원하는 케이스로&nbsp;집어넣고 Open&nbsp;소스로 개발된 Android를&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;탑재하여 사용하는 날이 올 것이라고 예견하고 있다.&nbsp;&nbsp; 이는 스마트폰의 하드웨어 시장에도&nbsp;표준화와 동시에 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 커다란 변화가 올것이라는 예상이다.<br><br>&nbsp;&nbsp;&nbsp; * 지금까지의 내용을&nbsp;들여다보고 있자니, 애플의&nbsp;i-Tunes와 개발플랫폼 X-Code가 생각난다.&nbsp; Open Source라는<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 점을 제외하고, 개발자에게 Open API를 제공하고, 인터넷의 공인된 시장을 제공하여&nbsp;Profit Share를 7:3으로&nbsp;한다는<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 점이 매우 유사하다.&nbsp;&nbsp;&nbsp;게다가 내년도 목표가&nbsp;아이폰 OS의 기능과 시장 점유를&nbsp;따라 가는것이다.&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp; <br>5. Android의 Fragmentation<br>&nbsp;&nbsp;&nbsp; Java가 성공하지 못한 이유는 Fragmentation이라는 키워드에 있단다.&nbsp; OS만 가지고는 플랫폼이라 할&nbsp;수 없으며<br>&nbsp;&nbsp;&nbsp; 하드웨어 + 소프트웨어,&nbsp; 이 두가지 요소가 융합되어야 진정한 플랫폼이라&nbsp;할 수 있단다.&nbsp;<br>&nbsp;&nbsp;&nbsp; 잠깐!!&nbsp; 맞다.&nbsp; 얼마전 미국의 Oracle은 Sun사를 M&amp;A 했다.&nbsp;&nbsp; 들어맞는다.&nbsp; 하드웨어와 소프트웨어의 융합만이<br>&nbsp;&nbsp;&nbsp;&nbsp;진정한 플랫폼이라 할 수 있기 때문?&nbsp;&nbsp;&nbsp; 미국넘들이&nbsp;워낙에 멀리보고&nbsp;철두철미하게 준비하는 넘들이란건 누구나<br>&nbsp;&nbsp;&nbsp; 잘 알것이므로 한번쯤 깊이 생각해 볼&nbsp;내용이다.&nbsp;<br>&nbsp;&nbsp; <br><br>6.&nbsp;무조건 스마트폰 시장에서 Android를&nbsp;기반으로 성장이 가능하다?&nbsp;<br>&nbsp;&nbsp;&nbsp;개인적으로 몇가지 의문이 드는 점이 있다.&nbsp;<br>&nbsp;&nbsp;<br>&nbsp;&nbsp; - Open&nbsp;소스가&nbsp;확산의 효과와 발전적 요소를 지니고 있기는 하지만, 안드로이드의 Open&nbsp;소스는 아직까지<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 안정적이지 않으며, 안정적이고 발전되려면 상당히 많은 개발자들의 수고와 희생이 필요하다.&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 내 맘대로 저작권에 크게 구애받지&nbsp;않고 OS를 수정하고 기능을 보강할 수 있는&nbsp;매력은 있지만 그만큼<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 개발자에게 Contribute를 요구하고 있다. <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Open되어 있는&nbsp;소스를 맘놓고 주무를 수 있는 누군가 있다면 당신은 천재다.&nbsp;&nbsp;<br><br>&nbsp;&nbsp; -&nbsp;Android Market은 PC에서는 접속이 불가능하며 오직&nbsp;Android에서만 접속이 가능하다.&nbsp; 그래서&nbsp;Android 기반<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 어플리케이션에 대한 기능성이나 편리성, 효용성에 대해 파악하려면 그 쪼그만 스마트폰 액정에 집중하여<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 속도느린 스마트폰을 인내하면서 찾아봐야 한다.&nbsp;&nbsp; 확실히 애플의 i-Tunes와는 대조적이다.&nbsp;&nbsp;<br><br>&nbsp;&nbsp; - Android 환경에서 개발하려면&nbsp;Java를&nbsp;마스터 해야 한다.&nbsp; Android가 제공하는 개발 플랫폼은 Java언어란다.&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp; Objective C라는 언어를 사용하는 IPhone의 X-Code와는 다른 점이다.&nbsp;<br><br>7. 개인적 소견<br>&nbsp;&nbsp;&nbsp; 구글이 왜 안드로이드를 개방하고 구글폰을 만들어서 판매하고 있으며, 개발자들에게&nbsp;웹상에 공인된 마켓에서&nbsp;<br>&nbsp;&nbsp;&nbsp; 거래를 통한&nbsp;이익공유가 가능하도록 활성화 하는 가? 라는 질문에 구글은 안드로이드를 모바일 검색을 강화시키기 <br>&nbsp;&nbsp;&nbsp; 위한 하나의 수단으로서 생각하고 있다.&nbsp; 그 가운데&nbsp;5년간 암흑기였던 Mobile&nbsp;소프트웨어 시장을 회복시키기 위한<br>&nbsp;&nbsp;&nbsp; 모토로서 Restore Mobile Ecosystem을 외치고 있다라고&nbsp;하고 있다.&nbsp;<br>&nbsp;&nbsp;&nbsp; 물론 이런 내용가운데 과연 구글이&nbsp;"검색"이라는 키워드를 더욱 확대시키고 포지셔닝을 확립하기위한 수단으로<br>&nbsp;&nbsp;&nbsp; 이 모든 것들을 행하고 있을까? 라는 생각보다는 "검색"이라는 그 커다란 키워드 내에 시장성을 지닌 어떤 것이든<br>&nbsp;&nbsp;&nbsp; 소화해서 잡아먹겠다라고 판단이 들었다.&nbsp;<br><br>&nbsp;&nbsp;&nbsp; 최근들어 OS 시장의 동향을 보면&nbsp;지금까지 OS시장의 상당부분을 마이크로 소프트가 독점이나&nbsp;마찬가지로 장악하여 <br>&nbsp;&nbsp;&nbsp; 왔다면, 이제는 Open OS의&nbsp;핵인 Linux의&nbsp;맹활약으로&nbsp;마이크로소프트를 긴장시키고 있으며,&nbsp;그 뒤를 이어&nbsp;구글의&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;Android, Chrome&nbsp;OS의 활약이 기대된다.&nbsp;&nbsp; 게다가&nbsp;누구나 개발자로 참여하여 체계적으로 개발해온 오픈 소스가 갖는&nbsp;<br>&nbsp;&nbsp;&nbsp; 저력은 매우 상당하여&nbsp;어쩌면 저 거대한 마이크로소프트의&nbsp;공룡이 한순간 넘어갈지도 모르겠다는 생각이 든다.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp; 이러한 시기에 힘이 드는 건&nbsp;어떤 OS가 시장점유율이 높은 가에 따라 개발자들은 해당 OS를 공부하고 특성을 익혀서<br>&nbsp;&nbsp;&nbsp; 프로그래밍하는데 참고하지 않으면 안되며, 해당 OS에 특화된 개발언어에 익숙해져야 하는 압박에 시달리기<br>&nbsp;&nbsp;&nbsp; 마련이다.&nbsp; 그래서 발빠른 개발자들은 벌써부터 시중에서&nbsp;판매되고 있는 "구글폰 안드로이드 프로그래밍" 또는<br>&nbsp;&nbsp;&nbsp; "아이폰 X-Code 프로그래밍"이라는 책을 사서 들여다보며 이마에 주름하나 더 생기는지 모르겠다.&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp; 시장은 변화되고 바뀌기 나름이지만 극심한 변화는 오히려 소프트웨어 개발에 소모적 요소를 양산하고, 개발자들을<br>&nbsp;&nbsp;&nbsp; 지치게 한다거나 몰입도를 낮추게 되는 부정적 요소가 있음을&nbsp;인정하지 않을 수 없다.<br>&nbsp;&nbsp;&nbsp;&nbsp;지금도 12시가 넘도록 모니터를 들여다보며 컴퓨터와 씨름하고 있는 그대들에게 보다 희망적 그날이 오기를&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;간절히 기대할 뿐이다.&nbsp;<br><br><br>&nbsp;&nbsp;&nbsp;&nbsp;<br><br><br>&nbsp;&nbsp;&nbsp;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp; 			 ]]> 
		</description>
		<category>IT 비지니스 관련</category>

		<comments>http://codecrue.egloos.com/1556006#comments</comments>
		<pubDate>Mon, 26 Oct 2009 14:00:17 GMT</pubDate>
		<dc:creator>Dreamer</dc:creator>
	</item>
	<item>
		<title><![CDATA[ 안철수 교수님의 "개발자가 성공하는 길" ]]> </title>
		<link>http://codecrue.egloos.com/1541621</link>
		<guid>http://codecrue.egloos.com/1541621</guid>
		<description>
			<![CDATA[ 
  <p><br>안철수교수님의 강의 내용이 너무 좋아서 간략히 추려보았다.&nbsp; 이는 내게 두고두고 새겨야 할 소중한 메세지인듯...<br><br>개발자로서 갖춰야 할 요소</p><p><br>1. 개발자라면 실력, 전문지식이 중요하다<br>&nbsp;&nbsp; C 프로그래머와 Assembly 프로그래머 <br>&nbsp;&nbsp; 세계적인 명성의 프로그래머들은 기계어나 Assembly 프로그래머<br>&nbsp;&nbsp; 프로그램 사이즈를 줄이고, 최적화를 노력함<br>&nbsp;&nbsp; 전문성을 기르기 위해서는 가장 기본적인 밑바탕의 실력이 중요하다.<br>&nbsp;&nbsp; </p><p>2. 창의력<br>&nbsp;&nbsp; 이미 구현되어 있는 알고리즘(예: Sort)를 가져다 사용하는 경우가 많지만, 스스로 이를 구현해<br>&nbsp;&nbsp; 보거나 라이브러리 소스를 분석하여 이해할 노력이 필요하다. </p><p>3. 장인정신<br>&nbsp;&nbsp; 도자기는 아무나 만들수 있지만, 백자/청자는 아무나 만들 수 없음, 이는 곧 장인<br>&nbsp;&nbsp; 옛날에 프로그래머는 혼자서 코딩을 다 하다보니 스스로 프로그램하고 스스로 테스트하고 진행해 나감<br>&nbsp;&nbsp; 이제는 프로그램의 규모가 커지면서 분업화되다보니, 자신의 버그를 QA로 넘기고 말거나, 스스로의<br>&nbsp;&nbsp; 버그에 대해 부끄러워하지 않는 것이 문제 <br>&nbsp;&nbsp; 그 사람의 실력과 마음가짐에서 퀄리티와 성능이 나옴</p><p>4. 커뮤니케이션<br>&nbsp;&nbsp; 예전에 혼자서 일할때는 타인과 많은 커뮤니케이션이 필요없었으나, 지금은 전문 인력들이 같이<br>&nbsp;&nbsp; 일을 해야 하는 환경이므로 자신의 지식과 의사표현할 때 잘 전달할 수 있어야 한다. <br>&nbsp;&nbsp; 전문지식 x 커뮤니케이션이 진정한 실력이다. <br>&nbsp;&nbsp; 커뮤니케이션의 능력에 대해 중요하게 생각할것</p><p>5. 팀웍<br>&nbsp;&nbsp; 각자 분담맡은 역할에 따라 일을 하는데, 미처 예기치 못한 공백이 발생하게 됨 <br>&nbsp;&nbsp; 내 업무범위외에 대해서는 타협하지 않고, 내 업무범위만 고집하는 것도 문제고<br>&nbsp;&nbsp; 먼저 업무가 끝났으면 도와주지 않고 돌아보지 않는 것이 문제임<br>&nbsp;&nbsp; 단기간은 편할지 몰라도 나중에는 다른 이들에게 따돌림을 받게 됨<br>&nbsp;&nbsp; 빈곳을 내가 채울 수 있다는 넉넉한 마음을 갖도록 할 것</p><p><br>외국프로그래머들이 잘해서 그들을 쫓아가야 한다고 생각하지 않음<br>Coder와 Programmer는 다름<br>처음 프로그래밍에 대한 재미는 직접 코딩을 해보고 구동될 때의 기쁨이 프로그래머들의 만족감<br>그러나 이게 다가 아니고, 전체적으로 설계를 하고 확장성을 고려하고 디자인 함<br>너무 코딩의 재미에 집착하다보면 그런 전반적 프로젝트 관리에 멀어지게 됨<br>프로그래밍도 발전단계가 있는데 코딩의 수준에 머물러 있게 됨 </p><p><br>창의적 마인드란</p><p>창의력, 창조력은 많이 얘기들하지만 쉽지 않으며, 시간이 오래 걸림 <br>배워서 발전할 수 있는 특수성이 있음<br>처음에는 프로그래밍의 한계가 있어서, 다른 이들의 코딩을 이해하려고 노력하다보니 <br>계속 그 분야에 일을 하던 사람들이 창의력이나 창조력을 발휘할 수 있다고 생각함. <br>끊임없이 오랫동안 고민해서 서서히 얻어나가는 것</p><p><br>커뮤니케이션의 중요성<br>&nbsp;<br>말을 잘하려면?<br>사람들의 오해가 말을 잘한는 것이 커뮤니케이션의 능력이라고 착각하지만, 가장 잘 듣는 능력이<br>우선이다.&nbsp; 개발자들 대부분이 듣는 능력이 떨어짐.&nbsp;&nbsp; 자신의 로직이나 개념에만 잡혀서 상대방의<br>생각을 이해하려고 하지않음.&nbsp; 상대방의 이해수준을 충분히 고려해라.</p><p><br>개발자들의 부족한 면이 있다면?<br>자기 자신이 맡은 일을 잘해야 하고, 팀웍크, 커뮤니케이션 능력, 하나 더 주문한다면<br>다른 분야에 대한 관심과 상식, 포용력이 필요하다<br>예전의 전문가는 한 분야의 전문적 지식만 갖추면 되지만 이제는 T처럼 수평적으로<br>많은 지식을 겸비할 필요가 있다.&nbsp; 다른 세상이 어떻게 변해가고 있는지 둘러볼 필요가 있음</p><p><br>45세 개발자 어떻게해야 하나요?<br>개발을 계속하고 싶어서 관리를 안하려 하는데 어떻게해야 하나요?</p><p>외국의 경우 백발이 프로그램하는 사람도 지속적으로 개발이 가능함<br>장기적 경험으로 많은 도움을 줄 수 있음<br>그러나 우리나라는 그런 환경이 안되고 있음 <br>개발자가 계속 개발자로 남지 못하게 하는 환경이 문제<br>관리자가 개발자의 수직적으로 상위 레벨이 아님<br>인사제도, 조직구조가 문제<br>자주 급변하는 환경에 대해 부지런히 따라가지 못하는 것도 문제<br>스스로 계속해서 급변하는 환경에 대응하고 노력한다면, 회사에서 <br>이러한 장기 개발자에 대해 제도적으로 만들어 주면 좋겠다<br>이를 토대로 사회적 변화가 생길 수 있도록 노력해야 한다.</p><p><br>시간관리 능력 <br>시간관리 노하우는?</p><p>일을 안하면 책을 쓸 수 없음.&nbsp; 정말 값있는 책은 스스로 직접 일을 하면서 겪은 것을 정리해서<br>책을 쓴다면 보다 가치있는 책이 될 것임<br>우선은 일을 할 때 책을 쓸 수 있음,&nbsp; 단기간에 집필은 불가능하고, 장기간에 걸쳐서 집필이 가능하며<br>매일 일정 분량씩 소화해서 쓸 수 있도록 습과화가 필요</p><p><br>개발자에게 비젼이란?<br>개발자들이 가져야 할 비젼은?</p><p>전망만큼 덧없는 것이 없다.&nbsp; 전망은 외부인이 주는 것.&nbsp; 비젼은 개인이 갖는 것.&nbsp; <br>비젼은 꼭 가져라.&nbsp;&nbsp; 보통 성공이라고 하면 돈이 많거나 유명인사가 되는 것이긴 하나 이는 사회적 기준<br>사람들마다 생각과 가치관과 경험이 다름. 그러므로 성공의 정의도 제각각이어야 한다.<br>성공의 잣대는 스스로 만드는 것. <br>정말로 소중한 것은 각자 나름대로 생각을 해보고, 각자 성공의 정의가 필요하다<br>외부에서 보기에 성공했다라고 보일지라도, 스스로는 허탈할 수 있음</p><p><br>&nbsp;</p><a href="http://www.devmento.co.kr/devmain/ucc/ucc/ucc_detail.jsp?main_id=SUCC1W001&amp;cate_code=ADAGAA&amp;dataSeq=76">http://www.devmento.co.kr/devmain/ucc/ucc/ucc_detail.jsp?main_id=SUCC1W001&amp;cate_code=ADAGAA&amp;dataSeq=76</a><p><br>&nbsp;</p>			 ]]> 
		</description>
		<category>기타</category>

		<comments>http://codecrue.egloos.com/1541621#comments</comments>
		<pubDate>Thu, 08 Oct 2009 04:10:52 GMT</pubDate>
		<dc:creator>Dreamer</dc:creator>
	</item>
	<item>
		<title><![CDATA[ PostgreSQL 8.3 개요설명 (2) ]]> </title>
		<link>http://codecrue.egloos.com/1502068</link>
		<guid>http://codecrue.egloos.com/1502068</guid>
		<description>
			<![CDATA[ 
  <br>POSTGRES 프로젝트는 마이클 스톤베이커 교수에 의해 진행되었으며, 초기 컨셉은 POSTGRES의 디자인이며, 데이터 모델도 POSTGRES data model에 있는 초기모델이다.&nbsp;&nbsp; 그외 Rule System의 디자인은 POSTGRES rules system 디자인을 따르고 있다.&nbsp; <br><br><br><strong>POSTGRES</strong>는 상이한 연구와 제품 응용개발로 구현되어왔다.&nbsp;&nbsp;&nbsp; <br><br>Postgres95는 1994년 앤드류 유와 졸리 첸에 의해&nbsp;interpreter SQL언어가 추가되었고. Posgtres95라는 새로운 이름으로 계속해서&nbsp;웹에서 배포되고 오픈소스로 POSTGRES 버클리 코드를 기준으로 계승되어 개발되어왔다.&nbsp; <br><br>- query 언어 PostQUE은 SQL로 대체되었고, Subqueries는 아직까지 PostgreSQL을 지원하지 않는다.&nbsp; 그러나 사용자 정의 SQL function들과 함께 Postgres95 안에서 흉내낼 수 있다.&nbsp; <br><br><br><strong>PostgreSQL</strong>은 1996년 "Postgres95"가 테스트 시기가 아님을 분명히 하게 되었다.&nbsp;&nbsp; PostgreSQL 이라는 새로운 이름을 선택하게 되고&nbsp;original POSTGRES와 최신버젼 SQL 성능사이에 관계를 반영하기 위함이다. <br><br><br>			 ]]> 
		</description>
		<category>Spatial DBMS</category>

		<comments>http://codecrue.egloos.com/1502068#comments</comments>
		<pubDate>Fri, 21 Aug 2009 02:11:41 GMT</pubDate>
		<dc:creator>Dreamer</dc:creator>
	</item>
	<item>
		<title><![CDATA[ PostgreSQL 8.3에 관하여.. (1) ]]> </title>
		<link>http://codecrue.egloos.com/1502053</link>
		<guid>http://codecrue.egloos.com/1502053</guid>
		<description>
			<![CDATA[ 
  PostgreSQL은 POSTGRES ver(4.2)를 기반으로한 ORDBMS(Object-Relational Management System)으로서 캘리포니아 버클리 컴퓨터학과에서 개발되었다.&nbsp;&nbsp;<br><br>PostgreSQL은&nbsp;&nbsp;original&nbsp;버클리 코드를 계승한 오픈소스며, 최근의 기술적 요소를 대부분 지원하고 있다.<br><br>&nbsp;- complex queries<br>&nbsp;- foreign keys<br>&nbsp;- triggers<br>&nbsp;- views<br>&nbsp;- transactional integrity<br>&nbsp;- multiversion concurrency control <br><br>이에 다양한 방법으로 사용자가 원하는 확장이 가능하다&nbsp;<br>&nbsp;<br>&nbsp; - data types<br>&nbsp; - functions<br>&nbsp; - operators<br>&nbsp; - aggregate functions<br>&nbsp; - index methods<br>&nbsp; - procedural languages <br><br>보다 자유로운 라이센스 정책으로 PostgreSQL은 사용할 수 있고 수정되고 누구나에게 배포가능하게 되었다. <br><br>			 ]]> 
		</description>
		<category>Spatial DBMS</category>

		<comments>http://codecrue.egloos.com/1502053#comments</comments>
		<pubDate>Fri, 21 Aug 2009 01:49:46 GMT</pubDate>
		<dc:creator>Dreamer</dc:creator>
	</item>
	<item>
		<title><![CDATA[ DBMS 벤치마킹 자료 ]]> </title>
		<link>http://codecrue.egloos.com/1475055</link>
		<guid>http://codecrue.egloos.com/1475055</guid>
		<description>
			<![CDATA[ 
  <span style="FONT-SIZE: 100%; FONT-FAMILY: Arial">The following table summarizes the database comparison. </span><br><br><div style="text-align:center"><img class="image_mid" border="0" onmouseover="this.style.cursor='pointer'" alt="" src="http://pds15.egloos.com/pds/200907/22/37/f0002937_4a6695f17a19f.gif" width="500" height="607" onclick="Control.Modal.openDialog(this, event, 'http://pds15.egloos.com/pds/200907/22/37/f0002937_4a6695f17a19f.gif');" /></div><br><div style="text-align:center"><img class="image_mid" border="0" onmouseover="this.style.cursor='pointer'" alt="" src="http://pds13.egloos.com/pds/200907/22/37/f0002937_4a6695f6bac0e.gif" width="500" height="598" onclick="Control.Modal.openDialog(this, event, 'http://pds13.egloos.com/pds/200907/22/37/f0002937_4a6695f6bac0e.gif');" /></div>			 ]]> 
		</description>
		<category>Spatial DBMS</category>

		<comments>http://codecrue.egloos.com/1475055#comments</comments>
		<pubDate>Wed, 22 Jul 2009 04:30:50 GMT</pubDate>
		<dc:creator>Dreamer</dc:creator>
	</item>
	<item>
		<title><![CDATA[ OGC 표준 - PolyhedralSurface 정의 (2) ]]> </title>
		<link>http://codecrue.egloos.com/1474927</link>
		<guid>http://codecrue.egloos.com/1474927</guid>
		<description>
			<![CDATA[ 
  8.2.8 Description of WKBGeometry representations<br>The Well-known Binary Representation for Geometry is described below. The basic building block is the<br>representation for a Point, which consists of a number Doubles, depending on the coordinate referece system in<br>use for the geometry. The representations for other geometric objects are built using the representations for<br>geometric objects that have already been defined.<br>// Basic Type definitions<br>// byte : 1 byte<br>// uint32 : 32 bit unsigned integer (4 bytes)<br>// double : double precision number (8 bytes)<br>// Building Blocks : Coordinate, LinearRing<br>Point {<br>double x;<br>double y;<br>}<br><br>PointZ {<br>double x;<br>double y;<br>double z;<br>}<br><br>PointM {<br>double x;<br>double y;<br>double m;<br>}<br><br>PointZM {<br>double x;<br>double y;<br>double z;<br>double m;<br>}<br><br>LinearRing {<br>uint32 numPoints;<br>Point points[numPoints];<br>}<br><br>LinearRingZ {<br>uint32 numPoints;<br>PointZ points[numPoints];<br>}<br><br>LinearRingM {<br>uint32 numPoints;<br>PointM points[numPoints];<br>}<br><br>LinearRingZM {<br>uint32 numPoints;<br>PointZM points[numPoints];<br>}<br><br>enum WKBByteOrder {<br>wkbXDR = 0, // Big Endian<br>wkbNDR = 1 // Little Endian<br>}<br><br>enum WKBGeometryType {<br>wkbPoint = 1,<br>wkbLineString = 2,<br>wkbPolygon = 3,<br>wkbTriangle = 17<br>wkbMultiPoint = 4,<br>wkbMultiLineString = 5,<br>wkbMultiPolygon = 6,<br>wkbGeometryCollection = 7,<br>wkbPolyhedralSurface = 15,<br>wkbTIN = 16<br>wkbPointZ = 1001,<br>wkbLineStringZ = 1002,<br>wkbPolygonZ = 1003,<br>wkbTrianglez = 1017<br>wkbMultiPointZ = 1004,<br>wkbMultiLineStringZ = 1005,<br>wkbMultiPolygonZ = 1006,<br>wkbGeometryCollectionZ = 1007,<br>wkbPolyhedralSurfaceZ = 1015,<br>wkbTINZ = 1016<br>wkbPointM = 2001,<br>wkbLineStringM = 2002,<br>wkbPolygonM = 2003,<br>wkbTriangleM = 2017<br>wkbMultiPointM = 2004,<br>wkbMultiLineStringM = 2005,<br>wkbMultiPolygonM = 2006,<br>wkbGeometryCollectionM = 2007,<br>wkbPolyhedralSurfaceM = 2015,<br>wkbTINM = 2016<br>wkbPointZM = 3001,<br>wkbLineStringZM = 3002,<br>wkbPolygonZM = 3003,<br>wkbTriangleZM = 3017<br>wkbMultiPointZM = 3004,<br>wkbMultiLineStringZM = 3005,<br>wkbMultiPolygonZM = 3006,<br>wkbGeometryCollectionZM = 3007,<br>wkbPolyhedralSurfaceZM = 3015,<br>wkbTinZM = 3016,<br>}<br><br>WKBPoint {<br>byte byteOrder;<br>static uint32 wkbType = 1;<br>Point point;<br>}<br><br>WKBPointZ {<br>byte byteOrder;<br>static uint32 wkbType = 1001;<br>PointZ point;<br>}<br><br>WKBPointM {<br>byte byteOrder;<br>static uint32 wkbType = 2001;<br>PointM point;<br>}<br><br>WKBPointZM {<br>byte byteOrder;<br>static uint32 wkbType = 3001;<br>PointZM point;<br>}<br><br>WKBLineString {<br>byte byteOrder;<br>static uint32 wkbType = 2;<br>uint32 numPoints;<br>Point points[numPoints];<br>}<br><br>WKBLineStringZ {<br>byte byteOrder;<br>static uint32 wkbType = 1002;<br>uint32 numPoints;<br>PointZ points[numPoints]<br>}<br><br>WKBLineStringM {<br>byte byteOrder;<br>static uint32 wkbType = 2002;<br>uint32 numPoints;<br>PointM points[numPoints]<br>}<br><br>WKBLineStringZM {<br>byte byteOrder;<br>static uint32 wkbType = 3002;<br>uint32 numPoints;<br>PointZM points[numPoints]<br>}<br><br>WKBPolygon {<br>byte byteOrder;<br>static uint32 wkbType = 3;<br>uint32 numRings;<br>LinearRing rings[numRings]<br>}<br><br>WKBPolygonZ {<br>byte byteOrder;<br>static uint32 wkbType = 1003;<br>uint32 numRings;<br>LinearRingZ rings[numRings]<br>}<br><br>WKBPolygonM {<br>byte byteOrder;<br>static uint32 wkbType = 2003;<br>uint32 numRings;<br>LinearRingM rings[numRings]}<br><br>WKBPolygonZM {<br>byte byteOrder;<br>static uint32 wkbType = 3003;<br>uint32 numRings;<br>LinearRingZM rings[numRings]<br>}<br><br>WKBTriangle {<br>byte byteOrder;<br>static uint32 wkbType = 17;<br>uint32 numRings;<br>LinearRing rings[numRings]<br>}<br><br>WKBTriangleZ {<br>byte byteOrder;<br>static uint32 wkbType = 10 17;<br>uint32 numRings;<br>LinearRingZ rings[numRings]<br>}<br><br>WKBTriangleM {<br>byte byteOrder;<br>static uint32 wkbType = 20 17;<br>uint32 numRings;<br>LinearRingM rings[numRings]<br>}<br><br>WKBTriangleZM {<br>byte byteOrder;<br>static uint32 wkbType = 30 17;<br>uint32 numRings;<br>LinearRingZM rings[numRings]<br>}<br><br>WKBPolyhedralSurface {<br>byte byteOrder;<br>static uint32 wkbType = 15;<br>uint32 numPolygons;<br>WKBPolygon polygons[numPolygons]<br>}<br><br>WKBPolyhedralSurfaceZ {<br>byte byteOrder;<br>static uint32 wkbType=1015;<br>uint32 numPolygons;<br>WKBPolygonZ polygons[numPolygons]<br>}<br><br>WKBPolyhedralSurfaceM {<br>byte byteOrder;<br>static uint32 wkbType=2015;<br>uint32 numPolygons;<br>WKBPolygonM polygons[numPolygons]<br>}<br><br>WKBPolyhedralSurfaceZM {<br>byte byteOrder;<br>static uint32 wkbType=3015;<br>uint32 numPolygons;<br>WKBPolygonZM polygons[numPolygons]<br>}<br><br>WKBTIN {<br>byte byteOrder;<br>static uint32 wkbType = 16;<br>uint32 numPolygons;<br>WKBPolygon polygons[numPolygons]<br>}<br><br>WKBTINZ {<br>byte byteOrder;<br>static uint32 wkbType=1016;<br>uint32 numPolygons;<br>WKBPolygonZ polygons[numPolygons]<br>}<br><br>WKBTINM {<br>byte byteOrder;<br>static uint32 wkbType=2016;<br>uint32 numPolygons;<br>WKBPolygonM polygons[numPolygons]<br>}<br><br>WKBTINZM {<br>byte byteOrder;<br>static uint32 wkbType=3016;<br>uint32 numPolygons;<br>WKBPolygonZM polygons[numPolygons]<br>}<br><br>WKBMultiPoint {<br>byte byteOrder;<br>static uint32 wkbType=4;<br>uint32 numPoints;<br>WKBPoint points[numPoints]<br>}<br><br>WKBMultiPointZ {<br>byte byteOrder;<br>static uint32 wkbType=1004;<br>uint32 numPoints;<br>WKBPointZ points[numPoints]<br>}<br><br>WKBMultiPointM {<br>byte byteOrder;<br>static uint32 wkbType=2004;<br>uint32 numPoints;<br>WKBPointM points[numPoints]<br>}<br><br>WKBMultiPointZM {<br>byte byteOrder;<br>static uint32 wkbType=3004;<br>uint32 numPoints;<br>WKBPointZM points[numPoints]<br>}<br><br>WKBMultiLineString {<br>byte byteOrder;<br>static uint32 wkbType = 5;<br>uint32 numLineStrings;<br>WKBLineString lineStrings[numLineStrings]<br>}<br><br>WKBMultiLineStringZ {<br>byte byteOrder;<br>static uint32 wkbType = 1005;<br>uint32 numLineStrings;<br>WKBLineStringZ lineStrings[numLineStrings]<br>}<br><br>WKBMultiLineStringM {<br>byte byteOrder;<br>static uint32 wkbType = 2005;<br>uint32 numLineStrings;<br>WKBLineStringM lineStrings[numLineStrings]<br>}<br><br>WKBMultiLineStringZM {<br>byte byteOrder;<br>static uint32 wkbType = 3005;<br>uint32 numLineStrings;<br>WKBLineStringZM lineStrings[numLineStrings]<br>}<br><br>WKBMultiPolygon {<br>byte byteOrder;<br>static uint32 wkbType = 6;<br>uint32 numPolygons;<br>WKBPolygon polygons[numPolygons]<br>}<br><br>WKBMultiPolygonZ {<br>byte byteOrder;<br>static uint32 wkbType = 1006;<br>uint32 numPolygons;<br>WKBPolygonZ polygons[numPolygons]<br>}<br><br>WKBMultiPolygonM {<br>byte byteOrder;<br>static uint32 wkbType = 2006;<br>uint32 numPolygons;<br>WKBPolygonM polygons[numPolygons]<br>}<br><br>WKBMultiPolygonZM {<br>byte byteOrder;<br>static uint32 wkbType = 3006;<br>uint32 numPolygons;<br>WKBPolygonZM polygons[numPolygons]<br>}<br><br>WKBGeometry {<br>Union <br>{<br>WKBPoint point;<br>WKBLineString linestring;<br>WKBPolygon polygon;<br>WKBTriangle triangle<br>WKBPolyhedralSurface polyhedralsurface<br>WKBTIN tin<br>WKBMultiPoint mpoint;<br>WKBMultiLineString mlinestring;<br>WKBMultiPolygon mpolygon;<br>WKBGeometryCollection collection;<br>}<br>};<br><br>WKBGeometryZ <br>{<br>union <br>{<br>WKBPointZ pointz;<br>WKBLineStringZ linestringz;<br>WKBPolygonZ polygonz;<br>WKBTriangleZ trianglez<br>WKBPolyhedralSurfaceZ Polyhedralsurfacez;<br>WKBTinZ tinz<br>WKBMultiPointZ mpointz;<br>WKBMultiLineStringZ mlinestringz;<br>WKBMultiPolygonZ mpolygonz;<br>WKBGeometryCollectionZ collectionz;<br>}<br>};<br><br>WKBGeometryM <br>{<br>Union <br>{<br>WKBPointM pointm;<br>WKBLineStringM linestringm;<br>WKBPolygonM polygonm;<br>WKBTriangleM trianglem<br>WKBPolyhedralSurfaceM Polyhedralsurfacem;<br>WKBTinM tinm<br>WKBMultiPointM mpointm;<br>WKBMultiLineStringM mlinestringm;<br>WKBMultiPolygonM mpolygonm;<br>WKBGeometryCollectionM collectionm;<br>}<br>};<br><br>WKBGeometryZM <br>{<br>Union <br>{<br>WKBPointZM pointzm;<br>WKBLineStringZM linestringzm;<br>WKBPolygonZM polygonzm;<br>WKBTriangleZM trianglezm<br>WKBPolyhedralSurfaceM Polyhedralsurfacezm;<br>WKBTinZM tinzm<br>WKBMultiPointZM mpointzm;<br>WKBMultiLineStringZM mlinestringzm;<br>WKBMultiPolygonZ mpolygonzm;<br>WKBGeometryCollectionZM collectionzm;<br>}<br>};<br>			 ]]> 
		</description>
		<category>Spatial DBMS</category>

		<comments>http://codecrue.egloos.com/1474927#comments</comments>
		<pubDate>Wed, 22 Jul 2009 02:02:09 GMT</pubDate>
		<dc:creator>Dreamer</dc:creator>
	</item>
	<item>
		<title><![CDATA[ C# 그래픽 - Windows Form (6) - Form의 태생에서 죽기까지 ]]> </title>
		<link>http://codecrue.egloos.com/1458585</link>
		<guid>http://codecrue.egloos.com/1458585</guid>
		<description>
			<![CDATA[ 
  <p>이제는 Form이 태어나서 죽기까지의 이벤트를 잡아서 어느 시점에 각각의 이벤트가 발생하는지 파악해보자<br>Form은 아래와 같은 이벤트의 과정을 겪는다. <br><br>Activated : 말그대로 Form이 활성화될때 나타나는 이벤트<br>Closing : Form이 닫히려 할때 발생하는 이벤트<br>Closed : Form이 닫힐때다. MFC로 비유하자면 OnClose 이벤트<br>Deactivated : Form이 비활성화 되었을때, 이를테면 Focus가 다른데 가있을 경우<br>Load : Form의 인스턴스가 생성되어 메모리에 적재되었으나 화면에 보이기 전이다<br>Dispose : Form이 죽을때 발생하는 이벤트. MFC로 비유하자면 PostNcDestroy 이벤트다. <br><br>그럼, 이벤트를 하나 하나 잡아볼까?<br><br>이전 코드에서 아래 코드를 추가해보자<br>&nbsp; public Form1()<br>&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:<br>&nbsp;&nbsp;&nbsp; this.Load += new EventHandler(this.Event_Load);<br>&nbsp;&nbsp; &nbsp;this.Activated += new EventHandler(this.Event_Activate);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:<br>&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; private void Event_Load(object sender, System.EventArgs e )<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MessageBox.Show("Event Occur! Load() ");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; private void Event_Activate(object sender, System.EventArgs e)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MessageBox.Show("Event Occur! Activate() ");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>			 ]]> 
		</description>
		<category>WPF+Web Service</category>

		<comments>http://codecrue.egloos.com/1458585#comments</comments>
		<pubDate>Sun, 05 Jul 2009 12:51:57 GMT</pubDate>
		<dc:creator>Dreamer</dc:creator>
	</item>
	<item>
		<title><![CDATA[ C# 그래픽 - Windows Form (5) - Form멤버 사용하기 ]]> </title>
		<link>http://codecrue.egloos.com/1458562</link>
		<guid>http://codecrue.egloos.com/1458562</guid>
		<description>
			<![CDATA[ 
  <p>이제는 Form 클래스가 제공하는 멤버변수들에 대한 다양한 접근을 해보자<br><br>우선 프로젝트를 만든다.&nbsp; 물론 "Windows Forms Application" 으로 만들어 보도록 하자. <br><br>그럼, Form1.cs의 코드를 보면 아래와 같은 기본적인 코드가 보일 것이다. <br>여기에 배경색과 캡션, 크기와 위치를 각각 설정해보도록 하자. <br><br>using System;<br>using System.Collections.Generic;<br>using System.ComponentModel;<br>using System.Data;<br>using System.Drawing;<br>using System.Linq;<br>using System.Text;<br>using System.Windows.Forms;</p><p>namespace EnjoyForm<br>{<br>&nbsp;&nbsp;&nbsp; public partial class Form1 : Form<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public Form1()<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // InitializeComponent();&nbsp; // 이 코드는 Form Design를 통해서 변경된 내용을 적용하고자 할때 필요한 코드다&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Form Design의 속성창에서 배경색이나 텍스트를 수정하였을 경우 이를 적용하게 한다.&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 그러므로 이를 주석으로 처리하고 아래와 같은 코드를 넣어보도록 하자.<br><span style="COLOR: #000099">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<strong>&nbsp; BackColor = Color.LightBlue;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Text = "Enjoy form";<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Size = new Size(500, 300);</strong></span></p><p><span style="COLOR: #000099"><strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.Resize += new EventHandler( this.Form1_Resize );&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;여기서&nbsp;Form1_Resize는 아래 있는 멤버함수명이다<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.Paint += new PaintEventHandler(this.Form1_Paint);<br></strong></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp;&nbsp; <strong>&nbsp; private void Form1_Resize(object sender, System.EventArgs e)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Invalidate();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</strong></p><p><strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; private void Form1_Paint(object sender, PaintEventArgs e)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Graphics graphic = e.Graphics;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Font font = new Font("Arial", 12, FontStyle.Bold, GraphicsUnit.Point);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Brush brush = new SolidBrush( Color.Black );</strong></p><p><strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RectangleF rect = new RectangleF( this.DisplayRectangle.Left + 30,&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.DisplayRectangle.Top + 30,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.DisplayRectangle.Right - 60,&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.DisplayRectangle.Bottom - 60 );<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; graphic.DrawString("It's very funny Form!!!", font, brush, rect&nbsp; );<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</strong><br><br>}<br></p>			 ]]> 
		</description>
		<category>WPF+Web Service</category>

		<comments>http://codecrue.egloos.com/1458562#comments</comments>
		<pubDate>Sun, 05 Jul 2009 12:36:02 GMT</pubDate>
		<dc:creator>Dreamer</dc:creator>
	</item>
	<item>
		<title><![CDATA[ C# 그래픽 - Windows Form (4) - 마우스 이벤트  ]]> </title>
		<link>http://codecrue.egloos.com/1399067</link>
		<guid>http://codecrue.egloos.com/1399067</guid>
		<description>
			<![CDATA[ 
  <p>이제는 Form1.cs의 코드에 아래와 같은 코딩을 해보도록 하자<br><br>using System;<br>using System.Collections.Generic;<br>using System.ComponentModel;<br>using System.Data;<br>using System.Drawing;<br>using System.Linq;<br>using System.Text;<br>using System.Windows.Forms;<br></p><p>namespace WinFormApp1<br>{<br>&nbsp;&nbsp;&nbsp; public partial class Form1 : Form<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public Form1()<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; InitializeComponent();</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <strong><span style="COLOR: #3333ff">this.MouseUp += new MouseEventHandler(OnMouseUp);<br></span></strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br></p><p><strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</strong><span style="COLOR: #3333ff"><strong>public void OnMouseUp(object sender, MouseEventArgs arg)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.Text = string.Format("현재 위치: ({0}, {1})", arg.X, arg.Y);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MessageBox.Show(this.Text);<br></strong></span></p><p><span style="COLOR: #3333ff"><strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</strong><br></span>&nbsp;&nbsp;&nbsp; }<br>}<br><br>위의 코딩을 하고 컴파일하여 실행한 상태에서 마우스의 LButton의 클릭 Up할 때 this.Text에 <br>현재 마우스의 위치값이 들어가는 것을 볼 수 있다. <br></p><div style="text-align:center"><img class="image_mid" border="0" onmouseover="this.style.cursor='pointer'" alt="" src="http://pds13.egloos.com/pds/200905/10/37/f0002937_4a06a454726fc.jpg" width="500" height="421.25984252" onclick="Control.Modal.openDialog(this, event, 'http://pds13.egloos.com/pds/200905/10/37/f0002937_4a06a454726fc.jpg');" /></div>			 ]]> 
		</description>
		<category>WPF+Web Service</category>

		<comments>http://codecrue.egloos.com/1399067#comments</comments>
		<pubDate>Sun, 10 May 2009 09:52:24 GMT</pubDate>
		<dc:creator>Dreamer</dc:creator>
	</item>
	<item>
		<title><![CDATA[ C# 그래픽 - Windows Form (3) ]]> </title>
		<link>http://codecrue.egloos.com/1399041</link>
		<guid>http://codecrue.egloos.com/1399041</guid>
		<description>
			<![CDATA[ 
  <p>이제 컴파일하고 실행해보자.&nbsp; 입력한 이미지가 Windows의 Form의 배경이미지로 보인다.<br>그럼 Form1.Designer.cs의 소스를 살펴보자.<br><br>namespace WinFormApp1<br>{<br>&nbsp;&nbsp;&nbsp; partial class Form1<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;summary&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// Required designer variable.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;/summary&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; private System.ComponentModel.IContainer components = null;</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;summary&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// Clean up any resources being used.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;/summary&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;param name="disposing"&gt;true if managed resources should be disposed; otherwise, false.&lt;/param&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="COLOR: #3333ff"><strong>protected override void Dispose(bool disposing)<br></strong></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (disposing &amp;&amp; (components != null))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; components.Dispose();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; base.Dispose(disposing);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #region Windows Form Designer generated code</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;summary&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// Required method for Designer support - do not modify<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// the contents of this method with the code editor.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;/summary&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; private void <strong><span style="COLOR: #3333ff">InitializeComponent</span></strong>()<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.ComponentModel.ComponentResourceManager resources = <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <strong><span style="COLOR: #3333ff">new </span></strong>System.ComponentModel.ComponentResourceManager(typeof(Form1));<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.SuspendLayout();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Form1<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="COLOR: #cc0000">this.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("$this.BackgroundImage")));<br></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.ClientSize = new System.Drawing.Size(497, 397);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.Name = "Form1";<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.Text = "Form1";<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.ResumeLayout(false);</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #endregion<br>&nbsp;&nbsp;&nbsp; }<br>}</p><p><br>여기서 Dispose 함수는 Form이 종료될때 불려지는 함수이다. 이를 Overriding하여 추가코딩이 가능하다.<br><br>앞서 언급했던 InitializeComponent 함수에 이미지를 배경으로 설정된 코드가 추가되었음을 알 수 있다.<br><br><br></p>			 ]]> 
		</description>
		<category>WPF+Web Service</category>

		<comments>http://codecrue.egloos.com/1399041#comments</comments>
		<pubDate>Sun, 10 May 2009 09:32:03 GMT</pubDate>
		<dc:creator>Dreamer</dc:creator>
	</item>
</channel>
</rss>
