토요일, 12월 02, 2006

yesjun.wordpress.com으로 이사하다~

blogger.com 을 제대로 사용한지 한달이 안됐지만 (가입한건 2~3년 전인 것 같다)
벌써 블로그를 옮기기로 했다.

blogger.com 을 쓴 이유는
  1. 이미 가입해 놔서
  2. 많은 사람이 쓰니까
  3. 구글이 인수했으니까
  4. 다음 버전이 나온다고 해서
WordPress.com로 바꾼 이유는
  1. 예전에 설치형으로 써봐서 (설치형으로는 WordPress와 TextPattern이 제일 좋았던것 같다)
  2. 설치형이 아닌 계정 서비스를 한다 (예전엔 이런 서비스가 없었는데 생긴 줄 알았으면 진작 썻다)
  3. 구글이 인수했는데도 blogger.com의 안정성이 떨어진다
  4. blogger.com의 다음 버전의 기능을 살펴보니 기대 이하다
무었보다 블로그 이전을 촉발시킨 가장 큰 이유는,
아래 "Ruby 양, 우아한 드레스에 운동화 신다."의 글 때문이다.
예제코드 입력하기가 너무 힘들다.

글은 다써서 올렸지만 뭔가 느끼는게 있어, 다른 블로그 서비스를 찾아봤다.
이것 저것 맘에 안들어서 그냥 blogger.com 쓰려다가,
예전 생각도 나고 '역시 WordPress가 좋지...'
하면서 wordpress.com 을 들어가보니.
계정 서비스를 하는 것이다.

바로 가입하고 wordpress.com 으로 이사했다.
아래 링크를 클릭하셔서 이사한 블로그로 들어오세요~

금요일, 12월 01, 2006

Ruby 양, 우아한 드레스에 운동화 신다.

Ruby는 우아한(Elegant) 코드 작성을 자랑하는 언어다.
블록, 영어식 코딩, 괄호 제거 규칙, 덕 타이핑 등등.
그런데 루비는 인자의 위치로 메소드의 시그니쳐를 구분한다.

예를 들어 다음은 일반적인 루비 메소드 호출 방법이다.

window.addNewControl "Title", 20, 50, 100, 50, true


뭔가 컨트롤을 만드는 거 같은데 무슨 인자가 들어가는지는 API 문서나 메소드 선언부를 봐야 한다.

아래와 같은 인자 갯수가 다른 하지만 동일한 기능을 하는 메소드를 한개 더 보자.

window.addNewControl "Title", 100, 50, true

2개의 인자가 기본값을 취하는 것 같은데 이 또한 API 문서나 메소드 선언부를 봐야 좀 알거 같다.

다음은 Objective C 에서 메소드를 호출하는 모습이다.
[window addNewControl WithTitle:@"Title"
xPosition:20
yPosition:50
width:100
height:50
drawingNow:YES];

그렇다, "Title"이란 이름으로 (x, y) 위치가 (20, 50)으로 너비가 100, 높이가 50 인걸 지금 그리란 이야기다.

[window addNewControl WithTitle:@"Title"
width:100
height:50
drawingNow:YES];


이건 아까 호출한 메소드랑 똑같은데, 위치가 기본값으로 들어가는 군.

이렇게 인자의 이름(키값)으로 메소드 시그니쳐를 구별하는게 Named parameter 방식이다.
그리고 이름만 같으면 순서는 상관없다.

[window addNewControl WithTitle:@"Title"
height:50
width:100
drawingNow:YES];


이런 우아한 방식을 왜 Ruby에서 안쓸까?
마침 이러한 Ruby에서의 Named parameter에 대한 토론을 볼 수 있었다.

Matz와 Tsela의 덧글을 중심으로 정리해 보면 Named parameter 방식은 인자조차 public 하게 공개된다는 것이다.

음... 그렇군 하이힐을 신으면 우아하기는 하지만 디스크와 발 형태 변화를 일으킬 수 있군.
미안해 Java군 그동안 우아하지 못한 운동화에 츄리닝 입었다고 뭐라고 해서.
사실 구두에 화려한 턱시도 입고 뛰기는 힘들겠지.
그리고 Ruby양, 운동화 신었지만 충분히 이뻐.

그런데 Ruby양은 좀더 우아해 지기 위해 구두를 구입하려고 생각 중이다.

목요일, 11월 30, 2006

당신의 올해 북 트랜드는?

