2015/07/16 245

게임 시장 동향 (텐센트)

게임 시장 동향 (텐센트) 텐센트는 중국의 인터넷 서비스 및 게임 서비스 전문 기업으로 1998년 11월 중국 광둥성 선전에서 설립되었다. 창업자는 마화텅(馬化騰, Ma Huateng)으로 IT엔지니어였다. 텐센트는 무료 메신저프로그램인 QQ로 잘 알려져 있다. http://www.tencent.com 텐센트는 2014년 중국 내 브랜드 가치 1위 기업으로 선정되기도 하였으며 전 세계에서 가장 만은 수의 이용자를 보유한 매신저 앱 위챗, 중국인의 95%가 사용한다는 QQ, Q존, 텐페이(온라인 결제 수단), 텐센트 웨이보등 자회사를 가지고 있는 중국의 대표적인 기업이다. 마화텅이 밝힌 텐센트의 성장전략은 '창의적 모방'을 통한 새로운 서비스 창조와 부족한 기술력을 보완할 수 있는 공격적 M&A이다. QQ..

게임기획자를 위한 통계이야기

게임기획자를 위한 통계이야기 [시작하면서] 지금까지 거의 10년 동안 게임회사에 몸담고 있으면서 수 많은 데이터를 다루어왔다. 데이터베이스를 운영하는 엔지니어로써 어떻게 하면 더 빠르게 데이터를 처리 할 수 있을까를 고민해 왔고, 사업팀, 재무팀, 기획팀 등과 함께 하면서 한정된 데이터로 더 많은 정보를 만들어 낼 수 있을까, 어떻게 하면 좀더 시각적으로 한눈에 파악할 수 있을까, 이 결과는 정말 유용한가 등에 대해서 많은 고민을 하게 되었다. 이 프로젝트는 지금까지 경험한 내용을 바탕으로 정리하였으며 게임 회사에서 주로 하는 분석및 분석하기 위해 필요한 데이터, 그리고 데이터 처리를 위한 시스템 구성에 대해서 다룬다. 앞으로 쓰게 될 글은 인터넷 검색, 각종 통계 자료, 경험 등을 정리하며 외부자료의 ..

ASP.NET에서 MySQL 연결

