일요일, 6월 26, 2005

새로운 API의 개발

새로운 Library를 어떻게 개발할까?

1. 포럼의 결성
=> 각 부분별로 전담 엔지니어를 두며 포럼을 결성 서로의 의견을 공유할 수 있도록 한다.

2. 초안 작성
=> 초안을 작성하며 해당 초안은 포럼을 통해 의결한다.

3. 문서 작성
=> 해당 인터페이스에 대한 문서를 작성한다. 이 때 Doxygen과 같은 자동화 툴을 사용하면 좋다.

4. Test Suite 개발
=> 해당 인터페이스를 검증할 수 있는 테스트 프로그램을 개발한다.
=> 혹은, Test Suite를 디자인 전 단계에 진행할 수 도 있다. XP way~!

5. Reference 개발
=> 해당 API의 적합성을 검증하기 위해 Win32나 Linux와 같은 환경에서 Sample 코드를 개발해보도록 한다. 물론, 추후 다른 플랫폼으로의 포팅이 용이하도록 하면 좋을 것이다.

6. Package
=> 헤더, 문서, 예제, 테스트 Suite을 보기 좋게 (보기 좋은 떡이 먹기도 좋다) 잘 포장하는 단계이다. 일종의 상품화라 보면 될 듯...

삶을 살아가면서 모험의 의미는?

며칠전 베로니카 죽기로 결심하다라는 책을 다 읽었다. 전에 보았던 연금술사와는 또 다른 맛으로 삶이란 스스로의 힘으로 얼만큼 아름다워질 수 있는 지에 대해 말하고자 하였던 것 같다.
과연 삶에서 모험의 의미는 무엇일까?

모든 구속에서 벗어난 사랑?
자신이 전혀 해보지 못했던 스포츠?
험한 산을 오르고 정복하는 일?
그동안의 익숙한 환경을 벗어난 새로운 환경으로의 전환?

나는 30년의 삶을 살아오면서 얼마나 많은 모험을 시도했었고 또 이루기 위해 전력으로 노력해보았었는지 자문해보게 된다.

Java라는 새로운 분야의 업무를 시작한지 6개월. 처음 시작할 때의 각오가 약간은 무뎌져가고 있는 이 때 다시 한번 마음을 다잡고 이 새로운 분야에서 최고가 될 수 있도록 전력으로 노력해보아야 겠다.

내가 하고 있는 일을 사랑하도록 하고 내 주의의 소중한 사람들을 사랑하도록 하고 내가 삶을 영위하며 즐기고 배울 수 있다는 사실을 사랑하도록 하자.

- 하루 하루의 삶을 치열하게 살아가야만 했던 사람들을 생각혀며 -

화요일, 6월 14, 2005

Sun WTK 2.3 베타 버전

다운로드는 이곳에서

WTK 2.3 베타 버전이 출시되었다. 기존 2.2 버전과 달라진점은 아래와 같다.

위와 같이 새로운 JSR 스팩을 구현 제공하고 있으면 기존 2.2 버전과 동일하게 아래와 같은 JSR 스팩 구현을 제공한다.

이외에도 외부 API로서 Nokia의 SNAP Mobile API를 제공한다.

JSR248 - Mobile Service Architecture 소개

JSR 248은 Nokia와 Vodafone이 Spec Lead 역할을 하여 작성한 스팩으로 JTWI를 대신하여 차세대 휴대폰의 J2ME 플랫폼의 기본이 될 것으로 예상된다. 기존 JTWI가 CLDC, MIDP, WMA, MMAPI등을 포함하고 있는 것에 더하여 아래와 같은 다양한 JSR을 표준 라이브러리로 채택하였다.

JSR 75 - PDA optional package
JSR 82 - Bluetooth
JSR 118 - MIDP 2.0
JSR 135 - MMAPI
JSR 139 - CLDC 1.1
JSR 172 - J2ME Web Services
JSR 177 - SATSA for J2ME
JSR 179 - Location
JSR 180 - SIP API for J2ME
JSR 184 - Mobile 3D Graphics
JSR185 - JTWI
JSR 205 - WMA 2.0
JSR 211 - CHAPI
JSR 226 - SVG
JSR 229 - Payment
JSR 234 - AMMS
JSR 238 - Internationalization

