달력

6

« 2025/6 »

  • 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
2008. 7. 28. 15:43

미국에 와서 처음 쓰는글... 행복2008. 7. 28. 15:43

미국이라는 나라에 대해서는 내 나이가 되도록 수 없이 많이 들어보았다. (내 나이를 공개 안합니다.  ^^) 하지만, 이 나이가 되도록 아직 한번도 미국 땅에는 와 본적이 없었다. 이 땅에 내려서 처음 느낀것은 정말 누구나 영어하는 나라이고, 아이조차도 영어로 이야기 하는 나라였다. (으흐 정말 영어 잘한다.)

이 번주는 예정되어 있었던 일정임에도, 갑자기라기 보다는 정신없이 준비해서 먼 이국땅으로 출장을 왔야만 했다. 비행기 시간과 예약된 호텔을 확인하고, 렉트카와 로밍폰을 준비하고, 생각보다는 챙려서 와야 할 것이 많았다. 물론 일을 위해 오기때문에 어떤 각오를 하고 와야 했다. 내가 전에도 이야기 했지만, 영어라는 것은 쉬운 말이 아니다. 특히 이국인의 입장에서 영어는 허물이고 피해야 할 장애물과도 같다. 하지만, 나 자신에게는 어떤면에서 즐거움이기도 하다. (아마도 이전에 내가 영어에 대한 두려움을 떨쳐 버렸다는 것이 가장 큰 수확이었다고 짧게 이야기 했었다.)
두려움이 없는 삶을 살수 있다면, 우리의 삶은 좀더 여유있을지도 모른다.

일요일 한국에서 아시아나를 타고 켈리포니아주의 LA공항에 도착한 시간을 일요일 오후 12시였다. 도착해서는 현지의 개발자에게 전화를 했다. 사실 놀러온 것은 아니지만, 그도 이전에 한국에 왔을때 신세를 졌었고, 10월경에 다시 한국에 오면, 신세를 질거다.
통화를 하고 그를 기다리면서, 집에 두고온 우리 예쁜 공주님이 생각이 났다. 내가 미국 간다고 했더니, 눈물을 글성이면서, 자기도 같이 데리고 떼를 쓰던 얼굴이 생각이 났다.
미운 짓한다고 혼내고, 혼내면 투덜데고 삐지기 잘하는 얼굴이 무척 생각이 났다. 아마도 멀리 떨어져 있어서 더 그런것 같다.

그리고 동양인을 보면 모두 한국 사람처럼 보인다. 기다리면서 보니, ELS에서 영어 연수차 대학생들이 왔나보다 그 중 한명이 ELS라고 쓴 피켓을 들고 있었다.. 한 10명 가까이 모이니, 휭하니 가버린다. 아참 그러고 보니 그사람들 모두 영어로 이야기 하고 있던데...

비행기를 타고 10시간 가까이 날아왔는데, 참 지루하기도 하고 나름 여러가지를 생각하는 시간이었다. 그리고 또 누군가를 기다리면서 생각한다.
왜 내가 여기에 있는지를....
가지 말라고 때를 쓰던 우리 공주님을 뒤고 하고 말이다. 나의 동료들은 영어 때문에 스트레스 받지 말라고 한다. 하지만 한편으로 즐길수도 있다. 실전 영어, 서버이벌 잉글리쉬가 빋을 발하는 그런 것 말이다.

앞으로 일주일동안 느낀것을 말하겠지만, 10년 후의 개발자들은 다른 나라 말을 반드시 해야할지도 모른다. 하지만 그래도 가장 중요한 것은 자기가 좋아 하는 것을 하고 있느냐와 좋아하느 것을 즐기면서 해야 한다는 것이다. 그래서 다른 나라에 와 있다는 것 자체를 즐거워 하려고 하는지도 모른다.

다행히도 나는 영어로 인해서 받는 스트레스는 적은 편이다. 하지만 많은 시간을 들여서 한 회의와 협의하면서 서로를 알아 가는 단계가 불필요하게 많지 않았으면 좋겠다. (2시간이면 될 이야기를 하루종일 하지 않았으면...)

아직도 우리 이쁜 공주님의 얼굴이 눈에 선하다. 장난끼 넘치고, 마냥 밝기도 하지만, 마음이 참 여리다.

:
Posted by 행복상자
지난번에는 Quartz를 사용하기 위한 개략적인 설명과 라이브러리 사용을 위한 문서들의 위치에 대해서 이야기 했었다.

오늘은 Quartz사용시 알아야할, 기본적이지만 정말로 중요한 개념인 Trigger와 JobDetail에 대해서 이야기 하려고 한다.

먼저, Quartz에서 Scheduling 할 수 있은 범위 또는 Scope에 대해서 설명하고, 이어서 두가지에 대해서 말하려 한다.

