본문 바로가기

Home > 정보마당 > 공개SW 활용 성공사례

공개SW 활용 성공사례

[공개SW 활용 성공사례 39] 네오위즈 - 공개SW로 안정적인 서비스 품질 확보

OSS 게시글 작성 시각 2012-07-03 13:22:09 게시글 조회수 1356

유연하고 안정적인 대량 커넥션 처리 지원하는 공개SW로 안정적인 서비스 품질 확보

네오위즈는 인터넷 비즈니스 모델의 잇따른 성공으로 인한 트래픽 급증에 대응하기 위해 자체 개발한 CPool을 대체할 공개SW 기반 ‘SQL Relay’를 도입했다. 최적화를 통해 대규모 서비스에서도 안정적인 서비스 품질을 확보한 네오위즈는 이를 바탕으로 세이클럽, 피망, 벅스 등을 국내 대표 인터넷 서비스로 성장시키는 기반을 마련했다. 기업의 성장과 함께 사회적 기업으로서의 책임을 다하기 위해 ‘오색오감(五色五感)’ 사회공헌 프로젝트를 사내에 정착시킨 네오위즈는 더 큰 나눔을 실천하기 위해 공개SW 도입 성과를 나눌 뜻도 내비쳤다.

- 기     관 네오위즈
- 수행년도 2006년
- 도입배경 자체 개발한 커넥션 풀 미들웨어(CPool)의 대체 솔루션 필요, 트래픽 급증에 따른 서비스 품질 저하, 비효율적인 개발 환경 개선 요구
- 솔 루 션 SQL Relay, 리눅스, 센트OS, 아파치 웹서버, MySQL, 포스트그레SQL, 루비(Ruby), 톰캣, 자바, PHP, IRCd
- 도입효과 : 대규모 서비스의 안정성 확보, 개발 효율성 향상, DBMS 관리 비용 절감, 유연해진 DBMS 장애 대응, DBMS 성능 향상 및 보안 강화, TCO 절감

KT
게임 산업의 글로벌화, 핵심역량 강화, 브랜드 가치 제고, 인터넷 사업 재도약 등을 목표로 지주회사 체제로 2007년 전환한 네오위즈는 게임과 인터넷, 모바일 사업 등의 새로운 성장 축을 기반으로 자회사 간 시너지 창출과 경영 효율화를 꾀하며 글로벌 기업으로의 도약을 모색하고 있다. 올해 창립 15주년을 맞이한 네오위즈가 인터넷 비즈니스 기업에서 네오위즈인터넷, 네오위즈게임즈 등 7개 자회사(2011년 말 기준)를 둔 글로벌 그룹으로 성장하게 된 데에는 인적 인프라를 중시하는 기업 철학 외에도 대규모 서비스의 안정성 확보, TCO 절감, 개발 효율성 향상, 운영 효율화를 가능케 했던 공개SW의 도입 효과를 빼놓을 수 없다.


네오위즈


서비스 안정성 확보 위해 커넥션 풀 도입

웹 기반 채팅·커뮤니티 서비스 ‘세이클럽’은 탄탄한 무료 서비스로 확보된 회원을 바탕으로 유료 프리미엄 서비스를 성공적으로 런칭하며 네오위즈의 대표 서비스로 자리매김했다. 철저한 회원 분석을 통한 기획과 디지털 콘텐츠의 첫 유료 판매 사례인 아바타 서비스 등에 힘입어 대표적인 인터넷 비즈니스 모델로 자리매김한 세이클럽의 성공에는 특히 안정적인 서비스를 가능케 한 커넥션 풀(Connection Pool)의 기여가 컸다는 게 네오위즈 측의 평가다.

2001년 1,000만 명에서 2003년 2,000만 명으로 세이클럽의 회원 수가 급증함에 따라 대규모 커넥션 요청으로 인한 서비스 품질 저하를 해소하기 위해 네오위즈는 커넥션 풀 미들웨어인 CPool을 자체 개발했다. CPool의 도입 배경에 대해 네오위즈인터넷 DB기술팀 박성훈 팀장은 “오라클 DBMS는 쿼리 실행보다 커넥션으로 인한 부하가 상대적으로 크다”면서 “소규모 서비스의 경우에는 문제가 없지만 분당 수백만 번의 커넥션이 일어나는 대규모 서비스에서 이런 부하는 곧 서비스 품질 하락과 직결돼 커넥션 풀 미들웨어가 반드시 필요하다”라고 강조했다.