현재 Spec은 Draft 버전 0.5 상태이며 Nokia, Samsung, Motorola, RIM, Sony Ericsson과 같은 주요 디바이스 업체 및 Vodafone, Orange, NTT DoCoMo, Cingular Wireless와 같은 주요 캐리어들이 Expert 그룹에 참여하고 있다.

수요일, 6월 08, 2005

기초가 부실 해...

근래 내 기초가 부실하다는 결정적 사건을 겪게되어 느낀바 크다.
원래 전자공학을 전공하다보니 보기 싫은 알고리즘이라든가 컴파일러와 같은 컴퓨터 공학 기본 학문은 아예 등한시 하다보니 기본적 소양이 매우 부족하드는 것을 느꼈다.
물론, 실제 프로젝트 개발 업무에서는 별로 쓸모가 없는 분야이다 보니 평소에는 느끼지 못하고 생활을 하게 되지만 어쩌다 장벾에 부딫히는 경우가 생기니 다시 취미 삼아 공부를 해봐야 겠다는 생각이 든다. 물론, 내 부족한 IQ 문제이기도 하겠으니 노력으로 커버해야 하겠다는 생각도 함께 든다.
에고, 머리가 안따르면 몸뚱아리가 고생하는 수 밖에...
지금부터라도 알고리즘 책이라도 제대로 한번 공부해봐야겠다. 맨날 라이브러리만 가져다 쓰니 고민해본적이 없네... 퍼즐 푼다고 생각하고 재미로 해봐야지!

토요일, 5월 21, 2005

Groovy!

Groovy?

나도 아직은 자세히 모르지만 JVM Spec에 근거한 스크립트 언어이다. 스크립트 언어이므로 빠른 프로토타이핑 및 개발을 할 수 있으며 Java에 비해 매우 간단한 언어 구조를 제공한다.
Groovy에 대해 살짝 살펴보시고 싶으시면 요기를 클릭하시기 바란다.
Groovy는 JSR 표준화 과정 중에 있으며 현재 개발 버전은 요기서 다운받을 수 있다.
좀 더 자세한 자료는 Groovy 문서를 참고하시기 바란다.

목요일, 5월 19, 2005

Unit testing for J2ME

XP methodology에서 가장 중요한 부분인 Unit testing을 Java에서는 주로 JUnit이라는 공개된 라이브러리를 사용하고 있다. 그런데, J2ME 개발 환경에서는 어쩌면 좋을까?
요즘 J2ME 개발 중 Unit 테스팅 코드를 작성하려다 발견한 사이트를 알려드리고자 한다. 물론, 이미 많은 개발자들이 알고 있을지도 모르겠지만...

J2MEUnit

J2ME의 경우 J2SE와 달리 Refelection을 지원하지 않고 또한, Swing도 지원하지 않으므로 기존의 JUnit을 그대로 사용할 수는 없을 것이다. 이를 위해 Open source 프로젝트로 J2MEUnit이라는 라이브러리가 1.1 버전으로 개발되어 있다. J2ME 개발자 여러분들 많이 사용해보시길~
저도 지금 부터 테스트 코드 작성시작하렵니다.

수요일, 5월 18, 2005

From Shenyang

Shenyang에는 정말 한국 기업이 많은가보다. 공항에 도착하자마자 한글이 보이며 공단에도 한국기업들이 많이 진출해있다고 한다.
지금은 선양의 Marriot 호텔에서 숙박하고 있는데 5성급 호텔답게 시설은 좋다. 하지만, Bar라든가 Dance club등 위락 시설은 갖추고 있지않아 무료한 시간을 보내기에는 좀 아쉽다.
다행히 헬스 클럽 및 수영장 시설이 있어 저녁에 운동은 즐길 수 있어 좋다.
주말이 되면 코리아 타운인 서탑가로 가서 푸짐한 식사나 해야겠다.

금요일, 5월 13, 2005

블랙 베리 관련 소개 기사

