블로그 이미지
초딩입맛제주아재
하고 싶은 것만 하며 살고 싶다

calendar

1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
2007. 9. 8. 00:11 Programing/Java

오늘 JavaOne2007 Wrap-up 세미나 에 다녀왔다.
JavaFX 가 너무 궁굼해서 갔던 세미나였다.
첫번째 세션은 2007 JavaOne에 다녀오신 분이 그 때의 이슈를 소개하는 시간이었는데 듣는 것만으로도 JavaOne이란 행사가 얼마나 재밌고 유익한지 알 수 있었다.
2008 JavaOne에는 참석 할 수 있는 기회가 생길런지...

두번째 세션은 JavaFX에 대한 소개였다.
사실 이 세션 때문에 간것이나 다름 없었는데 뭐랄까...
기대가 너무 컸던것일까?
"JavaFX란 이런것이다" 라는 설명을 듣고 난 후 별 감흥이 없었다.
좀더 화려한 예제를 보길 기대했는데 웹사이트 두 개 보는 것으로 끝나버렸다.

하지만 이 번 세션에서 알아낸것이 있었으니, 바로 JavaFX가 Product Name 이 아니라 Brand Name 이라는것이다.
이 사실을 알기 전에는 Flex=Silverlight=JavaFX 이렇게 생각을 하고 있었다...
JavaFX는 "모든 기기의 통합"을 지향한다.
PC,TV,DVD 플레이어,PDA,핸드폰 등등, 모든 IT기기에서 사용자가 동일한 느낌을 받을 수 있도록 하는것이 목적이라고한다.
PC에서 fiickr에 접속해 사진을 보는것과 핸드폰에서 같은 화면을 볼때 상이한 느낌을 전달해서는 안된다는 것이다.
another device,same experience...(아닌가 ㅡㅡ?)

JavaFX는 브렌드명이고 그 아래에 JavaFX Mobile과 JavaFX Script 가 출시가 되었다.
이 두가지 Product 외에도 계획중인 Product가 네다섯개 더 있는데 시장 규모와 파급 효과가 큰 이 두개를 먼저 출시했다고 한다.

JavaFX Script 에 대해선 자세한 설명이 있었고 샘플 코드도 볼 수 있었다.
발표자는 "easy"를 강조하셨는데 내 생각은 "글쎄..."다.
자바 로고 하나를 만들기 위해 만들어진 수백라인의 코드를 보면서 노가다성 툴이라는 생각이 들었다.
디자이너와의 협업도 문제가 될 것 같고...
머...Sun이니 머지않아 드로잉 툴을 지원해주겠지..하고 위안을 해본다.

세번째 세션은 JMaki에 대한 소개였다.
JMaki가 뭔지 오늘 처음 알았다 ㅡㅡ;
여러가지 javascript toolkit들과의 차이점을 별로 못 느꼈다.
다만 IDE의 지원으로 인해 마우스질로 스크립팅이 가능하다는것...

마지막 세션은 JSF,Hibernate,Spring을 이용한 어플리케이션 개발 소개였다.
발표자가 세미나 발표 경험이 적은지 발표가 매끄럽지 않았다...
Hibernate,Spring 둘 다 관심이 많았는데 세미나 참석자들이 모두 저것들을 다룰줄 안다고 가정한 발표였는지 도통 무슨 말인지 알아 들을 수가 없었다.
아무리 자바관련 세미나라지만 참석하는 사람들이 모두 자바를 사용하는 것은 아닐텐데...

신청할 때 부터 기대가 매우 컸던 세미나였다.
그래서 그만큼 실망도 큰가보다.
그렇다고 시간낭비는 아니었다.
빈약하지만 JavaFX의 샘플 사이트도 봤고, JMaki라는 것도 알게됐고, JavaOne에 꼭 가고 싶게 만든 자료들도 봤으니까...
다음 세미나를 기대해본다...

posted by 초딩입맛제주아재
2007. 9. 4. 21:45 날개를달자
http://www.youtube.com/watch?v=igDUdq-v8Uw

