개똥이도 하는 Comet

이 글은 개똥이도 하는 Comet 시리즈의 전체 1개 중 1번째 글입니다.

얼마 전에 Comet 기술을 사용해서 채팅방을 하나 만들었습니다. 원래는 NodeJS 라는 새로운 자바스크립트 인터프리터에 대해 소개하기 위한 예제로 작성했는데, 오히려 Comet에 대해서 관심을 보이는 분들이 많았습니다. 자바스크립트만으로도 빠르게 실시간으로 반응하는 채팅방이 가능하다는 사실에 놀라워하더군요. 그 분들께 Comet 이라고 말씀드리면 이름 자체를 처음 들어보거나 들어보기는 했지만 잘 모르는 분들이 대부분이었습니다. 그게 바로 이 연재를 시작한 이유입니다.

이 연재를 통해 Comet에 대해 알아보고, 간단하게 채팅 서버와 스크립트를 만들어 보겠습니다. 그 후, HTML5에 새롭게 추가된 WebSocket에 대해 배워보고 Comet으로 작성한 채팅 서비스를 WebSocket을 사용하도록 변환해 볼 생각입니다. 여기까지 하면 Comet이나 WebSocket에 대해서 충분히 이해하게 되지 않을까 싶습니다.

우선 이 글에서는 Comet의 개념에 대해 설명해볼까 합니다.

웹의 한계

필요는 발명의 어머니입니다. Comet 기술은 웹이 가지는 한계가 사람들의 욕구를 충족시키지 못했기 때문입니다. 바로 실시간(real-time)에 대한 욕구죠. HTTP는 원래 프로토콜 특성상 실시간을 위해 필수적인 지속되는 연결(persistent connection)을 가질 수 없습니다. 클라이언트에서 서버에 접속하면 서버가 응답하고 연결이 끊어집니다. 우리가 웹을 사용할 때는 이 동작을 수없이 반복할 뿐입니다. 효율을 위해서 선택한 방식이기는 했지만, 이것이 웹이 가지는 한계가 되기도 했습니다. HTTP가 만들어지던 당시에는 그래도 충분했었습니다. 웹의 목적은 정보의 저장과 전달이었을 뿐, 실시간일 필요는 없었기 때문입니다. 웹이 생활과 밀접하게 되면서 사람들이 더 많은 것을 바라기 전까지는 그걸로도 충분했으나 이제는 상황이 바뀌었습니다.

이쯤에서 누군가는 몇 년전쯤에 크게 주목받은 Ajax를 떠올릴 것입니다. 어쩌면 이렇게 생각할지도 모르겠습니다.

“네이버의 실시간 급상승 검색어를 보면 실시간으로 데이터를 가져오던데?”

안타깝지만 현재 웹에서 운용되는 실시간 서비스들은 대부분 실시간이 아닙니다. 대부분의 실시간 서비스들이 그렇듯 네이버의 실시간 급상승 검색어의 경우도 바로바로 데이터를 갱신하는 것이 아니라 일정한 간격을 두고 데이터를 다시 불러들이는 형태입니다. 페이지 전체를 리프레시하거나 이동해야만 변경된 데이터를 볼 수 있었던 예전에 비하면야 실시간에 가깝지만, 그렇다고 실시간이라고 부를 수 있는 것은 아닙니다. 10초 단위 혹은 30초 단위 실시간이라고 말할 수는 있을지 몰라도 실시간이라고 부르기에는 부족합니다. 사실, x초 단위 실시간이 모순적인 단어이긴 합니다.
Read more

타임캡슐 수리기

잘 사용하던 타임캡슐이 드디어(?) 다른 분들과 마찬가지로 어느날부터 전혀 동작하지 않기 시작했습니다. 그리고, 뚜껑을 열어보기도 전에 아마도 다른 분들과 마찬가지로 캐패시터가 문제일 것이라 짐작했습니다(실제로 그 짐작은 적중했죠).

타임캡슐

사용한지는 2년이 넘었고, 선물 받은 물건이라 애플 케어에는 들어있지도 않아서 엄청 비싼 돈을 주고 애플에 맡기거나 스스로 수리하는 수 밖에 없었는데, 제 선택은 제목에서 보다시피 후자였습니다. ^^ 덕분에 대학 시절의 전자전기공학 전공을 살려서(사실 별 상관없습니다 ㅎㅎ) 타임캡슐 수리에 도전해봤습니다. 다행히 좋은 자료들이 있어서 어렵지 않게 수리할 수 있었습니다. 납땜만 할 줄 알면 되니까요. 제가 참고한 자료와 전자부품을 살 수 있는 쇼핑몰은 제일 마지막에 링크해두었으니 참고하세요.
Read more

Fraise : 가벼운 맥용 편집기

Fraise는 OSX에서 사용할 수 있는 가벼운 오픈소스 편집기입니다. 문법 강조도 되고, 간단하나마 프로젝트 관리 기능도 포함되어있습니다.

사실 이 프로젝트는 예전에 나왔던 Smultron이라는 편집기의 새로운 포크입니다. Smultron을 작성한 Peter Borg씨가 더 이상 프로젝트를 진행하기 어렵다는 의사를 밝히면서 한 때 이 프로젝트가 중단되었는데, 이를 Jean Francois Moy씨가 새로운 프로젝트로 다시 시작했습니다.

개발 로드맵을 보니 새로운 기능이 대거 포함될 예정인 듯 합니다. 올해 10월쯤에 나올 3.9.0 버전에서는 코드 폴딩과 터미널 통합 기능도 추가된다고 하니 기대해볼만 한 것 같습니다.

Smultron이 스웨덴 말로 딸기라는 뜻이었는데, Fraise 역시 프랑스어로 딸기라는 뜻이랍니다. 그래서 두 프로젝트의 아이콘도 상당히 닮은 꼴입니다. ^^

현재 릴리스된 Fraise는 마지막 버전의 Smultron에 비해 달라진 것이 거의 없습니다. 앞으로 추가될 새 기능을 기대해봅니다.

Page 1 of 25712345102030...Last »