2014년 4월 10일 목요일

Unite Korea 2014 Session 3 - 요즘 트랜드의 서버와 네트워크 이슈

넷텐션 - 배현직

프라우드넷 - 요즘 트랜드의 서버와 네트워크 이슈

hyunjik.bae@nettention.com

  1. 프라우드넷 소개
    1. 게임 서버 , P2P 네트워크 솔루션로 시작하여 지금은 전반적인 기능을 커버
    2. 제공 기능 :  C/S 통신 S/S 통신 , DB 캐시 기능

  1. 요즘 서버 트렌드
    • 2008년 PC 온라인 
    • 2014년 대부분이 모바일 게임 
    • 2008년 , 윈도우가 대부분 지금도 그렇고
    • 2008년 물리적 서버 :: 2014년 클라우드 서버 이용
    • 자체제작 서버툴 :: 오픈소스 서버툴을 현재는 많이 사용
    • TCP, UDP 위주의 네트워크 :: HTTP 를 선호
    • 넷마블,피망,한게임 :: 게임 유통 구조가 많이 달라짐
    • DB 는 MSSQL , MySQL :: 현재는 RDBMS + NoSQL
    • C++ :: 현재는 C# , UnityScript , Java , PHP 등등….

  1. 우리의 대응책
    • 개발 로드맵 
      • 많은 고객사들로부터 수집된 요구명세의 집합 + Create
      • 리눅스 + 연결유지기능을 넷텐션에서 진행중
  2. 이슈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인 개발자나 인디개발자가 상용화로 쓰기에는 가격이 부담스러우나, 학생들 비영리 목적으론 사용가능

댓글 없음:

댓글 쓰기