Black Berry아시죠?
요즘 PDA 1위를 차지하고 있다는 기기. 주로 Email 확인을 위해 사용된다지만 요즘에는 음성 통화도 지원하여 휴대폰과 별반 차이가 없는 것 같네요.

요기를 클릭하시면 Black Berry에 대한 간단한 기술적 정보를 얻으실 수 있습니다.
Black Berry의 Java 관련 개발 정보입니다.

중국 심양(선양) 정보

5/15일 중국 선양에 간다. 선양은 중국 4대 도시로 스모그 현상이 심하기로 유명하다고 한다. 다음은 선양에 대한 관련 정보이다.

1. 서탑가 (西塔街) / 시타제 => 한인거리

2. 공관주소 및 연락처
- 주소 : 中國 遼寧省 沈陽市 和平區 南13緯路 37
(No. 37, South 13 Latitude Road, Heping District, Shenyang, Liaoning, CHINA)
-
대표전화 : (86-24)2385-3388
- 긴급 민원전화(근무시간외) : (86)138-0400-6338

3.
대한항공 T.024-2287-0088

4. 한식당
慶會樓 沈陽市 和平區 敦化路 8024-2346-1088
白帝園 沈陽市 和平區 圖門路 72024-2346-8306
新羅城 沈陽市 和平區 西塔街 敦化140024-2346-9856
吉路園 沈陽市 和平區 西塔街 86024-2340-5778
江南구이전문 沈陽市 和平區 琿春路 13024-2383-1031
코코세계 沈陽市 皇姑區 長江街 142024-8626-8082(한식, 중식)
덕수장 沈陽市 和平區 圖門路 9024-2347-2566
설악산 沈陽市 和平區 西塔街 太原北街 1024-2270-8956

5. 중식당
雅風大酒店 沈陽市 靑年大街 215 024-2388-0111 월채(광동)
天賜樓酒店 沈陽市 北六馬路 21 024-2340-1366 川菜(사천)
魯園大酒店 沈陽市 三好街 6 024-2384-3675 월菜
潮州城大酒店 沈陽市 大南街 106024-2481-3832 潮州菜(광동)
川味酒家 沈陽市 沈河區 仙農壇路 9024-2481-0361 川菜

6. 주요 명소
고궁(故宮)
중산공원(中山公園)
북릉공원(北陵公園)
옛 만주국의 유구(遺構)
안산시- 탕강자 온 천

목요일, 5월 12, 2005

NetBeans 4.1 정식 버전 출시

우리 모두 설치해보세.
요기를 클릭

잡담:
NetBeans 주요 개발 팀이 체코 공화국에 있다는 사실들을 알고 계신지?
체코는 인구 약 1000만이며 체코어를 공용어로 사용하고 있다.
주변 국으로 독일, 슬로바키아 등이 있다.
현재 GNP는 약 8000불 이상 수준이며 자연 경관이 아름답다고 한다.
Sun Microsystems의 개발자들이 100명 이상이며 Java 개발 툴 관련 프로젝트를 진행하고 있다고 한다. 한국에서는 이러한 프로젝트를 진행해 볼 수 없을까? 부럽네...

XP를 적용해보자

Embedded system 개발만 하다보니 XP와 같은 Methodology나 기타 자동화 Tool에 대해 별로 관심을 가지지 못했었다.
Java를 이용한 개발 업무를 진행해보니 ANT와 같은 좋은 Tool도 사용해보게 되고 XP에 대해서도 관심을 가지게 되어 전반적으로 개발 업무 수행 방법을 향샹 시킬 수 있는 좋은 기회로 보인다.

XP is based on four key principles:
1. simplicity
2. communication
3. feedback
4. courage

현재 reading중인 책: Java™ Extreme Programming Cookbook

화요일, 5월 10, 2005

Smartphone OS or Java?

