DNA 포럼 API 서비스 모음 DNA Lens

Archive for November, 2006

DNA 배너를 소개합니다

Tuesday, November 21st, 2006

stadia님의 “배너가 하나 있었으면 해요”라는 요청에 liebe_zign님께서 DNA 배너를 만들어주셨습니다. 아니 이렇게 고마울데가, 앞으로 유용하게 잘 쓰겠습니다. 필요하신분은 아래 사이즈별로 받아서 이용하시기 바랍니다.

그런데 liebe_zign님, 문구 수정 요청은 받아주시는거죠? ^^

추가 2006-12-04: liebe_zign님께서 문구를 수정해주셨습니다. 감사합니다.

Daum DNA

Daum DNA

Daum DNA

170×61

Daum DNA

Daum DNA

Daum DNA

1376113839.gif

1278490477.gif

1261775874.gif

1223814124.gif

1200168758.gif
160×50

1214809904.gif

1216206343.gif
90×30

Greg Stein ‘구글에서의 오픈 소스’ 강연 자료

Tuesday, November 21st, 2006

올해 다음-라이코스 개발자 컨퍼런스에 키노트 스피커로 초대된 아파치 재단 의장인 Greg Stein의 발표를 한국어 자막과 함께 공개 합니다. 구글에서의 오픈 소스 활용과 라이센스 사용 문제 그리고 왜 오픈 소스를 사용해야 하는지 쉽게 설명해 줍니다.

Greg Stein - 구글에서의 오픈 소스

아울러 Lycos.com의 CTO은 Don Kosak은 프로토 타입을 활용한 개발 방법론에 대해 발제 하였습니다.

Don Kosak - 프로토 타입 개발 방법론

프로그래머의 장인정신

Monday, November 20th, 2006

얼마전 3층 발코니에 나가서 커피 한잔 마시면서 좀 쉬고 있는데 저희 팀장님이신 동욱님이 마침 나오시더군요.. 그냥 이런저런 얘기 하면서 머리를 식히다가 나온 얘기가, 누구나 기억할 만한 중학교 국어책에서 배운 윤오영님의 수필 “방망이 깎던 노인”이야기가 나왔습니다. 투철한 장인정신과, 책임감, 서두르지 않는 여유로움의 미덕 등을 강조하는 내용이라고 참고서에는 나와있죠^^
프로그래머에게 있어 장인정신이란 무엇일까요? 우리는 방망이를 깎아야 하는 걸까요?

버그 없는 프로그램을 만드는 것, 완전 무결한 에러율 0%의 로직을 구현해 내는 것, 누구나 언제든지 필요한 기능을 손쉽게 추가하고 개선해 나갈수 있도록 이해하기 좋게 코딩하는 것, 최소의 자원으로 최고의 퍼포먼스를 내는 최적의 프로그램을 짜는 것, 발생가능한 모든 상황을 미리 예상하고 대안을 보유하고 있도록 작성하는 것… 조금씩 말만 다르지 프로그래밍 분야에서 말하는 장인정신이란 대충 비슷합니다.
그런데 정말이지 이런것들이 개발자가 갖춰야할 장인정신일까요?

일단은 맞다고 하고 싶습니다. 완벽한 제품을 만드는 것이 장인의 정신이죠.. 하지만 반드시 장인정신의 덕목을 엄수해야 한다고 생각하지는 않습니다. 이건 제조업이 아닙니다. 제조업과는 다른 잣대로 생산물을 평가해야 하죠..
게다가, 사실.. 먹고 살자고 하는 짓이지 않습니까.. 주어진 시간 안에(정말이지 모호한 표현입니다만..) 계획된 목표물(역시 모호합니다.)을 만들어야 하는 것이 비지니스의 원리죠.. 시장경제가 어쩌니 하는 말들을 굳이 꺼내지 않아도 누구나 알고 있을 겁니다. 프로그래머는 엔지니어지 사이언티스트가 아니지 않습니까? 실용성이 있는 무언가를 만들어야 하는 것이지요.. 실용성을 생각한다면 비용와 이윤의 트레이드 오프가 무시할수 없는 변수로 등장 하게 되구요..

