광속 매니아를 느껴보세요.
72
2644
Updated at 2014-01-04 02:57:20
안녕하세요, 홈지기입니다.
최근 매니아가 의외로 쾌적하게 빠르다는 생각을 하신 분 있으신가요?
매니아가 내부적으로 완전히 달라졌기 때문입니다.
지난해부터 계속해서 서버 로드가 지속적으로 상승하면서 최근 들어 매니아를 서비스 하는 것이 점점 버거워지기 시작했습니다. 올 해 초, 고사양 서버 3대를 도입했음에도 이런 문제가 있다는 것은 수익원이 부족한 매니아 재정상 운영하기가 점점 벅차질 것이라는 뜻이었에 조만간 큰 위기에 빠질 것 같다는 안좋은 예감이 들었습니다. 서버 구입 및 구축 비용과 년간 서버 운영비용만 해도 1년에 천만원에 근접하는 비용인데 이렇게 돼서는 현재도 어렵지만 미래에는 더 암울해 보였거든요. 그렇다고 사이트 속도가 빨라 회원분들께 큰 만족감을 드리지도 못하는 상황이었구요. 어디 도움을 구할 데도 없고 점점 자금난에 빠져 돈문제에 이끌려 다니게 될 것을 생각하니 아찔했습니다.
그리하여 야구매니아 오픈, 실시간 피드백 알림 기능, 모바일 업로드 기능 등 우선순위가 높았던 기능 개발 작업들을 모두 마친 후 예정되어 있던 다른 개발 작업들을 모두 미뤄두고 매니아가 소모하는 서버 자원 사용량을 최소화 하는 것을 목표로 최근 한 달 간 모든 각도에서 매니아 의 작업을 연구하기 시작했습니다.
이러한 작업에 대해서 외부에서 도움을 요청할 수도 없는 것이 퍼포먼스 향상 부분에 투입되는 인력이 가장 비싼 축에 속하기 때문입니다. 아는 분께 도움을 요청해도 민폐일 수 밖에 없고, 외주를 주자니 턱없이 비싼 작업 비용이 들어가는 부분이었기에 결국 독학을 하게 되었습니다. 아무래도 한국 쪽에는 정보가 잘 없다 보니 한 달 간 어림 잡아 수백 페이지의 외국 웹문서들을 참고해서 각고의 노력 끝에 현재의 상태에 이르게 되었습니다.
공부를 하면서 매니아의 내부를 살펴보니 너무 많은 부분에서 엉망이었더라구요. 덕분에 너무나도 많은 것을 배우게 되었습니다. 심지어 그누보드가 오픈 소스 게시판 솔루션 중 상당히 빠르다는 평을 받고 있지만 매니아 같이 누적 데이터가 많은 사이트에서는 그리 적합하지 않은 구조를 지녔다는 것도 알게 되었고 거의 게시판 솔루션 설계를 다시 했다고 봐도 될 수준으로 많이 가벼워지고 빨라졌습니다.
다음은 이번 작업의 주안점이었습니다.
- 클릭 후 반응 속도가 모든 페이지에서 빨라야 한다.
- 로그인 한 회원과 로그인 하지 않은 회원간에 속도 차이가 없어야 한다.
- 모바일에서도 반응 속도가 빨라야 한다.
- 해외에서 접속시에도 느리지 않아야 한다.
- 서버 사용량을 최대한 떨어뜨려 작년 NBA 파이널 대역전극 같은 일이 생겨 동시접속자 수가 폭증해도 무난하게 서비스가 될 수 있어야 한다.
- 의도적인 트래픽 공격을 받을때도 원활한 서비스가 가능해야 한다.
- 모든 작업에서 사이트 외형과 기능 사용성은 이전과 동일해야 한다.
위와 같은 부분들을 염두에 두고 한 달 간 작업한 결과, 쿼드 코어 CPU를 탑재한 서버 3대의 사용량이 평균 600%(즉, 6개의 코어가 100% 풀로 돌아가야 하는 사용량, 최대 1200%) 였던 것이 현재는 피크 시간에도 50% 이내만 활용되고 있습니다. 또한 사이트 최초 반응시간이 저희 집 기준 0.1~2초가 걸리던 반응 속도가 0.03초로 빨라졌습니다. 즉, 10배 이상의 사용량 절감을 통해 10배에 가까운 반응속도 향상을 이뤄냈고 10배의 유휴자원을 확보한 셈입니다. 종전의 상태였다면 서버 30대를 구축했어야 가능했던 상태라고 할 수 습니다. 매니아를 서비스하는 데 있어 그 어떤 부분도 소홀히 하지 않고 모든 부분에서 집요하게 튜닝 작업을 물고 늘어졌기 때문에 회원분들이나 전문가 분들이 보셔도 매니아가 많이 발전했다는 걸 느끼실 수 있으시리라 생각합니다. 아마도 동시접속자 수가 5천~1만 명에 달해도 서버 추가 없이 현재 상태로도 거뜬하리라 생각합니다. 여기서 더욱 중요한 것은 예전처럼 작업후 잠깐 빨라졌다가 데이터가 쌓여감에 따라 점점 느려지는 매니아가 아니라는 점입니다.
향후 서버 구축에 들어갈 비용이 많이 절감된 덕분에 회원분들을 위한 작은 이벤트도 추진이 가능하지 않을까 싶네요. 이건 따로 공지로 알려드리겠습니다.
매니아가 시스템적으로 최근 눈부시게 발전하고 있습니다. 그것은 전적으로 제가 개발한 프로그램을 별도의 개발용 서버에서 테스트하지 않고 서비스 중인 서버에 바로 해서 빠르고 정확하게 문제를 파악하고 수정할 수 있도록 회원분들이 많이 양해를 해 주시는 덕분입니다. 전쟁이 나지 않는 한 어떤 경우에도 자료가 유실되지 않도록 4중의 백업이 이뤄지고 있기 때문에 감행하고 있는 것이기도 하지만 무엇보다도 회원분들께서 이런 작업들이 가져다 주는 불편함이 너무 크다고 말씀해 주셨다면 이렇게 대범하게 작업을 못했을 것이고, 지금처럼 제 개발 및 서버 운용 능력이 매니아의 성장속도를 앞질러가진 못했을 것입니다. 네이버나 카카오톡 같은 서비스를 개발하시는 전문 개발자분들은 이런 저를 보시고 정신이 나갔다고 하실 지도 모르겠습니다만 아마추어로서 돈이나 인적, 지적 자원이 턱없이 부족한 현 상태에서는 지금과 같은 어설픈 발전이 제가 할 수 있는 최선이 아닐까 생각합니다. 이 자리를 빌어 한 달간 온갖 서버 에러와 버그를 감내해 주신 매니아 가족 여러분들께 큰 감사의 말씀 올립니다.
앞으로는 매니아에 가장 빠른 커뮤니티라는 수식어를 붙여주세요!
매니아 만큼 기능이 풍부하고 데이터 양이 많은 곳이라면 이보다 빠를 수는 없다고 자신합니다.
매니아, 앞으로도 이 속도로 쭉 매니아 가족 여러분과 함께하겠습니다.
감사합니다.
64
Comments
이전 페이지로
공지사항 리스트
기분탓이 아니었군요!!