Microsoft가 출시할 Magneto 운영체제에 대해 Symbian의 강력한 경쟁 상대가 될 것이라는 예상이 주류이다. 과연 모바일 디바이스에서도 MS가 독점적인 위치를 누리게 될 것인가?
분명 MS의 시장 지배력이 상당한 위력을 발휘할 것임은 확실하지만 다양한 기기, 다양한 운영체제, 다양한 소비자의 욕구를 충족시키기 위해서는 하나로 통합된 O.S. 환경으로는 문제가 있을 듯 싶다.
특히, 이미 널리 사용되고 있는 Symbian, Palm, In-house O.S. 등의 모든 플랫폼을 만족시키기 위해서는 운영체제외의 통합된 개발 플랫폼이 반드시 필요할 것으로 예상되며 현재로서는 가장 유력한 환경이 Java일 것이다.
이미 Symbian은 Java를 적극 지원하고 있으며 Black Berry와 같은 PDA 1위 디바이스의 경우도 Java를 주요 개발 플랫폼으로 사용하고 있다. 또한, Windows CE라고 해서 Java를 지원하지 말라는 법은 없지 않은가? 그렇다면, 앞으로 Java가 일반적인 어플리케이션을 개발하기 위한 필요 충분 조건이 되어 J2EE에 이어 J2ME가 모바일 환경의 대표 개발 환경이 되는 날이 오지않을까?

J2ME를 자사의 주요 플랫폼으로 사용하는 업체들 -
Nokia
Motorolla
Research In Motion
Vodafone
NTT
Sprint PCS
China Unicom 등...

일요일, 5월 08, 2005

NetBeans 4.1 RC2 설치

RC1 출시 때 지적한 몇가지 버그 사항이 수정되어 있다. 개인적으로 Feedback한 내용이 수정되어 있으니 더 애착이 가는 것이 사실. 하지만, 객관적으로도 꽤 훌륭한 개발 IDE라고 생각한다.
물 론, Eclipse를 사용하는 개발자가 여전히 다수 이겠지만 Java IDE 시장에서 꽤 경쟁력을 갖춘 제품이라고 믿는다. 국내 개발자들 사이에 Java IDE로서 NetBeans를 활성화 할 수 있는 방법을 검토해보고 실천해보았으면 한다.

1. 잡지 기사 작성
2. Online 상의 NetBeans Forum 활성 화
3. 국내 개발자 세미나 개최
4. 제품 문서의 한글화
등등...

어느 것 하나 시간과 노력이 필요하지 않은 것이 없어 실현 가능할런지 모르겠지만 시간적 여유가 생긴다면 반드시 쉬운 것 부터 실천해보도록 하자.

토요일, 5월 07, 2005

Java Software Engineer로서 4개월 째...

이제 4개월에 접어든 Sun에서의 생활. Java를 전혀 모르고 시작했던 생활이지만 이제 슬슬 Java를 알아가고 있는 중이다. 얼마전에 산타 클라라 본사에 Java Media Core 팀과 함께 개발 업무를 진행하기 위해 출장이 잡혀있었는데 이론... 여권이 만료된 줄 모르고 있다가 출장이 날아가 버렸다.
드디어, 이 회사에서의 1번째 실수를 저질르고 만 것이다. 쩝... 난 왜 이렇게 관리적인 업무에서 꼭 실수를 저지르는지 모르겠다. 천상 엔지니어적인 우둔함(?)인지...
혹시나 이 글을 읽으시는 분중에 출장 건이 잡혀있다면 반드시 기억하시길 적어도 여권 만료 기간이 6개월은 남아있어야 출장이 가능함! 또한, 한국 여권은 기간이 짧아 5년이라는 사실.
또한, 여권 만료전에 갱신하면 4500원으로 끝나는 일이 재 발급 받기 위해서는 45000원으로 10배나 비싸진다는 사실. 여권 확인 하세요!

월요일, 1월 10, 2005

KLDP 등 각종 사용자 그룹을 돌아다녀 보니 참 우리 나라에도 열심히 하시는 분들이 많다는 것이 세삼스레 느껴진다. 물론, 온라인 커뮤니티 활동이라는 것이 보이는 것 처럼 진실되지 않은 면이 있을 수도 있겠지만 돈 한푼 받지 않고 문서를 한글화한다든가 각종 무료 S/W를 개발하고 계신 분들을 보면 절로 머리가 숙여진다고나 할까.
나도 뜻한바 목표를 성취하기 위해서는 정말로 열심히 노력해야 겠다. 언제나 순간에 충실하며 미래를 생각하며 지내다 보면 목표한 최정상에 한 발씩 다가갈 수 있겠지.

