수요일, 8월 31, 2005

삼성 어린이 박물관에서~



삼성 어린이 박물관에서 찍은 사진 한장. 삼성 정도 기업이면 좀 더 최신식 시설을 갖추어 놓고 사회 환원 차원으로 운영할만도 한데 시설이 좀 노후해보여서 실망이였다. 하지만, 좋아라 하는 수민군의 모습 ㅋㅋㅋ

함께 일하기!

능력이 뛰어난 친구가 있다. 언제나 맡은 바 일을 100% 이상으로 수행하며 심지어 다른 사람의 일까지 자신이 처리하곤 한다.
이런 동료가 옆에 있다면 든든하지 않을까? 물론, 어떤 이들은 전혀 스트레스를 받지않고 함께 일할 수도 있겠으나 어떤 이들은(사실은 대다수가) 이런 뛰어난 능력의 소유자가 자신의 바로 근처에 존재한다는 것에 심한 스트레스를 받을 수 있을 것이다.
그렇다면, 팀을 위해서 어떻게 해야 할 것인가? 아무리 뛰어난 개인이라고는 해도 모든 일을 혼자서 처리할 수는 없으므로 팀과 함께 일해야만 하는 것은 자명한 사실이다.
우리는 이럴 때 능력이 출중한 자와 평범한 자 그리고, 다른 사람들보다 뒤쳐지는 사람들을 아울러 팀을 이끌어 나갈 수 있는 뛰어난 감독(팀장)을 목청 높여 찾고는 한다.
어떤 사람이 이러한 일을 해낼 수 있을까? 특히나 출중한 자들은 남의 말은 잘 듣지 않는 독불 장군 형이 많은데? 어떻게 해야 하지?

화요일, 8월 30, 2005

중요도!

현제 내 생활을 이루는 각 활동의 중요도는?

1. 운동 => 몸짱은 못 될 지어정 배불뚝이는 될 수 없다.
2. 어학 공부 => 적어도 3개 언어는 구사하고 싶다.
3. Java 프로그래밍 => 밥벌이이자 내 삶의 가장 많은 시간을 차지하는 직업!
4. 독서 => 좋은 책 많이 읽고 싶다.
5. 영화 및 드라마 => 재미있는 영화나 드라마 좋아 좋아
6. 돈 => 돈을 모으고 불려야 원하는 걸 하지
7. 여행 => 가족들과 여기 저기 다니면서 많은 걸 보고 다른 세계의 사람들도 사귀어 보고~
8. 사람들 => 여러 사람들과 대화나누고 새로운 사람들도 만나보고 재밌다.
9. 경력 관리 => 스스로 프로임을 인정할 수 있을 정도의 경력 관리를 하고 싶다.

화요일, 8월 09, 2005

Derby 졸업을 축하합니다!

Pure Java로 작성한 RDBMS인 Derby가 Apache Incubator Project에서 졸업하여 정식 버전이 발표되었다.
물론 Sun의 적수인 IBM에서 많이 기부한 프로젝트이지만 이제 Sun도 Derby를 지원하기로 하였으니 한집살이 신세가 된 것이다!
그러니 Java를 사랑하시는 여러 개발자여러분 IBM이 밉더라도 Derby는 미워하지마세요 :)
놀랍게도 Derby는 Java ME 환경에서도 사용가능하다니 저도 한번 테스트해보렵니다.
샘플 코드 작성해보고 결과가 있으면 나중에 다시 글 올려야지~~~

일요일, 7월 31, 2005

무궁 무진 Java ME의 세계에 빠져 봅시다~

너무나도 해볼게 많아서 신나지 아니한가!
굳이 Java SE나 EE 분야가 아니라도 Java ME만 하더라도 앞으로 배우고 익혀 써먹을 분야가 너무나도 많다. 일단, Spec도 보고 RI도 구현하고 OI도 구현하고 해야 겠고 추후에는 잘만든 Application도 구현해보고 싶다.

JTWI - 현재 일하고 있는 분야. CLDC 1.1 + MIDP 2.0 + WMA + MMAPI 스팩

MSA - 앞으로 일하게 될 분야. 엄청나게 추가된 Spec들 자세한 내용은 기존 Archive를 보면 있다.

Java Card - 음. Java Card도 재미있을 것 같다. 한번 슬쩍 공부는 해 두어야지.

OpenCable - 앞으로 디지털 TV나 셋탑 박스등에 표준으로 채용될 가능성이 매우 크다고 한다. 이 Spec도 한 500페이지 분량정도 되던데 역시 흟어보기라도 해야겠다.

Mobile Phone, Smart Phone, Digital TV, Setop Box, Game Console, Media Player, DVD Player 등등 다양한 기기에 JVM이 돌아가고 각종 Java Application들이 동작할것을 생각하니 너무 너무 신나는 구나!