codian 님이 CSS Mastery 라는 책이 번역되어 나온다고 알려 주셨다.
그런데 출판사가 에이콘이다.
둘러보니 나도 에이콘 출판사의 책이 꽤 있는 것 같다.
대부분은 근 1년안에 구입한 책이다.
특히 루씬인 액션, Ajax 인 액션, 예제로 배우는 Adobe 플렉스 2, 서브버전 같은 책은
해당 분야 최초의 책으로 기억한다.

최초의 책을 출간하기 위해서는 그만큼 준비도 많이하고 기술흐름을 인식하고 있어야,
가능하다고 생각한다.

4~5년 전만해도 정보문화사(MS 관련 책이 많다)와 인포북의 책이 가장 많았던 것 같다.
그러던 것이 Java와 오픈소스를 접하면서 한빛미디어(오렐리 번역서)로 넘어 가기 시작했고,
1~2년 전부터 Web 2.0과 개발방법론에 관심을 가지면서,
위에서 말한 에이콘 출판사와 인사이트(방법론 책이 많다, 특히 익스트림과 애자일)의 책이 늘어난 것이다.

책도 의류 처럼 트랜드가 있는 걸까?
아마도 내년에는 루비와 레일즈가 트랜드를 주도하는 데 한몫 할 것 같다.

수요일, 11월 29, 2006

전쟁난 사이트에 평화를!!!

오늘 루비포럼 게시판의 아마존 베스트 2006 글을 보고 CSS 책이 Computers & Internet 분야 2등인걸 보고 놀라움반 부러움 반이 들었다.

CSS는 웹 (HTML) 페이지의 화면모습을 한곳에서 집중 관리할 수 있는 스타일 설정 규약이다.
CSS관리를 제대로한 사이트에서는 전체 화면 모습을 한번에 (물론 약간의 수정이 필요할 때도 있다) 그리고 손쉽게 변경할 수 있다.
CSS관리를 하지 않는 곳은 사이트 개편으로 화면 모습이 바뀌면, 기능상 달라지는건 거의 없는데, HTML을 일일이 수정해야 한다.

프로젝트를 하다보면 대부분 웹디자이너 분들이 CSS를 잘모르고 계신다.
더구나 HTML도 모르는 (물론 많이 봤지만 제대로 이해하지 못하는) 분도 계신다.
이는 CSS 또는 HTML 작업에 대한 가치를 평가해 주지 않기 때문이다.
누가 관심도 가지지 않고 시간만 버리는 작업을 하겠는가.

일부 거대 사이트 (네이버 같은) 곳에 들어가면 CSS/HTML을 관리하기 때문에,
기존에 CSS/HTML을 잘 모르던 분도 배워서 기준에 맞게 작업한다.
그러나 이런 곳에 나와 다른 곳에서 프로젝트를 하면 자의반 타의반으로 다시 기존에 하던데로 누더기 사이트를 만든다.

WEB 2.0 다 RIA다 외치고 있지만, 정작 기본적인 CSS/HTML은 등한시 하고 있다.
CSS 신경좀 써주자, 디자이너가 아닌 개발자 분들도 CSS와 HTML을 제대로 작성한걸 보면,
마구 마구 칭찬해 주자.
이런 분들은 칭찬받는게 당연하다.
왜냐하면 이런 분들은 사이트를 싱가폴처럼 계획적이고 깨끗하게 만들어 주기 때문이다.
하루빨리 전쟁으로 황폐해진 이라크처럼 된 사이트가 평화(관리된 CSS/HTML)를 찾았으면 하는 바람이다.

토요일, 11월 18, 2006

Subversion 1.4.x 버전을 설치해 보자

Subversion 1.4 버전을 깔아야 하는 이유는...
  • svnsync, a new repository mirroring tool
  • Huge working-copy performance improvements
  • Support for BerkeleyDB 4.4 and its “auto recovery” feature
  • Size improvements to the binary delta algorithm
  • A handful of new command switches
  • Many improved APIs
  • More than 40 new bugfixes

등이 있다 이중에서 svnsync 라는 svn 리포지터리를 완전히 동일하게 복사할 수 있는 기능 만으로도 업그레이드 할 이유는 충분하다.

(참고로 처음 Subversion이 나왔을때는 BerkleyDB가 무결성이 보장되고 검증 됐다는 이유로 사용을 권장했으나, 현재는 FSFS 방식 즉 파일에 직접 쓰는 방식을 권장한다.)

그런데, 1.4.x 버전은 Apache Portable Runtime 라이브러리를 사용하기 때문에 설치 중 많은 사람이 에러가 나는 것 같다. 결국 1.3.x 로 돌아가 버리는 경우가 생기는데...

안되면 되게 하자.

아래 링크를 클릭하면 APR 설치가 자세히 나와있다.