ASP.NET에서 MySQL 연결 Version : ASP.NET (VS 2013) ASP.NET에서 MySQL 연결 방법에 대해서 알아본다. MySQL에 연결하기 위해서 NuGet 패키지에서 MySQL DLL 을 추가한다. VS 2013 툴 목록에서 [프로젝트] – [NuGet 패키지 관리]를 클릭한다. NuGet 패키지 관리 창이 나타나면 mysql dll을 검색하여 설치한다. MySQL DLL을 설치하면 Web.config 파일에 자동으로 MySQL Data Provider이 생성된 것을 확인 할 수 있다. MySQL에 연결하여 데이터 입력 하기. public string insertuser(DateTime RegDate, Int32 Num, string Conn) { // For MYSQL Aut..

62_교착 상태 처리(Deadlock Handling)와 선출 알고리즘(Election Algorithm)

62_교착 상태 처리(Deadlock Handling)와 선출 알고리즘(Election Algorithm) 교착 상태 방지와 회피 알고리즘은 분산 시스템에서 자원들 간의 전역 순서화를 정의함으로써 자원 순서와 교착 방지 기법을 분산환경에 적용할 수 있다. [교착 상태 방지와 회피(Deadlock Prevention and Avoidance)] 교착 상태 방지 기법은 다음 두 가지로 분류 된다. Wait-Die 기법 : 비선점 기법에 기반을 둔다. P1가 보유한 자원을 프로세스P2가 요청 할 때 P2가 P1보다 더 작은 타임스탬프를 가진 경우에만 기다리는 것이 허용된다. 그렇지 않은 경우 P2는 롤백한다. Wound-Wait 기법 : 선점 기법에 기반을 두며 wait-die 기법과는 상반된 특징을 가지고 ..

61_분산 조정 (Distributed Coordination)

61_분산 조정 (Distributed Coordination) 중앙 집중식 시스템에서는 하나의 공유 메모리와 클록을 사용하므로 두 개의 사건이 발생해도 그 순서를 결정하는 것이 가능하다. 많은 응용 분야에서 순서를 결정할 수 있다는 것은 매우 중요 하다. 분산 시스템에서는 공유 메모리와 공유 클록이 존재하지 않기 때문에 두 사건의 순서를 결정하기가 불가능한 경우가 있다. 사건의 전후 발생 관계는 분산 시스템에서 사건의 부분적인 순서(partial order)만을 정의 한다. 순차적인 프로세스들만 고려할 때 하나의 프로세스에서 수행되는 모든 사건들은 완전 순서화된다. 또한 인과 법칙에 따라 메시지가 보내진 후에 그 메시지는 수신된다. 사건은 자기 자신이 발생하기 전에는 발생될 수 없으므로 관계는 비반사적..

60_분산 시스템 구조 (Distributed System Structure)

60_분산 시스템 구조 (Distributed System Structure) 분산 시스템이란 통신 네트워크를 통하여 서로 약결합된(loosely coupled) 처리기들의 집합이다. 분산 시스템 내의 처리기 관점에서 그 처리기가 가지고 있는 자원을 지역(local)이라 하고 그 처리기 외의 나머지 모든 처리기들과 그들에게 속해 있는 자원들은 원격(remote)이라고 한다. 분산시스템을 구축하는 목적은 크게 4가지로 분류 할 수 있다. 자원 공유(Resource Sharing) : 다른 기종의 사이트가 서로 연결되어 있다면 한 사이트의 사용자는 다른 사이트의 자원들을 사용할 수 있을 것이다. 연산 속도 향상(Computation Speedup) : 하나의 특정 연산이 동시에 처리될 수 있는 여러 개의 부..

59_커널 입/출력 서브시스템 (Kernel I/O Subsystem)

59_커널 입/출력 서브시스템 (Kernel I/O Subsystem) 커널은 입/출력과 관련된 많은 서비스를 제공한다. 입/출력 스케줄링, 버퍼링, 캐싱, 스풀링, 장치 예약 및 에러 처리등의 서비스가 제공되며 이들은 하드웨어와 장치 드라이버 구조를 바탕으로 한다. [입출력 스케줄링 (I/O Scheduling)] 입/출력 요청을 스케줄 한다는 것은 그 요청들을 실행할 순서를 결정하는 것을 의미 한다. 응용프로그램이 입/출력을 요청하는 순서대로 처리하는 것은 비효율 적이다. 운영체제 개발자들은 각 장치마다 대기 큐를 유지함으로써 스케줄링을 구현하고 있다. 응용프로그램이 봉쇄형 입/출력 시스템을 호출 하면 그 입/출력 요청은 해당 장치의 큐에 넣어진다. 입/출력 스케줄러는 시스템의 성능과 각 응용에 대한..

58_응용 입/출력 인터페이스 (Application I/O Interface)

58_응용 입/출력 인터페이스 (Application I/O Interface) 입/출력 장치들이 일관된 방법으로 다루어 질 수 있도록 운영체제가 인터페이스를 구성하는 기술을 설명 한다. 공통적인 특징을 가진 입/출력 장치들의 표준 함수를 인터페이스(interface)라 한다. 장치 드라이버(device driver)라 불리는 커널 내의 모듈들은 각 입/출력 장치를 위한 구체적인 코딩을 제공하여 바로 위에서 정의한 "인터페이스"의 표준 함수들을 내부적으로 수행한다. 장치 드라이버(device driver) 계층의 목적은 여러 입/출력 하드웨어 차이를 숨기고 이들을 간단한 표준 인터페이스들로 보이도록 포장시켜서 이것을 상위의 커널 입/출력 서브시스템에 제공하는 것이다. 이렇게 되면 입/출력 서브시스템은 하..

57_폴링(Polling), 인터럽트(Interrupt), DMA(Direct Memory Access)

57_폴링(Polling), 인터럽트(Interrupt), DMA(Direct Memory Access) [폴링(Polling)] 호스트와 입/출력 하드웨어 사이의 프로토콜은 복잡하지만 기본적인 핸드셰이킹(hand shaking) 개념은 간단하다. 제어기는 상태 레지스터의 busy 비트를 통해 자신의 상태를 나타낸다. 제어기는 바쁠 때는 busy 비트를 1로 설정하고 다음 명령을 받아들일 준비가 되어 있을 경우에는 busy 비트가 0으로 변경한다. 호스트는 다음과 같은 방법으로 핸드셰이킹을 통해 제어기와 협력하면서 포트를 통해 출력을 쓴다. 호스트가 반복적으로 (소거될 때까지) busy 비트를 검사한다. 호스트가 명령 레지스터에 쓰기 비트(write bit)를 설정하고 출력(data out)레지스터에 출..

56_입/출력 시스템 (I/O System)

56_입/출력 시스템 (I/O System) 컴퓨터에서 주로 하는 작업이 연산작업과 I/O 작업 이다. 간단한 웹서핑 등의 작업은 연산보다는 I/O 작업이 더 많이 발생하기도 한다. 이처럼 다양한 입출력 장치들은 각각의 특성을 보이기 때문에 각각의 특성에 맞는 제어가 필요하다. 이처럼 다양한 제어 방법들이 커널의 입/출력 서브시스템(I/O Subsystem)을 형성하며 이들은 커널의 다른 부분이 입/출력 장치를 관리하는 복잡한 일에 신경을 쓰지 않게 해준다. 장치 드라이버는 모든 하드웨어를 일관된 인터페이스로 표현해 주며 이러한 인터페이스를 그보다 상위층인 커널의 입/출력 서브시스템에게 제공해 준다. 이는 시스템 호출이 응용과 운영체제간에 표준적인 인터페이스를 제공하는 것과 유사하다. 하드웨어 장치는 케..