넷텐션 - 배현직
프라우드넷 - 요즘 트랜드의 서버와 네트워크 이슈
hyunjik.bae@nettention.com
- 프라우드넷 소개
- 게임 서버 , P2P 네트워크 솔루션로 시작하여 지금은 전반적인 기능을 커버
- 제공 기능 : C/S 통신 S/S 통신 , DB 캐시 기능
- 요즘 서버 트렌드
- 2008년 PC 온라인
- 2014년 대부분이 모바일 게임
- 2008년 , 윈도우가 대부분 지금도 그렇고
- 2008년 물리적 서버 :: 2014년 클라우드 서버 이용
- 자체제작 서버툴 :: 오픈소스 서버툴을 현재는 많이 사용
- TCP, UDP 위주의 네트워크 :: HTTP 를 선호
- 넷마블,피망,한게임 :: 게임 유통 구조가 많이 달라짐
- DB 는 MSSQL , MySQL :: 현재는 RDBMS + NoSQL
- C++ :: 현재는 C# , UnityScript , Java , PHP 등등….
- 우리의 대응책
- 개발 로드맵
- 많은 고객사들로부터 수집된 요구명세의 집합 + Create
- 리눅스 + 연결유지기능을 넷텐션에서 진행중
- 이슈1 : 모바일
- 모바일 네트워크 게임
- 폰 하드웨어 스펙
- 생각보다 옛날 폰을 쓰는 분들이 많아 성능에 목숨을 건다.
- 그래서 처리 성능을 높이는데 집중해야 한다.
- 10년전 PC와 성능이 비슷하다고 볼수 있는데(옛날폰은) 상황은 더 안좋다.
- 여러개를 띄우기 어렵고 (메모리문제) 베터리 문제도 있어 힘들다..
- 안드로이드는 따뜻해서 문제다…. 손난로가 따로 필요없다….
- 그래서 넷텐션은
- 네트워크 클라이언트 코어는 NDK + pure Java 예정
- 폰마다 다른 스레딩 퍼포먼스
- 갤럭시 S4의 클럭 resolution * 그래도 클라보다야 낫지뭐..흐규흐규..
네트워크 고약한 점
- 긴 하위호환성의 문제
- 사람 피를 완전히 바꾸는 것 만큼 어려움
- 무선 네트워크의 불안정성
- 무선 네트워크
- 3G
- RTT 50~100ms
- 위치 이동 안해도 20%까지 패킷로스 증가
- 2013년 말 조사만해도 3G가 80% 가까이 됨
- Wifi라고 안심할수 있는가
- Wifi장비 자체가 패킷을 지연시켜서 보내는 경우가 있다
- 패킷의 순서가 역으로 도착할 수가 있다
- 이러한 문제로 무선네트워크에서 실시간 랜더링 게임이라 하면 할것이 많다
- 송신 대기 데이터 조작 기능(스로틀링)
- Coalesce기능
- 3G vs Wifi
- 게임 하다가 wifi존에서 나간 경우
- 게임 하다가 wifi존에 도착한 경우
- 게임 플레이 하다가 중단해야 하는 경우
- 무선 네트워크 문제 해결 방안 : MPTCP
- iOS7 에 처음 탑제 , 시리 안에서 임상 실험중
- 거의 모든 라우터는 MPTCP 지원하지는 않음
- 인터넷에 깔려있는 수많은 라우터들이 TCP 이외의 프로토콜을 받아들이지 않고 있다
- 그럼 프라우드넷에서는?
- P2P , C/S 모두 연결 유지 기능 프로토타입 구현된 상태
- 리눅스 포팅 끝나면 마무리 예정
- 요즘 이슈 2: 멀티플랫폼
- 각기 다른 OS , 다른 언어 , 다른 I/O API 까지 다 대응하려니 죽겄다…
- 요즘 이슈 3: 단일서버
- 논리적 단일 서버 -> LAMP (Linux + Apache + Mysql + PHP)
- LAMP로 개발할 경우 : 개발이 빠르고 , 클라우드서버 구성이 쉽고 , 연결 쉽고, 간편하게 scale out 가능
- 단점 : 랙랙랙랙랙,,,,, 스토리지 과부하, 계층이 많다보니 속도가 늦어질 수 있다. 그리고 하이젠버그…어휴..
- 그치만 개발이 쉽고 연결이 쉽다는 것이 너무 크니까 일단 쓴다
- 그래서 만들어 본 ! Decision making Tree (자료 참조)
- 요즘 이슈 4: 클라우드 서버
- 클라우드 서버가 리얼서버보다 구축비용이 비쌀 수 있으나 유지비용은 싸다
- 클라우드 서버는 고정된 DB가 아니기 때문에 매핑 DB가 반드시 필요
- 결론
- 철학과 경험어린 노하우
- 자신이 가장 자신있는 것을 고집하는 것이 정답 (나중에 서비스 때 피본다)
- 서버라는 곳에 써먹으려면 충분히!!*100 !! 공부하고 테스트하고 연마하고 안착시키시길..
(회사로 테스트하지 마세요..)
Q&A
- 프라우드넷 개인용 버전은 Unity AssetStore에도 올릴 예정 …. 언제될지는 모르겠다
- 1인 개발자나 인디개발자가 상용화로 쓰기에는 가격이 부담스러우나, 학생들 비영리 목적으론 사용가능
댓글 없음:
댓글 쓰기