CD한장 굽는데도 그들만의 상상력이 묻어난다.
어떻게 저런 생각을 했는지, 그들의 상상력은 놀랍기만 하다.
Apple...
그들은 Apple다운것이 무엇인지를 잘 알고 있고
보다 Apple스럽게 진화하고 있다.
posted by 초딩입맛제주아재
2007. 9. 3. 23:31 Programing/Java
JavaFX는 또 어떤 신선한 충격을 던져줄까 기대가 크다.
지난 번 오픈마루 스튜디오에서 열린 데브데이에 참석을 못해서 Silverlight 경험을 못해본게 아쉬었는데 이번에는 기필코 JavaFX의 실체를 두 눈으로 확인해야겠다.
Silverlight - JavaFX - Flex
재밌는 싸움이 시작되었다.....

일시: 9월 7일(금) 오후 2시
장소: 강남구 역삼동 포스틸타워 3층 (역삼역 3번출구)
일정: 14:00 - 14:20 등록
       14:20 - 14:50 JavaOne2007 주요 이슈
       14:50 - 15:40 JavaFX의 실체를 밝혀라!
       15:40 - 15:50 휴식
       15:50 - 16:40 비주얼 개발 환경에 jMaki 이용하기
       16:40 - 17:30 JSF, Hibernate, Spring 을 이용한 웹 어플리케이션 개발 소개
참가비: 무료

http://www.sdnkorea.com/blog/427


posted by 초딩입맛제주아재
2007. 8. 31. 23:15 삶은달걀

1년여 동안 카페 활동하면서, 아니 카페가 만들어진 이후 첫 오프라인 모임인것 같다.
연초 자바 컨퍼런스때 달룟님과 시즈하님을 만난것을 빼면...
워낙 프로그래밍에 미쳐(?)계신 분들이고 카페에서도 늘상 그 쪽 얘기만 하는 분들이라 모임이 밋밋하고 재미 없지 않을까 우려했는데 오히려 하나의 공통 관심사에 화두가 집중되어 이야기가 지루하지 않고 재미있었다.
벌써 두 권이나 원서를 번역하신 꾸러기님이나 재야의 고수 달룟님이나 미래가 밝아 보이는 학생-젊은 피 카페모카님,소년같은 모습과는 반대로 깊이를 알 수 없는 내공을 지닌 시즈하님이나 바라크다님까지 모두 다 나와는 다른 세상의 사람들 같이 느껴졌다.
나는 언제쯤 저들과 입을 나란히 하고 열띤 토론을 벌일 수 있을까...
꾸러기님과 달룟님께서 얼른 스터디를 주관 하시면 좋겠는데...
다음 모임이 무척이나 기대된다...
그때까지 공부 열심히...!!

