이미지 검색을 사용해 보세요
검색창 이전화면 이전화면
최근 검색어
인기 검색어

소득공제
모바게를 지탱하는 기술
모바일 게임 플랫폼
DeNA 정인식
제이펍 2013.03.11.
베스트
IT 모바일 top100 3주
가격
26,000
10 23,400
YES포인트?
1,300원 (5%)
5만원 이상 구매 시 2천원 추가 적립
결제혜택
카드/간편결제 혜택을 확인하세요

이미 소장하고 있다면 판매해 보세요.

  •  해외배송 가능?
  •  문화비소득공제 가능

책소개

목차

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
정리

찾아보기

저자 소개

저 : DeNA(디엔에이)
키도 타다유키 : 1장 공동 집필
타치바나 케이 : 1장 공동 집필
후지이 마사요시 : 장 집필
타케베 유우이치 : 3장 집필, 감수
시부카와 요시키 : 4장 집필
오노 아츠시 : 5장, 8장 집필
마쯔노부 요시노리 : 6장, 7장 집필
야마구치 토오루 : 9장 집필
고바야시 아츠시 : 0장, 12장 집필
시마다 유지 : 11장 집필
하마다 코이치 : 13장 집필
역자 : 정인식
숭실대학교에서 전자계산학을 전공하였다. 사회 초년생 시절 자바에 심취해 현대정보기술에서 웹 애플리케이션 개발을 하였고, 그 후 이동통신단말기 분야로 전직하여 휴대전화단말기의 부가서비스 개발업무를 담당하였다. 일본 키스코㈜ 모바일 사업부 팀장을 역임하면서 일본 교세라의 북미향 휴대전화기 개발에 참여하였고, 현재 일본에서 가나안 솔루션즈의 공동창업자이자 시스템 엔지니어로 일하고 있다. 옮긴 책으로는 『데이터베이스를 지탱하는 기술』, 『머리에 쏙쏙 들어오는 jQuery 입문』, 『자바스크립트 마스터 북』, 『좋은 코드를 작성하는 기술』이 있다

품목정보

발행일
2013년 03월 11일
쪽수, 무게, 크기
364쪽 | 745g | 170*225*30mm
ISBN13
9788994506449

책 속으로

이처럼 다년간 일본에서 모바일 게임 개발과 운영을 해왔던 모바게의 게임 개발 방식과 플랫폼의 구성, 운영 기술에 대한 노하우는 향후 비슷한 대규모의 서비스를 제공하거나 개발하고자 하는 이들에게 있어 알아두면 상당한 도움이 될 거라 생각한다.
--- 「옮긴이 머리말」 중에서

플레이하고 있는 사용자에게 편안하고 안정된 게임 플레이 환경을 제공하고 유지하기 위해 최대한의 노력을 해야 한다. 아무리 재미있는 게임이라도 「제대로 진척이 안 된다」, 「때때로 응답이 없다」라면 다시는 사용자가 게임하러 오지 않을 것이다.
--- 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의 엔지니어들이 코드를 작성하는 업무뿐만아니라 비즈니스 전략, 기획 마케팅 등의 영역과도 관련되어 있기 때문에 가능하였다.

리뷰/한줄평0

리뷰

첫번째 리뷰어가 되어주세요.

한줄평

첫번째 한줄평을 남겨주세요.