Java Go! Go!

수요일, 7월 27, 2005

Turn around?

FY05 SUN의 최종 실적이 아주 미약하나마 흑자로 전환되었고 EPS도 분석가들의 예상을 상회하는 6%대로 나와 주가가 상승중으로 보인다.
과연, FY06에는 스콧 형님의 바램대로 Growth! 를 달성하여 10$, 20$, 30$까지 주가를 회복할 수 있을까?
그렇게만 되면 나도 부자될 수 있는데 :( 꼭~~~

화요일, 7월 19, 2005

J2ME의 WORA 윈칙

Write Once Run Anywhere - Java의 가장 중요한 이 윈칙이 J2ME 세계에서는 잘 지켜지지 못하고 있다고 한다. 이유는? 표준의 부재때문일까? 각종 JSR 표준을 보면 꼭 그렇지도 않은 것 같고.
사실 WTK 수준의 기능이 모든 휴대폰 단말에서 제공된다고 한다면 에뮬레이터에서 작성한 APP가 모든 휴대폰에서 동일하게 동작하는 윈대한 목표가 그저 뒷방에 쳐박힌 초라한 애물단지 신세는 되지않을 터인데.
문제는 각 휴대 제조사별로 J2ME를 구현하는데 있어 SPEC이 요구하는 OPTIONAL 사항이 많은 부분 서로 차이가 발생하기 때문이 아닐까 한다. MUST가 아니라면 바쁜 일정과 구현하기도 난해한 SPEC을 애라 모르겠다 하고 넘어가기 일수~
왜 SPEC에 OPTIONAL이라고 기분 좋은 아저씨마냥 관대한 표현을 써서 이토록 표준화된 플랫폼이 제공되기 어렵게 했는지 참~
그런 점에서 앞으로 Sun JPE ES 부서는 신속하고 저렴한 ES를 제공하는 것을 목적으로 할 뿐만 아니라 J2ME의 WORA의 윈대한 목표를 달성하기 위해 J2ME 표준에 모두 부합하는 Java 디바이스 개발을 위한 컨설팅 및 구현 서비스를 제공해야 하지 않을까 한다.
한 1년 쯤 짬밥이 쌓이면 윗분들한테 들이밀어볼 생각이다. 너나 잘해 그러지는 않겠지 ^^

월요일, 7월 18, 2005

경영자와 노동자

아무리 자주의식을 가지고 일을 한다고 해도 경영자와 노동자는 회사에 대한 애착(?)이 틀릴 수 밖에 없을 것이다.
나의 경우를 비추어보자면 회사 자체에 대한 애착보다는 내가 만든 제품, 함께 고생하는 동료들에 대한 애착이 더 클것이고 잘은 모르지만 경영자의 입장에서는 회사라는 좀 더 고차원적인 존재에 대한 애착을 가지고 있을 것이다.
제품이나 사원은 그 회사를 구성하고 유지하기 위한 일종의 부속으로서 존재한다고 생각될 수도 있겠다.
물론, 노동자의 입장에서도 정말 다닐 맛 나는 회사 분위기를 만들어주기만 한다면 회사에 대한 애사심은 사장이나 경영진보다 더 커질 수도 있겠지만 사실상 이러한 분위기는 거의 담벼락에 콩나물 나듯이 드문 경우라고 할 수 있겠다.
그렇다면 노동자의 입장에서 최선은 무엇일까?

1. 주어진 업무에 최선을 다하여 자신의 능력을 배양하고 회사의 이익을 실천한다.
2. 1번이 잘 되는 경우 아주 재수가 좋다면 그 회사에서 인정받고 나도 경영진이 될 수도 있다.
3. 업무와 개인의 시간을 잘 할애하여 좀 더 발전된 미래를 위한 투자를 한다.
4. 오호... 3번의 경우 과연 우리 사장이 그렇게 시간을 줄까나? 잘 생각해보시고 진짜 이러한 시간이 없는데다가 주어진 업무 마저 아무리 잘해봤자 앞날에 거의~ 도움이 안된다고 판단되시면 이직을 심각히 생각해 보심이.
5. 에고... 갈데도 없고 돈도 없으니 자리 보전이라도 잘해야지 무슨 소리!
6. 5번의 경우라면 정말 어쩔 수 없지만 그래도 내 앞날이 너무 불쌍하지 않는가?

사람은 모두 미래에 좀 더 지금보다는 나은 삶을 살고자 하는 욕망이 있을터인데 이를 이루기 위한 길을 현재 자신이 걷고 있는지 가끔 현재의 모습을 살펴보는 여유도 가져보았으면 좋겠다.

뭔소린지? 결국, 나도 미래에는 노동자를 구박하는 경영자가 되었으면 좋겠다 그런 말인감?

일요일, 7월 17, 2005

Java Pointer와 Java Branding

Java.sun.com 페이지에서 얻은 웹 페이지 Sun 개발자인 Charles Ditzel 작성한 Java 관련 유용한 정보의 URL 모음 집이다. 링크는 요기입니다.
그외의 소식으로 Sun이 앞으로 Java관련 Brand를 통일하기로 하였다는 소식도 있습니다.~~
J2SE 1.5, Java 5.0 등등 햇갈리게 여러 가지 명칭으로 불리던 Java가 하나의 Brand로 통일된다네요~ 앞으로는 아래와 같은 형식의 이름으로 불리게 됩니다.
  • Java Platform, Standard Edition 6
  • Java Platform, Enterprise Edition 5
  • Java Platform, Micro Edition
어때요 휠씬 단순하죠? Java SE 5.0, Java SE 6.0, Java SE 7.0 ...
이제 '2' 자는 안녕이네요~ 좀 더 자세한 관련자료는 요기에

토요일, 7월 16, 2005

향수 선물

며칠전 전 직장에서 친하게 지내던 여직원에게 향수 선물을 받았다. 이 친구가 유럽여행을 다녀오면서 생각이 나서 사왔다고 한다. 오호~~
이 얼만만에 외간 여자에게서 받아보는 선물이란 말인가! 감동~~~
사실, 결혼을 하고도 이성 친구가 있고 서로 동성에게서는 느낄 수 없는 어떤 교감(?)을 자신의 배우자가 아닌 다른 사람에게서 찾고자 하는 것이 우째 쪼금 뻔뻔스러울 수도 있다고 생각되기는 하지만 뭐~ 못된짓 안하고 정신적으로도 깨끗하다면사 큰 문제가 될 것은 없지 않을까?
인생을 살아가며 가족이라는 테두리안에서만 인간 관계를 한정지을 수도 없는 것이고 그렇다고 외부 세계의 모든 여자들은 화성인인양 고래 고래 소리지르며 피해다닐 수 있는 것도 아니고 말이다.

여하튼, 이 향수를 와이프한테 이미 전 회사 여직원한테 선물받았다고 이실 직고 했으니 냄새 풍기고 다녀도 큰 문제는 없겠징~ :)