posted by 초딩입맛제주아재
2007. 8. 25. 20:40 삶은달걀
PHPSCHOOL 학우들끼리 '자바스터디'란 이름의 스터디를 오늘 오전 10시 토즈 강남점에서 하고왔다.
토즈라는 곳.
처음 가봤는데 스터디나 소규모 세미나를 하기에 최적의 장소인듯 하다.
진작 알았다면 좋았을것을...
오늘은 Eclipse WTP 사용법(난 기존에 Easy-Eclipse LAMP 버전을 쓰고 있었다)과 Servlet & JSP를 이클립스에서 사용하는 법을 배웠다.
두 시간동안 IDE,Container,JDK 설치하고 "Hello World" 찍는것과 JAVA진영의 직업군과 근무여건 등의 강의를 들었다.
지루하지는 않았지만 다들 처음 보는 사이라 그런지 서먹해서 강의자 말이 끊기면 조~용~ 했다...
JAVA의 웹 프레임웍은 종류가 다양해서 좀 짜증난다.
Struts,Spring,Hibernate...
자유분방하게 프레임웍에 연연하지 않고 JSP를 쓰면 쉽겠지만 JAVA를 가지고 웹 어플리케이션을 만들면서 JSP만 달랑 쓰는 곳은 없지 않은가...
이번 스터디는 Spring 까지 한다고 하니 기대가 된다.
하이버네이트는 모카님을 졸라봐야지 ㅍ.ㅍ
posted by 초딩입맛제주아재
2007. 8. 21. 12:35 삶은달걀
경제가 어려워서인가 근로자들이 임금을 제대로 받지 못하는 경우를 어렵지 않게 찾아 볼 수 있다.
내가 아는 사람들만 해도 서너명은 된다.
월급쟁이한테 임금은 그야말로 버팀목이다.
부양가족이 있다면 그 부담은 몇배가 되는데 이런 상황에서 한달만 급여가 밀려도 생활이 어려워지고 그 후유증이 크다.
몇일전 출근길에서 무료신문을 보다가 이런 문제를 해결할 좋은 기사를 보고 발췌해본다.
이 글을 보시는 분 주위에 임금 체불의 고통을 겪고 있는 분이 있다면 도움이 될 수 있으리라 생각한다.
<출처: 노컷뉴스 2007년 8월 17일자 27면>
사용자로부터 임금이나 퇴직금을 받지 못한 근로자는 지방노동관서의 근로감독관에게 진정(신고)하여 도움을 받을 수 있다.
신고나 진정을 받은 근로감독관은 사실 여부를 확인한 후 임금체불사실이 확인되면 사용자에게 기간을 정해 밀린 임금과 퇴직금을 근로자에게 지급하라고 지시한다.
이런 과정을 거치고도 밀린 임금과 퇴직금을 받지 못했다면 최종적으로 소송을 통해 구제받을 수밖에 없는데, 청구하는 금액이 적은 경우에는 법원에 지급명령 신청 을 하는 것이 유리하다.
지급명령은 법원이 서류 심사만 한 후 바로 돈을 지급하라는 명령을 내려주기 때문에 절차가 신속하고 비용도 적게 든다.
다만 상대방이 이의를 제기하면 일반 민사소송절차로 넘어가게 된다.
청구하는 금액이 큰 경우에는 민사소송을 제기해야 한다.
이런 경우 미리 가압류를해두어야 나중에 집행곤란을 예방할 수있으므로 근로자는 미리 회사 명의의 토지나 건물 등을 파악해두는 것이 좋다.
지급명령이든 일반 민사소송이든 법원에 임금청구 소송을 제기할 때는 보통노동부에서 발급해주는 체불금품확인원 을 증거로 많이 제출한다.
이는 임금이나 퇴직금이 아직까지 지급되지 않고있다는 사실을 확인해주는 서류로 민사소송에서 유력한 증거가 된다.
근로기준법 등 관련법에서는 근로자의최종 3개월분의 월급과 최종 3년간의 퇴직금, 그리고 재해보상금을 사용자의 다른저당권자나 채권자보다 우선하여 보호하도록 하고 있다.
그러므로 사용자에 대해다른 채권자들이 이미 강제집행을 하고있다면 따로 가압류할 필요 없이 곧바로정해진 기간 내에 배당 요구를 함으로써밀린 임금과 퇴직금을 받을 수 있다.
한편임금 또는 퇴직금 채권은 3년 이내에 청구를 하여야 하며 기간이 지나면 소멸한다.

'삶은달걀' 카테고리의 다른 글

Smalltalk 객체마을 오프라인 모임  (0) 2007.08.31
자바스터디  (0) 2007.08.25
쇼펜하우어가 말하는 논쟁에서 이기는 37가지 방법.  (0) 2007.04.06
개발자라며??  (0) 2007.03.28
이사  (0) 2007.02.12
posted by 초딩입맛제주아재
2007. 8. 7. 13:02 도서
사용자 삽입 이미지

w3c.org에서만 CSS관련 정보를 얻어왔던 터라 별도의 책이 필요하지는 않았었는데
이번에 업무 진행에서 막히는 부분이 있어 부득이 하게 책을 구매하게 되었다.
책을 받고 비교적 얇은 두깨의 책 부피에 뭔가 낚인 기분이 들었으나 기우였다.
읽고 난 후 왜 이책이 노란책(실용예제로 배우는 웹표준),파란책(방탄웹)과 더불어 웹 개발 필독 도서로 불리는지를 알것 같았다.
실전에서 부딪히는 갖가지 문제에 대한 해결법을 제시하는 것에 그치지 않고 그 원인 규명까지 친절하게 해주고
다양한 고급 기법들을 소개한다.
CSS만 제대로 알면 구조화된 문서를 만들기가 몇배는 쉬워진다.
CSS를 정복 하고 싶다면 이 책을 추천한다.

'도서' 카테고리의 다른 글

