모든 사람들 (또는 IT인)의 전형적인 고민

간단한 질문을 드리겠습니다. (이 질문은 베레나 슈타이너의 전략적 공부기술이라는 책에 나옵니다.)

“음악회에 일반인과 음악 애호가, 그리고 음악 연주가가 갔다고 칩시다. 세 사람은 각각 한 달 후 무엇을 기억할까요?”

  • 일반인은 그 음악회가 아주 좋았다는 것을 기억하는 정도에 그칠겁니다.
  • 애호가는 나아가 어떤 곡을 어떤 분위기로 연주했는지까지 기억할겁니다.
  • 연주가는 상대 연주가가 어떤 곡을 어떤 분위기로 내기 위해 어떤 기교를 부렸는지까지 구체적으로 기억할겁니다.

풀어 말하면, 모든 지식의 흡수 속도는 지금까지 그 분야에 대해 쌓아올린 지식의 양에 좌우합니다. 재화의 부익부 빈익빈이 있다면, 지식의 부익부 빈익빈도 엄연히 존재하는 것임을 우리는 냉정하게 깨달아야 합니다.

마찬가지로 여러분이 이미 IT 에 대해 많은 것을 알고 있다면 새로운 것이 나와도 전혀 따라잡기가 어렵지 않습니다. 자신이 초보자라면 숙련자가 새로운 것을 배우는 속도를 따라 잡기가 얼마나 힘들겠습니까? 요즘처럼 신기술이 쉼없이 나타나는 시대에는 아마 따라 잡기는 커녕 그 격차가 벌어지는 경우도 종종 생깁니다.

심지어 사람의 몸을 다루는 의사들조차 새로운 기술을 익히지 않으면 사람을 남들보다 더 잘 고칠 수 없게 되듯, 세상에 변하지 않는 것은 아무 것도 없습니다. 만약 그것을 인정하려고 들지 않는다면 세상 날로 먹겠다는 심보 아닌가요?

또 한가지 언급하고 싶은 것이 있습니다.

우리가 말하는 도메인 지식은 과연 SCM, 회계, 재고 관리 등과 같은 것만 있을까요? 저는 전혀 그렇지 않다고 감히 말씀드리고 싶습니다. 세상은 이미 충분히 복잡해지고 추상화 계층이 잘 구비되어 있습니다. 산업이 계속해서 발전하면서 다양한 서비스업이 등장했음이 이를 증명하고 있죠. 하지만 세상은 앞으로도 더 많이 발전할 것이고, 서비스를 위한 서비스, IT 를 위한 IT 가 지금도 있고, 또 앞으로도 계속 생겨날 것이라는 점을 저는 확신합니다.

물론 처음에는 기존의 업종이 갖는 규모보다 더 작은 규모에서 시장이 형성되겠지요. 하지만 그런 시장은 틀림없이 존재합니다.

저같은 경우 지금 LDAP 서버를 개발하고 있습니다. 이것을 개발하기 위해서 LDAP 에 대한 다양한 지식과 다른 LDAP 서버 구현체간의 차이를 파악하고 있어야 합니다. 즉 LDAP 에 대해서는 전문가가 되어야 한다는 뜻이죠. 디비에 비유하자면 관계형 디비의 내부 구조를 낱낱이 알고 있는 전문가가 되어야 한다는 뜻이겠죠. 저는 IT를 위한 IT를 하고 있습니다.

이렇듯, “업무 지식” 이라고 하는 것은 내가 무엇을 위한 IT를 하느냐에 따라 천차만별입니다. 그리고 시간이 흐르면 그 업무 지식의 선택 범위는 더 커지고, 우리는 우리가 원하는 일을 충분히 즐기면서 할 수 있을 거라고 저는 믿습니다. 그리고 IT 에 기반을 깊이 둔 분야는 지금보다 훨씬 많아질테구요.

우리가 할 일은 변화를 있는 그대로 받아들이고, 변화와 함께 살아가는 것, 그리고 내가 정말 좋아하는 일이 무엇인지 직접 부닥쳐 밝혀내는 것 아닐까요?

마지막으로 드리고 싶은 말씀은 여러분이 무슨 선택을 하였든 간에 그 선택을 한 번 했다면 그것이 가져올 안좋은 점을 그대로 받아들이고 극복해야한 한다는 것입니다.

우선 연봉 일억 정도는 받는 성공한 샐러리맨이나 사업가가 되고 싶으신가요? 그리고 아내를 사랑하고 아들을 잘 돌보는 훌륭한 가장도 되고 싶으시죠? 사회적인 명망도 있고 막역지간의 친구들도 많았으면 좋겠고 말입니다. 만약 그렇다면 당장 꿈 깨시는 게 좋습니다.

