신기술들이 마구마구 쏟아져 나옵니다. 개발자로 살아간다는 것, 아니 컴퓨터를 이용해서 생계를 이어가는 것 자체가 매우 피곤한 일입니다. 6개월 지나면 2배 빠른 컴퓨터를 반값에 산다는 무어의 법칙 때문이기도 하고, 유토피아를 만들만한 컴퓨터 언어나 소프트웨어의 완전판이 아직 없기 때문이죠.

현재의 컴퓨터 업계를 이끌어 가는 기술과 기술 커뮤니티들을 보면 한 가지 공통점이 있습니다. 기술의 대표가 있기 때문이죠. 컴퓨터 웹 업계에서 몇 년의 경험이 있다면 다음 기술을 얘기할 때 떠오르는 사람이 있을 것입니다.

  • ASP
  • zeroboard
  • phpschool
  • Devpia
  • kldp/linux
  • javastudy
  • javaservice
  • struts
  • spring
  • agile/xp
전 빠져도 되겠죠. ^^;
제 생각과 같은 지 확인해 보시죠.

  • ASP ( taeyo 김태영 )
  • zeroboard ( nzeo 고영수 )
  • phpschool ( 정진호 )
  • Devpia ( 최우인 )
  • kldp ( 권순선 )
  • javastudy ( 조대협 )
  • javaservice ( 이원영 )
  • struts ( 박재성 )
  • spring ( 박재성, 이일민, 안영회, 백기선 )
  • agile/xp ( 김창준 )
  • python ( perky 장혜식 )
  • MINA ( 이희승 )
뭐, 이의를 제기하시거나 추가를 원하시면 말씀해주세요. 제 경험상 주관적인 것이니까요.

인간 본성에 미래에 대한 불확실성이 있기 때문에 누군가 선례가 될 만한 존재를 발견하게 되면 조금이나마 안심하고 따라갈 수 있습니다. 위에 열거한 분들의 공통점은 상당히 오랜 기간 기술의 장을 만들고 다듬고 사람들과 교류하고 했던 분들입니다. 두 글자로 줄이면 "열정"이라고 할 수 있죠.

새로운 기술을 사람들이 환영하는 이유는 새롭기 때문입니다. 하지만 이 기술들이 오래가기 위해서는 스타 플레이어가 필요합니다. 반짝 스타가 있을 수 있지만, 그보다 더 중요한 것은 얼마나 기술이라는 플랫폼 위에서 오랫동안 사람들에게 존재감이 있을 수 있느냐 입니다.

3년만 버티면 동종 기술의 사람들에게 인정을 받기 시작합니다. 5년을 버티면 전문가 소리를 듣기 시작합니다. 10년을 버티면 전설이 되어버립니다. 수많은 추종자들을 이끌고 말이죠.

요약하면 이렇습니다.
커뮤니티? "일단 시작했으면 버텨라" 입니다.

오픈소스 뭐가 좋을까요.
공짜? 아닙니다. 아무도 공짜로 기술을 익힐 수는 없습니다. 시간과 노력이 많이 들어갑니다. 매뉴얼도 부실합니다. 기술지원? 인터넷을 통해서 찾아봐야하고 영어와 싸워야됩니다.

오픈소스는 소통의 방법입니다.
http://code.google.com/p/daysago 라는 프로젝트를 만들어서 공개를 했습니다. 적용사이트는 http://www.okjsp.pe.kr 이죠. 날짜 표기를 몇일전(days ago)처럼 표시합니다.
어느날 버그리포트를 받았습니다. 한달 전을 지나면 날짜 표기가 이상해진다는 내용이었죠.

추가된 테스트 코드

추가된 테스트 코드

버그 내용을 확인하고 테스트 메소드를 추가했습니다. 오류가 나는 날짜 데이터를 시료로 하고, 결과값을 기대한다고 했죠.

실패한 테스트 코드

실패한 테스트 코드

테스트 코드를 실행해보면 "어제"라는 값이 나와서 기대값인 "한달전"과 다릅니다. 소스를 열어봐야죠.

브레이크 포인트 걸기

브레이크 포인트 걸기

의심이 가는 곳에 브레이크 포인트를 겁니다. 그리고 디버깅을 시작해야겠죠.

start Debug

start Debug

