반응형

구글 개발자 등록하기


구글 애드몹(Admob)이나 구글에서 제공하는 서비스와 API를 이용하여 프로그래밍을 하기 위해서는 구글에 개발자 등록을 해야한다. 구글에 개발자 등록을 하기 위해서는 우선 구글 플레이 콘솔(Google Play Console)에 접속해야 한다.



구글 플레이 콘솔에 접속하기 위해서는 구글 검색창에서 구글 플레이 콘솔이라고 검색한 뒤 최상단 홈페이지에 접속하면 된다.




개발자 콘솔에 접속했다면 개발자 등록을 하고자하는 구글 계정으로 로그인을 한다.



구글의 개발자 등록은 위의 그림과 같은 순서로 이루어진다. 로그인 한 이후에는 개발자 계약을 수락해야 하는데, 개발자의 실수로 인해서 개발자 등록이 해지된다거나 구글의 API를 사용하거나 서비스를 이용하여 게시된 상품의 게시가 중지되는 문제가 발생할 수도 있기 때문에 계약서를 꼼꼼히 읽고 주의를 하는 것이 좋다.



계약을 수락하면 개발자 등록 수수료를 결제해야 하는데 25달러가 든다. 어떤 개발자 등록처럼 연회비 개념으로 내야하는 것이 아니라 등록할 때 최초 1회만 결제하면 되기 때문에 개발자 등록을 함으로서 얻을 이익에 비하면 부담이 적은 편이다.



구글은 별도의 공인인증서나 키보드 보안 프로그램을 강제하기 않기 때문에, 격렬한 발암 없이도 간단하게 수수료 결제를 끝낼 수 있다.



마지막으로 세부정보를 간단하게 입력하고 등록 완료를 누르면 구글 개발자 등록을 마치게 된다.



이제부터 구글에서 제공하는 개발자용 API와 서비스를 이용할 수 있고 구글 플레이 스토어를 통해 앱을 출시할 수도 있게 되었다.

반응형

'GoogleDevelop' 카테고리의 다른 글

[Google] 구글 개발자 등록하기  (0) 2017.07.18
반응형

유니티에서 파이어베이스 인증(Auth) 기능 이용하기



네트워크 게임을 제작할 때, 중요한 부분 중의 하나가 회원가입, 로그인, 로그아웃 등의 기능을 제공하는 것이다. 이 인증 기능들을 제공하고 관리하는 것을 직접 구현하기 위해서는 해야할 일이 많다. 회원들의 목록과 정보를 관리하는 데이터베이스도 만들어야 하고 서버에 유저들이 회원가입이 로그인을 위해서 입력한 정보를 보내고 그 결과를 돌려주는 기능들 역시 직접 구현해야만 한다. 하지만 구글의 파이어베이스에서는 사용자들이 필요로 하는 기능들을 이미 제공하고 있다.


지난 섹션에서 우리는 파이어베이스에서 테스트 프로젝트를 생성하고 유니티와 연결하는 작업을 진행했다. 이번 섹션의 예시는 지난 섹션 이후에서 부터 시작하도록 하겠다.



파이어베이스 시작하기로 제일 첫 화면으로 들어가면 지난 섹션에서 만든 테스트 프로젝트가 보일 것이다. 그 프로젝트를 선택하면 해당 프로젝트의 설정가능한 기능들의 목록을 볼 수 있다.



이 중에서 우리가 사용할 기능을 Authentication(인증)이다. 이 기능을 이용하면 별도의 회원정보를 위한 데이터베이스 구축이나 기능 구현없이 회원가입, 로그인, 로그아웃 등의 기능을 만들 수 있다. 이 authentication 메뉴를 선택해서 들어가보면 다음과 같은 화면을 볼 수 있다.



사용자 탭에서는 현재 제공하는 프로젝트에 가입된 사용자들의 목록을 보여주는데 현재는 가입된 유저가 없기 때문에 아무런 사용자도 나오지 않는다.



그 옆의 로그인 방법 탭에서는 로그인에 사용할 방법들을 설정할 수 있다. 단순하게 이메일과 비밀번호를 이용해서 로그인 하는 방법도 제공하지만 구글 아이디나 페이스북, 트위터등의 아이디를 통해서도 가입이 가능하도록 기능을 제공하고 있다. 현재는 프로젝트가 처음으로 만들어졌기 때문에 모든 로그인 방법에 대해서 "중지됨"이라고 표시되어 있다. 이번 섹션의 예제에서는 이메일을 통한 로그인 방법을 사용해보겠다.



이메일/비밀번호 항목을 선택해서 사용설정을 켜주고 저장한다. 다만 이 부분에서 주의할 점이 하나 있다. 파이어베이스 프로젝트에서 기능 옵션을 변경하였다면 google-services.json 파일의 내용이 유니티 프로젝트에 넣어줬던 파일과 다르게 변경되기 때문에 새롭게 다운받아서 넣어주어야 한다는 것이다. 그렇게 하지 않는다면 기존의 google-services.json 파일을 사용하고 있는 프로젝트는 변경된 파이어베이스 서버에 제대로 접속할 수 없게 된다.


