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개를 봤을 뿐인데...시간이 많이 걸리는군요.
나머지는 계속해서 다음 포스트에 정리해 보겠습니다.


구글이 악성코드를 배포하는 URL목록(블랙리스트)를 수집한지는 꽤 오래되었죠.
이를 검색 결과에 반영하여 검색 품질을 향상시키기도 했는데요.

오늘 크롬으로 중앙일보와 동아일보에 접속하니 다음과 같이 차단을 시켜버리는군요.
(동아일보는 해당 관련 내용을 해결한 모양이네요. 방금전까지는 동일한 현상을 보였는데, 제거되었습니다.)

차단된 조인스닷컴

악성코드가 감지되어 크롬에서 차단된 joins.com



nasmedia를 조회를 해보니 인터넷 광고를 하는 업체인것 같은데...
무슨 이유인지 구글에 의해 유해사이트로 차단되었네요.
만약 나스미디어가 정상적인 업체라면 이 문제를 빨리 해소해야 겠군요.

여하튼. 깜짝 놀랐습니다. 여유가 되면 소스코드를 보고, 나스미디어도 살펴보고 할텐데...
내일 프리젠테이션이 있는 관계로 정신이 없군요.


흠. 이런식으로 블랙리스트가 사용되면 오작동시 누구에게 요청을 해야 할 것인지 고민되는군요.