Ajax in Action  (0) 2007.08.07
Head First Design Patterns  (0) 2007.03.06
Head First Java: 뇌 회로를 자극하는 자바 학습법(개정판)  (0) 2006.11.13
소설 '이휘소' - 공석하 저  (0) 2006.07.29
posted by 초딩입맛제주아재
2007. 8. 7. 12:53 도서
사용자 삽입 이미지

웹 개발자라면 꼭 읽어봐야 할 책이다.
그간 어지럽게 흩어져있던 javascript 에 대한 개념이 이 책을 통해서 한곳으로 응집됐고
여러 고급 기술을 배울수 있었다.
웹 개발자들이 쉽게 간과할 수 있는 메모리 누수문제나 효율적인 자원관리 기법도 알게 되었고
클로저나 리플렉션같은 개념도 새롭게 알게 되었다.
다소 두꺼운 분량에 도입부의 지루한 내용(하지만 몰랐던 사람한테는 큰 도움이 될)에 중간에 이 책을 손에서 놓는다면 분명 훗날 큰 후회를 하게 될 것이다.

'도서' 카테고리의 다른 글

CSS 마스터 전략  (0) 2007.08.07
Head First Design Patterns  (0) 2007.03.06
Head First Java: 뇌 회로를 자극하는 자바 학습법(개정판)  (0) 2006.11.13
소설 '이휘소' - 공석하 저  (0) 2006.07.29
posted by 초딩입맛제주아재
2007. 8. 7. 01:35 Programing/HTML/JavaScript/CSS

<script type="text/javascript">
function StopWatch(){
    this.now = new Date();
    this.counter = 0;
    this.timer = null;
}

StopWatch.prototype.start = function(){
    this.timer = window.setInterval(this.counterUp,1000);
}

StopWatch.prototype.counterUp = function(){
    this.counter++;
}

StopWatch.prototype.stop = function(){
    window.clearInterval(this.timer);
    this.timer = null;
    alert(this.counter);
}

var sw = new StopWatch();
</script>

<input type="button" onclick="sw.start()" value="start" />
<input type="button" onclick="sw.stop()" value="stop" />

위에 간단한 스톱워치 객체가 있다.
객체를 생성하고 start()메서드를 호출하면 스톱워치가 작동하고 stop()메서드를 호출하면 스톱워치가 멈추고 경과된 시간을 초단위로 알려준다.

한번 스톱워치를 작동시켜보자.

start 버튼을 클릭하고 잠시 기다렸다 stop 버튼을 클릭해보자.
예상 되는 결과는 화면에 alert창이 뜨고 경과된 시간이 출력이 되는것이다.

결과가 어떠한가?
경과된 시간이 출력 됐는가?

아마도 alert 창에는 0이 출력되었을 것이다.
왜 이런 결과가 나왔을까?
코드가 잘못됐나 싶어 코드를 훑어봐도 도무지 이유를 찾을 수가 없다.
휴~

한숨은 그만 쉬고 차근차근 디버깅을 해보자.
개발자에게 디버깅은 밥 한술 먹고 반찬 한젓가락 떠 먹는것과 똑같지 않은가;;;

결과를 보면 스톱워치 객체의 counter 속성이 변하지 않았다는것을 알 수 있다.

this.counter++;

이 코드는 분명 this=StopWatch 의 인스턴스 변수 counter 를 1증가 시키는 코드다.
그런데 증가가 되지 않았다.
그렇다면 counterUp 메서드가 호출이 되지 않은 것인가?
counterUp 메서드가 제대로 호출이 되는지 확인하기 위해 counterUp메서드에 alert코드를 삽입한 후 다시 스톱워치를 작동시켜보자.

StopWatch.prototype.counterUp = function(){
    this.counter++;
    alert(this.counter);
}


NaN이라는 메세지를 확인했는가?
counter 라는 인스턴스 변수를 인식하지 못하고 있다.

바로 this가 StopWatch 가 아니라는 뜻이다.

그렇다면 우리를 혼란 속으로 빠뜨린 이 this의 정체는 무엇일까?

counterUp 메서드를 다음과 같이 고쳐보자

StopWatch.prototype.counterUp = function(){
    var str = '';
    for(var temp in this){
        str += temp + '\n';
    }
    alert(str);
}

경고창의 내용을 보면 뭔가 낯익은 단어들이 보일 것잉다.
location,opener,status 등등...
감이 오는가?