커넥션 풀은 클라이언트의 커넥션 요청 시 매번 커넥션 객체의 생성과 해제를 반복하는 데 따른 리소스 낭비와 시스템 부하를 해소하기 위한 기술로, 커넥션 객체를 매번 해제하지 않고 풀에 보관한 후 커넥션 요청 때마다 이를 재이용한다. PHP와 아파치 웹서버 환경에 맞춰 개발된 CPool은 최대 10만 명까지 유연하게 커넥션을 동시에 처리할 수 있고 커넥션 지연 등을 최소화함으로써 안정적인 서비스 구축의 기반이 됐다.


네오위즈


CPool 한계 극복을 위한 공개SW ‘SQL Relay’ 도입

대한민국 인구의 절반에 가까운 2,300만 명의 회원을 보유한 온라인 게임 포털 ‘피망’과 온라인 음악 포털 ‘쥬크온’으로 게임과 음악 사업에까지 진출한 네오위즈는 2000년 무렵 나날이 급증하는 트래픽에 대응하고 이와 동시에 개발 지향적이며 관리 효율을 향상시킬 새로운 커넥션 풀 미들웨어의 도입 요구에 직면했다. 이런 요구의 원인이 된 CPool에 대해 박성훈 팀장은 “2006년 당시 공개SW를 확대 도입함에 따라 MySQL, 포스트그레SQL과의 연동 요구가 증가했지만 CPool은 오라클 DBMS만을 지원하는 한계를 지녔다”면서 “체계적이지 못한 API와 프로토콜로 인한 개발의 비효율성, 변수 바인딩 미지원, 높은 관리 비용 등의 개선 요구를 CPool에 반영하기가 현실적으로 어려웠다”라고 회상했다.

이에 네오위즈는 CPool의 한계를 극복하고 커넥션 풀을 세이클럽, 쥬크온뿐만 아니라 체감형 모바일 게임 서버와 일반 서버에까지 확대 적용하기 위해 공개SW 기반의 SQL Relay를 도입하기로 결정했다.


네오위즈


SQL Relay로 안정적인 서비스 품질 확보

SQL Relay의 도입 이유에 대해 네오위즈게임즈 DB인프라팀 김피터 팀장은 “SQL Relay는 오라클, MySQL, 포스트그레SQL, 사이베이스, DB2 등 다양한 DBMS와 호환되고 C/C++ PHP, 자바 등의 API와 연동할 수 있어 공개SW 도입 확대에 따른 요구를 충족시키기에 충분했다”면서 “CPool에서 지원하지 않는 변수 바인딩이 지원돼 SQL Relay만으로 SQL 인젝션을 방지하고 성능과 보안을 강화할 수 있었다”라고 설명했다. 또한 SQL Relay가 복잡한 처리를 담당해 DB 클라이언트 코드의 단순화로 오류 포인트의 관리가 용이해지고, 과거 서비스 점검이 필요했던 DBMS 설정 변경 등을 SQL Relay 서버의 재부팅만으로 해결이 가능해져 서비스 품질도 향상됐다.

특히 네오위즈는 SQL Relay의 코드를 분석한 결과, 코드가 체계적이면서 이해하기 쉽고 아키텍처가 단순한 이점이 있다고 판단했지만 대규모 시스템에 적용하기 위해 코드의 상당 부분을 최적화했다. 이와 함께 SQL Relay에 스테이트먼트 캐싱(Statement Caching) 기능을 구현해 오라클 DBMS의 성능과 안전성을 대폭 향상시키고, SQL Relay와 DBMS의 관리를 자동화함으로써 관리 비용을 1/10로 절감했다. 또한 이 회사는 RRD(Round Robin Database) 등 공개SW 기반으로 구성된 통합 모니터링 솔루션을 자체 개발해 신속한 장애 대응 체계도 확립했으며, 이를 통해 안정화된 서비스 품질은 세이클럽, 피망과 벅스 등의 포털이 네오위즈의 대표 서비스로 성장할 수 있었다.


