NHN Deview 2009 Office
2009.08.26 07:27 Edit
NHN의 기술과 서비스를 보다 많은 분들과 공유하여, 보다 쉽고 편리한 개발과 풍요로운 서비스 토양을 만들어가고자 합니다. 여러분이 만드는 서비스가 한국의 웹 환경을 더욱 튼튼하게 자라게 할 수 있을 것이라고 믿습니다. 대 상 : SW개발자, 인터넷 서비스 제공자, IT 관련 대학생/일반인 등록 방법 : 9월 15일까지 사전 등록 선착순 1,000명출처: NHN DeView 2009
NHN DeView 2009가 9월 17일(목) 코엑스에서 개최됩니다.
작년 첫 DeView 행사에서도 XpressEngine으로 발표를 하였었습니다만 그 때는 아무래도 지금보다 준비한 것도 없었고 또 뚜렷한 비전을 제시할 수가 없어서 참 아쉬웠었습니다.
다행이 이번에는 공유하고 발표할 수 있는 것들이 있기에 조금은 다행이라고 생각합니다.
XpressEngine - 독립사이트 개발을 위한 Framework
처음 XE는 제로보드XE 라는 이름으로 제로보드를 계승 발전시키고 대체할 수 있는 Content Management System으로 개발되었었습니다.
컨텐츠의 생산, 발행, 유통이라는 명제를 가지고 있었고 이는 지금도 변함이 없습니다.
다만 지금의 XE는 CMS라기보다 독립사이트 개발을 위한 Framework로 발돋움하고 있습니다.
독립사이트 개발을 위한 Framework라는 게 무엇일까요?
대부분의 프레임웍들이 그렇지만 무언가를 개발하기 위한 것이고 아무래도 범용적이고 확장 가능한 구조를 지향하고 있습니다.
XE도 확장 가능한 구조이긴 하지만 사이트 개발을 하기 위해 좀 더 특별하고 편리하게 구조지어진 프레임웍이라 생각하면 될 것 같습니다.
모듈 중심의 동작방식을 가지고 있고 여러가지 라이브러리들을 보유하여 굳이 사이트 개발이 아닌 용도로도 사용할 수 있지만 사이트 개발을 위해 사용된다면 기존의 여러 모듈들과 함께 사용시 무척 빠르고 편리하게 개발을 할 수 있다고 생각합니다.
이미 공개된 install, admin, module, member, board, page, widget등의 모듈만 이용하여도 충분히 사이트를 꾸밀 수 있을뿐더라 사이트 기획상 기존 모듈로 대체할 수 없는 경우 XE 개발 방법론에 따라 모듈이나 애드온을 개발하면 되고 이 개발이 맨땅에서 시작하는 것에 비해 프레임웍의 개발론을 따르게 되면 무척 편하고 쉽고 안정적일 수 있습니다.
예를 들어 Wiki, Textyle, Planet 등이 이런 식으로 개발될 것입니다.
Wiki의 경우 프로토타입 개발을 하늘님이 하셨고 XE Core의 document 모듈등을 이용하여 금방 만든것으로 알고 있고 Planet 의 경우 초기 개발은 단 3일이 걸렸습니다.
물론 대충 동작하는 경우가 그런 것이고 실제 서비스에 반영하기 위해서라면 좀 더 다듬도 개선해야 할 일들이 있지만 일단 이건 예외로 하더라도 쉽게 프로토타입을 만들 수 있고 이 프토로타입을 개선하는 것 역시 XE 구조내에서 action의 구현을 통해 쉽게 할 수 있습니다.
아직은 미완성인 XpressEngine
XpressEngine은 처음부터 Framework을 지향하지 않았지만 개발 설계시 어느정도(유연한?) Framework을 지향하였고 2년 반이 지나면서 실제 쓸만하다고 자체 판단할 수 있을 정도로는 되었다고 생각합니다.
다만 Interface의 유연함과 확장성은 보장되었다고 판단되나 실제 구현 부분에서 충분한 코드 리뷰 없이 구현한 부분들은 아직 덜 다듬어지고 미약한 부분들이 있습니다.
올 하반기에는 XpressEngine의 문서화와 개발 방법론 제시를 준비하면서 구현 부분을 부분적으로 다듬어나갈 예정입니다.
그리고 아직 제대로 하지 않았던 scalability 에 대한 테스트와 개선도 할 예정이구요.
Syndication API 와 스팸 정보 공유 API
이번 NHN DeView 2009에서는 XE 라는 주제가 아닌 독립사이트라는 주제로 발표를 합니다.
여러가지 이유가 있지만 여기에는 Syndication API와 스팸 정보 공유 API가 포함되었기 때문이라고 봐도 무방할 것 같습니다.
Syndication API
Syndication API는 독립사이트의 컨텐츠를 검색 서비스 제공업체와 동기화하는 기능으로 보면 됩니다.
기존의 검색 서비스 업체는 로봇을 이용하여 링크를 통해 검출된 페이지들을 무작위로 크롤링을 하여 왔습니다.
구글봇의 경우 1분 전에 쓴 글이 검색에 반영될 정도로 매우 무식하다고 할 정도로 빈도 높은 크롤링을 하였고 이로 인해 독립사이트 서버에 부하와 트래픽이 많이 발생하였었습니다.
(실제로 XE 공식사이트는 구글봇의 ip 대역을 막은 적도 있습니다)
이렇게 수집해간 컨텐츠는 html source 그대로이기에 여기서 제목과 내용등을 추출하는 기법을 이용하여 100% 정확한 의미 추출이 이루어지지 않고 있습니다.
물론 그렇기에 Textyle의 글쓰기 결과로 나오는 heading 태그, p, blockquote등이 SEO 에 더 적합할 수도 있겠지만 아무튼 이는 완벽히 의미를 추출하기 어려운 부분이 있습니다.
Syndication API는 Syndication Spec (Atom 기반)으로 독립사이트와 그 사이트의 채널(게시판, 위키등 문서의 컨테이너) 그리고 아티클(문서)의 변화를 Syndication Server로 notify 하고 검색 서버에서는 이 notification된 정보를 바탕으로 Syndication Spen에 의해 독립사이트에 변경된 문서만 요청하게 되는 구조입니다.
요청시 응답은 Atom 기반의 Syndication Spec 즉 simple xml 형식으로 하게 되어 검색 서버는 제목, 내용 뿐 아니라 댓글 수등의 부가 정보까지 확실하게 의미 추출을 할 수 있습니다.
이 Syndication API의 장점은 불필요한 트래픽과 서버의 부하를 없애고 검색 랭킹에 반영될 수 있는 의미있는 문서를 전달할 수 있다는 것에 있습니다.
이 Syndication API는 Spec을 공개해서 XE로 제작된 독립사이트와 NHN만 사용하는게 아니라 어떤 사이트이건 사용 가능하고 또 NHN이 아닌 다른 검색서비스 업체도 이용할 수 있도록 할 예정입니다.
지금 열심히 개발중이고 올해 안에 실제 연동되는 몇 개의 사이트에 적용하여 정식 오픈 할 수 있도록 할 예정입니다.
스팸 정보 공유 API
독립사이트들의 경우 댓글, 트랙백은 주요 커뮤니케이션 수단이고 독립사이트의 컨텐츠를 보다 더 가치 있게 활용할 수 있는 기능임에도 스패머들의 스팸성 댓글과 트랙백으로 사이트 운영에 많은 노력이 투입되고 있습니다.
이는 언론사 사이트를 보면 쉽게 알 수 있을 정도로 컨텐츠와 무관한 스팸 댓글로 인하여 많은 폐단이 생기고 있습니다.
스팸 댓글/ 트랙백은 그 패턴이 무척 다양하고 여러가지 필터링 기법을 우회하는 노력(?)으로 막기가 어렵습니다.
특히 하나의 사이트를 운영하는 운영자 입장에서 이미 다른 곳에서 사용되는 스팸 공격이라 할지라도 본인으로서는 처음 접하기에 늘 공격 후 방어할 수 밖에 없습니다.
이를 좀 더 넓은 관점에서 수만개의 독립사이트를 대상으로 본다면 초기 몇 곳은 스팸에 노출될 수 밖에 없지만 그 스팸 정보를 공유할 수 있다면 수만개의 독립사이트 모두가 속수무책으로 당하지 않을 수 있다고 생각했습니다.
스팸 정보 공유 API는 그런 취지에서 개발되고 있는 API입니다.
즉 필터 정보(white/black ip, word등)와 룰셋을 독립 사이트 운영자들이 공유하고 또 독립사이트 운영자들은 공유된 필터와 룰셋들을 자신의 사이트에 필요한 것들을 선택하여 스팸 필터링 할 수 있도록 하는 것이 스팸 정보 공유 API의 주 기능입니다.
이 API 역시 올 하반기 쯤에 개발을 일단락 할 수 있도록 할 예정입니다.
XE Camp 와 공모전
Deview 행사 후에 XE 공모전을 개최할 예정입니다.
상품이 아닌 상금으로 시상도 할 예정이며 대상은 XE 기반의 프로그램 뿐 아니라 스킨 디자인, 제작된 사이트등도 모두 포함될 수 있습니다.
XE는 core 가 발전해 가는 것도 중요하지만 third party (명확히 대체할 수 있는 단어가 생각 안나서)들의 참여와 그로 인한 결과물의 공유가 무척 중요합니다.
XE 공모전은 공유의 활성화를 위한 첫 걸음이라고 생각합니다.
물론 이 공모전만 덜렁 시행한다면 참여하고 싶어도 아직 제대로 체계가 잡히지 않은 XE 의 사용법과 개발방법때문에 효과가 반감할 수 있으리라 생각해서 XE Camp를 선행할 예정입니다.
현재로는 주말에 무박 2일로 XE 개발 방법론 소개 뿐 아니라 웹퍼블리싱, AJAX등 XE와 관련된 기반 기술을 소개하고 강의하고 또 직접 개발을 할 수 있게 하고 오픈UI기술팀원들이 멘토링을 하는 형식을 생각하고 있습니다.
XpressEngine, Syndication API, 스팸 정보 공유 API 모두 하나 같이 독립사이트를 운영할때 필요한 것들이라 볼 수 있습니다.
NHN에서 XE를 시작한지 어느덧 3년을 바라보고 있고 단순 CMS로서의 XE가 아닌 프레임웍으로서의 XE 그리고 정보 공유를 돕는 Syndication, 사이트의 운영을 위한 스팸 정보 공유 API등 다양한 결과물들이 나오는 것을 보면 참 뿌듯하기도 하고 과연 다 잘할 수 있을까 하는 두려움이 들기도 합니다.
하지만 내가 하고 싶었던 것들을 실제 하면서 겪게 되는 어려움과 두려움은 하고 싶었던 것을 시작하지도 못하는 아쉬움과 절망보다는 매우 작다고 생각합니다.
이번 NHN DeView를 통해 내가, 우리가 하는 것들이 잘 소개되고 우리가 하는 것들에 공감하고 같이 하실 분들이 더 생기기를 간절히 바랍니다.
이런 모든 것들을 오픈 소스로 진행하는 것은 우리가 만든걸 잘 써달라는게 아닌 더 좋은걸 같이 만들자는 취지이기 때문에 참여자분들이 많아지는 것이 너무나 중요합니다.
원고 마감이 얼마 남지 않았던데;;
할일은 태산에 문제속출..대안없음..아;;;