31
PHP MySQL을 이용한 게임 랭킹 구축하기 2014. 3. 6. GM토튜

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

Embed Size (px)

DESCRIPTION

레벨제로정기세미나 1회 20140305 PHP 와 MySQL을 이용한 게임 랭킹 구축하기

Citation preview

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

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

2014. 3. 6. GM토튜

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

Ranking 요구사항

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

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

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

• 1등부터 정렬해서 보여주면 좋겠다.

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

어떻게 누구나 볼 수 있나?

인!터!넷!

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

인터넷이란?

• Explorer? Chrome? Safari?

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

• 전화로 ARS를 이용하는 것과 같다.

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

통신 프로토콜클라이언트 PC(브라우저) 서버

서버를 구성

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

• 웹 서버 프로그램(NGINX)

• 웹 프로그래밍 언어(PHP)

• 데이터 베이스(MariaDB)

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

서버

설치할 것

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

모두를 한번에 처리해버리자!

WPN-XM 설치

www.wpn-xm.org 다운로드 후 전부 설치

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

서버 실행 시키기

Server Control Panel을 실행 후 Nginx, PHP, MariaDB의 실행버튼 클릭

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

Hello world with PHP<?php echo "Hello world!"; ?>

c:\server\www\test.php 로 저장 후 브라우저에 http://localhost/test.php 입력

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

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); } } }

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

IEnumerator 사용이유 int i = 0; i++; Debug.Log(i);

메모리 접근 속도>Disk 접근 속도>>>>인터넷 접근 속도

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

Database

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

잘 조직된 MySQL 손쉽게 사용 가능한 phpMyAdmin

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

MySQL의 키워드

관계형 데이터베이스 / SQL

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

관계형 데이터베이스• 테이블(Table)

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

• 행(row)과 열(column)로 구성

상품코드 상품명 단가1 즉석밥 25002 컵라면 13003 삼각김밥 8004 소세지 1000

열 이름행

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

관계형 데이터베이스• 키(key)

• 의미있는 열

• 기본키(주키), 보조키, 외부키, 연결키 등

상품코드 상품명 단가1 즉석밥 25002 컵라면 13003 삼각김밥 8004 소세지 1000

기본키

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

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

• 주요 명령어

• 검색 SELECT

• 갱신 UPDATE

• 삽입 INSERT

• 삭제 DELETE

가장 자주쓰는 명령

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

SQL - SELECTSELECT

*

FROM `ranking`

WHERE `score` > 0

ORDER BY `score` DESC

LIMIT 0, 20

선택한다

모든 컬럼을

ranking 테이블에서

점수가 0보다 큰

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

20개만옵션

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

SQL - INSERTINSERT INTO `ranking`

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

VALUES

(NULL, ‘이름1’, 100),

(NULL, ‘이름2’, 110)

`ranking` 에 삽입해라

no, name, score 열에 맞춰

다음과 같은 값들을

한 줄만 삽입할 때는 1개의 데이터 필요

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

ranking 테이블• SQL 명령어로 제작할 수 있으나 편의상 phpMyAdmin 사용

컬럼 이름 타입 길이 초기값 비고

no int 12 - auto increase 기본 키

name varchar 8 - utf8_unicode_ci

score int 10 0 unsigned

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

ranking 테이블 만들기 1

http://localhost/phpmyadmin/접속

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

ranking 테이블 만들기 2

1 2 3

1.화면 왼쪽에 new 클릭

2.화면 우측에 lvzero 입력

3. Create 클릭

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

ranking 테이블 만들기 3

1.화면 왼쪽에 lvzero DB 클릭

2.화면 우측에 ranking 입력

3. 3 입력 후 Save 버튼 클릭

12 3

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

ranking 테이블 만들기 4

• 위와 같이 설정 후 Save 버튼 클릭

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

PHP - 소스 소개• dbHelper

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

• loadRanking

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

• insertScore

• ranking 테이블에 이름과 점수를 등록하는 코드.

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

Demo 1

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

유니티 스크립트 소개• 주요 메소드

• IEnumerator UploadScore()

• 점수를 서버에 등록

• IEnumerator LoadRank()

• 상위 10개의 점수를 읽어서 화면에 표시

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

주요 메소드 구조url 선언

WWWForm을 통한 필요 데이터 생성 WWW(url, WWWForm) 연결

yield return WWW;

WWW 연결 종료 확인 WWW 에러 여부 확인

WWW.text를 통한 이후 처리

옵션

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

Demo 2

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

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

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

• 유의 사항

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

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

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

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

감사합니다.