토요일, 12월 24, 2011

와이프가 월요일 쯤에는 입원을 해야할지도 모르겠네요.
아이들은 월요일에 시골로 데려다 주고요.

회사일도 그렇고...


평범한 일상이 참 어려운 듯 합니다.


누군가에는 너무 평범한 가족의 건강이 부럽네요.
누군가에는 평범한 일의 흐름이 부럽네요.

목요일, 12월 22, 2011

Eclipse Demo Camp 2011 seoul

데모 캠프가 끝난지 한참 지났지만, 무언가 기록이라도 남겨야 할 듯해서 적게 됩니다.

개인적으로 시작은 데모캠프가 파리에서 한다는 글이 planet eclipse 에 올라와서..
가고싶어서 파리에 있는 행사에 등록을 했습니다.  물런 가기 힘든다는걸 알지만 ...
 그렇게 눈물을 흘리고 있을때.. 지율님이 행사에 대해 이야기하셔서 시작하게 되었습니다. 

그래서 본격 준비해 보기로 마음 먹고, 채팅과 만나기 시작했습니다. http://hangumkj.blogspot.com/2011/10/eclipse-demo-camp.html

 Eclipse wiki http://wiki.eclipse.org/Eclipse_DemoCamps_November_2011/Seoul 

그래서 대망의 캠프를 신촌 버블버블에서 하게 되었습니다. 행사 사진은 https://plus.google.com/u/0/photos/114301708230059180888/albums/5679781737903636737/5679781791537376786?hl=en 


 여기 저기 도와주시는 분들도 많았구요. 
30명정도(?) 모인 행사이지만, 이 작은 행사를 기획해서 실행해 옮기기까지 나름 어렵더라구요.

커뮤니티 행사를 준비하는 분들에게 감사의 인사를 드리게 됩니다.

전체 200만원정도 소용되었구요. 개인 비용이 52만원정도가 들었네요.
이클립스라는 휼룽한 오픈소스를 10년(?)간 너무나 잘 사용하였고, 밥먹고 살고 있으니, 이정도 금액은 충분하고 마땅히 들어서 아깝지가 않네요.. 빛을 갚은 느낌이랄까요.

 행사를 진행하면서 후원사 섭외를 위해 주위의 회사들에게 말씀 드리는데, 한편으로는 좀 안타까웠습니다. 좀더 참여하고 만들어 가는 것이 필요하겠다 싶습니다.

월요일, 11월 14, 2011

오늘의 일 요약


오늘의 일 요약
. 삽질했던 것에대한 원인 파악 및 기초 다지기
. 방 청소 및 설걷이
. 희찬이 자전거 보러 동네 자전거 보러 다님. 대략 15-25만원 선이면 사겠다는
. 희성이 들쳐 업고 삼성 병원 다녀옴
   - 의사분이 중이염(?)이라고 감기와 오는 합병증이고 항생제를 먹고 있으면 딱히 더 치료할것이 없다며... 진료 안한 것으로 해주심(응급실은 진료비만 37,500원) ㄳㄳ
. 쓰레기 분리 수거 및 버리기
  - 희찬이 목 이지만 해주고...
. 방 청소 및 설걷이
. 빨래 개기
. 오전에 했던 삽질에 대한 보다 근본적인 이유 파악하기 중이자만...
봉사 문고리 잡는게 더 빠르겟어 ㅋㅋㅋ

월요일, 10월 31, 2011

Eclipse RCP/ plugins을 테스팅하는 WindowTester pro ppt

Eclipse RCP/ plugins을 테스팅하는 WindowTester pro  ppt입니다.  허접 함만 보이는 듯해서 마음에 들지 않습니다.
Windowtester PRO

월요일, 10월 17, 2011

Eclipse demo camp 준비

잠시후에 지율님과 만나서 자세한 사항을 이야기 하기로했습니다.
많이들 아는 것처럼 월해는 이클립스 10주년 기념 생일 파티를 하는 해 입니다.
저는 파리에서하는 행사에 사전 참석을 신청해 놓았습니다.  비록 못 가겠지만..

 그 행사를 서울에서도 하면 좋겠다 싶었습니다. ( 지율님이 카페에 글 남기신 것이 시작 이었지요.)
모임의 의미를 떠나서 어떻게 해야할지 의미를 어떻게 살릴지 혹은 사람들의 호흥을 어떻게 이끌어 낼지 모르겠습니다.

여러분들이 도와주시겠다고 손을 내미시는데, 의미가 퇴색할까봐 내밀어 주신 손을 잡기도 힘드네요.

우선 정리된 부분까지 공유해 봅니다.
지율님을 만나면 좀더 정리가 되어 지리라 생각해 봅니다.


이런곳이 장소였으면 좋겠다 싶습니다.


ps)
관심있는 분은 http://wiki.eclipse.org/Eclipse_DemoCamps_November_2011/Seoul  를 읽어보시고 참여하실분은 자신의 이름과 정보를 추가해 주시면 좋겠습니다.

P2 update 시에 관련된 플러그인 함께 업데이트 하기

P2를 이용해서 제품을 배포하려는 다음과 같은 일이 생길수 있습니다. 
자신의 제품에 또 다른 플러그인이 설치되어 있어야 동작한다던지, 아니면 함께 다른 업데이트 사이트의 프러덕도 배포해야 한다던지요. 
그럴 경우 다음과 같은 방법으로 해결 가능합니다. 
update site를 만들면 content.jar 파일이 만들어 집니다.
  jar파일 압축을 풀면 content.xml파일이 나옵니다.
<?xml version='1.0' encoding='UTF-8'?>
<?metadataRepository version='1.1.0'?>
<repository name='update.site' type='org.eclipse.equinox.internal.p2.metadata.repository.LocalMetadataRepository' version='1'>