외국 웹호스팅인 dreamhost 신청하다.

국내 웹호스팅 업체는 기능이 싸고, 결제라던지 고객지원 (좋다는게 아니라 운영 시간대가 같다는 거) 등의 장점이 있지만, 뭔가 부족하여 해외 업체를 찾아봤다.

결국 두군데로 좁혀졌는데,

두곳 다 비슷했으나...

dreamhost.com 에서 무려

  1. Jabber TM Chat Server
  2. CVS Repository
  3. Subversion Repository (SVN)
  4. WebDAV

와 같은 개발에 유용한 기능을 제공하는 바람에 바로 가입했다.

사실 dreamhost.com의 경우 미국 웹호스팅 10위안에 드는 규모인데,

여러가지 이유 (서비스 불만, 시스템 느려짐 등)로 안티사이트 www.dreamhost-sucks.com 가 있다.

뭐 규모가 커지고 오래되면 이런 불만은 대부분 생기긴 한다. (또 다른 유명한 회사인 http://www.godaddy.com 도 안티사이트 http://godaddysucks.amray.com/ 가 있다)

http://www.anhosting.com/ 의 경우 신규 사이트라서 그런지 고객응대도 빠른거 같고, 속도도 빠르다는 평이다.

어쟀든 위에서 말한 기능 말고는 다른 곳도 기능은 비슷 비슷한데, 우리나라에서는 아직 한군데 밖에 없는 ruby 언어도 대부분 지원한다.

  1. PHP
  2. MySQL
  3. Ruby on Rails (RoR)
  4. Python
  5. CGI-BIN

한달에 9달라 정도라서 꽤 비싼거 같지만 쿠폰 (구글에서 "dreamhost coupon" 등으로 검색)을 입력하면 최초 가입시 무려 70% 할인을 해주고, 도메인 이름도 한개 무료로 가입시켜준다.

다만 dreamhost.com 경우 신용카드 사기 방지를 위해 자필 팩스를 미국으로 보내야 하고, 우리랑 시차가 안맞아서 (우리나라 새벽 2시가 고객센터의 아침 9시이다.) 좀 힘들긴 하지만...

금요일, 11월 17, 2006

Eclipse Webinars (이클립스 프로젝트팀의 웹세미나)

Webinars 말그대로 Web + Seminars 즉, 웹에서 보여주는 세미나이다.
예전에 Macromedia(현 adobe)의 brew를 이용한 웹 세미나를 보고 정말 놀라웠는데,
이번에 이클립스의 Webinars를 보고 또 한번 놀랐다.
(내가 본 세미나는 "Mylar: A Task Focused UI for Eclipse" 이다, 아래 글에 이게 뭔지 대략 적었다.)

Webinars는 Adobe Connect 를 이용하여 실제 세미나를 녹화하는 형식이었는데,
현장감이 끝내줘서 실시간으로 원격지에서 세미나 하는 느낌이 든다.
더구나 채팅 기능이있어 같은 시간에 해당 세미나를 보는 사람끼리 채팅하는 기분도 좋다.
(내가 할땐 약 10명 정도가 있었고 활발히 대화를 나누고 있었다)
다만 녹음 음질이 않좋다는게 약점이긴 한데...

그나저나 왜 한국 마이크로소프트웨어에서 하는 웹캐스트 세미나는 시스템이 구닥다리 인건지.
미국 웹캐스트는 Live Meeting을 이용해서 Adobe Connect 와 동급의 성능을 보여주던데.
웹캐스트 이용률이 적어서 그럴 수도 있지만. (못만들어서 안오는지 안와서 대강만들어 논건지)

사실 대학교에서도 글로벌화다 뭐니 해도 아직 공책 한권 겨우 놓을 수 있는 책상을 쓰는 판에,
인터넷이라고 별수는 없는 듯.

Eclipse IDE의 여러 용도

Java 의 대표적인 개발 툴인 Eclipse는 플러그인 기반으로 만들어져 있기 때문에,
여러가지 용도로 활용가는하다. (Java 편집기조차 JDT라는 플러그인)
그래서 여러가지 기발한 플러그인이 나왔는데,
XML, PHP, Ruby 등의 에디트 플러그인은 많이 봤을 것이고,
요즘엔 아래와 같은 것도 만든다.


  • 마이러 프로젝트(라고 읽더라..), 처음엔 이슈/버그 트랙커인 버그질라, 지라, 트랙 같은 솔루션과 이클립스를 연동 시켜주는 좋은 플러그인 인줄 알았다.
  • 개발자의 소개 프리젠테이션을 시청해보니 그게 아니다.
  • "과다한 정보를 필터링 함으로써, 할일에 집중"이 바로 목표다.
  • 트랙은 오픈소스 프로젝트의 메인 (파이썬으로 개발됨) 이슈 트랙커로 자리 잡았고 0.9버전(현재 0.10버전) 부터 모듈화와 안정성을 확보한것 같다.
  • CVS나 SVN와 같은 버전관리자를 쓴다면 이참에 trac (혹은 기타의 이슈 트랙커)를 설치하고 반드시 써보자
  • CVS나 SVN와 같은 버전 관리 시스템을 안쓴다면... 혼자 열씸히 프로그램 하기 바란다. 다만 프로젝트에서 안만났으면 좋겠다.




  • 성공적인 개발 프로세스를 작성하고 관리하며, 모범 적인 개발 방법을 보급시키기 위한 프로젝트이다.
  • 즉 Clear Case 같은 형상 관리 툴인데, Open 정책에 기반하여 여러 개발 방법을 라이브러리 형식으로 추가 할 수 있다.
  • EPF Composer 는 프로세스를 작성 관리하는 프로젝트이다. 기본 엔진은 Eclipse 이지만, 기존에 에디팅 중심의 Eclipse 를 통짜로 튜닝해서 만들어져 있다. 따라서 기존 Eclipse 와 별도로 실행한다. 특히 실행해보면 workspace를 찾는게 아니라 method library 를 찾는다.
  • OpenUp/Basic 개발 방법 method library이다. 즉 이 프레임웍이 제공하는 개발 방법론이 적용된다. 예를 들어 eXtream 방법론도 추가할 수 있을 것이다.
  • 기본 method library를 읽어 드리고 계획을 추가하여 이것 저것 작성한뒤 pulishing 하면 웹으로 최종 프로젝트 계획서를 볼 수 있다.
  • 제대로 해보기 위해서는 Clear Case 많큼은 아니더라도 약간의 학습이 필요하다.

그리고 모바일/임베디드 시스템을 위한 플러그인.



  • 임베디드 시스템의 파일 수정과 테스트 등을 할 수 있는 프로그램, 임베디드 시스템을 개발해본 입장에서 취약한 개발 환경에 이런 건 정말 감사하다.


  • 이건 MIDP 2.0 에서 돌아가는 위젯(일종의 인터페이스)을 제공하여, 모바일에서도 컴포넌트 방식으로 개발 한다는 것데... 이건 제조사의 협조가 있어야 하니까 많이 힘들겠군.

IBM이 Visual Age 때부터 개발해온 자바 개발 툴을 오픈 소스로 기증한 Eclipse, 이렇게 까지 폭넓게 쓰일줄은 몰랐겠지만

장하다 IBM.

SUN도 진작에 java를 오픈소스로 했으면, 현재보다 더 높은 위상을 가지지 않았을까?

목요일, 11월 16, 2006

(옮김) 개발자의 전문성 관리

언제나 그렇지만 새로운 기술은 끊임없이 쏟아져 나온다. 영업자는 '유닉스'란 단어 하나만 알아도 마치 그 기술을 전부 아는양 말하지만, 개발자는 터미널 앞에서 수천시간을 씨름하고 나서야 비로소 유닉스를 조금 이해하게 된다. 기획자에게 '웹 2.0'의 도입은 새로운 단어를 하나 익히는 것만큼 쉬울지 모른다. 개발자는 웹 표준, Ajax, RSS, 태그, 웹서비스 등 한무리의 새로운 기술을 익혀야 하는데 말이다.
불과 이삼년 전만 하더라도 마이크로소프트는 영원할 것만 같았다. 수많은 개발자들이 비쥬얼 스튜디오를 익히고 마이크로소프트에서 쏟아내는 신기술을 소화해 내느라 정신이 없었다. 그런데 이제는 개발자는 맥을 써야 한다는 말이 공공연하다.
다들 자바가 대세인 줄 알았다. 프로그래밍의 미래라고 모두가 생각했다. 그런데 자바가 세상에 나온지 불과 10여년이 지난 지금 많은 개발자들이 자바의 마지막이 멀지 않음을 체감하고 있다.
어쩔수 없었던 것일까? 그런데 진작부터 자바가 별 볼일 없다는 걸 알고 있던 사람도 있었더라. 마이크로소프트의 이후를 일찍이 준비해온 사람들도 있고 말이다. Paul Graham은 진작에 알았으면 좋았을 것들이라는 글에서 이런 말을 했다.
인생은 엔진이 없는 행글라이더를 타는 것과 같습니다. 가능하면 맞바람을 타서 최대한 하늘 위로 올라가려고 하십시요. 멋있어 보이는 곳이 있으면 뒷바람을 타고 빠르게 그쪽으로 날아가고 싶은 유혹이 생기기도 합니다. 그런데 뒷바람을 타면 순식간에 지면에 너무 가까운 곳으로 내려가 버립니다. 나중에 내가 원하던 곳은 여기가 아니라는 것을 깨달았을 땐 이미 너무 늦어버리죠.
어떤 것이 맞바람을 타는 일일까? Graham은 경제학 대신에 수학을 전공하라고 말한다. 프로그래밍에 비유하면 자바 대신에 Lisp을 공부하는 일이리라. 당장 돈이 되는 것 보다는 미래를 위해 투자해야 한다.
개발자에게 전문성은 황금 알을 낳는 거위와 같다. 알을 빨리 낳게 하려고 무리수를 두면 거위가 일찍 죽어 버린다. 왜 국내의 수많은 개발자가 마흔도 안되어 개발을 포기하겠는가?
10년 뒤를 생각하고 그때도 유용할 지식을 배우는데 시간을 최대한 투자해야 한다. 물론 10년 뒤를 내다보는 것은 쉬운 일이 아니다. 내가 생각하는 10년 뒤 개발자에게 쓸모 없을 지식과 유용할 지식은 다음과 같다.
  • 거의 쓸모 없을 지식: MFC, COM, ActiveX, 자바 관련 모든 것, Perl, SOAP, XML, 윈도우 서버
  • 여전히 유용할 지식: Unix, 정규식, 관계형 데이터베이스, 메타프로그래밍, emacs/vi, HTTP, HTML XHTML/CSS, 루비, C

앞으로 10년 동안에도 수많은 기술이 나오고 또 사라질 것이다. 아무쪼록 개인의 전문성을 잘 관리해서 개발을 오래오래 즐기도록 하자.

Blogger.com은 트랙백이 없군.

대신 backlink 라는게 있는데, 트랙백이랑은 반대로 작동한다.

즉 트랙백은 퍼가는 사람 블로그에 트랙백 주소를 입력하면 서버끼리 통신해서
원문 소유자의 블로그에 트랙백이 되었다는 멘트가 작성된다.

backlink는 대단히 원초적인 기능으로 한줄답변과 비슷한데,
그냥 원문 소유자의 블로그에 backlink 한다는 버튼을 누르고 퍼가는 블로그글의 URL을 입력하면 (때문에 미리 퍼가기 글이 작성 완료 되어야한다.) 멘트가 작성되고 끝난다.

다만 이렇게하면 원문과 퍼간글 간에 별 관계가 없게 되는데, (그냥 한줄답변에 URL을 적은 것과 마찬가지가 된다) backlink에서의 원문과 퍼간글의 연관관계는 Blog Search (누가 검색회사 아니랄 까봐)를 이용해서 해결한다.

정모르겠으면 한번 글 하단 오른쪽에 있는 links to this post 를 클릭해 보시라,
이것 저것 테스트 해봐도 모라고 안할테니...

블로그를 시작하며...

웹상의 글이란게 오묘해서 때론 많은 사람에게 정보/감동/새로운 시야 등을 제공해 주기도 하지만, 원치않은 오해/원망/나쁜 선입관을 주기도 한다.

이런점 때문에 많은 사람(특히 IT 분야 종사자)들이 블로그 및 커뮤니티 게시판을 통해
자신의 의견을 개진하는 것을 보고도, 나자신은 이런 문화에 적극 참여하지 않은 것 같다.

그러던 중 어느날 컴퓨터 언어의 미래를 예상한 블로그 글을 보며, 어딘가 적어 놨다가 정말 몇 년이 지나 해당 글과 실제 상황을 비교해 보면 재미있을 것 같기도 하고, 미래에 대한 흐름을 느끼는데 도움이 될 것 같았다.

처음에는 pdf 파일로 로컬 PC에 저장하려 했지만, 컴퓨터 업그레이드 및 여러가지 이유로 분실할 것 같고, 그렇다고 이메일 계정에 저장하자니 몇 달만 지다면 존재가 잊혀지는 이메일 특성상 적합하지 않을 것 같아 블로그에 저장하기로 했다.

그런데 막상 블로그에 옮기려 하다보니 나의 글도 아닌 다른 사람 글 몇개만 달랑 올라 있는 것도 애처롭고, 이런 저런 생각도 떠오르는게 있어 나의 의견도 게시하기로 했다.

결국 나의 블로깅은 시작되었다~