일요일, 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 등등)
- 멀티미디어 관련 지식
=> 특별나게 심오한 지식이라기 보다는 프로그램 개발 시 혹은 업무 진행 시 의사 소통은 가능하고 큰 그림은 그릴 수 있도록