네오위즈

사회공헌에서 더 나아가 또 다른 나눔 준비

지주회사 체제로 일본, 중국, 미국 등의 해외 시장에 진출하며 글로벌 기업으로 성장한 네오위즈는 나눔의 정신을 실천하기 위해 전 계열사가 참여하는 사회공헌 프로젝트인 오색오감을 정기적으로 실시하고 있다. 더 나아가 ‘사람 사이 따듯한 나눔과 신나는 만남’이란 목표 하에 ‘네오위즈 마법나무재단’을 설립하고 사회 창의 프로그램 ‘만원의 마법’ 등 더 나은 사회를 만들기 위해 전사 차원의 노력을 다하고 있다.

최근 네오위즈는 보다 넓은 의미의 나눔을 실천하기 위해 공개SW 도입으로 쌓은 운영 노하우와 성과를 나누고 공개SW의 공유와 개방 철학에 동참할 뜻을 내비치며 또 다른 나눔을 준비하고 있다.



------------------------------------------------------ [인터뷰]

“코드 분석, 공개SW 도입을 위한 필수 과정”
네오위즈인터넷 DB기술팀 박성훈 팀장, 네오위즈게임즈 DB인프라팀 김피터 팀장


박성훈
네오위즈인터넷 DB기술팀 박성훈 팀장▲
Q> 공개SW 도입 시 주의할 점은

리눅스, 센트OS, 아파치 웹서버, MySQL 등의 다양한 공개SW를 현재 도입하고 있지만 무엇보다 회사의 특성과 요구에 가장 적합한 솔루션을 찾는 것이 중요하다. 예컨대 네오위즈는 비즈니스 인텔리전스(BI) SW의 도입 시 공개SW인 펜타호(Pentaho) BI를 도입했지만 예상보다 낮은 생산성으로 인해 결국 상용 SW를 대체 도입한 적이 있다. 그만큼 공개SW를 도입하기 전에 타당성 검토에 보다 많은 노력을 기울여야 공개SW의 성공적인 활용에 한발 더 다가갈 수 있다.

또한 기업의 공개SW 적용을 위한 테스팅 과정에서 발견된 문제로 인해 도입이 취소된 사례들도 흔한 데, 공개SW가 아니더라도 SW와 시스템 운영은 항상 다양한 문제에 직면할 수 있다. 그런 까닭에 이런 문제에 대한 적극적인 해결 의지와 기술력을 갖춘 전문 인력의 확보도 공개SW의 도입 성패를 좌우한다고 볼 수 있다.


김피터
네오위즈게임즈 DB인프라팀 김피터 팀장▲
Q> 공개SW 최적화, 어디까지가 올바른가

주 개발언어로 이용 중인 PHP의 경우 최적화로 인한 업데이트 문제로 인해 네오위즈 내부에서도 최적화 범위에 대한 논의가 진행 중이기에 최적화의 범위를 단언하긴 어렵다. 예컨대 SQL Relay의 경우 도입 전 코드 분석을 통해 철저히 분석하고 최적화를 수행함으로써 업데이트로 인한 비효율을 보상하고도 남는 큰 이점을 얻을 수 있었다.

코드 분석으로 사전에 도입 효과를 예측할 때는 다음 두 가지 경우를 고려해야 한다. 우선 공개SW의 완성도가 우수하고 사용자층이 두터운 리눅스, MySQL 등은 최적화를 자제하는 게 바람직하다. 그러나 SQL Relay와 IRCd처럼 완성도가 낮거나 사용자층이 얇은 경우에는 최적화를 통해 더 큰 이득을 얻을 수 있는 만큼 최적화 범위를 확대할 필요가 있다. 이처럼 공개SW의 완성도나 사용자층을 감안하고 코드 분석을 통해 최적화 범위를 결정한다면 공개SW 도입 효과를 극대화할 수 있다.

----------------------------------------------------------------




- 마이크로소프트웨어 조수현 기자 suhyeoni@imaso.co.kr

- 공개SW 역량프라자

맨 위로
맨 위로