SlideShare a Scribd company logo
1 of 31
Download to read offline
PHP 와 MySQL을 이용한
게임 랭킹 구축하기
2014. 3. 6.
GM토튜
Ranking 요구사항
•

게임에 참여한 누구나 볼 수 있었으면 좋겠다.

•

최고 점수를 기록하면 좋겠다.

•

이름도 같이 기록하면 좋겠다.

•

1등부터 정렬해서 보여주면 좋겠다.
어떻게 누구나 볼 수 있나?
인!터!넷!
인터넷이란?
•

Explorer? Chrome? Safari?

•

전 세계 컴퓨터가 서로 연결되어 통신 프로토콜로 정보를
주고 받는 컴퓨터 네트워크

•

전화로 ARS를 이용하는 것과 같다.
클라이언트
PC(브라우저)

통신 프로토콜

서버
서버를 구성
설치할 것
•

웹 서버 프로그램(NGINX)

•

웹 프로그래밍 언어(PHP)

•

데이터 베이스(MariaDB)

•

데이터 베이스 관리 프로그램
(phpMyAdmin)

서버
모두를 한번에 처리해버리자!
WPN-XM 설치
www.wpn-xm.org 다운로드 후 전부 설치
서버 실행 시키기

Server Control Panel을 실행 후
Nginx, PHP, MariaDB의 실행버튼 클릭
Hello world with PHP
<?php
echo "Hello world!";
?>

c:serverwwwtest.php 로 저장 후
브라우저에 http://localhost/test.php 입력
Load PHP
!

IEnumerator LoadFromPhp()
{
string url = "http://localhost/test.php";
WWW www = new WWW(url);
yield return www;

!

}

if( www.isDone)
{
if( www.error == null)
{
Debug.Log("Receive Data : " + www.text);
}
else
{
Debug.Log("error : " + www.error);
}
}
IEnumerator 사용이유
int i = 0;
i++;
Debug.Log(i);

메모리 접근 속도>Disk 접근 속도>>>>인터넷 접근 속도
Database
잘 조직된 MySQL
손쉽게 사용 가능한 phpMyAdmin
MySQL의 키워드
관계형 데이터베이스 / SQL
관계형 데이터베이스
•

테이블(Table)
•

엑셀의 스프레시트와 같은 것

•

행(row)과 열(column)로 구성
상품코드

상품명

단가

1
2
3
4

즉석밥
컵라면
삼각김밥
소세지

2500
1300
800
1000

열 이름
행

열
관계형 데이터베이스
•

키(key)
•

의미있는 열

•

기본키(주키), 보조키, 외부키, 연결키 등
상품코드

상품명

단가

1
2
3
4

즉석밥
컵라면
삼각김밥
소세지

2500
1300
800
1000

기본키
SQL
•

관계형 데이터베이스 관리 시스템에 등록된 데이터를 관리하기
위해 설계된 특수 목적 프로그래밍 언어

•

주요 명령어
•

검색 SELECT

•

갱신 UPDATE

•

삽입 INSERT

•

삭제 DELETE

가장 자주쓰는 명령
SQL - SELECT
SELECT

선택한다

*

모든 컬럼을

FROM `ranking`

ranking 테이블에서

WHERE `score` > 0

점수가 0보다 큰

ORDER BY `score` DESC

점수가 높은 순으로 정렬하여

LIMIT 0, 20
옵션

20개만
SQL - INSERT
INSERT INTO `ranking`

`ranking` 에 삽입해라

(`no`, `name`, `score`)

no, name, score 열에 맞춰

VALUES

다음과 같은 값들을

(NULL, ‘이름1’, 100),
(NULL, ‘이름2’, 110)
한 줄만 삽입할 때는 1개의 데이터 필요
ranking 테이블
•

SQL 명령어로 제작할 수 있으나 편의상 phpMyAdmin
사용
컬럼 이름

타입

길이

초기값

비고

no

int

12

-

auto increase
기본 키

name

varchar

8

-

utf8_unicode_ci

score

int

10

0

unsigned
ranking 테이블 만들기 1

http://localhost/
phpmyadmin/

접속
ranking 테이블 만들기 2
1

2

1. 화면 왼쪽에 new 클릭
2. 화면 우측에 lvzero 입력
3. Create 클릭

3
ranking 테이블 만들기 3
2
1

