FOWA 08 Day 1 – 워크샵 Improving Performance

간단한 점심을 먹고 오후 워크샵이 시작되었는데, 참가자 하는 사람이 없길래 원래 신청한 ‘웹 애플리케이션 만들기 A-Z까지’는 너무 식상한 듯 하여 ‘웹 서비스 성능 향상’이라는 워크샵에 들어갔습니다.

Digg.com의 아키텍터인 Joe Stump가 진행했는데 워크샵 내내 느낀 점은 돈 없는 벤처 기업이 어떻게 하면 돈 안들고 성능 향상을 꾀할까라는 수 많은 꼼수와 노하우를 주로 이야기하고 있었습니다.

미국에 수 많은 스타트업이 있는데 그 중에 Digg.com 처럼 트래픽이 급증하는 경우 몇 개 안될 겁니다. 그리고 여기 참가한 사람들 대부분은 아직 빛을 못보는 스타트업이거나 조그만 웹 사이트를 만드는 사람일 텐데 이 워크샵이 다루는 상황에 직면할 사람이 얼마나 될까 생각해 봤습니다.

국내의 다음이나 네이버 처럼 대용량 트래픽을 다루는 경우 대개 서버 더 넣자라는 상황인데 돈이 없어서 어쩔 수 없이 소프트웨어적으로 해결 하는 방법을 이야기 하더군요. 물론 개발자들에게는 딱 좋은 이야기꺼리이죠.

워크샵에서는 주로 스크립트 언어나 가벼운 MVC 프레임웍을 쓰는 경우, 성능 향상을 위한 방법과 오픈 소스 라이브러리들 설명해 주었는데요. 일반적인 이야기는 빼고 사용해 보면 좋을 몇 가지 도구들을 소개해 보겠습니다.

우선 Danga라는 프로젝트에서 나온 두 가지 프로그램을 소개 합니다. 캐싱 처리에서 Memcached는 안 쓰면 바보라고 표현 할 정도로 자주 언급하였습니다. 언어별 API 있고, Digg, LiveJournal, Flickr 등에서 이미 사용하고 있다고 합니다. 흔히 말해 SQL 캐쉬라서 오픈 API에도 많이 이용한다고 합니다.

분산 스토리지 쪽에서는 Mogile FS라는 것을 Digg.com에 맞게 바꿔 사용 중이라고 합니다. 하지만 이 부분에서는 당신들 비지니스니 결국은 알아서 시간과 노력을 들여 최적화 필요하다는 이야기…

Danga는 LiveJournal을 만들었던 외주 회사에서 벡엔드를 오픈 소스로 만들어 유명해졌는데 SixApart에서 다시 인수를 해버려서 개발이 진행이 안되고 있는 듯 합니다. Digg, Facebook, Twitter 같은 초기 유명 스타트업 기업들이 이 프로그램을 많이 이용한 듯 합니다.

워크샵 내내 세 회사에서 온 개발자들이 주거니 받거니 각 프로그램에 대한 장단점을 서로 의견을 주고 받고 있더군요. 어떻게 보면 유명 회사 개발자들이 서로 실무 기술에 대한 이야기를 허심탄회하게 하는 게 부럽기도 하면서 (서버 확장할) 돈은 없는데 대용량 트래픽을 처리해야 하는 고충이 함께 느껴지더군요.

하지만 창조적 서비스는 그렇게 어려운 환경에서 나오는 것을 알기 때문에 더 부러웠습니다.

병렬 데이터 처리 부분에서 HTTP 처럼 비동기적이고, “Loosely Coupled”한 솔루션을 중요하게 이야기하면서 또 역시 Donga의 Gearman을 소개하더군요.

그리고 Feed 수집이나 소셜 네트웍 관계 정리 같은 “실시간 처리(Near time processing)”에 사용하는 백그라운드 작업을 위해 Amazon의 EC2를 사용하고 있는데 가격 대비 만족도가 높다고 합니다. (스토리지 분야에서도 S3를 추천하니 역시 Amazon이 헛장사를 하는 건 아닌가 봅니다.)

큐잉(Queuing) 분야에서는 Twitter에서 만든 Starling이라는 프로젝트도 소개해 주었는데요. Twitter의 성능 향샹 사례도 한번 보시면 도움이 될 듯.

그 밖에 맵핑을 기반으로 Data 파티션(Hibernate 처럼) 하기라던가 HTTP 요청 줄이기, 데이터 압축 후 처리 같은 기법은 대부분 아는 것들이었습니다. (FOWA에서도 여러번 다루었던 주제니까요. 구글 검색을 통해 자료가 많이 나옵니다.)

여러분의 생각

의견 쓰기

이름* 이메일* 홈페이지(선택)