제 결론을 말할까요? 고쳐야 되는 버그를 찾아서 고치자 하는 겁니다. 물론 자원이 허락하는한 모든 버그를 고쳐야 하죠. 개선의 여지가 있는 모든 로직을 개선해야 하구요.. 하지만 때로는 포기할 줄도, 기약없지만 미룰 줄도 알아야 한다는 겁니다.

프로그램을 짜던 중 어떤 버그를 발견했습니다. 참으로 어처구니가 없는 일이었죠. 절대 일어날수 없는 입력값이 입력된겁니다. 심심해서, 또는 테스트 프로그램이 잘못 설정되는 바람에 그런 입력값을 주기도 어려운 입력값을 주게 된 것이죠. 이를테면 106키보드에서 358개의 키가 동시에 눌러졌다던지, 마우스 포인터의 좌표가 (-103.5, -87.3)이 되었다던지.. 웹서버에 전송할 HTTP Request 객체를 생성하고 소켓을 열기도 전에 Ethernet드라이벗로부터 HTTP Response가 수신되었다던지.. 상식적으로 일어나지 않을 거라고 확신이 드는 그런 입력값 말이죠.. 그랬더니 원래 의도했던 다이얼로그가 뜨지 않는겁니다. 물론 다시 버튼을 클릭 한번만 해 주면 이전의 이상한 입력값은 깨끗이 무시되고 의도한 다이얼로그가 뜨긴 합니다. 자.. 이 버그를 고쳐야 할까요? 장인정신이 투철한 개발자라면 예상치 못했던 입력값이 주어졌을 때, 예외상황을 선포하고 적절한 핸들링을 하기 위해서 말도 안되는 입력값을 상상력을 동원하여 재현해 보고 분석하여 몇가지를 무시한 결과로 다이얼로그를 보여주려고 할 겁니다. 유저는 입력이 이상했다는 것(노이즈가 개입되었을 수 있다는 것)은 전혀 느끼지 못한 채로 계속 프로그램을 작동 시킬 겁니다. 3일 밤을 꼬박 세워서 말이죠..

하지만 이런 종류의 버그에 대처하기란 쉽지 않습니다.
전세계에 배포하면 2억명의 고객에게 팔릴 이 제품에 대해, 107명쯤이 이 버그를 경험할텐데, 그중 92명은 버그를 눈치채지 못하고 버튼을 다시 클릭할겁니다. 15명은 뭔가 이상한 작동을 하는것 같다고 생각하지만 재현이 쉽지 않아 포기합니다. 하지만 개발자는 이 버그를 고치기 위해 불가능한 갖은 입력값을 프로그램에 던져보면서 모든 예외상황을 재현하려 애쓰면서 그에 적절한 반응을 보일수 있도록 코드를 수정할 것입니다. 3일 밤을 새면서 말이죠..
(사실 3일이면 다행이죠)
소프트웨어의 완성도는 고객에게 기업에 대한 신뢰를 높여준다지만, 이 버그가 수정된걸 눈치채고 역시 훌륭한 업체라고 생각하는 고객은 전 세계 2억명 고객중에 15명에 불과합니다. 어쩌면 이 15명 조차 못느낄 지도 모르죠..
15명에게 기업의 이미지가 매우 좋아졌지만, 소프트웨어의 신뢰도도 매우 높아졌지만, 15명의 충성도 높은 고객을 확보하였지만, 이 15명의 고객이, 프로그래머가 3일간 밤을 세우며 디버그 하는 바람에 출시가 일주일 늦어져 발생한 16억 3천만원의 매출을 올려주려면 정말 오래 걸릴겁니다.

예시가 적절치 못했을지도 모르겠습니다. 숫자도 제 멋대로 막 갖다 붙인겁니다. 하지만, “반드시 지금 고쳐야 하는 버그”와 “기회가 되면 고쳐야 하는 버그”는 구분할줄 알아야 합니다. 로또 1등을 19회 연속으로 맞아 앞으로 먹고 살 걱정 안하고 소프트웨어 공학의 발전과 자기 만족에만 인생을 쏟아부을 생각이 아니라면 말이죠..

버그대처와 관계되는 프로젝트 관리에 대해 이야기 하자면 끝도 없이 길어지겠지만 이미 스크롤의 압박은 충분히 만들었다고 생각되는군요^^; 다 써놓고 보니 어쩌면 비굴해 보일지도 모르는 글이지만 수정하지 않겠습니다. 비굴해지는 연습도 해봐야죠;;