사람들은 미디어가 주는 돈도 많고 가족과도 화목한, 모든 역할을 다 하는 멋진 사람의 이미지를 곧이 곧대로 받아들이고 있습니다. 하지만 그것은 현실적으로 불가능한 24시간 계속되는 이상과 현실의 줄타기나 마찬가집니다. 왜 그런 미치게 하는, 아무 것도 제대로 못하게 하는 긴장감에 스스로를 던져넣어야 합니까? 그리고 그런 이미지를 당신의 배우자나 애인에게 기대하고 스스로 상처입고 입히는 역할을 자처해야 합니까?

  • 일은 힘들지만 젊을 때 돈을 많이 벌기로 했습니까? 그렇다면 당신은 야근을 해도, 아내나 아이와 보내는 시간이 줄어도 다 감내할 수 있어야 합니다.
  • 여성으로서 성공하고 싶습니까? 그렇다면 아이를 낳지 않아도 전혀 아쉬움이 없어야 할 지도 모릅니다.
  • 가족을 보살피며 행복한 마음으로 살고 싶습니까? 그렇다면 높은 소득과 세간의 이목은 생각하지 않는 쪽이 좋습니다.

동시에 두 가지 역할을 수행하는 위험을 감수하느니, 그냥 스스로가 원하는 한 가지 모습에 집중하십시오. 혹시 압니까? 그것이 그나마 여러분이 나중에 좀 더 다양한 모습을 가질 수 있는 여유를 가져다 줄 유일한 방법일지?

세줄 요약:

  • 지식에도 부익부 빈익빈이 있다. 열심히 공부하지 않으면 도태에 가속도가 붙는다.
  • IT 를 위한 IT 도 엄연히 존재한다. 일단 내가 뭘 좋아하는지 알아내서 공부나 열심히 하자.
  • 스스로 원하는 인생의 모습을 선택하라. 그리고 그로 인한 손실을 당연하게 받아들여라.

11 Comments

  1. 골룸 said,

    October 30, 2005 at 1:27 pm

    아, 스팸 방지용 질문이 너무 어려워서 잠시 인터럽트가 걸렸었습니다(웃음)
    이 글을 읽고 난데없이 홍상수가 생각이 났습니다. 사람들은 그의 영화가 재미도 없고 무슨 소리인지 모르겠고 불편하다고 하더군요. 홍상수 자신은 그런 영화를 만드는 이유가 나름 있다고 합니다. 사람들마다 저마다 꿈이나 환상을 가지고 있겠는데 적어도 자신의 삶과 중요한 몇몇 분야에서 만큼은 그 환상을 갈가리 찢어발기고 싶다는 것입니다. 그래야 그 중요한 분야 만큼은 현실을 제대로 보고 싸워나가지 않겠는가 하는 것입니다.
    홍상수를 생각나게 한 현실적인 글, 잘 읽었습니다.

  2. 야사시이02 said,

    October 31, 2005 at 1:11 am

    알았어.. 화이팅”*.

  3. 황종원 said,

    October 31, 2005 at 2:46 am

    잘 읽었습니다. 한가지 말씀 드리고 싶은 것이 있습니다.
    스팸방지용 질문. 너무 어렵습니다. 한자리 더하기로 바꿔주세요 (___)

  4. 짱가 said,

    October 31, 2005 at 8:23 pm

    잘 읽고 깊은 공감 느끼고 갑니다.

  5. Trustin Lee said,

    November 3, 2005 at 1:22 am

    ㅎㅎ 홍상수 감독님에 비유해 주시다니 영광입니다;

  6. Trustin Lee said,

    November 3, 2005 at 1:23 am

    화이팅~! ^^

  7. Trustin Lee said,

    November 3, 2005 at 1:23 am

    사실 사칙연산 질문이 매우 한정되어 있어서 아마 자주 글 남기시게 되면 외우실 수 있을겁니다 ㅋㅋ

  8. Trustin Lee said,

    November 3, 2005 at 1:24 am

    네 읽어주셔서 감사합니다. ^^

  9. 윤주선 said,

    N
    ovember 4, 2005 at 8:39 am

    사람의 욕심때문에 그런 불평들이 생기는가 봅니다. 비중을 두고 인생을 살고 싶지만, 어느 하나 놓치기 싫은것이 사람 마음이거 같습니다.
    약간은 애매하게 포지션해 있는게 모두를 위해서 좋겠네요..^^
    글 잘 읽었습니다.

  10. Trustin Lee said,

    November 7, 2005 at 2:14 am

    ^^ 나이가 들어가면서 사람들은 애매한 위치에 설 수 밖에 없게 되는 것 같네요. 하지만 정말 위대해지려면 무언가를 희생할 수 밖에 없는 것이 사람의 삶 아닌가 싶네요.

  11. Killimanzaro said,

    November 12, 2005 at 6:14 am

    개인적으로 같은 생각입니다. 저도 위의 글같은 생각을 글로 써보고
    싶었는데. 조금 아쉽지만~ 참 간지러운곳을 잘도 긁어 주시는군요.