FY06 시작!

Sun의 FY06가 시작되었다. 이제 FY05를 졸업하고 FY06를 시작하는 나로써는 여러가지 생각을 하게된다. Sun에 입사하여 혹독한(?) 영어 듣기 훈련을 하며 20년 넘는 우리의 슈퍼 싸이언 엔지니어분들의 질책도 들으며 근 10년이 다 되가는 한국판 노땅 엔지니어로서는 일반적으로 경험할 수 없는 새로운 것들을 경험하고 있으며 또한, 시장이 기업이 이윤을 창출하지 못하면 그 소속원들이 쓰디쓴 경험을 맛 볼 수 있다는 사실도 실감하고 있다.
기존 휴대폰회사와는 생판 다른 쌩뚱맞은 분위기가 약간 거슬리기는 하지만 들판의 늑대처럼 이리 저리 날뛰며 일해오던 그 때와는 달리 정돈되고 제어되고 있는 분위기 속에서 여러가지 새로운 경험을 쌓아가고 있는 것은 마음에 든다.
한 3년쯤 지나서 Embedded Java 개발자로서 얼마간의 경지에 다다르게 되면 또 다시 새로운 모험을 찾아 떠날 가능성이 크지만 (물론, 회사가 쭉쭉 뻗어나간다면 편히 발 뻗고 쉴 생각도 없지는 않다만) 아직도 나는 이 쌩뚱맞은 환경에서 느끼고 배워나갈 것이 많다고 생각하며 열정적으로 재미있게 일해보려 한다.

금요일, 7월 08, 2005

use_semi, use_no_semi Link Error

ARM compiler를 이용해 개발하다보면 use_semi, use_no_semi 어쩌구 저쩌구 하는 링크 에러 때문에 고생해본 경험들이 한번쯤 있을 것이다. 한 경력 5년을 넘어가는 시점에 고까짓 링크 에러 때문에 몇 시간씩 해매고 있는 자신을 발견하면 한심하기 짝이없다는 자괴감이 들기 시작하고 확 때려치우고 싶은 생각이 들만도 한데... 밥줄인지라 그러지는 못하고 어떻게 할까?

위와 같은 semi hosting에 관련된 링크에러를 해결하는 Tip을 정리해보고자 한다. 다음에 또 이런 링크에러가 발생하면 재빨리 이 페이지를 참고하여 번개같이 해결하도록 하자!

1. 우선 Link시 Error와 Map 파일을 생성하여 도데체 어떤 놈이 Semihosting 관련 함수를 호출하는지 찾을 수 있도록 한다.