이 글은 개발자로서의 저의 가치관에 대한 글입니다. 다음이 저희 회사라고 저와 입장이 같지는 않을수도 있습니다. 두달쯤 후엔 DNA에서 루미넌스를 볼수 없을지도 모른다는 말이죠..

ㅎㅎ 농담입니다.

Web 2.0 summit 후기

Friday, November 17th, 2006

지난주 11/7 ~ 11/9까지 San Francisco에서 열린 O’reilly주관 web 2.0 summit에 참석했었습니다.

몇가지 컨퍼런스 내용과 느낀 점들을 정리해 보겠습니다.

UOC(User Organized Contents)
첫날 있었던 워크샵의 첫시간에 야후의 웹2.0 전략에 대한 발표가 있었는데 발표 내용중 “What make flickr special?”이라는 주제로 몇가지 포인트를 찍어서 설명을 해주는 자리가 있었습니다. UGC(User Generated Contents), UOC(User Organized Contents), UDF(User Defined Functionality)등이 있었는데 그중 UOC라는 말이 와닿았습니다.

사용자가 컨텐츠를 어떻게든 생산을 하면 service provider입장에서 그 컨텐츠들을 잘 소화시켜 어떻게 많이 유통시킬 것인가에 대한 고민을 많이 하는데 한번 생산된 컨텐츠가 사용자를 통해서 지속적으로 발전되어 나갈 수 있다는 것은 위키 이외에 별다른 고민이 없었던 것 같습니다.

위키는 공동저작으로 지속적으로 컨텐츠를 발전시켜 나가는 것 자체가 목적이기 때문에 그렇다 하더라도 다른 컨텐츠 역시 그런 관점에서 보고 있다는 것이 기본적인 것이지만 간과하고 있는게 아닐까 하는 생각이 들었습니다.

지속적으로 사용자들에 의해 refining되는 컨텐츠, 즉 collective intelligence가 엮일 수 있는 컨텐츠가 웹2.0 컨텐츠이고 그러한 컨텐츠가 생산되고 유통될 수 있는 어플리케이션이 웹2.0 어플리케이션이 아닌가 합니다.

KICX8616

Online video and software as service
Opening keynote에 구글의 CEO인 Eric Schmidt가 나와서 John Battelle과 대화를 했습니다. 여기서 나온 Eric이 웹의 큰 흐름은 온라인 비디오와 Software as service로 보고 있다는 얘기를 했는데 이는 이미 우리나라에서도 진행중인 얘기인 것 같습니다.

온라인 비디오는 YouTube를 비롯하여 국내외 여러 서비스들이 현재 절찬리에 서비스 중이고 software as service도 웹2.0 meme에 나온 web as a platform과 같은 맥락으로 볼 수 있습니다. 이미 amazon, ebay, google등의 경우는 자사의 서비스를 software처럼 제공을 하고 있는 ecosystem이 구축된 상황입니다.

Cyworld revealed
Cyworld에서 현재 cyworld의 상황과 서비스 모델 등에 대해서 발표를 하였습니다. 웹2.0의 흐름의 중심에 우리나라 업체가 발표를 한다는 것에 큰 관심을 가지고 발표를 지켜봤고 cyworld가 현재 미국의 개인 커뮤니티 시장에서 호황을 누리고 있는 myspace와 좋은 비교가 되고 초기에 경쟁을 했으면 어땠을까 하는 생각을 해봤습니다.

KICX8623

마무리
웹2.0의 모토가 web as a platform에서 harnessing the collective intelligence로 바뀌어 가는 듯합니다. 웹 사용자들의 참여도가 높아질 수록 좀 더 많은 권한을 가지기를 원할 것이고 그러한 사용자들의 행위들을 잘 엮어내어서 집단 지성의 결과물들을 쏟아내고 활용하는 것이 웹2.0의 큰 흐름이 아닌가 합니다.

이러한 흐름은 자연스러운 것이고 사용자들의 real life가 웹에 점차 반영되고 있다는 증거가 아닐까요? 서비스 제공자 입장에서는 사용자들에게 좀 더 많은 자유도를 주어야하는 방향으로 정책을 잡아가야할 것입니다. 사이버 세계와 실세계가 점차 emerging되고 있다는 느낌입니다.