...........

  <references size='2'>
    <repository url='http://m2eclipse.sonatype.org/sites/m2e' type='0' options='1'/>
    <repository url='http://m2eclipse.sonatype.org/sites/m2e' type='1' options='1'/>
  </references>

.........................
  <units size='18'>
    <unit id='com.test.activity' version='1.0.0.201106151626' singleton='false'>
...................


위의 내용중에 references 테그로 시작된 부분을 넣어주고 다시 압축을 묵어 줍니다. 사용자가 UI를 사용하여 업데이트 할때는 Contact all update sites during install to find required software를 채크하고 업데이트 하면 reference에 넣은 플러그인도 함께 업데이트 되어 집니다.


ps) 여러가지 불라 불라한 문제가 생길수 있지만 언급하거나 설명하기에는 후덜덜합니다. ㅠㅠ

수요일, 9월 14, 2011

궁시렁 궁시렁

아흄, 잠와... 블로그에 글 쓴지가 너무 오래 되었 다는 생각이 듭니다. 페이스북에 짧은 글을 쓰다보니.. 블로그와는 멀어지네요. 요즘은 ucloud PaaS 프로젝트가 종료(?) 되었습니다. 물런 cbt도 안끝난 상황이지만 말입니다. 언제 obt하고 언제 상용 오픈할지는 눈물만 납니다. 다음에는 어떤 프로젝트를 하게 될지... 그냥 일로만 만나는게 아니라 흥미와 미래가 있는 아이를 만날수 있었으면 좋겠습니다.

토요일, 8월 13, 2011

책보기

얼마전에 safaribooksonline.com book에서 구매한 The Graphical Editor Framework 책을 다시 보기 시작하려고 합니다.

사실 거의 다 보았는데, 안본지 2주3주 되어가니 또 다 기억에서 아웃 되 버렸네요.
ㅠㅠ

수요일, 7월 20, 2011

프로그램을 업으로 밥먹고 산지 많은 시간이 지났지만..

가장 기본이되는 에러 처리와 메시지 처리에 고민하는 자신을 보게 됩니다.
사실은 기본적인 방법도 모르는 듯 합니다.

허접의 끝은 어디일지...

코더라 자부심보다는 허접과 탄식이 보입니다.

목요일, 7월 14, 2011

아이들의 눈치가 가장 빠른가 봅니다.

큰 아이는 제 얼굴을 슬쩍 한번 보고는 자신의 할일을 그냥 할 뿐입니다.
희성이는 안아달라고 때쓰고, 평소보다 친해지려고 하는게 눈에 보입니다.
어떻게해도 혼내 키지 않는걸 아니까..
아이가 중재 하려는 듯합니다.

아침 출근할때 보이는 피곤한 그녀의 모습에서 그나마 다행인것은 연민 이나 이런 감정이 조금은 생겼습니다.
이런 나를 보면서 그나마 다행이라는 생각이 들었습니다.


수요일, 7월 13, 2011

몇일째 고민해 보지만 답이 없는 듯 합니다.

한번 풀려버린 마음을 진정 시키는 것 또한 버겁습니다.

나에게 대답해야 할 답이 없습니다.

나도 가장, 아버지 이기전에 이기적인 사람이고 나입니다.

월요일, 7월 11, 2011

어렸을때 아버지가 가끔 화를 내시곤 했습니다.
아버지는 술을 안드셨고, 점 잖은 분이셨는데두 말입니다.
(물런 지금도 그러하시구요)


버럭 한번씩 하셨죠?


그때는 영문도 모른체 아버지가 한없이 무섭기만 했는데..
요즘 저와 같은 상태일까 싶습니다.


젠장 가장 따위나 아버지 따위는 개나 줘버릴 것 인가 봅니다.

월요일, 7월 04, 2011

좀더 깔끔하게는 어떻게 해야 하나?

org.eclipse.ui.viewer.ServerListViewer 생성.

TableViewer생성
Data로 MySQL, Memcached 생성.

TableViewer의 popup action으로 각 서버의 Start, Stop, Ping, Properties Action 생성.

여기까지 작업하고...
자...

ServerListViewer의 viewerToolBar에 start, stop, ping, properties Action생성..
자..

tableviewer에서의 action은 이름만 같은 아이를 두개를 만들어서 visiblewhen으로 조절하였으나...
toolbar의 action은 하나로 두개를 처리해야하는데..
if else와 new MysqlStartHandler... 이런 코드가 판치기 시작.....

좀더 깔끔한 코드가 나오려면 어떻게 해야하나.. 음냐..
계속 if else로 도배질을 해가야 하는것인가?
확장점으로 해도 여의치않고..

월요일, 6월 20, 2011

Eclipse에서 실행하면 에러가 안나는데, 프러덕으로 배포하면 에러가 난다면...

이클립스에서 실행해서 정상적으로 실행되는데, 프러덕으로 배포하여 실행하면 다음과 같은 에러가 나온다면...

ERROR - LogListener : logging Unhandled event loop exceptionjava.lang.Error: Unresolved compilation problems:
Syntax error on token "catch", Identifier expected
Syntax error on token "return", invalid Type
Syntax error on token "}", delete this token

혹은 실행 되지 않거나 한다면...

아마도 이클립스는 UTF-8프로젝트로 되어 있을 겁니다.
이클립스에서 빌드 모듈로 컴파일 할때 UTF-8같은 경우 한글 컴파일에 문제가 있습니다.
예를 들어 주석을 /*한글*/ 처럼 작성했을때 위와같은 에러가 발생합니다.
아마 2바이트 코드로 글을 바꾸땔 *와 같이 바뀌어???? 컴파일 되어서 주석이 깨지고 그래서 컴파일이 안되는 문제가 아닌가 싶습니다.
좀 많이 답답한 에러 인데요. ㅜㅜ