JUnit 뷰에서 실패한 메소드에서 오른버튼을 클릭해서 Debug를 실행합니다.

변수 정보

변수 정보

디버그 퍼스펙티브에서 우측상단의 Variables 뷰를 보면 변수값을 확인할 수 있습니다.

코드 변경

코드 변경

day변수값이 먼저 조건에 걸리기 때문에 hour값에 의존해서 처리를 해야할 것 같습니다. 즉 hour를 날짜로 환산한 값이 30보다 작을 경우 day == 1 과 day == 2 가 어제, 그저께로 나와야 되는 것이죠. if 안으로 집어넣으면 될 것 같습니다.

테스트 재실행

테스트 재실행

테스트를 다시 돌립니다. JUnit 뷰의 툴바 중에서 5번째 있는 노란 화살표가 있는 플레이 아이콘을 클릭하면 됩니다. 녹색 바가 나오는 것을 보니 기대한 값이 나왔네요. 제대로 디버깅 되었습니다.

Regression Tests

Regression Tests

Regression Tests(회귀 테스트)를 수행합니다. 무슨 뜻이냐 하면 고친 코드로 인해서 다른 기능들에 Side Effect(부작용)가 생겼는지 확인을 하는 테스트를 회귀 테스트라고 합니다. De Bug가 En Bug로 돌변할 수도 있으니까요.

프로젝트 패키지

프로젝트 패키지


테스트가 완료되었으니 배포판을 만들겠습니다. 이클립스 프로젝트를 통째로 압축을 해서 공개를 하는 프로젝트입니다. 프로젝트 컨텍스트 메뉴에서 Export...를 선택합니다.
export type 선택

export type 선택

압축형태이기 때문에 zip이라고 필터 텍스트를 입력하지 마시고, ar을 입력하면 Archive File로 나옵니다. 프레스로 꽉꽉 누르는 아이콘 보이시죠.

배포판 등록

배포판 등록

배포판을 등록합니다. http://code.google.com/ 에서 프로젝트 관리자나 회원이면 파일을 등록할 수 있습니다.

등록된 배포파일

등록된 배포파일

daysago-0_22.zip 파일이 등록된 것을 볼 수 있습니다.

간단하게 시작할 수 있는 오픈소스 방법입니다. 복잡한 게시판 같은 것은 시간이 많이 걸립니다.  작은 소스부터 공유하면서 오픈소스에 대한 감각을 키워나가는 것이 필요하다는 생각이 듭니다.
아, 영어가 벅차면 그냥 한글로 하셔도 됩니다. 세계로 나아가는 프로그래머가 되고 싶다는 생각에 어설픈 영어를 썼습니다만 한글로 시작하셔도 됩니다.

오픈소스 프로젝트를 시작할 수 있는 곳은 구글코드 외에도 http://sf.net , http://kldp.net 등이 있습니다.
북적거리지는 않네요.
지금 파폭3.0 에 대한 얘기를 듣고 있는데,
쏟아지는 기술과 기능들이 많네요. --;
Cross-domain XMLHttpRequest 는 기대가 됩니다.

ㅎㅎ
늦잠자고 일어나 코엑스갔다가 장소 확인 다시하고 센트럴시티로... ^^;
새벽6시 일어나서 너무 열심히 와우를 했나봅니다. ^^;

Google 과 오픈소스 세미나 듣고 있는데, 기존의 오픈소스에 대한 생각을 넓히는데 도움이 됩니다.
반전이라고 할까요? 벤더의 제품을 이용할 경우 비즈니스에 대한 노출이 불가피한 반면 오픈소스를 이용해서 비즈니스를 진행할경우 오픈소스에 대한 확장을 외부에 노출하지 않아도 되기 때문에 더 안전하다고 하네요. 구글이니까 가능한 얘기이기도 하지만,우리나라에서도 가능한 일이라 생각됩니다.

재밌는 사진은 구글 데이터 센터에 관한 것이었는데, 마치 매트릭스의 한 장면을 연상시키는 것이 있었습니다. 수많은 블레이드 서버들이 암흑의 공간에 초록색 램프 하나면 켜놓은채 놓여있는 장면은 압권이었습니다.
http://code.google.com/ 연구해 볼 만한 것 같습니다.

강연하신 Greg Stein(http://www.lyra.org/greg/) 도 멋집니다.

+ Recent posts