파이어베이스 프로젝트의 기능 옵션을 변경해서 google-services.json 파일을 새로 다운로드 받아야 한다면 다음의 경로를 따르면 된다.



그 다음의 작업은 유니티 프로젝트에서 이루어질 것이다. 이전 섹션에서 걸어줬던 작업에 필요한 파이어베이스 유니티 SDK를 다운로드 받을 수 있는 링크를 다시 걸겠다.


https://firebase.google.com/docs/unity/setup


다운로드 받은 SDK의 압축을 풀어보면 필요한 SDK들이 기능별로 유니티 패키지로 묶어있는 것을 볼 수 있다. 우리는 이 중에서 FirebaseAuth.unitypackage를 유니티 프로젝트에 임포트해야 한다.



유니티 에디터의 프로젝트 뷰에서 우클릭한 이후에 Import Package > Custom Package를 선택한다.




아까 받은 SDK 중에서 FirebaseAuth.unitypackage를 임포트한다.



필요한 SDK를 임포트하고 나면 프로젝트 창이 다음처럼 될 것이다.



이렇게 되면 파이어베이스의 인증 기능을 사용하기 위한 준비가 모두 끝난 것이다.



1. 회원가입기능 만들기

우선은 이메일과 비밀번호를 이용한 회원가입 기능을 제작해보겠다. 다음과 같이 UGUI를 이용해서 화면을 구성해보자.



이메일과 비밀번호를 입력할 수 있는 InputField와 회원가입, 로그인을 할 수 있는 버튼과 마지막에 결과를 알려줄 텍스트를 만들었다. 다음 과정은 인증 과정을 관리할 오브젝트를 만드는 것이다. 씬에 AuthObject를 만들고 그 오브젝트에 FirebaseManager라는 스크립트를 만들어서 붙여준다.



FirebaseManager의 코드 내용은 다음과 같다 :


using UnityEngine;
using UnityEngine.UI;

public class FirebaseManager : MonoBehaviour
{
    // 이메일 InputField
    [SerializeField]
    InputField emailInput;
    // 비밀번호 InputField
    [SerializeField]
    InputField passInput;
    // 결과를 알려줄 텍스트
    [SerializeField]
    Text resultText;

    // 인증을 관리할 객체
    Firebase.Auth.FirebaseAuth auth;

    // Use this for initialization
    void Awake ()
    {
        // 인증을 관리할 객체를 초기화 한다.
        auth = Firebase.Auth.FirebaseAuth.DefaultInstance;
    }
   
    // 회원가입 버튼을 눌렀을 때 작동할 함수
    public void SignUp()
    {
        // 회원가입 버튼은 인풋 필드가 비어있지 않을 때 작동한다.
        if(emailInput.text.Length != 0 && passInput.text.Length != 0)
        {
            auth.CreateUserWithEmailAndPasswordAsync(emailInput.text, passInput.text).ContinueWith(
                task =>
                {
                    if(!task.IsCanceled && !task.IsFaulted)
                    {
                        resultText.text = "회원가입 성공";
                    }
                    else
                    {
                        resultText.text = "회원가입 실패";
                    }
                });
        }
    }

    // 로그인 버튼을 눌렀을 때 작동할 함수
    public void SignIn()
    {
        // 로그인 버튼은 인풋 필드가 비어있지 않을 때 작동한다.
        if (emailInput.text.Length != 0 && passInput.text.Length != 0)
        {
            auth.SignInWithEmailAndPasswordAsync(emailInput.text, passInput.text).ContinueWith(
                task =>
                {
                    if (task.IsCompleted && !task.IsCanceled && !task.IsFaulted)
                    {
                        Firebase.Auth.FirebaseUser newUser = task.Result;
                        resultText.text = "로그인 성공";
                    }
                    else
                    {
                        resultText.text = "로그인 실패";
                    }
                });
        }
    }
}


코드의 작성을 마쳤다면 유니티 에디터의 오브젝트에 필요한 오브젝트를 넣어주어야 한다. FirebaseManager에는 각 Input Field와 결과 텍스트를 넣어주고 회원가입 버튼과 로그인 버튼의 OnClick 이벤트에 AuthObject를 끼워넣고 각자 호출해야하는 함수를 설정해주어야 한다.



이상으로 유니티에서 인증 기능에 필요한 모든 것을 만들었다.



하지만 여기서 테스트할 때 주의해야 할 점은 유니티 에디터 상에서 테스트하는 경우에는 모든 통신의 결과가 성공했다고 가정했다고 진행되기 때문에 제대로된 성공이나 실패 여부를 알고자 한다면 안드로이드로 빌드하여 모바일 상에서 테스트하는 것이 좋다. 또한 유니티 에디터 상에서 테스트된 것은 파이어베이스에 등록되지 않기 때문에 여기서 회원가입에 성공했다고 하더라도 Authentication의 사용자 목록에서는 나오지 않을 것이다. 또한 주의할 점은 만약 제대로된 이메일 주소가 아니거나 비밀번호의 길이가 너무 짧다면 회원가입에 실패할 수도 있다.