에러를 어떻게 파악해야할까요? 위처럼 나왔을때....
프러덕으로 배포하거나 개별로 export를 하게되면 logs.zip파일이 생깁니다.
압축을 풀어보면 플러그인 이름으로된 텍스트 파일이 있고 열어보면 error, warning 등의 메시지가 보입니다.
error인 아이를 찾아서 실제 소스를 수정하는 방법으로 원인을 해결해야 합니다.

.....................................................................
이클립스에 실행할때는 에러가 안나는데,
왜 빌드하면 에러가 나는지...
컴파일 하는 방법이 어떻게 다른지는 좀더 공부가 필요하겠습니다.

해결을 어떻게 할지 패치를 어떻게 할지도 말입니다. ㅜㅜ

어제 JCO를 무사히 마쳤습니다.

한편으로 조금은 아쉽고 그러네요.

차라리 수준을 고급으로 만들었으면 어땠을까? 싶기도하고..
차라리 수준을 기초로 만들었으면 어땠을까? 싶기도하고..
역시 차거나 따뜻하거나 해야하는데..

준비한 것은 다 보여드리지 못한 아쉬움은 남지만 그래도 나름 열심히 준비했으니, 뒤로 남기고 교훈으로 삼아야하지 않을까 싶습니다.

개인적으로, 내가 관심있고, 즐겨하는 기술을 JCO와 같은 컨퍼런스에서 다른 사람들에게 말할수 있어서 좋았습니다.


강연 자료는 다음을 보시면 좋겠어요.
PPT는 아래 URL에 있습니다. 다운로드 받으실수 있도록 옵션을 풀어 놓았습니다.
http://www.slideshare.net/hangum/raprich-ajax-platform-8033998

세미나 중간에 보여드린 동영상은
http://www.youtube.com/user/hangumi?feature=mhee

데모라고 보여드린 Tadpole For DB는 (https://sites.google.com/site/tadpolefordb/)
소스 공개는 아직 고민해 보지 않았습니다.
좀더 완성도 있고, 상용으로도 부족함 없는 수준이 되도록 발전 시켜야 하지 않을까 싶습니다.

실제 사용은 http://0.0.8.tadpole.tester.paas.wo.tc/db?startup=tadpole
에서 테스트 해볼수 있구요. 관심있는 분들은 연락 부탁드려요.

강의들어주시고, 여러모로 도와주신 분들 감사드립니다.

금요일, 6월 10, 2011

올챙이에 erd(?) 올리기

아직 부족한 부분이 많은 올챙이지만, 테이블 목록을 뿌렸습니다.
여기에 디비 관계와 테이블을 좀더 보기좋게 배치하는 작업을 하고 있습니다.

이 작업이 끝나면 오라클을 지원하도록 할 생각이구요.

처음에는 쉬울것 같은 많은 일들이 결코 쉽지가 않네요.

토요일, 5월 21, 2011

휴 삽질의 연속.. 실마리 에러..

이 에러가 왜 이클립스에서는 안보일꼬~~~~~~~~

톰켓으로 실행하면 나타나는....
문제는 캡쳐하지 못했던 에러로나타난 거였습니다.
이클립스로그에 리스너를 걸어서, 나의 로그로 포워딩 시켜야겠다....
이클립스 로그에도 안떨어졌는데.. 음음....


org.eclipse.rwt.internal.lifecycle.UIThread$UIThreadTerminatedError
at org.eclipse.rwt.internal.lifecycle.UIThread.handleInterruptInSwitchThread(UIThread.java:92)
at org.eclipse.rwt.internal.lifecycle.UIThread.switchThread(UIThread.java:63)
at org.eclipse.rwt.internal.lifecycle.RWTLifeCycle.sleep(RWTLifeCycle.java:266)
at org.eclipse.swt.widgets.Display.sleep(Display.java:1162)
at org.eclipse.jface.window.Window.runEventLoop(Window.java:841)
at org.eclipse.jface.window.Window.open(Window.java:816)
at org.eclipse.jface.dialogs.MessageDialog.open(MessageDialog.java:334)
at org.eclipse.jface.dialogs.MessageDialog.open(MessageDialog.java:364)
at org.eclipse.jface.dialogs.MessageDialog.openConfirm(MessageDialog.java:417)
at com.hangum.db.browser.rap.ApplicationWorkbenchAdvisor.preShutdown(ApplicationWorkbenchAdvisor.java:44)
at org.eclipse.ui.internal.Workbench.busyClose(Workbench.java:1075)
at org.eclipse.ui.internal.Workbench.access$12(Workbench.java:1072)
at org.eclipse.ui.internal.Workbench$22.run(Workbench.java:1338)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:66)
at org.eclipse.ui.internal.Workbench.close(Workbench.java:1336)
at org.eclipse.ui.internal.Workbench.close(Workbench.java:1298)
at org.eclipse.ui.internal.Workbench$ShutdownHandler.handleEvent(Workbench.java:388)
at org.eclipse.swt.widgets.Display.sendDisposeEvent(Display.java:706)
at org.eclipse.swt.widgets.Display.release(Display.java:685)
at org.eclipse.swt.graphics.Device.dispose(Device.java:286)
at org.eclipse.rwt.internal.lifecycle.UIThread.processShutdown(UIThread.java:159)
at org.eclipse.rwt.internal.lifecycle.RWTLifeCycle$UIThreadController.run(RWTLifeCycle.java:104)
at java.lang.Thread.run(Thread.java:662)
at org.eclipse.rwt.internal.lifecycle.UIThread.run(UIThread.java:102)

월요일, 5월 16, 2011

얼마전에 희찬이에게...

공부하고 있는 희찬이에게 아주 조심스럽게 말했습니다.

'희찬아 아빠는 너가 공부를 아주 아주 잘했으면좋겠다구요.'
'공부는 일단 잘하고 볼 일이며, 나중에 무엇이 되던가에 따라 못해도 되고 안해도 되고 그런게 아니라구요.'

