제 블로그에 올린 글을 부끄럽지만 공유 드려봅니다.
언제든지 문의와 토론 환영합니다. (돌만 던지지 말아주세요. ㅠㅠ)
원문 블로그 : //afire.kr/157
+++++
이번 KGC 1일차(10/7) 일에 강연한 ETRI(한국전자통신연구원) 박창준 님의 온라인게임 서버 테스트 기술 소개 강연에 대한 소감문 입니다. 현재 사용중인 서버 테스트 툴인 비너스툴의 기술 소개와 진행중인 기술 개발 그리고 앞으로 중점적으로 연구해야할 분야에 대한 강연이었습니다.
먼저 강연에 대한 소개입니다. (KGC 사이트 를 참고하였습니다.)
---------------------------------------------
온라인게임 서버 테스트 기술 소개.
- 소속 : 한국전자통신연구원
- 트랙: QA
- 1998~2006 한국전자통신연구원 선임연구원 (영상처리 전문)
- 2007~현재 콘텐츠연구본부 HD게임연구팀 팀장 (온라인게임 QA과제 책임자)
--------------------------------------------
강연을 요약하면
1. 온라인 게임 서버 테스트 기술의 자동화 필요성
2. 현재의 자동화된 서버 테스트 기술 소개
3. 기존 기술의 한계점과 업계의 요구사항
4. 개발 진행중인 사항과 앞으로의 전망
라고 할 수 있습니다. 순서대로 풀어 보겠습니다.
1. 온라인 게임 서버 테스트 기술의 자동화 필요성
1.1 서버 테스트 의 필요성
- 온라인 게임의 특성상 다수의 유저가 하나의 서버에 접속하여 플레이 하게 되는데, 이에 따른 서버의 안정성 검사와게임 콘텐츠의 오류 검사 등 서비스 대상의 기능에 대한 사용성을 검증하는 품질보증 절차가 필요함.
1.2 인력을 이용한 서버 테스팅의 한계
- 다수의 유저가 접속한 상황을 테스트 하기 위해서는 많은 인건비 (다수-서버가 수용할 수 있는 인원의 최대치가 필요)
- 재사용성이 없음 (반복적인 테스트가 힘듬)
- 기간이 오래 걸림 (테스트를 모으고 환경을 세팅하는 등의 시간)
- 테스트들간의 콘트롤이 불가능 (불특정 다수 통제의 어려움)
1.3 자동화된 서버 테스팅의 장점
- 인건비가 거의 없음(툴 세팅을 위한 소수의 인원과 컴퓨터만 필요)
- 테스트 기술의 재사용(반복 테스트 가능)
- 테스트 기간 단축(툴세팅의 편리함)
- 효율적인 테스팅 진행(필요한 부분만 선택하여 진행, 컨트롤이 쉬움)
1.4 자동화된 서버 테스팅의 적용 가능 범위
- 서버 부하 테스트 (각각의 서버에 대한 부하 테스트-로그인서버, 게임서버, 존서버 등)
- 네트워크 부하 테스트(네트워크의 패킷지연, 손실, 대역폭, 응답시간, 병목현상 등)
2. 현재의 자동화된 서버 테스트 기술 소개
2.1 현재 사용중인 자동화된 서버 테스트 툴
- LoadRunner : 웹 서버 부하 테스트 기능. 게임 서버 테스트 기능 추가. 유저당 가격 책정으로 고가.(가장 많이 사용중)
- QALoad : 웹 서버용 서버 테스트 기술. 패킷 캡쳐를 통한 데이터 수집. 통계결과를 이용한 성능 최적화.
- e-Load : 웹 서버 성능 테스트. 성능 측정 도구 OneSight 제공.
- VENUS Blue : 개발자 중심의 실용적 툴. 신개념 테스팅 솔루션. 다양한 테스트 기술.
2.2 VENUS Blue 의 기술 소개
- 대규모의 가상 사용자를 생성하여, 부하를 발생시켜 서버의 안정성 및 용량 점검 가능
: 한 PC 당 300 개 이상의 가상 사용자 생성
: 여러대의 PC 를 총합하여 대규모의 가상 사용자 환경 제공
- 네트워크 에뮬레이션
: 게임 클라이언트별 각각의 네트워크 환경 시뮬레이션 가능
- 실시감 모니터링
: 게임 테스트 중 일어나는 모든 상황을 한눈에 파악 가능
: DB 에 저장하여 진단 및 분석 가능
- 응용성
: 플렛폼에 관계없이 다양한 형태의 온라인 기반 게임 지원 가능.
: 다양한 테스트 지원(동시접속테스트, 채팅 테스트, 이동 테스트, 네트워크환경 테스트 등)
- 툴 작동 방식