현재 Study 중: JVM - Chap 14 Performance 완료
앞으로 할 거: kVM 구현 코드 Review 및 문서로 정리

펌글: 새해엔 칭기즈칸이 되자

새해엔 칭기즈칸이 되자

· 가난하다고 탓하지 말라. 나는 들쥐를 잡아 먹으며 연명했다.
· 작은 나라에서 태어났다고 말하지 말라.
나의 병사들은 적들의 100분의 1, 200분의1에 불과했지만 세계를 정복했다.
· 배운 게 없다고 탓하지 말라. 나는 내 이름도 쓸 줄 몰랐지만
남의 말에 귀 기울이면서 현명해지는 법을 배웠다.
· 너무 막막해 포기해야겠다고 말하지 말라.
나는 목에 칼을 쓰고도 탈출했고 뺨에 화살을 맞고도 살아났다."

-CEO 칭기즈칸」中 -

해가 바뀌었지만 세상은 여전히 힘겹다. 숨이 턱까지 올라온다.
하지만 위기와 고난에 처했던 칭기즈칸보다 더 힘들다고 말할 수 있나?
칭기즈칸의 말을 듣는 순간 우리는 이 정도 힘들다고 기죽거나 좌절해선
안 된다고 스스로에게 되뇌어야 하지 않을까.

긍정과 낙관이 성공의 비결

'경영의 신'으로까지 불렸던 마쓰시타 고노스케(松下辛之助)
· 가난하게 태어났다. 하지만 그는 가난을 탓하지 않았다.
오히려 그 덕분에 평생 근검절약해 부자가 될 수 있었다.
· 그는 배우지 못했다. 초등학교 4학년 중퇴가 학력의 전부였다.
하지만 배우지 못한 것을 탓하지 않았다. 오히려 그 덕분에 그는
평생 배움에 열정을 쏟았고 말년에는 마쓰시타 경숙(松下政經塾)을 세워
인재 양성의 귀감이 되었다.
· 그는 몸이 약했다. 하지만 탓하지 않았다. 오히려 그 덕분에 그는 누구보다
먼저 건강의 중요성을 알았고 스스로 조심해 95세까지 장수 할 수 있었다.

아무리 어려워도 자신의 오늘을 긍정할 수 있는 사람만이 내일의 승자가 될 수 있다. 그리고 아무리 힘겨워도 자신의 내일을 낙관하는 사람만이 오늘을 충실

하게 잘 살 수 있다. 그런 긍정과 낙관이 진짜 성공의 비결이다.

랜스 암스트롱은 25세에 고환암에 걸렸다. 하지만 그는 기적적으로 고환암을
극복한 뒤 세계적인 도로사이클경주인 '투르 드 프랑스'에서 내리6연패를 했다.
프랑스 전국을 한 달간 일주하는 동안 그는 특히 산악지형에서 강세를 보였다.
암스트롱은 터질 듯한 심장을 움켜쥐고 자전거 페달을 밟아 피레네 산맥을 넘고 알프스 산맥을 넘나들었다. 그는 정말이지 단 1%의 희망만 있어도 달렸다.

그가 그렇게 할 수 있었던 것은 "너의 모든 부정적인 것들을 긍정적인 것들의 기회로 삼으라"고 가르쳤던 그의 어머니가 있었기에 오늘의 위대한 승자,
암스트롱도 있는 것이다.

부정은 부정을 낳고 긍정은 긍정을 낳는다.
비관은 비관을 심고 낙관은 낙관을 심는다.

새해 벽두에 부모님 묘소를 찾았다. 30여년 전 채 환갑도 못 지내시고 돌아가신 내 아버지의 함자는 거명하는 것이 외람되지만 '정 관()자 찬()'.