JUnit 4 의 새로운 기능

IBM developerWorks에서 현재 개발중인 JUnit 4 의 새로운 기능들을 일목 요연하게 소개하고 있어 정리해 보았습니다.

  • 테스트 메소드 이름 규약 대신 @Test
    • @Test(timeout=500)
    • @Test(expected=ArithmeticException.class)
  • setUp()tearDown()@Before@After로 변경
  • 테스트 클래스 전체에 대한 전후 처리를 위한 @BeforeClass@AfterClass
  • 테스트 메소드를 임시로 무시할 수 있는 @Ignore
  • 테스트 클래스는TestCase 클래스를 상속할 필요가 없음

10 Comments

  1. 서민구 said,

    October 26, 2005 at 5:05 pm
    아 좋네요. 타임아웃 잡기, 익셉션 확인 등.
    기대됩니다.

  2. 영회 said,

    October 26, 2005 at 11:56 pm
    전반적으로 TestNG 랑 유사한 수준이군요.
    물론 구체적으로 보면 차이점이 있겠지만..^^

  3. Trustin Lee said,

    October 27, 2005 at 8:47 am
    아직 stable release 가 안나와서.. 곧 나오겠죠? ^^

  4. Trustin Lee said,

    October 27, 2005 at 8:47 am
    네 유사하죠. 그냥 TestNG 만들지 말고 JUnit 사람들이랑 힘을 합쳤으면 좋았을텐데 말입니다;

  5. Passion is like genius; a miracle. said,

    October 28, 2005 at 12:30 am
    JUnit 4
    [quote] IBM developerWorks 에서 현재 개발중인 JUnit 4 의 새로운 기능들을 일목 요연하게 소개하고 있어 정리해 보았습니다. 테스트 메소드 이름 규약 대신 @Test @Test(timeout=500) @Test(expected=ArithmeticExcep…

  6. 대한민국 대표 개발자 [짱가™] said,

    October 28, 2005 at 9:02 am
    [Test]JUnit 4
    출처 : http://t.motd.kr/ko/archives/1594
    IBM developerWorks 에서 현재 개발중인 JUnit 4 의 새로운 기능들을 일목 요연하게 소개하고 있어 정리해 보았습니다.
    * 테스트 메소드 이름 규약 대신 @Test
    * @Test(timeout=500)
    * @Test(expected=ArithmeticException.class)
    * setUp()과 tearDown()은 @Before와 @After로 변경
    * 테스트 클래스 전체에 대한 전후 처리를 위한 @BeforeClass와 @AfterClass
    * 테스트 메소드를 임시로 무시할 수 있는 @Ignore
    * 테스트 클래스는TestCase 클래스를 상속할 필요가 없음
    영회님, 이희승님 말대로… TestNG와 매우 유사하다는…

  7. 짱가 said,

    October 28, 2005 at 9:03 am
    트랙백 날리니..
    글씨가 깨져버리네요… ^^

  8. Trustin Lee said,

    October 28, 2005 at 10:46 am
    네이버 블로그가 UTF8 을 안 써서 그렇습니다. UTF8 안쓰더라도 트랙백은 UTF8 을 써 줘야 하는데 말입니다.

  9. ologist said,

    January 31, 2006 at 11:10 pm
    오..기대가 됩니다…Junit에도 AOP의 시작인가요..ㅎㅎ

  10. Trustin Lee said,

    February 1, 2006 at 10:52 pm
    AOP 라면 AOP 라고도 할 수 있겠네요. 하지만 AOP 라는 말이 있기 전부터 AOP 는 존재했다는 것을 감안하면 그렇게 새로울 것도 없답니다. Annotation 도 마찬가지고…

Amor fati, (네 운명을 사랑하라)

엄청 대단하거나 황홀해서 자신을 사랑하는 사람은 없다.
자기 삶을 사랑해줄 사람이 자신밖에 없기 때문에
그래서 더 악착같이 사랑할 수밖에 없는 자기연민으로
우린 열심히 이 삶을 견딘다.

인간의 운명을 지어놓고 무책임하게 죽어버린 신 덕분에
평생 외로움에서 벗어날 수 없게 된 이 종족에겐
연애도, 사랑도, 섹스도,
노래도, 이야기도, 몸짓도, 표정도,
허공에서 맴돌기만 한다.

사람과 사람 사이엔 얼마나 넓은 강이 흐르는 것인지.

사람은 끊임없이 외로움에서 벗어나려는 불가능한 시도로
생애의 모든 시간을 채운다.
마치 너무 치열해서 서글픈 불나방처럼
타인에 대한 불가능한 ‘이해’의 극한을 향해
끊임없이 ‘이해하려 노력’하며
쉴 새없이 오해하고 상처받지만
그래도 멈추지 않는다.

우연히 떨어진 설원에서
눈먼 장님의 의지로 버틸 수밖에 없는 한 삶이
얼마나 초라한지 깨닫고 나서도
그래도 아무렇지 않은 척 그 삶을 사랑하며 살 수밖에 없는 것이
모든 이들에게 주어진 운명애.

아모르파티!

By 파탈 in 흑백데자뷰

4 Comments

  1. 영준 said,

    October 25, 2005 at 9:46 am

    전 요즘 안 외로운데 호호
    근데 17 곱하기 5 라니 너무 어렵군요 흑흑
    저의 생년이 나와버렸습니다

  2. Trustin Lee said,

    October 25, 2005 at 10:06 am

    나도 안외로워 ㅋㅋ

  3. 종만 said,

    October 25, 2005 at 10:42 am

    헉.. 링크 따라가 보니까, 나우누리 시절 친구 블로그.. (signature 보고 한방에 알았다는..)
    연락 끊긴지 굉장히 오래되어 리플 남기기도 민망한데. 어떻게 찾은 링크세요? ‘-’;;

  4. Trustin Lee said,

    October 25, 2005 at 10:55 am

    사이트 통계의 referer 목록을 주기적으로 체크해서 내 홈페이지에 온 사람 사이트는 거의 다 알아두는 편이라;;

    이런 우연이 ㅋㅋㅋ

26번째 생일을 맞으며: 다음 4 년

10월 15일, 한국식 만 나이로 26살이 되었다. 서양식으로 하면 스물 다섯. 스물 다섯이라고 하니 아직 많이 어리구나 싶다. 나는 몇 살까지 살 수 있을까 궁금하다. 그리고 지금 이 순간의 내가 내리막을 향해 달려가고 있는지, 아니면 끝없이 오르막을 걷고 있는지도. 오직 나의 삶에 대한 태도와 행운만이 답을 알고 있으리라.

앞으로 사람들이 ‘계란 한 판’이라 부르는 서른 살이 되기까지는 4년이라는 시간이 남았다. 남은 4년 동안 해 보고 싶은 것을 나열해 보면 다음과 같다:

  • Apache Directory Server 를 Apache Tomcat 못지 않은 유명한 소프트웨어로 만든다.
  • Apache MINA 를 ASF TLP (Top Level Project) 로 승격시킨다.
  • 국내 출판사에서 책을 한 권 집필한다.
  • 해외 출판사 (O’reilly, Manning, Adison-Wesley, Apress 등…) 에서 책을 원서로 바로 집필한다.
  • 마음에 드는 완성도 높은 상업용 소프트웨어 제작사에 취직한다.

석사 학위는 어떻게 해야 할 지 아직 잘 모르겠다. 휴학을 한 상태이긴 한데, 이 땅에서 석사 학위가 나에게 갖는 의미는 무엇인지 아직은 와닿지가 않기에, 학교에 돌아가기가 망설여진다. 사람들은 승진을 하거나 연구소에서 일하려면 석사 학위, 나아가 박사 학위까지도 필요하다 말한다. 하지만 석사 학위 과정에서 배우는 것이 그렇게 많아 보이지도 않고, 학문의 자유가 제대로 보장되지도 않는다는 것을 익히 알고 있기에 많이 갈등이 된다. 사실 한편으로 남들과는 다른 방법으로도 성공할 수 있다는 것을 보여주고 싶기도 하다. 새 해를 시작할 때 즈음에는 결정을 해야 겠지만, 아직은 모르겠다.

어찌 되었든, 다음 4 년도 순탄한 시절이 되기를 기원해 본다.

PS: 생일을 축하해준 영희씨, 미린이, 군재, 그리고 다른 모든 친구들에게 감사를…

18 Comments

  1. 레이시 said,

    October 16, 2005 at 5:28 pm

    아아아앗=ㅁ=…
    희승오빠 생일축하~(빰빠라밤~)..뒤늦게?ㅠ_ㅠ..

  2. Trustin Lee said,

    October 17, 2005 at 12:34 am

    괜찮아 ^^ 윤진이는 수능 준비 잘되가니? 얼마 남지 않아서 바쁠텐데, 기운내고 수능 끝나면 보자 ^^

  3. 레이시 said,

    October 17, 2005 at 7:40 am

    마무리할라구요’ㅁ’/
    성공할진 잘모르겠어요=ㅅ=;;;
    그치만 이제 힘들다고 좌절하진않을래요^^
    고마워요^ㅁ^/

  4. 실러캔스(진후) said,

    October 17, 2005 at 9:57 am

    조금 늦었네요.. 생일 축하드립니다 ^^

  5. 고기 said,

    October 18, 2005 at 8:30 am

    쫌 늦었지만 생일축하해요^^;

  6. 짱가 said,

    October 18, 2005 at 10:01 am

    ^__^ 축하합니다.

    맘먹고 계신것이 간단 명료 하네요.
    잘 되실듯 합니다.
    바라보면서나마 응원을 하겠습니다.

  7. 서영아빠 said,

    October 18, 2005 at 1:41 pm

    26번째 생일 축카드려요~
    사실 좀 놀랬습니다. 제가 생각했던 것보다 나이가 많이
    어리셔서요. 매우 부럽… ㅎㅎ
    10월 15일은 참 좋은 날이죠….
    우리 서영이도 10월 15일에 태어났거든요…. ^^

  8. 현성 said,

    October 19, 2005 at 10:30 am

    한번도 뵙지는 못했지만, 많이 뵈어온분이라~

    이미 지나버리셨지만..^^

    축하드립니다.

    ^^;

  9. Trustin Lee said,

    October 24, 2005 at 5:25 pm

    레이시는 잘할 수 있을 거얌 ^^

  10. Trustin Lee said,

    October 24, 2005 at 5:25 pm

    ㅎㅎ 땡큐~! MSN 메신저좀 들어오오.

  11. Trustin Lee said,

    October 24, 2005 at 5:25 pm

    정희도 고마워 ^^ 답글이 좀 늦었지?

  12. Trustin Lee said,

    October 24, 2005 at 5:26 pm

    잘 되야 할텐데… 행운을 빌어 주십시오. ^^*

  13. Trustin Lee said,

    October 24, 2005 at 5:26 pm

    10월 15일에 태어난 사람이 차암 많네요. 가끔은 이 날이 제 혼자만의 생일이면 어떨까 하기도 합니다. ㅋㅋ

    축하의 말씀 감사드립니다. 서영이의 생일도 축하드리구요. ^^

  14. Trustin Lee said,

    October 25, 2005 at 1:33 am

    반갑습니다 현성님. 감사드립니다. ^^

  15. kenu said,

    October 26, 2005 at 7:44 pm

    축하합니다.
    http://www.apachecon.com/2005/US/html/speakers.html#U5610
    이것도 축하합니다.

    ^^ 이희승 님 존재가 참 감사합니다.

  16. Trustin Lee said,

    October 27, 2005 at 8:48 am

    ㅎㅎ;;; 감사합니다;;; 영어 ‘상’ 이신 광남님을 본받아 저도 영어 공부 열심히 해야 겠습니다. ^^

  17. 혜란 said,

    October 29, 2005 at 3:42 pm

    추카추카!!
    생일 축하해~
    네가 바라는 목록들이 이루어지길 진심으로 바래~
    나중에 유명해져도 모른척 하지마~*^^*
    나도 열심히 살아야 겠단 생각이 든다^.^*
    그럼 홧또~!!^—^*!!~

  18. Trustin Lee said,

    October 30, 2005 at 11:26 am

    안녕 혜란아? 고마워~ 너도 연구실 생활 잘하고 있지? 홧팅! ^^

정체냐 열중이냐

정체감을 하루에도 여러 번 느낀다. 큰 국면으로 보자면 대체적으로 내가 원하는 방향으로 흘러 가고 있음에도 불구하고 그렇다. 아마 ‘모든 것을 통제려는 마음’ 때문일 것이다. 제대로 놀거나 일하지 않는 회색 지대는 나를 불안에 빠뜨린다. 스스로 내가 더 잘 할 수 있다는 것을 알고 있기 때문에 나는 불안하다.

가끔 나는 너무 친절하다. 하기 싫은 일이라도 남들이 나를 바라보며 간절히 원한다면 어느 새 내 일은 제쳐두고 해결사가 되어 그 순간에 몰두해버린다. 그렇다고 해서 할 일이 적은 것은 아니다. 시간이 지나고 나면 그 시간에 나 자신을 더 발전시킬 수 있는 어떤 일을 할 수 있지 않았을까 생각하게 된다. 안부를 묻는 메신저 메시지, 소프트웨어 개발에 대한 질문, 나의 전문 분야와 전혀 관계 없는 이야기들을 가끔은 할 일을 제껴두고 열람하고, 또 그에 회신하는 내 모습이 참 이해가 되지 않는다. 나는 너무 친절한 것은 아닌지, 나의 지식과 시간을 너무 쉽게 내어 주는 것은 아닌지 걱정스러울 때도 있다.

우습게도 이런 이유들로 내가 느끼는 정체감을 설명할 수는 없는 듯 하다. 그저 내 마음 깊은 곳에 자리잡은 일종의 병은 아닐까? 물론 그 병 덕택에 그나마 노력하는 내가 있는 것이겠지만, 이런 것을 생각하지 않아도 될 정도로 이 세상 모든 것에 열중하고 싶다.

6 Comments

  1. pungjoo said,

    October 14, 2005 at 10:22 am

    제가 보기에는 지극히 인간적입니다.

    인간적인 맛이 느껴져야지요~..

  2. 골룸 said,

    October 14, 2005 at 4:31 pm

    잘 읽었습니다. 정말 잘 쓴 글입니다.
    자신에 대해 이 정도의 인식이 있고 그걸 글로 표현해낼 수 있다는 게 부럽습니다.
    제 공간에 이 글의 일부를 인용했습니다.

  3. Trustin Lee said,

    October 15, 2005 at 1:14 am

    네 그렇지요..^^ 그러면서도 한켠으로는 더 잘 해야 한다는 생각이 들어버리는 것을 어쩔 수가 없네요.

  4. Trustin Lee said,

    October 15, 2005 at 1:16 am

    글을 님이 칭찬하신 것 만큼 잘 쓸 수 있다면 참 좋을텐데, 역시나 마음만 앞서게 되네요. 시간이 흘러 이름만 대도 알만한 사람들의 글처럼 전율을 느낄만큼 아름다운 글을 쓰고 싶습니다..^^;

  5. 아오시마 said,

    December 26, 2005 at 4:54 am

    중 요한건 발란스인데.. 님의 생활에 위와 같은 요소가 전혀 없이 일만 할 수 있는 집중(?)의 시간만이 주어진다면.. 머지않아 쉽게 지치게 될거라 생각합니다. 우리는 살아가면서 뜻하지 않은 곳으로부터 자극과 동기부여등의 영향을 받는 사회적 존재이니까요. 물론 너무 과중한 시간을 쏟아부어도 안되겠지요. 그 발란스란게 그래서 참으로 어려운것 같습니다. 모쪼록 행운이 있으시길…

  6. Trustin Lee said,

    January 3, 2006 at 12:38 pm

    균형만큼 중요한 것이 없죠. 어느 한가지를 희생한다는 것이 쉬운 것이 아니니까요. 무엇보다도 올해는 더 행복해지고 싶네요. 아오시마님도 행운과 행복이 함께 하기를..!

Remember the Milk: 할 일 목록 (To-do List) 관리 서비스

Remember the Milk는 웹 기반 할 일 목록 관리 서비스입니다.

  • 완전 무료
  • 편리한 인터페이스 (AJAX)
  • 여러 할일 목록을 탭으로 관리
  • 할 일 목록간 항목 이동
  • 할 일 목록 공유, 주고 받기
  • 할 일 목록에 노트 붙이기
  • 마감 일시 설정
  • 메일, 메신저, SMS 알람
  • 메일로 할 일 목록 등록
  • iCalendar 및 Atom 지원

Basecamp을 사용해 오고 있었는데 할 일 목록간 항목 이동이 된다는 점과 노트를 달 수 있다는 점에서 Remember the Milk 쪽에 더 후한 점수를 주고 싶군요.

4 Comments

  1. ken said,

    December 28, 2005 at 1:59 am

    rmilk.com 으로도 접속할수 있죠..
    인터페이스가 깔끔해서 좋더군요.. 그리고 각각의 todo마다 priority를 붙일수 있어서 정말 좋았습니다.

  2. Trustin Lee said,

    January 3, 2006 at 12:34 pm

    그렇게 들어가는 방법이 있었군요. 최근에 버그도 많이 수정되어 더 마음에 들게 될 것 같네요. 좋은 정보 감사드립니다.

  3. vudghkzm said,

    January 31, 2006 at 10:31 am

    rmilk.com 으로는 https:// 로 접속이 안되고, http:// 만 되는거 같네요.
    https:// 로 하려면 rememberthemilk.com로 해야 되네요.

  4. Trustin Lee said,

    February 1, 2006 at 10:50 pm

    아… 그렇군요. 몰랐습니다. 그냥 http 만 써서… 좋은 정보 감사합니다.

자바 (Java) 퍼포먼스에 대한 미신들

Java Theory and Practice 시리즈 중 Urban Performance Legends, Urban Performance Legends, Revisited 그리고 제임스 고슬링의 언급을 요약했습니다. 아직도(!) 누군가 자바의 성능 문제를 이야기한다면, 이정도 지식과 퍼포먼스 프로파일링에 대한 기본적인 지식으로 충분하지 않을까 싶습니다.

Java 는 배열 인덱스 검사를 하기 때문에 느리다.

요즘 JVM 은 최적화를 통해 필요 없는 경우 인덱스 검사를 전혀 하지 않는다.

synchronized는 사용하지 않았을 때보다 50배 느리다.

JDK 1.0 시절에는 그랬겠지만 지금은 그렇지 않다. 어떤 컴파일러는 코드를 분석해 동기화가 필요 없을 경우 자동으로 동기화 코드를 제거하기도 한다. 그렇지 않다 하더라도 경쟁 상태에 있지 않은 경우 성능 저하는 크지 않다. 괜히 이 미신을 믿고 thread-safety 를 깨지 마라.

클래스나 메소드를 final 로 선언하면 성능이 향상된다.

전혀 근거 없다. 소프트웨어의 디자인만 희생시킨다.

Immutable 개체는 성능에 악영향을 준다.

Immutable 개채와 Mutable 개체의 성능 비교는 매우 어렵다. 개체에 전달될 데이터가 준비될 때까지의 과정이 큰 영향을 미치기 때문이다. 따라서 단정할 수 없고, 또 성능을 위해 소프트웨어 디자인을 희생시켜야 할 정도도 못된다.

자바 메모리 할당·해제는 C/C++ 보다 느리다.

정확히 그 반대다. Sun JVM은 new Object() 를 한 번 수행하는데 10개의 머신 인스트럭션이면 충분하지만 malloc 는 호출당 60에서 100 개의 인스트럭션이 필요하다. Perl 이나 GhostScript 같은 어플리케이션은 malloc 호출에 실행 시간의 20~30% 를 소모할 정도다. 잘 작성된 자바 어플리케이션의 할당·GC 시간을 다 합친 것이 더 효율적인 것으로 알려져 있다. 이는 다른 언어에 가비지 콜렉터 (Garbage Collector) 를 적용했을 때도 마찬가지다.

이는 malloc 의 경우 한 번에 필요한 양만큼의 메모리를 매 번 할당하는 반면, 가베지 콜렉터의 경우 한 번에 대량의 메모리를 할당하여 자유롭게 활용하기 때문이다. 일반적인 가비지 콜렉터는 힙 영역을 ‘young’ 과 ‘old’ 로 나누어 활용한다. 최초의 메모리 할당은 ‘young’ 세대 (generation) 에서 일어나고, ‘young’ 세대를 일정 시간 동안 살아남은 개체는 ‘old’ 세대 영역으로 넘어가게 된다. 그런데 가베지 콜렉터는 ‘young’ 세대 힙 영역의 절반만 사용하고, 나머지 절반은 사용하지 않는다. 대신 메모리 할당 코드는 최대한 단순하게 유지한다:

void *malloc(int n) {
  if (heapTop - heapStart < n)
    doGarbageCollection();

  void *wasStart = heapStart;
  heapStart += n;

  return wasStart;
}

마치 환형 큐 (Circular Queue) 의 동작 원리를 보는 듯 하다. 다만 사용하는 힙 영역이 힙 영역의 끝자락에 다다랐을 때에는 GC 가 일어나 성능 저하를 유발하게 된다. 대신 대부분의 상황에서 malloc 보다 월등한 성능을 보장한다. 또한 ‘young’ 세대에서의 해제 (deallocation) 비용은 ‘0′ 다. 마치 환형 큐에서 이미 꺼낸 데이터의 참조를 지우지 않았다가 나중에 단순히 덮어 씌우는 것에 비유할 수 있다.

대부분의 개체는 중간에 잠시 동안 사용되고 버려지고, 일부만이 ‘old’ 세대로 이동된다는 가정을 우리는 ‘세대 가설’ (generational hypothesis) 이라 부른다. 이 가설은 경험적으로 대부분의 개체 지향 언어에서 사실임이 알려져 있고, 따라서 가베지 컬렉터는 대부분의 개체에 대해 할당이 빠를 뿐 아니라 해제 비용도 거의 없다.

제임스 고슬링의 일화

번역하기 귀찮아서 원문으로 싣습니다. 간단히, -server 옵션만으로도 GCC 로 충분히 최적화된 C/C++ 어플리케이션에 필적한 성능이 나온다는 이야기입니다.

There was a funny incident at a recent developer event where some folks had a booth where they where demo-ing a high end industrial strength C compiler and had a benchmark that they had transliterated into Java. They were comparing their compiler to GCC and Java. GCC was running at about 2/3 the performance of this high end compiler; the Java version was running at about 2/3 the performance of the GCC version. Folks were gathered around the booth and someone noticed that the script they were using to run the Java version didn’t have optimisation turned on. A few seconds with vi to add the “-server” switch and Java’s performance jumped up to match the fancy C compiler. This got the pro-GCC crowd all excited, so a bunch of them started fiddling with its command line switches. They got a bit of improvement, but not much (the original selection had been pretty good).

The Form Assembly: 자바 스크립트 폼 엔진

TheFormAssembly.com의 wForms 익스텐션은 폼 필드의 class 속성에 메타데이터를 집어넣어 폼 검증 (Validation), 힌트, 페이징, 필드 반복 등 폼 작성에 필요한 다양한 기능을 제공하고 있습니다. 기존에는 JavaScript를 직접 작성하여 해결했었는데 이렇게 class 속성을 이용해 처리하니 HTML이 깔끔해지네요.

다만 서버측 폼 검증 엔진과의 연동이 함께 되면 좋겠다는 생각이 듭니다. 사실 이 부분도 불가능한 것만은 아닐 듯 합니다. 고객이 어느 웹 페이지의 어느 폼을 전송했는지만 안다면 해당 웹 페이지의 폼과 그에 따른 검증 클래스를 기억해 두었다가 충분히 연동시킬 수 있겠지요. 좀 더 지켜보아야 겠지만, Commons-validator보다 훨씬 간결한 방법이 아닐까 싶습니다.

또한 원칙적으로는 JavaBeans 의 setter 메소드에서 값 검증이 일어나고 IllegalArgumentException이 던져져야 한다고 생각하기 때문에, 간단한 Annotation 을 통해 앞서 말한 검증 부분이 자동으로 빌드된 클래스에 mixin 되면 더더욱 좋겠습니다:

@UseFormAssembly( “../../../webapp/jsps/addArticleForm.jsp#formName” )
public class Article {

…… Getters and Setters here ……

}

4 Comments

  1. 영회 said,

    January 4, 2006 at 1:42 am

    고 객이 어느 웹 페이지의 어느 폼을 전송했는지만 안다면 해당 웹 페이지의 폼과 그에 따른 검증 클래스를 기억해 두었다가 충분히 연동시킬 수 있겠지요. -> Spring 의 Form 기반 Controller 들은 이러한 기능을 제공하고 있습니다. ^^

  2. 영회 said,

    January 4, 2006 at 1:42 am

    새해 인사도 못 드렸네요… 새해 복 많이 받으세요.

  3. Trustin Lee said,

    January 4, 2006 at 8:15 pm

    스프링에서 다양한 프리젠테이션 레이어를 제공한다면 좋겠는데, 지금은 웹만 되고, AJAX 지원도 뛰어나지 않아 망설여지네요. 밸리데이션 로직이 스프링 코어에 종속적이지는 않은가도 걱정되는 부분입니다.

  4. Trustin Lee said,

    January 4, 2006 at 8:15 pm

    ㅎㅎ 네 영회님도 새해 복 많이 받으세요! ^^

괜찮은 FireFox 용 Extension 추천

파이어폭스를 몇 개월 쓰면서 여러 익스텐션을 설치해 본 결과 다음의 플러그인들이 가장 유용하면서도 안정적이었습니다.

  • Tabbrowser Preferences – 탭 브라우징 관련 설정을 좀 더 자세히 할 수 있습니다.
  • PDF Download – 어도비 PDF 플러그인을 설치하면 무조건 브라우저 내에서 보여주게 되는데, 그 전에 새 탭 / 창에서 열 지, 아니면 그냥 다운로드할 지를 선택할 수 있게 해 줍니다.
  • FasterFox – 파이어폭스의 내부 네트워크 설정을 간편하게 최적화해 페이지 로딩 속도를 극대화합니다.
  • Web Developer – 웹 개발자를 위한 모든 기능을 제공하는 툴바입니다.
  • IE Tab – 파이어폭스 창 안에서 IE 컨트롤을 이용해 페이지를 볼 수 있도록 해 줍니다.
  • View Rendered Source Chart – HTML 소스를 볼 때 알아보기 쉽도록 블럭 형태로 렌더링해 줍니다.
  • Right Encoding – 마우스 오른쪽 버튼을 누르면 나타나는 컨텍스트 메뉴에서 페이지 엔코딩을 선택할 수 있습니다.
  • delicious – 사이드바에서 del.icio.us 서비스를 바로 액세스할 수 있습니다.
  • ScrapBook – 유용한 웹 페이지 전체 · 일부를 스크랩합니다. Google Notebook과는 달리 관련 이미지나 스타일시트도 완벽하게 저장해서 좋네요. 분류하기나 주석달기도 가능합니다.

다른 믿을만한 플러그인이 있다면 추천 부탁드리겠습니다. 써 보고 유용하면 추가하고 싶네요.