counterUp 메서드 안에서의 this의 정체는 바로 window객체였던 것이다.

우리는 분명 StopWatch 객체를 생성하고 StopWatch의 메서드인 start 와 counterUp, stop 메서드를 사용했다.
그런데 별안간 window객체라니...

window객체가 출몰하게된 자세한 이유는 여기를 참조하기 바란다.

요약하자면 setInterval 함수에 인자로 넘긴 StopWatch의 counterUp 메서드의 코드는 전달이 되지만 counterUp의 인스턴스는 전달이 되지 않는 다는 것이다.
이 부분에서 '클로저' 에 대해서 한번 검색을 해볼 것을 권한다.(Ajax In Action을 봤다면 대충 알겠지만..)

때문에 setInterval 에 의해 반복 호출 되는 counterUp는 window객체에 귀속 되게 되고
결국 this는 window객체를 가리키게 되는 것이다.

다소 설명이 애매모호하니 위의 링크를 정독 할 것을 권한다.(내 영어실력이 엄청 짧다....ㅡㅡ;)

아무튼 이제 문제는 찾았다.
this가 window 객체를 가리킨다는 것.

그렇다면 어떤 방법으로 이 문제를 해결 해야 할까?
카운터 증가를 담당하는 메서드의 주인이 window 로 넘어가 버렸으니 StopWatch의 counter 는 무의미하다.
대신 window 객체에 counter 를 달아주면 어떨까??

window.counter = 0;

요걸 start 메서드에 한번 넣어 보자.

StopWatch.prototype.start = function(){
    window.counter = this.counter;
    this.timer = window.setInterval(this.counterUp,1000);
}

그리고 stop에서 원래상태로 되돌려주자.

StopWatch.prototype.stop = function(){
    window.clearInterval(this.timer);
    this.timer = null;
    this.counter = window.counter;
    alert(this.counter);
}

자 이제 다시 스톱워치를 작동시켜 보자.

0이 아닌 다른 숫자가 보이지 않는가??

window객체에 임의로 다른 속성을 할당하는게 꺼림찍 하다면 다른 방법을 쓸 수 있다.
위에서 검색해 보길 권했던 '클로저'를 이용 하는 방법이다.

이 방법은 코드를 좀 많이 고쳐야 한다.

function StopWatch(){
    this.now = new Date();
    var counter = 0;
    this.timer = null;

    this.counterUp = function(){
        counter++;
    }

    this.stop = function(){
        window.clearInterval(this.timer);
        this.timer = null;
        alert(counter);
    }
}

StopWatch.prototype.start = function(){
    this.timer = window.setInterval(this.counterUp,1000);
}

counter변수가 인스턴스 변수가 아닌 임시 변수로 바뀌었고
counterUp과 stop 메서드가 StopWatch 객체안으로 들어왔다.

위와 같이 StopWatch 함수 안에서 메서드를 정의 하면 클로저라는 것이 자동으로 생성 되어 counter 라는 변수와 counterUp과 start 메서드간에 연결 고리가 만들어진다.
때문에 비록 지역변수인 counter 라도 StopWatch 객체가 살아 있는한 StopWatch 객체와 그 생명을 함께 하게 된다.

마무리를 해야 하는데 결론을 내기가 힘들다.
좀 복잡한 내용이고 나도 대충 이해만 한것을 풀어 쓰려니 읽는 사람들도 이해하기가 힘들 것 같다.
중간 내용은 다 잊어 버리고 처음과 끝만 보는게 그나마 이해하는데 도움이 될지도 모르겠다. ㅡㅡ;

좀더 자세한 설명을 원하는 분은 위에 링크된 MDC(Mozila Developer Center)와 Ajax in Action(부록B)를 꼭 읽어 보시길 바라며 나는 도망가야겠다;;;

혹, 이 포스팅을 보고 이건 이게 아니라 정확히 이거다~ 라고 설명해 주실 수 있는 분은 꼭! 가르침을 주시길 부탁드리며...

 

posted by 초딩입맛제주아재
2007. 7. 5. 13:24 날개를달자
출처 : 인터넷 어딘가....
 
 
'오빠. 회사에 취직했는데 자꾸 커피 타와라. 타주면 커피 맛이 어떠네 저떠네.
아 진짜 스트레스 받아 죽겠어요. ㅡ.ㅡ; ................................'
이 글에 대한 답변. 처음엔 좀 생뚱맞았는데 끝까지 한번 보세요.