1. 화면 왼쪽에 lvzero DB 클릭
2. 화면 우측에 ranking 입력
3. 3 입력 후 Save 버튼 클릭

3
ranking 테이블 만들기 4

•

위와 같이 설정 후 Save 버튼 클릭
PHP - 소스 소개
•

dbHelper
•

•

loadRanking
•

•

다른 php파일에서 매번 설정해야하는 일을 줄이기 위해서 미리 정의
해놓고 include 해서 사용하려는 목적.

ranking 테이블에서 점수가 높은 순으로 선택하여 xml 형식으로 리턴

insertScore
•

ranking 테이블에 이름과 점수를 등록하는 코드.
Demo 1
유니티 스크립트 소개
•

주요 메소드

•

IEnumerator UploadScore()
•

•

점수를 서버에 등록

IEnumerator LoadRank()
•

상위 10개의 점수를 읽어서 화면에 표시
주요 메소드 구조
url 선언
WWWForm을 통한 필요 데이터 생성
WWW(url, WWWForm) 연결

yield return WWW;

WWW 연결 종료 확인
WWW 에러 여부 확인
WWW.text를 통한 이후 처리

옵션
Demo 2
공지 사항
•

레벨제로 카페를 통해 공개 예정
•

•

전체 소스 코드(PHP, C#, Unity Project)

유의 사항
•

서버(Web Server) 지원이 아닙니다.

•

유니티 AssetStore를 통해 판매할 예정입니다.

•

회원의 경우 레벨 5이상이면 무료로 사용가능합니다.
감사합니다.

More Related Content

What's hot

오승준, 사회적 기술이 프로그래머 인생을 바꿔주는 이유, NDC2011
오승준, 사회적 기술이 프로그래머 인생을 바꿔주는 이유, NDC2011오승준, 사회적 기술이 프로그래머 인생을 바꿔주는 이유, NDC2011
오승준, 사회적 기술이 프로그래머 인생을 바꿔주는 이유, NDC2011
devCAT Studio, NEXON
 
덤프 파일을 통한 사후 디버깅 실용 테크닉 NDC2012
덤프 파일을 통한 사후 디버깅 실용 테크닉 NDC2012덤프 파일을 통한 사후 디버깅 실용 테크닉 NDC2012
덤프 파일을 통한 사후 디버깅 실용 테크닉 NDC2012
Esun Kim
 
자동화된 소스 분석, 처리, 검증을 통한 소스의 불필요한 #if - #endif 제거하기 NDC2012
자동화된 소스 분석, 처리, 검증을 통한 소스의 불필요한 #if - #endif 제거하기 NDC2012자동화된 소스 분석, 처리, 검증을 통한 소스의 불필요한 #if - #endif 제거하기 NDC2012
자동화된 소스 분석, 처리, 검증을 통한 소스의 불필요한 #if - #endif 제거하기 NDC2012
Esun Kim
 

What's hot (20)

클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다
클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다
클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다
 
오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...
오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...
오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...
 
KGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games Conference
KGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games ConferenceKGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games Conference
KGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games Conference
 
오승준, 사회적 기술이 프로그래머 인생을 바꿔주는 이유, NDC2011
오승준, 사회적 기술이 프로그래머 인생을 바꿔주는 이유, NDC2011오승준, 사회적 기술이 프로그래머 인생을 바꿔주는 이유, NDC2011
오승준, 사회적 기술이 프로그래머 인생을 바꿔주는 이유, NDC2011
 
덤프 파일을 통한 사후 디버깅 실용 테크닉 NDC2012
덤프 파일을 통한 사후 디버깅 실용 테크닉 NDC2012덤프 파일을 통한 사후 디버깅 실용 테크닉 NDC2012
덤프 파일을 통한 사후 디버깅 실용 테크닉 NDC2012
 
NDC 11 자이언트 서버의 비밀
NDC 11 자이언트 서버의 비밀NDC 11 자이언트 서버의 비밀
NDC 11 자이언트 서버의 비밀
 
Laravel dokumentacja Restful API - swagger
Laravel dokumentacja Restful API - swaggerLaravel dokumentacja Restful API - swagger
Laravel dokumentacja Restful API - swagger
 
[Gaming on AWS] 넥슨 - AWS를 활용한 모바일 게임 서버 개발: 퍼즐 주주의 사례
[Gaming on AWS] 넥슨 - AWS를 활용한 모바일 게임 서버 개발: 퍼즐 주주의 사례[Gaming on AWS] 넥슨 - AWS를 활용한 모바일 게임 서버 개발: 퍼즐 주주의 사례
[Gaming on AWS] 넥슨 - AWS를 활용한 모바일 게임 서버 개발: 퍼즐 주주의 사례
 
자동화된 소스 분석, 처리, 검증을 통한 소스의 불필요한 #if - #endif 제거하기 NDC2012
자동화된 소스 분석, 처리, 검증을 통한 소스의 불필요한 #if - #endif 제거하기 NDC2012자동화된 소스 분석, 처리, 검증을 통한 소스의 불필요한 #if - #endif 제거하기 NDC2012
자동화된 소스 분석, 처리, 검증을 통한 소스의 불필요한 #if - #endif 제거하기 NDC2012
 
데이터베이스 모델링
데이터베이스 모델링데이터베이스 모델링
데이터베이스 모델링
 
Production Experience: Some Insights from Using Vercel and Next.js for Over 3...
Production Experience: Some Insights from Using Vercel and Next.js for Over 3...Production Experience: Some Insights from Using Vercel and Next.js for Over 3...
Production Experience: Some Insights from Using Vercel and Next.js for Over 3...
 
[야생의 땅: 듀랑고] 서버 아키텍처 Vol. 2 (자막)
[야생의 땅: 듀랑고] 서버 아키텍처 Vol. 2 (자막)[야생의 땅: 듀랑고] 서버 아키텍처 Vol. 2 (자막)
[야생의 땅: 듀랑고] 서버 아키텍처 Vol. 2 (자막)
 
마비노기듀얼 이야기-넥슨 김동건
마비노기듀얼 이야기-넥슨 김동건마비노기듀얼 이야기-넥슨 김동건
마비노기듀얼 이야기-넥슨 김동건
 
HTML5/JSON 을 이용해 범용 2D 맵에디터 제작하기
HTML5/JSON 을 이용해 범용 2D 맵에디터 제작하기HTML5/JSON 을 이용해 범용 2D 맵에디터 제작하기
HTML5/JSON 을 이용해 범용 2D 맵에디터 제작하기
 
WebLogic Scripting Tool Overview
WebLogic Scripting Tool OverviewWebLogic Scripting Tool Overview
WebLogic Scripting Tool Overview
 
Lay Picking
Lay PickingLay Picking
Lay Picking
 
쿠키런 1년, 서버개발 분투기
쿠키런 1년, 서버개발 분투기쿠키런 1년, 서버개발 분투기
쿠키런 1년, 서버개발 분투기
 
〈야생의 땅: 듀랑고〉 서버 아키텍처 Vol. 3
〈야생의 땅: 듀랑고〉 서버 아키텍처 Vol. 3〈야생의 땅: 듀랑고〉 서버 아키텍처 Vol. 3
〈야생의 땅: 듀랑고〉 서버 아키텍처 Vol. 3
 
RPC에서 REST까지 간단한 개념소개
RPC에서 REST까지 간단한 개념소개RPC에서 REST까지 간단한 개념소개
RPC에서 REST까지 간단한 개념소개
 
Resilience testing with Wiremock and Spock
Resilience testing with Wiremock and SpockResilience testing with Wiremock and Spock
Resilience testing with Wiremock and Spock
 

Similar to PHP 와 MySQL을 이용한 게임 랭킹 구축하기

게임 개발에 도움을 주는 CruiseControl.NET과 Windows Terminal
게임 개발에 도움을 주는 CruiseControl.NET과 Windows Terminal게임 개발에 도움을 주는 CruiseControl.NET과 Windows Terminal
게임 개발에 도움을 주는 CruiseControl.NET과 Windows Terminal
OnGameServer
 
Cruise control net_and_terminal_with_gamedev
Cruise control net_and_terminal_with_gamedevCruise control net_and_terminal_with_gamedev
Cruise control net_and_terminal_with_gamedev
Heo Seungwook
 
Node js[stg]onimusha 20140822
Node js[stg]onimusha 20140822Node js[stg]onimusha 20140822
Node js[stg]onimusha 20140822
병헌 정
 

Similar to PHP 와 MySQL을 이용한 게임 랭킹 구축하기 (20)

Node and Express Configuration
Node and Express ConfigurationNode and Express Configuration
Node and Express Configuration
 
[온라인교육시리즈] 네이버 클라우드 플랫폼 init script 활용법 소개(정낙수 클라우드 솔루션 아키텍트)
[온라인교육시리즈] 네이버 클라우드 플랫폼 init script 활용법 소개(정낙수 클라우드 솔루션 아키텍트)[온라인교육시리즈] 네이버 클라우드 플랫폼 init script 활용법 소개(정낙수 클라우드 솔루션 아키텍트)
[온라인교육시리즈] 네이버 클라우드 플랫폼 init script 활용법 소개(정낙수 클라우드 솔루션 아키텍트)
 
Laravel install on Windows
Laravel install on WindowsLaravel install on Windows
Laravel install on Windows
 
게임 개발에 도움을 주는 CruiseControl.NET과 Windows Terminal
게임 개발에 도움을 주는 CruiseControl.NET과 Windows Terminal게임 개발에 도움을 주는 CruiseControl.NET과 Windows Terminal
게임 개발에 도움을 주는 CruiseControl.NET과 Windows Terminal
 
Startup JavaScript 7 - Node.JS 기초
Startup JavaScript 7 - Node.JS 기초Startup JavaScript 7 - Node.JS 기초
Startup JavaScript 7 - Node.JS 기초
 
20170813 django api server unit test and remote debugging
20170813 django api server unit test and remote debugging20170813 django api server unit test and remote debugging
20170813 django api server unit test and remote debugging
 
2016 NDC - 클라우드 시대의 모바일 게임 운영 플랫폼 구현
2016 NDC  - 클라우드 시대의  모바일 게임 운영 플랫폼 구현2016 NDC  - 클라우드 시대의  모바일 게임 운영 플랫폼 구현
2016 NDC - 클라우드 시대의 모바일 게임 운영 플랫폼 구현
 
Cruise control net_and_terminal_with_gamedev
Cruise control net_and_terminal_with_gamedevCruise control net_and_terminal_with_gamedev
Cruise control net_and_terminal_with_gamedev
 
IBM DataPower OS(DPOS) 의 CLI 설명
IBM DataPower OS(DPOS) 의 CLI 설명IBM DataPower OS(DPOS) 의 CLI 설명
IBM DataPower OS(DPOS) 의 CLI 설명
 
Windows Debugging Technique #3
Windows Debugging Technique #3Windows Debugging Technique #3
Windows Debugging Technique #3
 
글로벌 게임 플랫폼에서 무정지, 무점검 서버 개발과 운영 사례
글로벌 게임 플랫폼에서 무정지, 무점검 서버 개발과 운영 사례글로벌 게임 플랫폼에서 무정지, 무점검 서버 개발과 운영 사례
글로벌 게임 플랫폼에서 무정지, 무점검 서버 개발과 운영 사례
 
Laravel 로 배우는 서버사이드 #1
Laravel 로 배우는 서버사이드 #1Laravel 로 배우는 서버사이드 #1
Laravel 로 배우는 서버사이드 #1
 
Phpstorm remote xdebug setting
Phpstorm remote xdebug settingPhpstorm remote xdebug setting
Phpstorm remote xdebug setting
 
Node js[stg]onimusha 20140822
Node js[stg]onimusha 20140822Node js[stg]onimusha 20140822
Node js[stg]onimusha 20140822
 
Unity cookbook 18
Unity cookbook 18Unity cookbook 18
Unity cookbook 18
 
web study 1day
web study 1dayweb study 1day
web study 1day
 
[APM] Homepage bbs
[APM] Homepage bbs[APM] Homepage bbs
[APM] Homepage bbs
 
사설 서버를 막는 방법들 (프리섭, 더이상은 Naver)
사설 서버를 막는 방법들 (프리섭, 더이상은 Naver)사설 서버를 막는 방법들 (프리섭, 더이상은 Naver)
사설 서버를 막는 방법들 (프리섭, 더이상은 Naver)
 
[IGC 2017] 아마존 구승모 - 게임 엔진으로 서버 제작 및 운영까지
[IGC 2017] 아마존 구승모 - 게임 엔진으로 서버 제작 및 운영까지[IGC 2017] 아마존 구승모 - 게임 엔진으로 서버 제작 및 운영까지
[IGC 2017] 아마존 구승모 - 게임 엔진으로 서버 제작 및 운영까지
 
Node.js 첫걸음
Node.js 첫걸음Node.js 첫걸음
Node.js 첫걸음
 

PHP 와 MySQL을 이용한 게임 랭킹 구축하기