2. ARM Compiler Guide 4-9 페이지를 참조하면 (페이지가 정확할런지 모르겠는데) semihosting 관련 함수 목록이 테이블로 제공되는데 해당 함수들을 이 잡듯이 Map, Error 파일에서 찾는다.

3. 찾았다! 그럼 해당 C 모듈로 가서 그 함수를 지우고 Source Control 시스템에서 도데체 어떤 놈이 이 코드를 Check-in해서 생고생을 시켰는지 확인하여 때려준다.

4. 특히, ARM의 Heap 메모리 매니저를 사용하는 경우 Default __user_initial_stackheap 함수를 링크하게 되는 경우 동일한 링크 에러가 발생하니 주의하도록 하고 C++의 경우 new operator를 호출하면 결국 malloc을 사용하게 된다는 것도 유념하도록 하자!

월요일, 7월 04, 2005

Matisse (마티스) 데모 => 대우 마티즈 아님.

Matisse가 누굴까요? 구글 It!
앙리 마티스는 그 이름도 무시 무시한 야수파의 리더격인 화가랍니다.

<붉은방>

그런데, Java와 야수가 무슨 관계일까요? Java와 야수~~~

현재 NetBeans 프로젝트에서 오픈 소스로 개발 중인 Matisse 프로젝트는 야수적이지 않은 매우 이성적이고 깔끔한 Swing Form 에디터를 제공합니다.
Java Swing으로 개발하다보면 처음 느끼는 폼 레이아웃의 어물쩡 정리되어 버리는 화면 배치에 가슴 아픈적이 한두번 씩 있었죠?
Matisse는 그러한 여러분들의 상처를 말끔이 씻어줄 제품으로 보입니다. (현재 알파 버전입니다.)

궁금하시다구요. 여기 링크를 클릭하시면 자세한 내용을 안타까옵게도 영문으로 구경하실 수 있구요 영 영어가 안되시는 분들은 여기 Flash 데모라도 감상해보십시오.

야수파의 세계로 빠져봅시다!

일요일, 7월 03, 2005

Growing a Language

한번 읽어 보도록 하자. (여기)
독후감은 추후에 업데이트하도록 하겠음.

참고: 이 기사의 저자인 Guy Steel은 현재 Sun Microsystems에 근무하는 Compuer Scientist임.

Bluelay DVD 표준의 Java 채택

차세대 DVD 표준안의 양대 주요 안 중 하나인 Bluelay DVD 표준 진영에서 Java를 표준 VM으로 탑재하기로 하였다. 이로써 Java는 더욱 더 Embedded 가전 분야에서 힘을 받을 듯 한데...

Java를 앞으로의 Career Path로 결정한 주요 이유인 가전 시장에서의 비전이 점점 가시화되고 있는 것으로 보여 안도의 한숨이 나온다 : )

솔 직히 안정된 휴대폰 업계를 벗어나 새로운 분야로 들어오면서 걱정도 좀 되기는 했지만 모바일, 임베디드, Java 그리고 다국적기업 환경에서의 업무 경험등을 고려하여 전직을 시도했는데 현재 시장 사항을 보니 그 결정이 옳은 방향으로 진행되가는 것 같아 솔직히 고무되고 있다.

앞으로 임베디드 S/W 개발을 위한 주요 기술은 언어로는 C, Java. 플랫폼으로는 Java. 하드웨어 플랫폼으로는 ARM. 기타 주요 기술로는 네트워크 및 멀티미디어 분야가 핵심 으로 꼽히지 않을까 한다.

즉, C / Java 언어를 능숙하게 다루며 Java 라이브러리에 박식하고 ARM CPU에 대한 성능 측면에서의 지식을 가지고 네트워크 및 멀티미디어 관련 기술을 소지한 개발자는 업계에서 아주 좋은 대우를 받을 수 있지 않을까하는 전망을 (과감히) 내놓는 바이다!!!

개인적으로 제안하는 Study Plan:
- C
- Java
- J2ME (CLDC/MIDP/CDC), Java Card 등 Java 플랫폼
- ARM CPU 어셈블러 => 디버깅 및 Optimization을 위한 기술
- 네트워크 관련 지식
=> 특히, Wireless 관련 지식이라면 더욱 좋겠다. (Bluetooth, CDMA 등등)
- 멀티미디어 관련 지식
=> 특별나게 심오한 지식이라기 보다는 프로그램 개발 시 혹은 업무 진행 시 의사 소통은 가능하고 큰 그림은 그릴 수 있도록

일요일, 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 문제이기도 하겠으니 노력으로 커버해야 하겠다는 생각도 함께 든다.
에고, 머리가 안따르면 몸뚱아리가 고생하는 수 밖에...
지금부터라도 알고리즘 책이라도 제대로 한번 공부해봐야겠다. 맨날 라이브러리만 가져다 쓰니 고민해본적이 없네... 퍼즐 푼다고 생각하고 재미로 해봐야지!