Firebase란?
- Firebase는 구글에서 제공하는 모바일이나 웹용 애플리케이션 개발을 위한 개발 플랫폼이다.
- 여러가지 기능들을 제공하며 실시간 데이터베이스, 인증, 클라우드 스토리지 등 서버를 직접 구축할 필요 없이 백엔드의 여러 기능을 사용할 수 있다.
- 무료로 제공하는 기본 용량이 있어 접근성이 편리하다.
우리는 Firebase의 다음과 같은 기능 중 데이터베이스 기능을 Unity와 연동시켜보자.
Unity로 게임을 개발하다 보면 여러가지 기능을 DB와 연동시킬 필요성이 느껴진다.
캐릭터의 레벨이나 재화, 그리고 로그인 시스템, 인벤토리 등 여러가지 기능들을 실시간으로 서버와 연동하고 이를 수시로 받아오고 쓰는 과정이 필연적으로 발생하는데 Firebase를 사용하면 이러한 기능들을 간단하게나마 구현해 볼 수 있다.
초기 세팅
먼저 다음 링크로 접속해 Firebase 홈페이지에 들어가보자.
https://firebase.google.com/?hl=ko
Firebase | Google's Mobile and Web App Development Platform
개발자가 사용자가 좋아할 만한 앱과 게임을 빌드하도록 지원하는 Google의 모바일 및 웹 앱 개발 플랫폼인 Firebase에 대해 알아보세요.
firebase.google.com
해당 링크에 접속 후 시작하기 버튼을 눌러 Firebase Console쪽으로 넘어가면 다음과 같은 창으로 이어진다.
여기서 프로젝트 만들기 버튼을 클릭하고 원하는 프로젝트 명을 입력해주자.
이후 구글에서 사용자의 행동 패턴을 분석해주는 애널리틱스를 사용하겠냐고 물어보는데, 이 기능은 훗날 일일 사용자, 이탈률, 구매 패턴, 레벨 진행도나 기기정보, 접속자 수, 성능 모니터링 등 다양한 측정 지표를 우리에게 알려주는 기능이다.
필요 없다면 사용 설정을 해제하면 되지만 사용 설정을 체크해도 큰 문제가 없으니 필요한 기능이라면 사용해주도록 하자.
여기까지 완료했다면 이제 새로운 프로젝트가 성공적으로 생성된 화면을 다음과 같이 볼 수 있다.
자신이 만든 프로젝트를 클릭한다면 다음과 같은 창으로 이동하는데 우선은 아래의 화살표에 해당하는 Unity 아이콘을 클릭해주자.
위 버튼을 클릭하면 다음과 같은 앱 등록 창이 나오게 된다.
애플 앱과 안드로이드 앱 중 원하는 앱으로 등록해 주고 이때 해당 패키지의 이름은 Unity 내부에서 등록된 이름으로 사용해야 하는데 아래의 순서를 따라 본인 프로젝트의 이름을 확인하고 넣어주자.
유니티 프로젝트 내에서 File - Build Settings - Player Settings 로 넘어가면 Company Name과 Product Name을 확인 및 변경할 수 있고, App Store Options 쪽에 있는 Bundle Identifier의 이름을 꼭 우리의 패키지 이름으로 등록해 주어야 정상 작동하니 잘 확인하고 넣어주도록 하자.
참고로 Bundle Identifier 위에 있는 Override를 잠깐 체크하면 아래의 패키지 이름을 쉽게 드래그 할 수 있으니 잠깐 체크해주고 드래그하면 편하게 복사할 수 있다.
마지막으로 구성 파일 몇 개를 다운 받아주면 이제 초기 작업은 거의 완료된다.
2번에 해당하는 google-services.json 파일은 Firebase 프로젝트와 Unity 앱을 연결해주는 구성 파일로 해당 파일이 있어야 Firebase와 통신이 가능하기 때문에 꼭 받아주어야 하고
Firebase Unity SDK의 경우는 Unity 내부에서 Firebase의 여러 서비스를 사용하기 위한 라이브러리 파일로 보안이나 데이터베이스 기능, 서비스 접근을 위해서는 위 파일 역시 꼭 필요하다.
위와 같이 json 파일은 Assets 폴더에 넣어주고, SDK 파일은 실행 후 빨간 네모에 해당하는 FirebaseAuth 패키지와 FirebaseDatabase 패키지만 우선 열어주도록 하자.
참고로 google-services.json 파일의 경우 이름이 달라진다면 연동이 안된다.
혹시나 해당 json 파일을 여러개 다운받았다면 파일 명이 원본과 일치하는지 꼭 확인하고 넣어주자.
우리가 연동할 데이터베이스 기능은 위 두 파일만 받아주면 충분히 가능하다.
unitypackage 파일은 실행 후 여러 에셋과 라이브러리가 한번에 import 되면 일부 기능이 꼬이거나 실행이 안되는 경우가 많으니 import 후 Unity를 재실행 하는것이 좋다.
다시 홈페이지로 돌아가서 우리가 만든 프로젝트 페이지를 열어보자.
좌측 탭에 빌드쪽에 있는 Realtime Database를 클릭해주면 다음과 같은 창이 뜬다.
여기서 데이터베이스 만들기를 클릭하고 옵션들을 각각 설정해주자.
여기서 중요한 부분은 실제 서비스 할때에는 잠금 모드를 사용해서 보안과 세부적인 규칙 설정을 따라야 하지만 우리는 개발 단계에서 DB를 수시로 테스트하고 수많은 데이터가 올바르게 읽히고 쓰이는 과정을 거쳐야 한다.
또한 잠금 모드로 바로 시작해버리면 여러 데이터가 노출될 위험과 올바른 인증 과정을 거치지 않는다면 Firebase에서 자체적으로 Lock을 걸어버리는 상황도 발생할 수 있으니 개발 단계에서는 꼭 테스트 모드로 시작하도록 하자.
모든 과정이 완료되었다면 다음과 같이 각자의 프로젝트의 경로가 담긴 페이지가 제작된다.
DB 사용량에 따라 이용 요금이 청구될 수 있는데 개발 단계에서는 보통 많은 데이터를 주고 받을 일은 없기 때문에 사실상 무료라고 봐도 무방하다.
다음으로는 아까 좌측 탭에 있었던 빌드 탭을 누르고 Authentication을 눌러주자.
위의 기능들은 계정을 생성할때 로그인 방법으로 Google이나 Facebook등 다른 여러 매체들을 이용해서 인증을 받을 수 있는 기능들이다.
우선 간단하게 기능 구현을 위해 익명을 클릭해주자.
또한 익명 로그인 기능은 나중에 Google에 앱을 런칭한다면 꼭 필요한 기능으로 해당 기능이 없으면 앱 런칭 과정에서 Reject 사유가 되는 경우가 간혹 발생한다.
추후 앱을 출시할 목표로 기능을 구현중이라면 익명 기능은 같이 넣어주도록 하자.
마지막으로 아까 다운 받은 json파일을 열어보고 "firebase_url" : " ... " 에 해당하는 구문이 있는지 꼭 확인해야 한다.
간혹 firebase url에 해당하는 부분이 빠져서 다운 받아지는 경우가 있는데, 그렇다면 해당 구문을 직접 넣어주어야 한다.
본인의 json 파일을 확인하고 혹시나 해당 부분이 빠져있다면 json 형식에 맞게 "firebase_url": "본인 firebase url 경로", 를 넣어주면 된다.
여기까지 Firebase와 Unity를 연동하기 위한 초기 세팅이 완료되었다.
다음 글에서 Firebase를 이용해 데이터를 주고 받는 코드를 작성해보고 기능을 일부 구현해보자.
'Unity' 카테고리의 다른 글
Unity 에서 Cursor AI를 활용해 게임 기능을 쉽게 구현해 보기 (2) (7) | 2024.11.01 |
---|---|
Unity 에서 Cursor AI를 활용해 게임 기능을 쉽게 구현해 보기 (1) (15) | 2024.11.01 |
Unity [디자인 패턴] - 싱글톤 패턴 (0) | 2024.08.07 |
Unity [디자인 패턴] - 디자인 패턴이란? (0) | 2024.08.07 |
Unity - 물리 엔진(RigidBody, Collider) (2) | 2024.07.22 |