오늘은 Press Release 리허설과 데모 장비들에 대한 점검 등이 있는 날 입니다. 하루종일 몸이 안좋아 호텔에서 데모 장비 검검이 있어고 , 전시장에서 리허설 리뷰가 있었습니다. 오늘은 행사장 분위기 보다 간략히 ChatON 서버에 대한 이야기를 좀 해볼까 합니다.





사용자 인터페이스나 기능을 보면 ChatON은 기존의 Whatsapp이나 블랙베리 메신저 그리고 카카오톡과 유사하게 보입니다. 곰곰이 생각해 보면 메세징 서비스의 UI는 모두가 비슷합니다. 물론, 완성도의 차이는 있습니다.

각각의 기능들에 대해서는 IFA에서 공식 발표 이후 별도로 소개하기로 하고 여기서는 보이지 않지만 중요한 부분인 서버의 아키텍쳐에 대해 간략히 소개해 봅니다.

먼저 , ChatON 서버의 아키텍쳐를 수립할 때 몇가지 중요한 원칙을 세우고 개발에 착수했습니다. 다음은 주요한 원칙들 입니다.

- 대용량 처리 
ChatON은 피쳐폰에서 부터 모든 스마트폰을 대상으로 하기에 수천 만에서 수억 이상의 사용자를 지원해야 만 합니다. 이를 위해서 ChatON은 DB layer도 대용량 데이타 처리가 가능하도록 설계 및 구현되었으며  단말과 서버 간의 통신에 있어서도 높은 NIO를 보장해야 하는 등 모든 리소스 처리 부분에서 철저하게 대용량 처리가 가능하도록 설계.구현이 되었습니다.

- 성능 및 안정적인 QoS 
최근 시장에서 많이 사용되는 메세징 서비스의 이용자들이 갖는 불만 중에 하나는 메세징 전송시 속도가 늦을 뿐만 아니라 안정적인 QoS(Quality of Service)를 보장하지 못한다는 것 입니다. 이러다 보니 메세지를 보내도 바로 전달되지 못하고 몇 십 분 , 심지어 몇 시간 이후에 전달되는 수가 종종 발생합니다. 

ChatON은 고속의 서비스를 위해 기존의 많은 업체들이 사용하는 HTTP 방식이 아니라 모바일 디바이스에 최적화된 경량의 프로토콜과 메세지를 사용하기 때문에 높은 성능을 보장합니다.  또한 일단 전달된 메세지는 내부의 QoS 관리자에 의해 다양한 단말의 상태를 자동으로 파악하여 전달해 줌으로써 안정적인 QoS를 제공하고 있습니다.

- 확장성 및 가용성
ChatON은 다양한 계기로 인해 사용량이 폭주할 경우에도 서버의 용량이 일정 수준에 도달하면 자동으로 서버를 증설하는 Auto Scaling 을 제공하며 , 서버의 경우에도 ChatON은 모든 서버가 Stateless이기 때문에 병렬적으로 서버를 증가하여 서비스 폭주시에도 자동으로 대처할 수 있는 확장 구조를 갖고 있습니다.  

또한 ChatON 서버는 하나의 여러 대륙 및 지역에 걸쳐 서버를 분산 배치하고 있기 때문에 하나 또는 한 지역의 서버에 장애가 발생하더라도 안정적으로 서비스를 제공할 수 있습니다. 또한 서버의 설정 변경 등 기본적인 관리시에도 무정지로 서비스를 운영할 수 있도록 개발되었습니다.

- 유연성
서비스를 출시한 이후에도 사용자 요구 사항에 따라 다양한 서비스가 추가되거나 삭제 되는 등 변경될 수 있습니다. ChatON 서버는 이러한 사용자의 요청에 따라 유연하게 대처할 수 있는 서버 구조와 형상 구조를 갖고 있습니다.

- 강력한 Push Platform
모바일 메세징 서비스의 경우 디바이스와 서버간의 효율적인 연결과 이를 통해 메세지를 얼마나 효율적으로 주고 받느냐가 관건입니다.  효율적인 연결에 있어 잘못된 방법은 디바이스에 막대한 밧데리 소모가 발생하며 ,  심지어 잘못될 경우 지난 번 크게 사회 문제가 된 것처럼 사업자 망에 큰 부하를 주게 됩니다. 또한 사업자 마다 연결 방법이나 주기가 다르기 때문에 안정적인 서비스 QoS를 제공할 수 없습니다. 

실제 이러한 방법의 구현이 어렵기 때문에 많은 메세징 서비스들이 애플이 APNS나 구글의 C2DM 등을 사용하고 있습니다. 그러나 실제 테스트를 해 보면 APNS, C2DM 모두 안정적인 품질을 제공하지 못하고 있는 상황입니다.  ( 실제 , 품질을 보장하지 못한다 라고 명시하고 있으며 테스트 결과 Push noti 전달시 성공율이 높지 않습니다. )

따라서 ChatON은 이러한 문제를 해결하고자 가장 먼저 안정적인 자체 범용 Push Platform 을 개발했고 
이에 기반하여 ChatON을 개발했습니다.

앞서 설명 드린 각각의 항목들 하나하나는 기술적으로 큰 주제이자 재미난 주제입니다. 이후 별도의 기회를 통해 공유할 기회가 있을 것으로 생각합니다.

오늘은 안드로이드용 ChatON과 bada2.0용  ChatON을 갤럭시S 와 Wave III, 그리고 갤럭시 노트 등 다양한 디바이스에 올려놓고 ChatON 서버에 연결한 후 다양한  호환성 테스트를 하고 있습니다. 특히, 다양한 유럽 사업자 3G망을 대상으로 하여 테스트를 하고 있습니다. 단말 사양과 사업자 3G망에 따라  성능의 차이는 다소 발생하지만 큰 문제는 없습니다. 진웅이가 열심히 최종 점검 중입니다. ^-^  



그동안 수 개월에 걸쳐 진행된 글로벌 검증의 결과를 볼 때 지금 시점에서 문제가 발생하면 안되지만 워낙 모바일 환경이 사업자나 국가 그리고 법률 문제 등 다양한 원인에 따라 변화가 심하기 때문에 항상 주의 관찰해야 합니다. 참고로 이러한 상황에 대처하기 위해서는 무정지 상태에서 서버의 설정과 상태를 변경할 수 있도록 개발되어야 합니다. 물론, ChatON은 이렇게 개발되었습니다.

ChatON의 기술적인 내용은 아마 다양한 컨퍼런스 등을 통해 공유될 수 있으리라 기대합니다. 그럼 내일 부터 본격적으로 IFA에서 ChatON의 활약상을 전해 드리겠습니다.




Posted by 박재현
,