아버지는 늘 짙게 밴 평안도 사투리로 이렇게 말씀하셨다.
"
아무리 힘들어도 괜찮아. 내 이름이 관찬아잖아.
무슨일이 있어도 괜찮다니깐 그러네, 불이 나도 괜찮아. 여기 방화선이 있잖네" 방화선이란 말 그대로 불이 번지는 것을 막아주는 방화선(防火線)을 뜻하는 것이려니와 또한 어김없이 내 어머니를 가리키는 말이기도 했다.

내 어머니 함자가 '방 화()자 선()'이기 때문이다.

1%의 희망만 있어도 달리자

그 질박한 이름풀이 속에서 아버지는 내게 긍정을 심어주셨다.
그리고 낙관을 유산으로 물려주셨다. 덕분에 나는 산다. 아버지가 당신의 이름을 빗대어 가며 내게 이야기해준 그 뿌리깊은 긍정과 낙관 덕분에 말이다.

세상이 힘겹다. 어렵다. 좀체 나아질 기미가 보이지 않는다.

하지만 포기하지 말자. 절대로, 절대로, 절대로 포기하지 말자.

이 난관을 뚫고 나갈 진정한 동력은 다름 아닌 자기 삶에 대한 긍정과 낙관이다.

그 긍정과 낙관 때문에 마쓰시타고노스케는 거기서 포기하지 않았다.
칭기즈칸 역시 거기서 머물지 않았다. 우리 또한 그래야 한다.

그래서 새해엔 나도 마쓰시타가 되자. 암스트롱이 되자. 칭기즈칸이 되자.
자기 삻에 대한 진한 긍정과 낙관 속에서 말이다.

<출처 : 중앙일보 05. 1. 5, 중앙시평 정진홍 논설위원>

금요일, 1월 07, 2005

2005년에 미래를 생각하며...

내가 앞으로 되고자 하는 사람은 어떤 모습일까?

1. S/W 개발자로서의 전문가
2. 팀 단위의 S/W 개발을 관리할 수 있는 전문적 능력 및 감성적 능력
3. 위와 관련된 분야에 대해 후배 엔지니어에게 99% 확신을 가지고 조언해 줄 수 있는 능력

위 목표들을 달성하기 위한 Action Item으로서는

1. Java 기술 분야: J2ME, J2SE, J2EE
2. Consumer Device 관련된 주변 기술
3. XP Methodology 습득 및 적용
4. 경영 및 인문 분야 서적 틈틈이 읽기
5. Offline, Online 상의 관련 분야 모임 참여, 지식 전달

현재 Study 중: JVM Chap10, Java Certification Chap10
현재 Reading 중: 탓닉한 스님의 '화'

화요일, 1월 04, 2005

"연금술사"와 어떤 분의 한마디.

근래 연금술사를 보면서도 느낀점이지만 역시 사람이 행복하기 위해서는 "꿈"이 있어야 하고 그 "꿈"을 이루기 위한 길을 가야하지 않을까한다.
오늘 회사에서 모 PL님과도 이야기한 것이지만 그러한 "꿈"을 찾아가는 길을 걷다보면 어느새 발전한 내 모습을 볼 수 있지 않을까?

오늘의 학습: JVM중에서 Class Loader 부분
오늘의 이슈:
오늘의 공상: 음... 기술사나 되볼까? 사람 많이 사귈 수 있지 않을까?

월요일, 1월 03, 2005

코드 수정 시 주의하자!

코드 수정 절차

1. 수정 전에 수정 완료한 결과가 어떠한 영향을 미칠 수 있을지에 대한 목록을 작성해본다.
2. 주의 깊게 수정한 후
3. 디버거로 Trace를 진행해 보고
4. 만일 기존에 작성되어 있던 테스트 코드가 있다면 수행해보고
5. 1번에서 작성해둔 영향 목록에 대해 테스트를 수행해본다.
6. 수정 내역에 대해 소스 형상 관리 DB에 자세히 기록해둔다.
수정 목적, 수정 내용, 수정 결과
7. 혹시, 다른 개발자도 수정 내용을 파악해야 할 필요성이 있다면 공지한다.

- END -