자신 보다 남을 생각 할 수 있는 그런 힘 있는 희찬이가 되었으면 좋겠습니다.
그런 교육을하고 있는지 의문 스럽습니다만...

교육(?)을 잘 하였다면,
나중에 희찬이가 자신을 되돌아볼 정도로 커서 세상에서 비웃는 그런 것을 선택한다고 해도, 불만이 없을듯합니다.
아이가 무언가 생각이 있어서 그랬겠지.. 하면서 이해해줄수 있을 듯 합니다.

세상을 변화시킬 아이를 키우기 보다는, 자신의 삶에 기쁨을 누리는 희찬이 되었으면 좋겠네요.
할 수만 있다면 자신이 누리는 그런 삶 가운데, 자신의 주변도 함께 누리고 즐거운것을 기뻐하는 그런 삶이지요.
평범하지만 어려운 삶인지도 모르겠네요.

금요일, 5월 06, 2011

DB Browser...

모 세미나에서 사용할 데모를 위해 Eclipse RAP로 DB Browser를 만들고 있습니다.
대강 기능을 보면 두꺼비 UI를 보고 배끼려고 노력하였지만, 역시나 짧은 시간에는 무리입니다.
코딩 노가다만 한바가지네요.

우선 전체 모양은 다음과 같습니다.
왼쪽 상당에 데이터베이스 연결 뷰가 존재하고 데이터베이스가 연결되면 각종 테이블이나 뷰 인덱스 보여주는 화면이 존재합니다. 중앙에는 역시나 쿼리를 쳐볼수 있어야 겠지요.
중앙 하단에는 쿼리의 결과나 히스토리를 볼수 있습니다.

데이터베이스 연결은 왼쪽 Connection Manager에서 마우스 오른쪽 버튼을 클릭하면 연결할수 있는 화면이 나옵니다.대중적 인 데이터베이스를 지원할 생각입니다만 현재는 MySQL만 지원합니다.

이렇게 해서 데이터 베이스가 연결되면 Table 목록이라던지View 목록이나 컬럼 정보들을 Object Explorer 에서 볼수 있습니다. 더불어 Table이나 View를 생성하는 기본 문법도 지원하지요.


중앙에 쿼리 에디트 창에는 rap styled text를 지원하지 않기에 문법 색이라던가 등등은 무리입니다.
대신에 ;로 구분해서 쿼리 수행하기나 블럭으로 쿼리 수행하기 등은 지원합니다.
단축키는 Ctrl + F11이지요.

쿼리의 플랜도 볼수가 있는데 이것은 Ctrl + F12입니다.
그리고 수행했던 쿼리 목록도 보관했다가 다시 수행할수도 있습니다.


데모는 대강 이것으로 해야겠네요.

ps) 이것이 rcp로 코드 한줄 바꾸지 않아도 돌아갑니다. 타켓 플렛폼만 바꾸어서요.

짜자잔.....

수요일, 4월 20, 2011

DTP의 DB 커넥션 UI없이 코드로 생성하기


DTP의 커넥션을 UI를 사용하지 않고 코드로 만들어야 할 상황이 생겼습니다.
DTP는 Eclipse에서 사용하는 DB 개발툴 중 일부입니다.

paas ide에서 cloud 개발환경에서 사용하는 mysql과 동일한 환경을 만들어 주기위해
로컬에 mysql디비를 설치해주고 jdbc드라이버도 설치
디비 시작 종료등 관리도 할 수있게 하였지요.
여기에 DTP에 로컬 개발환경과 cloud에서 사용하는 디비 환경을 바로 연결해 주어야 합니다.

UI없이 사용하려면 org.eclipse.datatools.enablement.mysql 플러그인 fragment 플러그인으로 작성되어야 합니다.
사실 이 작업을 하기 전에 db 의 템플릿이 먼저 만들어져 있어야 합니다.
이것은 이클립스의 규칙이니 지켜야하죠. 이 일은 org.eclipse.datatools.connectivity 에서 해줍니다.


DTP의 소스를 몇 일 분석해 보는데, 소스가 그리 깔끔하지 않습니다.
여러 중복 코드가 보이고, 알수 없는 단계가 너무 많습니다.
아마 확장하기 위해 중복 채크 하는 코드가 보이는 듯 합니다만 그럼에서 아쉽습니다.

어제 부터 Clean Code 책을 보고 있는데, 무척 재미 있을듯 싶습니다. 아주 예전에 java debugging 이라는 책과 비슷한 류의 책인듯 싶습니다. 그 책보다는 훨씬 자세한 듯도 하구요.

화요일, 4월 19, 2011

가끔 기존에 알고 있다고 생각하는 지식이 잘못 되었거나 혹은 터무니 없이 부족하다는걸 발견하곤 합니다.

발견할때를 생각해보면
경험해 보지 못했기 때문이거나, 기본 지식을 안다고 생각(착각) 했던 듯 합니다.

이럴때면 다시 기본으로 돌아가 안다고 착각했던 부분을 다시 꼼꼼히 읽어보는데 역시 도움이 많이 되는 듯 합니다.

일요일, 4월 17, 2011

투표 부탁드려요

