이미 소장하고 있다면 판매해 보세요.
|
PART 1 소셜 게임 개발 기술
CHAPTER 01 소셜 게임 개론 1-1 소셜 게임이란? 소셜 게임이란 무엇인가? 소셜 게임과 온라인 게임 소셜 게임의 기본 사이클 1-2 소셜 게임 운용 시스템 구성 CHAPTER 02 브라우저 기반의 소셜 게임: 피처폰 2-1 피처폰이란? 시장 규모와 장래성 2-2 피처폰 전용 웹 애플리케이션 개발 이모티콘과 문자 인코딩 단말기 인증 통신사업자와 단말 기종의 판별 2-3 피처폰 전용의 HTML HTML의 주의점 2-4 Flash Lite Flash Lite의 주의점 동적 Flash를 생성하는 방법 Ming의 사용법 2-5 소셜 게임의 Ul 설계 2-6 보안 대책 CHAPTER 03 브라우저 기반의 소셜 게임: 스마트폰 3-1 스마트폰의 장점 시장 규모와 장래성 3-2 UI와 UX에 대한 궁리 플레이 스타일을 중시한 화면 설계의 포인트 3-3 높은 퍼포먼스 - 소셜 게임 GPU 액셀레이션을 기대한 iOS용 애니메이션 리퀘스트 수 줄이기 콘텐츠 경량화하기 이미지 압축 JavaScript 로드 테크닉 JavaScript 지연 로드(동적 로드) 3-4 애니메이션 기법 제작 툴 변환 툴(+ 런타임) SWF 런타임 정리 CHAPTER 04 애플리케이션 기반의 소셜 게임 개발 4-1 애플리케이션 방식의 구성 4종류의 게임 구성 4-2 애플리케이션 형식의 장점과 단점 풍부한 그래픽 표현 콘텐츠 다운로드의 제어 개발에는 시간과 노력이 소요된다 릴리스에 손이 많이 간다 고급 게임에 익숙해진 사람은 예전 게임으로 되돌아오지 않는다 4-3 게임 엔진 사용하기 ngCore의 게임 엔진으로서의 특징 ngCore의 게임 개발 주기 ngCore로 만든 게임의 기본 구조 ngCore의 아키텍처 ngCore 이외의 게임 엔진과 Mobage PART 2 소셜 게임 운용 기술 CHAPTER 05 하루 35억 페이지 뷰를 처리하는 인프라 구성 5-1 소셜 게임 인프라 구성 전체 구성 DB 계층에서의 액세스 방식 전용 구성과 공용 구성 5-2 웹 애플리케이션 계층에서의 연구 처리의 비동기화 재기동 시의 부하 경감 메모리 이용의 효율화(파일 캐시 최적화) 메모리 이용의 효율화(FastCGI 프로세스의 메모리 사용량 절감) 지속적인 성능 분석 정리 CHAPTER 06 데이터베이스의 복제 6-1 DB 계층에서 중요시되는 지표99 6-2 복제의 활용 슬레이브 참조 분산 복제 지연에 대한 대책 원격 거점과의 분산 구성104 6-3 복제 지연에 대한 대처 무엇을 근거로 지연하고 있다고 판단하는가? 복제 지연의 조사 및 대처 복제 지연의 원인 조사 6-4 복제 지연을 방지하는 모범 사례 애플리케이션에서의 대처 인프라에서의 대처 정리 CHAPTER 07 데이터베이스의 고성능화/고가용성화 7-1 성능 관리 및 대수 감소 집약화에 의한 서버 대수 감소 메모리 내의 과부하 트래픽 제어(MySQL을 NoSQL로 사용) 7-2 마스터 분할(Sharding)의 전략 분할 방식과 확장 용이성 7-3 서비스의 확대/집약과 무중단 유지보수 마스터의 하드웨어 업그레이드 마스터 이동 방법 7-4 마스터의 자동 페일오버 마스터 다운에 의한 전환의 난점 「MHA for MySQL」에 의한 자동 페일오버 정리 CHAPTER 08 수천 대의 서버를 운용하는 기술 8-1 서버 정보의 관리 서버 관리에 필요한 정보 서버 정보 관리 시스템 서버 정보 관리의 인터페이스 8-2 서버 설치 서버의 신규 셋업의 과제 mbgaclone에 의해 가능한 것 mbgaclone의 내부 처리 8-3 감시 하드웨어 감시 사이트 overview 감시 MySQL 상태 모니터링 정리 PART 3 소셜 게임 효율화 기술 CHAPTER 09 MySQL과의 접목 방법 9-1 대규모 환경에서의 데이터베이스 프로그래밍 대규모 데이터베이스란? 샤딩을 고려한 데이터베이스 커넥터 샤딩 환경에서의 실천적인 데이터베이스 프로그래밍 9-2 데이터베이스 프로그래밍의 테스트 방법 9-3 MySQL의 저장 프로시저/트리거/이벤트 스케줄 저장 프로시저/트리거/이벤트 스케줄러를 사용하는 이유 Partition을 작성/삭제하는 저장 프로시저와 프리페어드 스테인트먼트 MyTAP과 my 이벤트 스케줄러를 이용한 Partition의 rotate 이벤트 스케줄러 운용에 있어서의 주의사항 트리거의 이용 용도 9-4 RESTful API의 생각과 실제 ROA와 Mobage API 어드레스 가능성과 URI 비상태성 접속성과 링크 JSON Schema 가능성 통일 인터페이스 정렬 및 검색을 어떻게 제공할 것인가? 정리 CHAPTER 10 Job Queue와 Message Queue 10-1 Job Queue/Message Queue의 개요 Job Queue와 Message Queue의 다른 점 Job Queue 및 Message Queue를 어떤 곳에서 사용하는가? Job Queue/Message Queue의 다양한 라이브러리 10-2 Q4M을 이용한 worker의 구현 Queue 테이블 만들기 Queue의 등록 Queue의 추출 prioritized queue exponential backoff 룰 기반 Worker 정리 CHAPTER 11 애플리케이션 튜닝 11-1 캐시 사용하기 memcached의 사용법 memcached에 대한 액세스 은폐하기 메모리 자원을 유효하게 활용하기 제대로 캐시가 갱신되는 것 보증하기 memcached 서버의 부하 줄이기 memcached에 저장되는 데이터 최소화하기 11-2 다양한 DNS의 캐시 MyDNS 이용 데이터베이스 액세스를 위한 DNS 캐시 HTTP 리퀘스트를 위한 DNS 캐시 11-3 애플리케이션 튜닝 People API 개요 단순히 요약 테이블을 만들 수 없다 JOIN을 사용할 수 없다 과거의 구현 고속화의 길 Iterator::GroupedRange 이용 fetchall app user 정리 CHAPTER 12 DevOps 12-1 로그 모니터링 accesslog 감시 application log 모니터링 MySQL slowlog 감시 의식의 개선 log 감시의 프레임워크 12-2 운용 릴리스 사이클 daemontools WebUI DB 상태 표시 웹 UI 정리 PART 4 소셜 게임 분석 기술 CHAPTER 13 대규모 데이터 마이닝 13-1 사용자의 즐거움에 관한 법칙과 세련된 서비스 대규모 기계 학습·데이터 마이닝 라이브러리 Mahout 13-2 Clustering Clustering의 종류 Clustering 입력 데이터 변환 구현의 예 k-means Clusterilng SequenceFile의 분석 seqdumper를 이용한 확인 Canopy 클러스터링 Mahout Clustering Library를 이용한 MapReduce의 구현 13-3 Frequent Pattern Mining 13-4 Classification 13-5 Recommendation 정리 찾아보기 |
|
이처럼 다년간 일본에서 모바일 게임 개발과 운영을 해왔던 모바게의 게임 개발 방식과 플랫폼의 구성, 운영 기술에 대한 노하우는 향후 비슷한 대규모의 서비스를 제공하거나 개발하고자 하는 이들에게 있어 알아두면 상당한 도움이 될 거라 생각한다.
--- 「옮긴이 머리말」 중에서 플레이하고 있는 사용자에게 편안하고 안정된 게임 플레이 환경을 제공하고 유지하기 위해 최대한의 노력을 해야 한다. 아무리 재미있는 게임이라도 「제대로 진척이 안 된다」, 「때때로 응답이 없다」라면 다시는 사용자가 게임하러 오지 않을 것이다. --- p.34 소셜 게임의 인프라에는 다양한 서버가 존재하는데, Mobage의 골격 자체는 매우 심플하다. 거의 2층 구조라고 해도 좋으며, 웹 애플리케이션 서버와 DB 서버가 중심이다. 캐시 서버도 있지만, 그다지 의존도는 높지 않다. 단, 캐시 서버의 대안으로 MySQL 서버에 HandlerSocket Plugin을 도입해두었다. --- p.76 소셜 게임뿐만 아니라 일반 웹 서비스에서도 복제를 기반으로 한 마스터 전환을 할 기회가 많이 있다. MHA를 사용하여 전환하거나 또는 이를 사용하지 않고 수동으로 전환한다 해도, 전환 시 어떤 점에 유의해야 할 필요가 있는지를 이해하는 것이 중요하다. --- p.143 memcached는 기본적으로 웹 서버와는 물리적으로 별개의 서버에 놓여 있다. 따라서 프로그램으로부터의 액세스는 TCP 경유가 된다. 어느 정도 트래픽이 많아지면 네트워크가 불안정해지거나 TCP 패킷의 손실이 발생하는 경우가 있다. --- p.247 Mobage 오픈 플랫폼에서는 프로세스 관리에 daemontools주6를 많이 이용하고 있다. daemontools는 예전부터 사용되고 있는 소프트웨어로, Mobage뿐만 아니라 많은 서비스에서 이용되고 있는 소프트웨어다. --- p.292 |
|
하루 35억 페이지 뷰의 거대 시스템은 어떻게 개발 및 운용되고 있는가?
DeNA의 모든 기술력을 이 한 권의 책에 모았다! 대규모 웹 서비스 구축 및 운용 노하우를 배우자! 이 책은 단지 소셜 게임 개발의 배후를 소개하기만 하는 것이 아니다. 대규모 웹 서비스 구축 및 운용 노하우의 방대한 내용을 이 한 권에 담아 정리하고 있다. 또한, 탁상 이론보다는 생생한 실천 테크닉을 중시하였다. 우리는 너무나도 급격하게 성장하는 서비스에 대한 자체 조사 및 검증, 독창성, 그리고 새로운 솔루션을 창출하는 활동 등을 통하여 서비스와 사업의 확대를 실현해 왔다고 자부하고 있다. 이 책은 기술 영역에 대해 포괄적으로, 그리고 가능한 한 한 발짝 더 나아가 깊이 있는 내용을 기술하였다. 핵심 내용은 다음과 같다. 소셜 게임(피처폰/스마트폰) 대규모 웹 인프라 플랫폼 빅 데이터 분석 처음에 정의한 테마별로 사내의 전문 엔지니어, 리더급 엔지니어, 엔지니어링 매니저 진을 주축으로 집필과 감수를 하였다. 서적화되기까지의 마지막 순간에도 노하우에 인색하지 않으면서 최신 정보를 싣기 위해 애썼다. 이 책의 대상 독자 이 책의 대상 독자는 SNS나 소셜 게임에 관련된 엔지니어 및 게임 개발자들에 그치지 않고, 대규모 웹 서비스 구축 및 운용을 담당하는 엔지니어뿐만 아니라 지금 당장은 기회를 얻지 못했지만 이를 배우고 싶어 하는 엔지니어들이다. 그리고 수탁 개발 및 제조업체 등에서 소프트웨어 엔지니어 직업에 종사하는 분들도 대규모의 인터넷 서비스를 만들어 운용하고 있는 엔지니어들의 관점과 기술력, 그리고 대처 방법 등을 알고 싶어 하지 않을까 생각한다. 책 앞부분의 장들에서는 경영자나 플래너와 같은 비즈니스 직종의 사람들에게도 유용한 내용을 제공하고 있다. 이는 우리 DeNA의 엔지니어들이 코드를 작성하는 업무뿐만아니라 비즈니스 전략, 기획 마케팅 등의 영역과도 관련되어 있기 때문에 가능하였다. |