[Job Scheduling]
  • on certain days of the week (주중의 지정한 날: 특정 요일)
  • on certain days of the month (달주의 지정한 날: 특정 날짜)
  • on certain days of the year (연주의 지정한 날: 특정 날짜)
  • not on certain days listed within a registered Calendar (such as business holidays)
  • repeated a specific number of times (반복횟수)
  • repeated until a specific time/date (종료 시점 지정)
  • repeated indefinitely (무한 반복)
  • repeated with a delay interval (다음 실행을 위한 타임 인터벌)

    위에서와 같이 스케즐러를 실행하기 위한 모든 범주들에 대해서 쿼츠는 커버 가능하다.
    여기서 Job(JobDetail)과 Trigger에 대한 개념을 알아야 하는데,

    먼저 Job에 대해 설명하면 Job는 실행해야 할 작업으로 이해하면 된다. 예를 들면 메이을 보낸다든지, 필요없는 로그 파일들을 정리하거나, 시스템의 자동화된 작업들을 들수 있다.
    여기서는 실행되는 시간에 대한 개념은 없고, 단순히 일의 단위만 생각하면 된다.

    Trigger는 Job의 실행을 위한 조건들이라고 생각하면 이해가 쉽다. 실행될 시간, 반복횟수 또는 Interval time등 여러가지 실행 조건들을 생각하면 되는데, Sheduler이니까 시간에 대한 조건들을 포함하고 있다.(시간 기반으로 동작)

    Quartz기반으로 실행할 작업을 만들려면, Job과 Trigger를 각각 정의해서 묶어주면 된다.
    여기서 Job은 Interface 정의되어 있다. 우리는 이를 상속받아 원하는 작업들을 정의하게 된다. 그리고 Quzrtz의 Sheduler가 실행될때, Job에 대해 이해할 수 있도록 JobDetail를 정의하면 된다.

    .Job interface

    void execute(JobExecutionContext context)


    .JobDetai 클래스의 생성자

    JobDetail(String name, String group, Class jobClass) 

      위 코드에서 name과 group는 Job를 위한 Job이름과 JobGroup를 의미한다. 이는 관리를 편하게 하기 위한 것인데, 필요시 이를 이용하여 Job의 검색이 가능하고, 만약 null값을 넣어 준다면, DEFAULT 그룹명이 할당 된다.

    Trigger클래스는 JobDetail클래를 이용하여 정해진 시간에 실행이 되도록 스케즐러가 관리하는데, 이는 아래와 같은 코드를 통해서 Job에 대한 정보들을 가져오게 된다. 아래 코드는 Job의 name와 Grouup명만 있을 뿐, 직접적으로 할당하지 않지만, 내부적으로는 위에서 정의한 job의 name과 group name을 참조하여 가져오게 된다.

    Trigger(String name, String group, String jobName, String jobGroup)

    여기도 name과 group가 있는데, 이는 Trigger의 이름과 group 명이다.

    다음에는 코드를 이용하여 실제로 Job과 Trigger을 정의하고 사용하는 방법에 대해서 설명하려 하다.

  • :
    Posted by 행복상자
    오늘은 안철수 교수님이 회사에 오셔서, 자신의 길과 안랩이 지나온 여정들을 하나 하나 집어가면서, 지나온 시간을 반추하는 시간을 가졌다.
    (사실 이글은 쓰는 시간이 0시를 지나가니, 어제이다.)

    이른 시간에, 아침 8시부터 시작하여 9시 30분에 마치는 세미나 인지라 사람이 없을 것만 같았다. 그러나 나의 예상과는 다른게, 아니 다들 나와 같이 생각했던것 같다. 정말 많은 사람들이 홀을 가득 매웠다. 그리고 자리가 모자라서 서서 지켜보는 사람들도 꽤 됐던것 같다.

    중학교때 진공관 라디오로 시작해서, 컴퓨터를 공부하고 컴퓨터 바이러스를 치료하는 프로그램을 만들기 시작했던 이야기와 벤처를 거쳐서 또 유학을 가서 공부를 하고 다시 KIAST의 석좌 교수로서 강의장을 찾아 오기까지의 이야기들을 과장없이 해 주었다.

    개발자 안철수
    벤쳐 기업가 안철수
    석좌교수 안철수

    내가 느끼기에는 석좌 교수 안철수가 가장 잘 어울린다고 생각한다. 호칭이 괜히 안정감 있어 보이지 않는가?

    처음 강단에 서서 사람들레에 인사할때는, 속으로 신문이나 방송으로 봤던 얼굴과 너무나 똑 같다고 생각했다. 카메라발 사진발 이런거와는 관계없는 사람이었다. 삶을 그렇게 살고 있어서 그런가? 가감없이 꾸미지 않고 진솔하게 살려고하는 태도 때문일까?

    누군가가 그랬던거 같다. 남자 나의 40이면 얼굴에 책임질 수 있어야 한다고...

    강단에 서서 사람들에게 인사하던 목소리는 너무나 작고 힘이 없어 보였지만, 1시간 30분을 책임지고 있는 사람으로서는 너무나 많은 것들을 주었다고 생각한다.
    중요한 순간마다 최선의 결정을 내리고, 변화할 수 있었던 경험은 나누어 주는 소중한 시간이었다. 가치있는 삶이 무엇일까? 라는 종교적인 찰라적 각성을 주었던 시간이기도 했다.

    나는 결정하고 후회하지 않으려고 한다. 아마도 내면에서는 잘못도 결정에 대한 보상 심리도 있을지도 모른다. 하지만 최선의 결정을 내리려고하지만, 그 분처럼 현대의 , IT업계의 성자와 같은 삶을 살지는 못할 거다. 내가 지독히도 이기적이기 때문에...

    하지만, 지금도 나와 나와 비슷한 생각을 하는 사람들에게 길을 있다. 살아있다는 것 자체만으로도 많은 기회를 가지고 있는 것이니까...

    마치 고등학교 시절처럼, 나의 한편을 생각하게 만든다.

    오늘 책에 싸인을 받았다고 즐거워하는 어떤이가 갑자기 떠오른다.
     



    '행복' 카테고리의 다른 글

    Blog에 100번째로 쓰는 글  (0) 2008.12.29
    미국에 와서 세번째로 쓰는글..  (0) 2008.08.01
    미국에 와서 두번째 쓰는글...  (0) 2008.07.30
    미국에 와서 처음 쓰는글...  (0) 2008.07.28
    :
    Posted by 행복상자
    정말 이번 주는 바쁘기도 무척 바빴지만, 더위와 높은 습도로 인하여 지치는 한주간이었다.

    일반적으로 자바에서, 사용 가능한 Scheduler는 Java에서 기본적으로 제공하는 Timer(J2SE 1.3이후 제공)와 Quartz 라이브러리를 많이 사용한다.
    만약, 우리가 어떤 작업들에 대해서 반복적인 처리를 하고 싶다면, 두 라이브러리의 API와 상속받은 Class를 통해서 호출이 될수 있도록 코드를 추가하기만 하면 된다.

    J2SE에서 제공하는 java.utilTime와 Quartz는 기능적으로 차이가 있는데, Timer는 일정한 주기를 반복하는 기능만을 제공하므로 정해진 시간에 실행되는 기능은 제공하지 않는다.
    반면에, Quartz는 두 가지 모두를 제공한다.(주기적인 실행, 지정한 시간에 실행)
    물론, Quartz의 경우는 더 많은 기능들을 제공한다. Unix와 리눅스의 Cron 텝의 사용법과 유사하게 설정하여, Task또는 Job을 실행 시킬수 있다.
     
    필요에 따라 둘 중에 하나를 사용하면 된다. J2SE의 Timer는 사용법이 쉽다. Quartz는 여러가지 기능을 제공하기 때문에 약간의 노력이 더 필요하다.

    [Quartz 시작하기]
    1. Quartz 시작 하기: http://www.opensymphony.com/quartz/
       - 위 사이트에 가면 간단하게 Quartz가 무었인가에 대해 설명해 주고 있다. Quartz는 오픈소스로 Apache 2.0의 라이센스를 사용하므로, 소스를 고치거나 사용함에 큰 무리는 없다.
       - 현재 사용할 수 있는 최신 버전은 1.6 버전이다.

    2. Quartz 다운로드 하기: http://www.opensymphony.com/quartz/download.action
       - 1.6버전을 다운로드해서 사용하면 된다.

    3. Quartz 관련 문서들: http://wiki.opensymphony.com/display/QRTZ1/Documentation  
       - 보아야 할 문서들이 많다. 하지만 시간이 없거나 간단하게 개념을 이해하고 싶은 사람은
         "3. Learn Quartz의 Tutorials"를 보면 된다. 기본적인 개념과 API사용법을 익히는데
         부족함이 없을 거다.

    4. Quzrtz 간단 예제들: http://wiki.opensymphony.com/display/QRTZ1/Tutorial
       - 12개의 간략한 예제들이 있다. 반드시 읽어봐야 할 예제들로 구성되어 있다.
          Quartz를 사용하고 싶은 사람은 꼭 여기를 보라.

    5. Quartz의 API: http://www.opensymphony.com/quartz/api/
       - Quartz 사용을 위한 API 문서로서, 기본적으로 봐야 할 클래스와 인터페이스는
          1) Scheduler
          2) Trigger
          3) JobDetail
          4) Job (가장 기본적인 Interface이다.)
          5) 기타등등( 나머지는 필요에 따라서 보면된다.)


    조금 복잡할 수동 있지만 Trigger와 JobDetail 클래스(or Interface)의 사용 및 설계 의도를 이해하면 별로 어렵지 않게 Quartz를 접할 수 있을 거다.

    Trigger와 JobDaeail과 Job은 다음 기회에 설명하려고 한다.


    :
    Posted by 행복상자