제가 이번 JCO에서 Eclipse RAP라는 주재로 발표제안을 했습니다.
(발표 정보를 보시려면 : https://sites.google.com/site/2011jco/home/eclipse-rap)

그래서 지금 사용자 선호도 조사를 하는데 투표 부탁드려요.
http://www.facebook.com/l.php?u=http%3A%2F%2Fjco.questionpro.com%2F&h=147e6

Eclipse RAP가 많이 알려져 있지 않기에 뒤에서 첫 번째 일까 겁납니다.

저의 발표자료는 다음과 같습니다.

화요일, 4월 05, 2011

JCO 발표제안

이번 6월 19일(?)에 JCO 발표제안을 했습니다.  나름 pt준비를 한다고(?) 했는데 어떻게 보일지 의문이네요.
오늘 다시 보니까 많이 허술 하기도 하고요. 끙.............

아래는 위의 링크 내용입니다.

발표 소개

Eclipse RAP(www.eclipse.org/rap)는 Eclipse Rich Ajax Platform의 약자입니다.
Eclipse에서 desktop application을 개발하는 방법은 보통 Eclipse RCP(Rich Client Platform)를 통해 개발 했습니다.
RAP는 Eclipse 식으로 웹 어플리 케이션을 개발하는 방법 중에 하나 입니다.

특징으로는
1) 2006년 6월 시작(0.1 시작해서 현재 1.4 m5)
2) Eclipse Equinox(OSGi) 기반이라 확장 및 재사용 가능
3) 대부분의 SWT/JFACE 사용으로 개발
4) Extension point(확장 포인트) 개발
5) Eclipse의 많은 컴포넌트 재사용(BIRT, EMF, SWT/JFACE, Workbench)
6) 이미 개발된 Eclipse RCP 재품을 RAP로 변경하기 위해 소스 재활용(80% -98%) 가능
7) 대부분 브라우저 화환성 지원
8) Servlet 컨테이너 지원


화요일, 3월 22, 2011

역시 코드 설계(?)의 기본의 기본은 로깅 인듯합니다.
로깅관련 기능을 소홀히(디버깅하기 위한 로그는 나오므로)하고 넘어가고,
나중에는 다른곳(?)에서 만들었던 로그를 가져다 쓰려했더니 불라 불라 문제가 많이 생깁니다.
사실 불라불라 문제라기 보다는 내 입에 맞지않는 혹은 용도에 맞지않는것이지요.

그나마 좀 낳은것은 전체가 일관되게 다 적용되어 있어서 부모가되는 혹은 부모의부모만 수정하고 적당하게 인터페이스를 만들어서 끼워주면 될듯해서 위로(?)가 되어집니다.

어디서 본 코드 설계에대한 기본 원칙이 있는 듯한데, 저도 그런 비슷한 것을 만들어 놓고
일할때 체크리스트 처럼 하나씩 점검해야하지 않을까도 싶습니다.

너무 구조화시키는 걸지도 모르겠네요.  몸으로 깨지면서 배우는게 최고인데...

월요일, 3월 21, 2011

코드를 사람이 이해하기 쉽도록 잘 만드는 것은 참 어려운듯합니다.

사람도 이해하고, 기계도 이해하기 쉽게 말입니다.
사람은 가독성 및 의사 교환, 코드로 문서 대신하기 등까지 생각해야하고
기계는 당연히 안전성과 속도 일듯합니다.

연속되는 exception 처리를 해야하는 코드와
1. a 수행

2. a 수행 정상 이면 b 수행

3. b 수행 정상이면 c 수행

4. 후속처리

2-1. a 수행 비정상이면 d 수행

4-1 후속 처리

.....

이런 코드가 반복 되고 미묘하게 중복 되는 코드가 발생 하는 상황에서 처리가 애매 합니다.
끙 오전내내 끙끙 거리고 있는데, 결국은 미묘하게 변하는 코드를 공통화 하기 보다는 코드가 중복되고 장황하게 늘어지더라도 그대로 놔두어야 겠다도 싶습니다.

부모 코드가 복잡하게 처리되는 상황에서
중복되는 코드를 공통화 하겠다고 if else 내지는 상속해서 처리하기 보다는 말입니다.

좀더 멋진(바른) 코드는 어떤 것일까요?
더 치열하게 고민하고 해야하는데 아쉽네요. 일단 좀더 고민해 보아야겟어요~

목요일, 3월 10, 2011

web project 내보내기

internal package 존재하여 org.eclipse.jst.j2ee.web 프로젝트를 부모로하는 fragment project 이어여 합니다.  소스코드는 변수 이름이 직관적이어서 설명이 없어도 쉽게 이해할수 있을듯 하여 생략합니다.

IWorkspace workspace = ResourcesPlugin.getWorkspace();
IWorkspaceRoot root = workspace.getRoot();
IProject project = root.getProject(projectName);
if(project == null) {
throw new Exception(projectName + Messages.WARExporter_0);
}

WebComponentExportDataModelProvider provider = new WebComponentExportDataModelProvider();
IDataModel dataModel = DataModelFactory.createDataModel(provider);

dataModel.setProperty(IJ2EEComponentExportDataModelProperties.PROJECT_NAME, project.getName());
dataModel.setBooleanProperty(IJ2EEComponentExportDataModelProperties.OPTIMIZE_FOR_SPECIFIC_RUNTIME, false);
dataModel.setBooleanProperty(IJ2EEComponentExportDataModelProperties.EXPORT_SOURCE_FILES, exportSource);
dataModel.setBooleanProperty(IJ2EEComponentExportDataModelProperties.OVERWRITE_EXISTING, overwrite);
dataModel.setProperty(IJ2EEComponentExportDataModelProperties.ARCHIVE_DESTINATION, destnateion);

IVirtualComponent component = ComponentCore.createComponent(project);
dataModel.setProperty(IJ2EEComponentExportDataModelProperties.COMPONENT, component);

WebComponentExportOperation operation = new WebComponentExportOperation(dataModel);
return operation.execute(new NullProgressMonitor(), null);

다음에는 톰켓 프로젝트 구성과 설치등을 적어볼게요.

월요일, 3월 07, 2011

나의 자질에 핑계하지 않고,
나의 모든 것을 정직하게 쏟을 수 있는 무언가가 있으면 좋겠습니다.

