본문 바로가기
게임/Unity

[Unity 이론] Firebase Database

by 신인용 2019. 11. 28.
반응형

 오늘은 Unity 외, 게임제작에 필요한 시스템을 공부하겠습니다.

 

 

Firebase Database

 

 

 Firebase는 구글에서 지원하는 서비스입니다. 

클라우드 저장소, 머신러닝, 사용자 인증, 데이터베이스 등등 유용한 기능들을 제공합니다.

이 서비스를 이용하면 별도로 서버 컴퓨터를 가질 필요도 없고, 공인 IP 주소를 구매할 필요도 없고, 통신량이 많지 않다면 무료로 서비스 받을 수 있어서 모바일 게임에서 정말 많이 선택되는 도구 중 하나입니다.

 

 

 

 그러면 오늘은 Firebase에서 Database를 간단하게 만들어보겠습니다.

 

 

 

우선, Firebase 홈페이지에 들어가겠습니다.

 

 프로젝트 추가를 클릭해줍니다.

 

 

 프로젝트 이름을 정해줍니다.

 2단계 다음 - 3단계 Default Server를 택하고 다음

 

 프로젝트가 추가되었습니다.

 

 

 프로젝트에 들어가 왼쪽편에 개발 - Database로 들어갑니다.

 

 

 Database 중 Realtime Database를 만들어줍니다.

 

 

 데이터베이스 만들기 버튼을 클릭하면 "잠금 모드로 시작"과 "테스트 모드로 시작"이 나옵니다.

잠금 모드로 시작 : 제 3자가 보지도, 쓰지도 못하게 비공개 모드

테스트 모드로 시작 : 제 3자가 볼수도, 쓸수도 있는 공개 모드

 저는 연습용이기 때문에 테스트 모드로 시작하겠습니다.

 

 

 이렇게 저의 Database가 만들어졌습니다. Database의 고유한 ID값인 URL도 확인할 수 있습니다.

이제 내용을 추가해보겠습니다.

 

+ 버튼을 눌러서 내용을 추가할 수 있습니다.

 

 

 저는 플레이어들의 이름, 점수, 시간을 입력했습니다.

참고로 timestamp는 1970년 1월 1일부터 현재까지 얼마나 경과했는지를 초단위로 보여줍니다.

(참고)

timestamp 사이트

 

 

 

 그리고, JSON이라는 파일형식이 있습니다. 이 파일형식은 데이터를 주고받을 때 가장 많이 사용하는 확장자입니다.

여기서도 JSON을 사용합니다.

 JSON의 구조는 사전형태입니다. 딕셔너리와 유사하다고 생각하면 됩니다.

예로,

 사과는 apple, 바나나는 banana, 당근은 carrot

 => JSON 형태로 표현하면

{

    "사과" : "apple",

    "바나나" : "banana",

    "당근" : "carrot"

}

이러한 Key : Value로 표기되는 형식입니다.

 

 

 

 

 한 번 저의 데이터베이스 URL에 rank.json을 붙혀서 입력해볼까요?

 

 

 다음과 같이 json의 형태로 방금 입력한 데이터들을 볼 수 있습니다.

그럼 이번엔 rank/0/name.json을 붙혀서 입력해보겠습니다.

 

 

 

 rank 속 0 속 name에 접근할 수 있습니다. 이렇게 매우 간단하게 데이터에 접근가능합니다.

 

 

 

 그런데, 저희는 이것이 올바른 JSON 형태인지 모릅니다. 지금은 데이터가 적어서 괜찮지만 데이터가 많아질수록 헷갈릴 수 있습니다. 올바른 JSON 형태인지 검증할 필요가 있습니다. JSON 검증 사이트

 

 

 

 rank.json의 배열을 복사 후 "Validate JSON" 버튼을 클릭하면

 

 

 

 다음과 같이 배열이 보기 좋게 나열되고, 아래쪽 Results란에 valid JSON이라고 검증에 성공합니다.

 

 

 

 그런데 왜 수많은 형식이 존재하는데 JSON을 많이 사용할까요?

만약 데이터베이스에 접근해서 데이터를 추출해야한다고 가정해봅시다. 이 때 데이터는 상수가 될 수도 배열이 될 수도 있습니다. 여러 형태로 존재하는거죠. 그렇다면 어떤 형태로 서버와 클라이언트가 주고받아야 할까요??

 JSON 이외에도 데이터를 주고받는 다양한 형식들이 존재하는데 개발자는 다음과 같은 이유 등으로 인해 JSON을 많이 사용합니다.

- 웹/앱/게임을 가리지 않고 통신과정에서 사용가능합니다.

- 사람도, 컴퓨터도 이애하기 쉬운 형태입니다. (비교적)

- 데이터가 쉽게 변질되지 않습니다.

 

 

 

 오늘은 Firebase Database를 만들어보기까지 했습니다. 다음엔 Unity와 연계하는 것을 공부하겠습니다.

 

반응형

'게임 > Unity' 카테고리의 다른 글

[Unity 이론] Firebase Database 데이터 사용  (6) 2019.11.28
[Unity 이론] Firebase Database 연동  (0) 2019.11.28
[Unity 이론] Object Pooling  (0) 2019.11.26
[Unity 이론] Coroutine  (1) 2019.11.26
[Unity 3D] 충돌 체크  (0) 2019.11.25

댓글