인스턴트 커피를 맛있게 타는 방법.


1. 잔에 미리 뜨거운 물을 부어 잔을 한번 깨끗이 하고 또 잔을 데운다.
2. 잔에 물을 비우고 물기와 먼지가 없게끔 안과 겉을 깨끗이 닦는다.
3. 커피를 넣고 물을 아주 조금 부어 완전히 다 녹도록 저어준다.
4. 그리고 물을 채운다.

여기서 끝이 아니다.

5. 커피를 내놓을때 설탕과 프림을 따로 내놓도록 하고 손님이 커피를 마실때 관찰해라.
6. 손님이 설탕이나 프림을 더 넣을 경우 그걸 일일이 메모해라.
7. 다음 번에 그 손님이 왔을시에 메모해둔걸 참고로 하여 커피를 만들어라.


아직 할께 남았다.


너가 커피 타는 방법과 중요한 손님의 설탕/프림 배합을 정리해서 붙여둬라.
너가 없어도 다른 사람이 그걸 보고 커피를 만들수 있게...



회사 생활에서는 어떤 일이든 하찮은게 없다.
대부분 회사생활에서 허드레일을 싫어하는 사람들은 내가 이런일 하려고 회사를 들어왔냐며
자기의 자존심을 이야기 한다. 자존심 센 사람은 보통 콧대가 센 사람, 자기만 아는 사람이라고 부른다.

넌 이런 사람이 좋게 보이든? 넌 그런 사람을 좋게 보지 않으면서 너 스스로는 자존심을 내세우면
주위에서 어떻게 볼지 한번 생각해봐라


너가 엄청 자존심이 쎄다면 그만큼 능력을 가졌다면 그 누구보다 먼저 빗자루 걸레를 손에 쥐고
남이 하찮게 생각하는 일을 남보다 먼저 해라. 그렇게 허드레일을 기쁘고 즐겁게 완벽히 하면 비로서 그때
너 주위 사람들이 너의 능력과 널 인정해줄꺼다.


자존심이란건 절대 자기 스스로 지킬수 있는게 아니다. 너를 너 스스로 낮추면서 다른 사람이 그걸 인정해줄때
그때서야 비로서 너 자존심이 지켜지는거다.



옛날 우리 회사 경리중에 한명은 다른 회사로 팩스를 보낼때 꼭 그 전에 자기한테 보내서 컬라가 흑백으로
바뀌면서 읽기 어려운 부분은 없는지 글자가 너무 작아 읽기 어려운건 아닌지 확인하고 색을 바꾸거나
확대를 해서 보냈다.


이사로 승진한 임원의 권유로 초고속 승진과 함께 본사로 갔을때 그 사람의 컴퓨터를 보고 모두다 놀랬다.

정확한 분류와 표기로 나누어 놓은 그동안의 문서와 자료들.

그리고 행여라도 하드가 고장나서 날아갈까봐 하드를 하나 달아놓고 매일 백업을 하고 있었다.
놀라운건 그 사람이 남겨놓은 책중에 컴퓨터 조립하기란게 있었고 그 책에서 하드 추가하는부분에
테이프를 붙여두었다는것. 자기 스스로 문제점을 보완하기 위해 책을 사고 하드를 사서 해결한것이다.


이게 6년전 내가 벤처회사에 근무할때 만난 나보다 한살 많은 21살 경리의 이야기다.

현재 이 사람은 이사를 따라간 대기업에서 지금은 승진해서 사장이 된 분의 오른팔격인 비서가 되었다.


허드레 일도 하나 제대로 못하고, 그런 일은 너보다 못한 사람이 해야 한다고 믿는다면
'성공' 같은 꿈은 미리 깨버려라.

'날개를달자' 카테고리의 다른 글

Google Developer Night 2007 후기  (0) 2007.10.17
역시 Apple  (0) 2007.09.04
매쉬업 경진대회 결과  (0) 2007.05.03
매쉬업 캠프 2007  (2) 2007.02.25
프로그래머를 위한 잠언(aphorism)  (0) 2007.02.13
posted by 초딩입맛제주아재