글 쓰다보니, '무언가'라고 핑계하고 있네요.
쏟아야 할 무언가는 넘치는데, 무엇인가 두려워하고 있네요.
예를 들어,
     무식함.. 기초 지식.... ㅋㅋㅋ 넉두리할때 책보기로...
     혹은 이제 30대 중반이 되어버린 나이(?)... ㅋㅋㅋ 아직도 20대 초반이라고 착각하는데..
     미래에....

요즘, 가지고 있는 지식을 중요하게 여기기 보다는, 창조(?)적인 것이 무엇인지 잘 모르지만, 창조적이라는 것에 좀더 귀 기울이려고 하고 있습니다.


아참 희찬이가 이제 초등학교 4학년 올라가는데요.
아이가 무언가 쉽게 포기하고 타협하는것을 보게 되는데...
부모와 타협하고 희성이와 타협하고 더 걱정스러운것은 자신과도 타협하게 됩니다.

희찬이가 정말 중요한 것 혹은 가치에는 타협하지 않았으면 좋겠습니다.

추구하고 탐구하고 고민하는 아이가 되었으면 좋겠습니다.
작은 일에도 인생의 의미와 기쁨을 발견해 가는 아이 였으면 좋겠네요.

월요일, 2월 28, 2011

e4, xwt

지난 주말에 e4의 xwt로 간단한 stand application을 작성해 보았습니다.

간단한 화면은 좋은데, 복잡한 화면은 어떻게 구성해야할지 감이 오지 않습니다.
그리고 더 보고싶어도 볼만한 문서나 자료도 거의 없습니다.  음....

e4의 설명이나 예제 정도의 화면이 아니라 동적으로 화면을 구성한다든지 애또....
xml파일을 동적으로 구성해서 던져야 하는 걸까요?  아니면 xsl로 if를 해야할까요?

화면과 로직의 분리와 di, di annotation등의 시도는 좋지만 말입니다.

그리고 executable jar로 만들어 보았더니 17.9메가 나옵니다. ㅋㅋ
물런 jre를 빼고 말입니다.  불필요한 jar가 포함은 되었겠지만... 후덜덜한 양입니다.

대략 100메가는 잡아야 하려나 봅니다.

많은 장점이 있겠지만...  인지는 고민해 볼만하겠습니다.

목요일, 2월 24, 2011

스터디에..

저번주에 이클립스 Plugins and RCP 카페에 스터디에관한 공지를 올렸고(http://cafe.naver.com/eclipseplugin.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=4910&) 그리고 그 결과로 http://cafe.naver.com/eclipseplugin/4926 두번째 공지를 올리게 되었지요.

OSGi, E4 아이들은 두고 두고 사골을 만들수 있는 아이들 입니다. OSGi는 서버쪽 기반 프레임웍을 만들라 치면 기본 베이스가 되어줄 최고의 아이 일 것이고, e4는 이름에서도 오로라를 뿜는 Eclipse 4.0이라.. 이클립스 3.x의 종말과 함께 차세대 얼굴 마담을 해줄 아이입니다.

e4의 모양은 어떻게 보면 개발툴의 미래이고 자바 어플리케이션의 미래를 엿볼수 있는 것인지도 모릅니다.(사실 e4의 미래를 고민하는 분들의 글도 볼수 있습니다만) 향후 복잡한 개발환경 준비하는 것인지도 모릅니다.

클라우드라는 구름때와 함께 스마트 폰등이 이미 우리의 생활을 바꾸어 놓았듯이 e4가 날갯짖을 할때 쯤이면 개발자로서 중요한 기로에 서게 될지도 모른다는 생각이 듭니다.

어느분들은 지금처럼 로컬에 자바와 이클립스를 설치하고 톰캣등을 설치하지 않을지도 모릅니다. 개발이라는 것의 패턴이 바뀌게 될지도 모른다는 생각이 듭니다.

사실 e4가 개인적으로 마음에 들지 않고, 현재 문제(?)를 가지고 있지만 말입니다.

수요일, 2월 23, 2011

Eclipse WTP(Web Tool Project)의 Target Platform 만들기 - 2

회사에서 일하면서 사용하는 데스크 탑 os를 ubuntu 10.10으로 바꾸어서, 저번에 만들어 놓은(Eclipse WTP(Web Tool Project)의 Target Platform 만들기) Eclipse의 target platform에 linux용 sdk나 필요한 것들을 수정해야 할 상황이 발생했습니다.

WTP 홈에 가서 http://download.eclipse.org/webtools/downloads/를 보는데, WTP 버전 R-3.1.2-20100211202452가 보이지 않습니다. url도 삭제 되었구요.

음..
하위호환을위해서 프로젝트를 구성하는 경우라면 좀 많이 그렇습니다.
어디에 백업이 있는지 모르겠네요.  복잡한 cvs에 가서.. 으...  문제라면 문제인듯합니다.

월요일, 2월 21, 2011

요즘 무기력증(?)에 빠져있나 봅니다.

무엇하나 흥미로운 거리가 없네요.
책읽는것도 이제 지겹고, 새로운 기술도 그렇구요.
안풀리는 문제로 씨름하는것도 지겹습니다.

이번 주말에는 금요일 퇴근해서 월요일 출근하는 동안 집안에만 있었네요.
집안에 있는 동안 책을 읽거나 게임을 하거나 공부를 하거나 하는것도 아니고...
인터넷으로 영화 한두편 보고, 무협영화보고 한게 다인듯합니다.
그냥 피곤하면 자고 눈떠지면 일어나서 의지없는 영화나 틀어놓고 시간을 때운 듯 합니다.

월요일 출근해서 주말을 이렇게 보냈다는게 사실 좀 으아 합니다.
가족이 서울로 오면 달라질려나요?

요즘 회사에서는
CloudStack에서 vm 발행하는 코드를 만들고있습니다.
iaas관련 코드가 이미 있어서 그냥 숟가락 언저놓으면 되는 그런 것입니다.
iaas나 paas관련해서 예전에 만들었던 업무들을 합하면 도움이 많이 될듯도 합니다.

내가 만들수 있는 것이 중요한게 아니라, 상상하는 것이 중요하고, 상상한것을 구체화하는게 중요한 고민 거리 입니다.  상상하는 것이 안되서 무기력한가??? 음음이네요~

수요일, 2월 09, 2011

요즘 하고 있는 일들

일주일 전부터 스프링 프레임웍 책을 사서 공부를 하고있습니다.

와, 놀라운 어노테이션 님. 어노테이션 님의 파워를 실감할수 있습니다.
이게 무슨 자바(?)인가? 라는 느낌이 들정도로 코드가 정갈(?)하면서 ...

몇년 전의 1.1,1.2때의 스프링과는 또다른 느낌이었고, 쌩짜 jsp와는 별다라 다른 느낌입니다.
몇년 간 이클립스 플렛폼을 개발 하던 저에게는 신선한(?) 충격 이었습니다.

소설책 읽듯이 한권을 마저 다 읽고 난 지금은 몇가지 의문이 남습니다.
스프링 사용법만을 충실히 따라하는 개발자가 과연 프레임웍을 개발할 수 있을까?  스프링을 충실히 익히면 쓰레드 만들 필요 없겠다 싶습니다. 베치를 만들 필요도 없겠고, 외부 인터페이스랑 고민해야할 필요도 줄어들겟고... 거의 개발자가 고민해서 삽질해서 만들어야하는 필요보다는 스프링에서 지원해주는 아이들을 찾아서 개발하는게 가능하겠다 싶습니다. 다양하게 친절하게 많이 도구들이 많이 준비되어 있는(?) 듯한 스프링입니다.

나중에는 정말로 스프링이 아니고서는 .....

경력관리 이력관리 라는 측면에서 본다면,
개발자의 역할(롤)이 중요하겠습니다.  업무가 중요시 되는 개발자라면 사용법만 잘 익혀서 사용하면 되겠구요.

아니고 업무가 아니 코어 개발로 다양하게 자신의 역할을 가져가고 싶다면... 스프링의 소스 코드를 열어 봐야겠다 싶습니다.  나중에 스프링 같은 아이를, 기반이 되는 무언가를 만들어야 하지 않겠어요.

스프링을 보다보니 이클립스 plugins를 개발하면서 아쉬웠던(?) 부분을 스프링에서는 깔끔(?)하게 정리 하는 모습이 보입니다. 헤헤헤

하나만 너무 오래 하다 보니 나타나는 문제점이 스프링이라는 좋은 아이를 만나서 해결될수 있겠네요.

월요일, 2월 07, 2011

나에게도 이런일이

나에게도 이런일이... 당첨당첨.. 스타벅스 커피2잔 선물 확정~~~
eXERD 짱 

수요일, 1월 26, 2011

수맥이 흐르나 보다

요즘 희안한 듯도 보도 못한 에러로 고민에 고민을 울고 불고 있습니다.

1) 마우스 오른쪽 버튼을 두번 눌러야 팝업 메뉴가 오픈 됩니다. --;;
자세한 내용은 http://cafe.naver.com/eclipseplugin/4871 참고하면 되는데..... 아직도 이유를 발견하지 못했습니다.

