예전에 대학원생이던 시절..(하..벌써 10년이 넘었네.)
일주일마다 교수님과 스터디한 것, 내가 추가로 연구한 것들을 발표하는..정기세미나를 했었다. 정기세미나는 엄청난 압박감을 가져다 주었다. 저녁에 이루어지는 세미나때문에 그날 아침부터 무언가를 먹기만 하면 소화를 못시키고, 임산부처럼 헛구역질까지 하곤 했다.

교수님께 공부한 사항을 주저리주저리 이야기하다보면 교수님은 늘 호통을 치셨다.
"그거 말고, 니가 한것, 니가 새롭게 생각한 것을 이야기하란 말이야"


많은 SW 프로젝트에서 오픈소스가 적극적으로 활용되고 있지만, 막상 오픈소스를 사용했다고 떳떳하게 밝히는 경우는 찾아보기 어렵다. 왜 그럴까? 남이 만든 것을 그냥 가져다 썼기 때문일까?  소스코드가 공개되어있다고 하지만, 사실 이를 제대로 활용하기 위해서는 뛰어난 분석 능력을 갖춘, 이른바 기술력을 보유한 기업이 되어야 한다. 그러므로, 단순히 오픈소스를 사용했다고 해서 기술력을 비난받을 일은 아니다.
다만, 오픈소스쪽에서 이미 구현한 것을 마치 자신이 한것처럼 과대 포장을 하는 경우가 있는데, 이것은 자신이 새로운 가치를 부여한 것에 대한 자신감(?)이 빠져있기 때문은 아닐까? 아니면 정말 쓰기에만 급급하고, 그것(오픈소스에서 제공하는 기능)을 제외하고는 제품에 다른 가치가 없기 때문은 아닐까?


최근 벌어지는 IT업계의 이슈들을 보면서...예전 대학원에서 세미나 시절에 들었던 교수님의 말씀이 다시금 생각났다.


"다른것 말고, 니가 한것, 니가 새롭게 가치를 부여한 것이 뭐냐?"



뱀꼬리> 자꾸 박신양 이미지가 떠오른다.
"왜 이건 내가 했고, 이건 오픈소스를 잘 활용한 것이라고 딴 사람들에게  왜 말을 못하는거야?"




Neozest입니다.

개발자에게 많은 지적 자극을 주는 부분은 바로 다른 사람의 코드를 읽는 순간이 아닐까 생각됩니다. 그 사람이 자신보다 실력이 뛰어나다면 가슴에서 우러러 나오는 존경심 + 더 공부해야겠다는 열정이 나올 것이고, 그 사람이 못하다면 자신이 배운 지식을 동원해서 다시 한번 정리할 수 있는 기회가 됩니다.

어제는 구글이 만든 오픈소스 브라우저인 크롬이 베타를 떼고 정식버전으로 출시되었습니다. (먼저 구글 크롬팀에 축하를...)
브라우저는 아주 많은 모듈들로 이루어져 있기 때문에 쉽게 전체적인 코드를 한눈에 보기는
불편하죠. 사실 웹킷코드를 리뷰한 적이 있는 저로써는 웹킷이외에 뭐가 사용되었을까가 더 궁금하기도 했죠. 그래서 구글 크롬에 사용된 third-party library들과 그들의 역할이 뭔지를 살펴보도록 하지요.(이미 구글과 같은 큰 조직에서 충분히 안정성이나 견고성을 검증했기 때문에 이런 모듈은 국내에서도 목적에 맞다면 사용해 보는 것도 좋겠죠.)


1. Google BreakPad (http://code.google.com/p/google-breakpad/)
프로그램을 개발하다보면 어쩔 수 없이 crash가 발생하게 됩니다. 그런데 이 crash에 대한 정보를 최대한 수집하여 분석할 수 있다면 해당 crash가 발생한 정황을 알 수 있겠죠. 마치 윈도우의 Dr.watson처럼 말이죠. 구글에서 만든 BreakPad는 멀티플랫폼에서 동작하는 crash report 시스템입니다. 이 글을 적고 있는 현재 Revision이 304이군요.

2. Google URL (http://code.google.com/p/google-url/)
크롬이 브라우저인 관계로 URL을 다룰 일이 많죠. 그 부분을 처리하는 작은 모듈입니다. 그런데 개인적으로는 이런 모듈이 이미 많은 언어에 foundation library에 포함되는 추세이기 때문에 코드 읽기 차원에서 볼 수는 있겠지만, 유용성은 떨어지지 않나 생각되네요.

3. ICU38(http://www.icu-project.org/)
유니코드는 이제는 익숙한 용어가 되었습니다. VC 최신 버전에서는 프로젝트를 생성할 때 기본으로 유니코드 기반으로 만들어지지요. 그렇지만 아직까지도 유닉스나 기존 레거시코드들에서 유니코드를 사용하기 위해서는 코드 페이지 변환등의 작업을 담당할 라이브러리가 필요하지요. 이 역할을 맡고 있는 것이 IBM에서 만든 ICU38입니다. (코드 변환 이외에도 정규표현식이나 형식화(formatting) 등의 작업을 제공하는군요.)


흠. 겨우 3개를 봤을 뿐인데...시간이 많이 걸리는군요.
나머지는 계속해서 다음 포스트에 정리해 보겠습니다.

+ Recent posts