- 기존 툴 대비 경쟁력 및 특징
: PC 당 가상유저 생성 1.3 배 높음
: 명령어 기반 부하테스트 기술(복잡한 게임 로직 처리 가능)
: 다양한 P2P 환경 제공
: 빠른 부하 테스트 환경 설정
- 적용 사례 : 프리스타일, EVE Online, 탄드라 등등..
3. 기존 기술의 한계점과 업계의 요구사항
3.1 기존 기술 리뷰(한계점)
- 가상 유저간의 Interaction 을 부여하기가 어려움
- 웹서버(1:1)와 게임 서버(1:n) 간의 차이. - LoadRunner 와 같은 웹 서버 테스팅 기반 기술
- 게임 소스 코드에 직접 임베팅 과정의 필요. (개발사의 공개 협조가 필요함)
- 서버의 단순 부하 테스트 기능만 가능(게임방 만들기, 로그인 등)
- 시나리오 기반의 패킷 재구성등의 기능이 없어 현실성 있는 움직임이 불가능.
3.2 업계 요구사항
- 코드 임베딩 없는 테스팅 작업.
- QA 담당자가 원하는 시나리오 적용 및 편리한 직접 제어 (테스트 시나리오 작성 및 적용)
- 사실적 가상 유저 (게임 사용자와 유사한 가상유저, 역활 및 목표 설정)
- 다양한 네트워크 환경 테스트
- 테스팅 자동화 (게임 콘텐트 오류 지점 자동 검출)
4. 개발 진행중인 사항과 앞으로의 전망
4.1 현재 개발중인 사항 (VENUS II)
- 패킷 캡쳐를 통한 동작 분석/실행 으로 코드 임베딩 없는 환경 구성
- 대규모 가상 유저의 시나리오 기반 제어를 통한 다양한 상황 연출
- 손쉬운 가상유저의 제어로 가상유저간 상호 인터랙셩 생성 용이, 현실적 행동 생성
- 동일상황 재현 지원
- 일련의 품질검증 작업의 자동화
- 개발중 기술적 이슈
: 패킷 암호화에 대한 접근(개발사측의 협조 필요)
: 가상유저의 위치정보(클라이언트의 맵데이터 필요)
: 가상유저의 정보 관리
- 최종 결과물 예시
4.2 향후 전망
- 개발사의 협조 없이도 가능한 환경 구성.
- 가상유저의 자연스러운 행동 AI 개발
- 가상유저의 상태정보(맵정보 포함)을 고려한 시뮬레이션 가능
- 자동화된 문제 발생 부분 검출 등..
강연의 전체적인 느낌은 새로운 기술을 시연한다거나 비전을 제시 한다기 보다는, 현재를 보여주고 앞으로의 길을 같이 연구해서 발전 시켜 나가자는 강연이었습니다. 그러기 위해서는 많은 분들의 도움이 필요하고 특히나 개발사의 역활이 중요하다고 강조하셨습니다.
ps. 부족한글 끝까지 읽어주셔서 감사합니다.
. 바쁘시면 색글과 그림만 보셔도 무방합니다. ^^