2) 어제는 만들어 놓은 plugin을 export 하려고 하는데, export중에 에러가 납니다. eclipse상에서는 에러가 나지 않지만 배포시 문제가 될수 있는 것이죠.

에러 내용은

20. ERROR in C:\dev\eclipse-helios-sr1-paas-ide\workspace\com.ㅌxxx.paas.ide.management.mysql\src\com\xxxxx\paas\ide\management\mysql\dao\InstallMySqlDAO.java (at line 114)
return installEnd;

^^^^^^^^^^
installEnd cannot be resolved to a variable


음음.. 얌얌...

디컴파일 해보니 installEnd 변수가 선언되어 있지 않습니다.
그리고 메소드는 exception이 throws 되도록 코딩되어(?) 있구요. ㄷㄷㄷㄷ

프로젝트는 UTF-8로 언어 설정이 되어 있는 상태입니다.

일단 문제는 다음과 같은 아이였습니다.
코멘트가 문제 였구요.
/** 설치 시작했고 종료했는 지*/

지*/ 지와 종료 커맨트의 */가 붙어 있는 것을 지와 */ 사이를 한칸 비우니 정상적으로 문제가 해결되었습니다.

음...  냠... 훔... 끙...

어떻게 원인을 밝혀 낼지는 ....
Eclipse Exporter의 소스를 분석해 봐야겠다는...... ㅠㅠ --;;

ps) 2번의 문제는 이클랩스 문제가 확실하구요.  확실하다고 하는 것은
문제가 되는 소스를 도스 커맨드에서 javac로 컴파일 해서 디컴파일러로 보면 정상적으로 생성 되었습니다.  결국은 이클립스가 삽질을 한것으로 보이구요.

일요일, 1월 23, 2011

한번 더 고민할테니, 불편하면 메일 주세요

오랫만에 집안 청소를 하였습니다.
서랍을 열어 필요없거나 안쓰는 물건은 재활용 통으로 버리는 것이죠.
안쓰는 시디며 오래된 전자 기기도 그렇게 하였습니다.

추억이 담긴 아이들도 그렇게 하였지요.

쓰레기 통으로 버리면서, 버려지는 아이들을 만든 사람들 생각이 들었습니다.
누군가 열정을 쏟았을 아이들인데 말입니다.
한편으로는 좀 많이 허술해 보이는 아이들은 좀더 기분이 상했습니다.

만들거면 좀더 고민해서 만들지?  이런 생각도 들었지요.
태어나면서부터 가지게 되는 자질의 차이가 존재 하는 것을 알지만, 노력을 통해서 아주 조금은  부족한 부분을 매꿀수 있지 않을까 생각해보게 되었습니다.

