라인 레인저스는 라인쪽에서 만든 위와 같은 형식의 게임입니다.
조금 된 글이기는 하지만 라인 레인저스에 대한 기본 서버 구조에 대해서 잘 설명한 글이 있어서 소개할까 합니다.
모바일 서버는 온라인 게임보다 사용 기술의 폭이 넓어서 워낙 다양한 기술을 사용하기에 어떤 것이 정석이라고 말하기는 힘들지만 기본 골격 잡을 때 참고 자료로는 훌륭한 듯 합니다.
라인 레인저스 서버와 같은 경우는 MySQL, Redis (Cache) 그리고 Tomcat을 사용한 것으로 보아 Java쪽 Http 관련 기술을 사용한 듯 보입니다.
[LINE Rangers 신입사원의 서버 분석기] - 서버 구조 및 인프라 환경
세미나 PPT 뒤에는 서버 관련 내용이 있는데 대부분 위 내용과 겹치지만 실제 코드에 대한 스크린샷도 보여주고 있습니다.
http://www.slideshare.net/deview/4d2-line-rangers
이 외에 이 게임에 대한 DB Sharding(이건 NoSQL쪽 분산 용어입니다.)은 Sharding에 대한 정석을 잘 보여주고 있어서 참고하면 좋을 듯 합니다.
[LINE Rangers 신입사원의 서버 분석기] - DB Sharding
근데 다시 보니 NoSQL이 아닌 RDB인 MySQL을 이용하여 Sharding을 구현한 듯 보입니다. 이건 개념만 가져오고 자체적으로 RDB 분산을 구현한 듯 보입니다. 이런 구조를 갖다보니 DB간 복제를 위한 Multi-Master Replication과 분산 처리에 대한 동기화, 클러스터링 또는 동기화를 위하여 Apache ZooKeeper를 사용하고 있다는 것도 흥미롭습니다.
마지막으로 특이점은 굉장히 많은 NHN 공통 기술을 사용했다는 점입니다.
'서버 프로그래밍' 카테고리의 다른 글
boost asio io_service(io_context)의 poll과 run의 활용 (0) | 2021.10.27 |
---|---|
boost asio io_service(io_context)의 이해 및 활용 (0) | 2021.10.26 |
[서평, 소개] 클라우드 디자인 패턴(Cloud Design Patterns) (0) | 2017.04.08 |
[서평, 소개] NoSQL (0) | 2017.04.01 |
[서평] 온라인 게임 서버 프로그래밍 (MMORPG서버 관련 책) (0) | 2009.07.16 |
NAT(Network Address Translation)의 역활 (0) | 2009.06.25 |
TCP Protocol MindMap (1) | 2009.06.02 |
대역폭 지연 곱 (Bandwidth-delay product) (0) | 2009.06.02 |