모바일 상에서 테스트하여 성공적으로 회원가입이 된다면 Authentication의 사용자 목록에 다음과 같이 출력될 것이다.



로그인에 성공한 유저를 로그아웃 시키고자 한다면 다음의 코드를 활용하면 된다.


auth.SignOut();



반응형
  1. 개양반 2018.01.06 18:06

    유니티 에디터 상에서도 로그인을 할 수 있는 방법은 없을까요?
    구글로그인 만들고 있는데
    매번 빌드해서 확인하는게 매우 번거롭네요 ㅠ

  2. 도화시 2020.04.22 18:31

    결과 리스트 값이 안변합니다ㅏ....... 뭐가 문제일까요 ㅠ !!인스펙터 text값에서는 변하는데!!
    정작 유니티 에디터에서는 '결과' 이값을 계속 유지합니다...
    빌드하고 봐도 그대로에요..ㅠㅠ

    • wergia 2020.04.22 21:45 신고

      일단 에디터에서는 무조건 성공으로 나오고 서버 리스트에는 안뜨는게 정상입니다.
      하지만 빌드해서 안되는 부분은 여러가지 요소가 문제가 될 수 있는데 일단 의심해볼 수 있는 부분은 로그인 제공업체를 설정하는 곳에 제대로 설정 되었는지 확인해보셔야될 것 같습니다.
      로그인 방식으로 사용하고자 하는 방식을 선택해서 사용설정을 해보세요.

    • wergia 2020.04.22 23:37 신고

      버튼을 눌렀는데도 결과라는 텍스트가 계속 뜬다면 코드작성 도중에 조건을 잘못 설정했거나, 버튼 이벤트에 함수를 등록을 빼먹었을 수도 있습니다.

    • 도화시 2020.04.22 23:43

      답변 감사합니다!! 안돼서 여기저기 서치해보다가 유니티허브에도 질문글 올렸습니다 ㅜㅜ 말씀하신대로 설정부분에서 꼬인건가 싶어서 다시 처음부터 해보려합니다.. 계정은 만들어지긴해요! 텍스트 결과값이 안바뀌어서 만들어졌는지 확인하려면 파이어베이스 들어가서 직접확인해야합니다 ㅎㅎ.. https://cafe.naver.com/unityhub

    • wergia 2020.04.23 14:05 신고

      음 리스트에는 올라가는데 결과 문자열만 안바뀌는 부분이라면 확실히 중간 조건문이 잘못들어가있거나 인스펙터뷰에서 프로퍼티가 빠져있을 확률이 크네요

  3. Gamja 2020.09.17 11:12

    안녕하세요 글 잘 읽었습니다 :), 좀 궁금한것이 현재 유니티 사용하구요, 모바일환경에서 파이어베이스로 Google 로그인 후, Sign out 하고 재 로그인 시도할때 브라우저에 전에 로그인했던 계정이 캐싱되어 있어서 다른계정을 선택해 로그인을 하지 못하고 있습니다. 직접 브라우저 들어가서 구글 로그아웃 하지 않는이상 안되는데요, 혹시 방법이 있을까요?

    • wergia 2020.10.20 00:08 신고

      그런 부분까지는 제가 깊게 테스트를 해보지 못해서 알기 어렵네요.
      그리고 대부분의 사용자는 안드로이드 모바일 환경에서 구글 계정을 단일로 쓰는 경우가 많아서 다른 계정으로 로그인 하는 경우가 많을까요?

  4. 123 2021.08.30 02:31

    궁금한게 있는데요
    소셜 계정 연동을 이용하는경우 굳이 파이어베이스를 이용할 필요가 있을까요??
    예를들어 구글 소셜계정을 이용하면 이미 구글 클라우드로 인증을 할텐데 그 이후에 굳이 파이어베이스 인증을 다시 해야하나 싶네요

    물론 위 예제는 계정을 만드는 예제니까 납득이 되지만요

반응형

Unity3D 프로젝트와 Firebase 연결하기

개요

구글에서 Firebase라는 새로운 서비스가 나왔다. 이 서비스는 구글이 가지고 있는 인프라를 이용해서 별도의 서버실이나 장비 없이도 네트워크를 구축할 수 있도록 도와줄 뿐만 아니라 구글이 제공하는 기능들과 서비스를 이용해서 빠르고 쉽게 개발할 수 있도록 도와준다.



대표적으로 지원하는 기능은 회원가입, 로그인등을 처리할 수 있는 인증 기능과 NoSQL 기반의 실시간 데이터베이스 등이 있다. 이 구글의 Firebase를 이용해서 간단한 게임 네트워크를 구현할 수 있다.



연결하기



https://console.firebase.google.com/?hl=ko

위 주소로 들어가면 Firebase에 프로젝트를 추가할 수 있게 된다.


1. 프로젝트 추가를 선택한다.


2. 프로젝트 이름을 입력하고 국가를 선택하고 프로젝트 만들기를 누른다.