내가 만들고 있는 아이들도 누군가의 손에서 사용되어 지게 되겠죠.
많이 사용되어질지, 귀하게? 천하게? 어떻게 사용되어질지 아직은 잘 모릅니다.

만들면서 사용자들 생각을 해봅니다.

한번 더 고민할테니, 불편하면 메일 주세요.  편하고 유용하게 만들도록 할게요

목요일, 1월 13, 2011

eXERD 사용해보기

Eclipse plugis/rcp 카페에 몇번 소개된 eXERD(http://www.exerd.com/) 를 사용해 보았습니다.
툴은 이름에서 알수있는 ERD툴입니다.
한국에서는 이런 기반 툴을 만드는곳이 거의 없는데, 이런 툴이 나온것만도 매우 흥미(?)롭고 반갑습니다.

인스톨하고 셈플을 돌려보니 여기 저기 고생한 흔적들이 보입니다.
사용자를 배려하는 모습도 여기저기 보입니다.
어떤 부분은 사용자를 너무 배려하지 않았나도 싶습니다.  좀더 제약하고 관리해줬으면 합니다.
물런 메뉴얼을 보지 않고 ER-WIN쓰던 버릇으로 써보려고 해서 그런지도 모릅니다. --;;
전체 적으로 너무 화려합니다.  오랫동안 머리 깨져가면 봐야할 디자이너에게는 좀더 노멀하면 어떨까도 싶구요.  설정할수있다면 더 좋겠습니다.

가격도 저렴(?)합니다.  저는 디비 디자인 할일이 없는데, 할 일이 있는 분이라면 평가판 사용후에 구매 해보는것도 좋겠습니다.

수요일, 1월 12, 2011

Eclipse WTP(Web Tool Project)의 Target Platform 만들기

요즘 WTP 프로젝트를 확장하는 일을 하고 있습니다.

Target Platform을 만들려고 하는데, 여의치 않았습니다.
소스 불러올때 소스가 연결이 안된다던지, 확장포인트가 안보인다던지요.

그래서, 몇번시도하고 묻기도하다가 다음과 같이 하니 문제가 해결되었습니다.


우선 기본 베이스는 eclipse에서 rcp & rap developer로 시작합니다.
그리고 http://download.eclipse.org/webtools/downloads/ 에서 해당 WTP의 버전을 확인합니다.
WTP기준으로 이클립스 버전이 나열되어 있습니다.

예를 들어서 3.5.2의 wtp를 가지고 작업해야겠다 싶으면, WTP 버전은 R-3.1.2-20100211202452가 되겠습니다.  그래서 해당 카테고리로 들어가면, 3.5.2인 경우(http://download.eclipse.org/webtools/downloads/drops/R3.1.2/R-3.1.2-20100211202452/)
에서 관련된 플러그인과 소스 Eclipse 다운 받습니다. 소스가 필요하면 소스를 소스가 필요치 않으면 소스가 없는 버전을 다운 받으면 되겠습니다.

그리고 target platform을 구성하니까, 격었던 문제는 모두 해결되네요.

다른 분들의 의견도 참고해 볼만합니다.
http://cafe.naver.com/eclipseplugin/4849

일요일, 1월 09, 2011

대략 10일간 와이프의 감사(?)가 무사히 끝나고 다시 시골로 내려갔습니다.
터미널에서 혼자 30분간 멍하니 있었습니다.
음, 이제 저도 혼자사는데 제법 익숙해 졌나봅니다.
크리스마스 연휴를 혼자 집에서 보내서 그런가도 싶고요.

좀 어색하고 어색합니다.

시골에 있는 식구들도 이럴텐데 싶습니다.
다행히 희찬이는 절대 서울로를 고집하고 있습니다.
희찬이까지 시골을 고집했다면....
다음주나 적어도 2월 3월부터는 다시 함께 살겠네요.

라면 물이 끊네요. 식은 밥이 있으니 저녁먹으러...

아참, 요즘 ASM 문서를 보려고요.

금요일, 1월 07, 2011

요즘 하고 있는 일

요즘 하고 있는 일은 대략 이러합니다.

Eclipse WTP(http://eclipse.org/wetbools)를 확장 하는 일을 하고 있습니다.
KT의 ucloude에서 사용하게 될 PaaS(Platform as a Service) 시스템을 이용하려는 분들을 위한 개발툴을 만들고 있는 것입니다.  설명이 너무 거창하네요. 기본 베이스는 WTP에 살을 붙이는 작업이 거의 다 일듯합니다.

작업이 어느 정도 끝나면 WTP 확장에 관한 글을 써봐야겠습니다.
사실 지금까지 Eclipse IDE 만지는 작업을 해 볼 기회가 전혀 없었는데, 그래도 껍대기라도 만질수 있어서 다행이다 싶습니다.

좀더 좋은 모양으로 나오길 기대해 주세요~

REALFORCE 87 키보드 구매

키보드 계의 종착역이라는 REALFORCE를 구매하였습니다.

엇 그제 옆 동료가 키보드 구매했다고 하여서, 호기심에 몇번 타이핑 해 보았는데...
음...   그 호기심에 타이핑 해본 것이 화근이었습니다. ㅠㅠ



그리고....

어느새 주문하고 말입니다.

키보드에 금칠한것도 아닌데... 말입니다. 비싸긴 무지하게 비쌉니다.
몇시간 사용해보지 못했지만, 감은 좋긴합니다. ㅋㅋㅋ

이제 마우스가 남았고...

오늘이나 다음주 월요일 중에 모니터도 한대 오기로했고...
아이폰4도 언제 도착할지 모르지만, 도착할 것이고 말입니다.

이런 아이들이 도착하면 사진기를 들고 와야겟습니다.