memcached : 분산 메모리 객체 캐싱 시스템

September 15th, 2009

실시간 웹 기술을 알아보던 중 트위터와 같은 대규모 서비스에서 사용한 캐시 시스템 중 많이 들어본 memcached를 알아보고 요점만 정리해봤다.

memcached는 분산 메모리 객체 캐싱 시스템으로 일반적으로 데이터베이스 부하를 메모리 캐시로 대신하여 웹서비스 속도를 대폭 향상하는데 사용되는 시스템이다.

내부 동작은 엄청 복잡하겠지만 동작 방식은 쉽게 설명되어 있었다.

  1. 여러대의 각 서버에서 메모리 크기를 지정하여 데몬을 실행
  2. 각 서버 메모리는 하나의 공용 캐시 메모리로 관리
  3. memcached 라이브러리를 통해 객체 읽기/쓰기

memcached 라이브러리는 거의 모든 언어에 지원한다.
http://code.google.com/p/memcached/wiki/Clients

RDBMS의 문제

  • RDBMS의 특성상 ACID 조건을 충족시키기 위해 읽기/쓰기 쓰레드 블럭처리를 하면서 오버헤드가 발생

메모리 캐시는 블럭과 같은 오베헤드가 없고, 해시 테이블을 사용하여 매우 빠른속도로 RDBMS의 한계를 극복하는 좋은 대안이 될 수 있다.

트위터는 여러단계의 캐시를 사용하는데 중요한건 모든 DB를 캐시하여 서비스한다고 한다. 전체 메모리 용량이 얼마나 될까?..

나도 이런 분산 시스템 기반의 대규모 서비스를 제공해보고 싶은 욕망이^^ 열심히 구상해봐야지.. Google AppEngine에서도 memcache를 지원하니 한번 해봐야겠다.


위젯뱅크의 위키백과 지식상자

May 20th, 2009
예전에 위젯경진대회의 작품으로 만든 위젯이 위젯뱅크에 등록됬다.

다음에서 친절하게도 이쁘게 디자인을 입혀 주니 훨 괜찮아 보이넹ㅎㅎ


구글을 지탱하는 기술 – 구글 궁금증 해소제

May 8th, 2009
구글을 지탱하는 기술10점
니시다 케이스케 지음, 김성훈 옮김, 전병국 감수/멘토르

“전세계 웹의 엄청난 데이터를 어떻게 처리할까?”, “그 거대한 데이터를 어떻게 단시간에 검색해줄까?” 등등의 구글 기술에 대해 오래전부터 궁금했었다. 이런 궁금증을 쉽게 풀어준 책이 바로 ‘구글을 지탱하는 기술‘ 이다.

인덱스 생성 방식부터 분산처리, 분산 파일 시스템, 분산 스토리지 시스템 등의 기술 원리를 쉽게 이해할 수 있게 잘 설명해준다. 대부분은 구글이 발표한 논문을 참고하여 설명하고, 컴퓨터과학에서 배운 내용이 전반적으로 내포되어 있어 보는 내내 흥미로웠다.


클라우드 컴퓨팅: 매력적인 플랫폼

April 10th, 2009

말로만 듣던 클라우드 컴퓨팅을 직접 경험해보기 위해 Google App Engine에서 새로운 개인 프로젝트를 시작했다. 예전부터 구글 앱 엔진을 알았지만 아직 접해보지 못한 파이썬 개발 언어 때문에 쉽게 다가가진 못했지만 일단 해보기로 했다. 마침 몇 일전에 구글 앱 엔진은 자바 개발 환경을 지원하기 시작했다. 보다 익숙한 자바로 개발할까 망설였지만, 이미 파이썬을 익히기 시작하면서 새로운 언어의 신기함과 재미로 그냥 파이썬으로 하기로 했다.

지난 한 주간 구글 앱 엔진을 접해 본 느낌은 클라우드 컴퓨팅의 플랫폼은 정말 매력적이었다. 웹호스팅과는 비교할 수 없이 플랫폼으로서 보다 편리하고 즐거운 개발을 위한 환경을 지원해주었다. 구글 앱 엔진에서 개발 시작은 단순히 SDK를 다운받아 설치하고 개발하면 되었다. 웹서버, 데이터베이스, 버전 관리 설치/설정 이런 개발 외의 작업들이 모두 사라졌다.

개발의 편리함을 시작으로 클라우드 컴퓨팅은 사용자 규모가 커질 수록 그 효과는 더욱 극대화 될 것 같다. 웹서비스는 사용자가 많아짐에 따라 서버 확장과 유지보수의 복잡함과 비용이 매우 높아지는데 클라우드 컴퓨팅으로 이런 부분에 매우 효율적으로 대체할 수 있을 것으로 생각한다. 또한 글로벌 웹서비스를 제공할 때에도 매우 유용할 것 같다.

얼마 전 자바를 지원하면서 Cron Jobs 기능까지 추가됬다. 앞으로 구글 앱 엔진의 발전에 완전 기대된다+.+


알찬 잡지: 마이크로소프트웨어

April 9th, 2009

회사에서 정기구독하는 마이크로소트웨어 잡지를 보게 되었다. 처음엔 가벼운 마음으로 잡지를 펼쳐봤는데.. 와~ 볼께 무지 많았다! 평소 잡지는 흥미거리 위주로 대충 훑어보고 마는데, 이건 볼께 너무 많아 목차를 건너뛰고 그냥 거의 정독하게 됬다.

마치 군대에서 맥심을 정독한 느낌ㅋ

소프트웨어 개발자를 위한 이렇게 괜찮은 잡지를 이제야 알다니.. 학생 때 좀 더 빨리 보았으면 더 잼있었을 것 같은 아쉬움이 들지만, 한동안 이 잡지를 보면서 즐거울 것 같다.