티스토리 뷰

서버 개발자가 아니거나, 간단한 사이드 프로젝트를 하는 입장에서 백엔드를 필요로 하는 상황이 굉장히 많이 발생한다. 이를 해결해 줄 것이 바로 Google의 Firebase인데, 지금 내가 서비스 운영 중인 명언 iOS 앱 또한 간단한 명언 데이터를 수집/제공해 줄 목적으로 Firebase의 Realtime Database 서비스를 이용 중이다.
 
이 앱의 Android OS는 동료 개발자가 운영하고 있는데, 현재는 서비스 앱 말고도 수집된 명언 데이터를 처리하는 간단한 앱 또한 이 친구가 만들어 둬 좀 더 수월한 데이터 처리를 돕고 있었다.
 
이 앱을 운영한 지가 어엿 4년 차가 돼 가는데, 둘 다 소프트웨어 공학적 지식이 불충분한 상태에서 시작했기에 디자인 패턴을 고려하지 않았고, 기능을 추가할수록 코드가 복잡해지는 상황에  봉착하게 되었다. 뿐만 아니라 서비스가 커짐에 따라 명언 데이터의 데이터베이스도 재정립할 필요가 있었고, 또 이것을 쉽게 다뤄줄 프로그램이 필요하였다.
 
대대적인 수정이 필요하겠지만 천릿길도 한 걸음부터 아니겠는가. 먼저 수집된 데이터를 좀 더 효율적으로 처리할 프로그램을 개발해보려 한다. 거창한 것은 아니고, 굳이 인터페이스가 필요 없다 생각하여 터미널에서 돌아가는 Python 프로그램을 계획 중이다. 현재 AOS, iOS는 서로 같은 데이터베이스를 공유하고 있기 때문에, 이 데이터베이스로 접근 및 수정할 수 있는데 또 하나의 Python 프로그램만 만들어보려 한다.
 
Firebase에 연동하는 과정만 익혀 둔다면 json 자료구조에 대한 이해간단한 파이썬 문법만으로도 해당 태스크는 처리가 수월할 것으로 예상된다. 따라서 오늘은 firebase 연동, 데이터베이스 접근 및 쓰기까지의 간단한 과정을 소개해보려 한다.
 

pyrebase 설치

 

GitHub - thisbejim/Pyrebase: A simple python wrapper for the Firebase API.

A simple python wrapper for the Firebase API. Contribute to thisbejim/Pyrebase development by creating an account on GitHub.

github.com

한국말로 읽으면 똑같이 파이어베이스가 되겠군. 이름에서 알 수 있듯이 firebase API의 python wrapper이다. 이게 무슨 말이냐? 그냥 파이썬으로 firebase API를 쉽게 사용해 주는 모듈이라는 소리. 필자는 맥 환경을 사용하기 때문에 그냥 터미널을 열고 코드 한 줄이면 설치가 가능하다.

pip install pyrebase

 

Firebase 시작 및 초기 설정

 
1. 프로젝트 생성한 후에
 
2. Realtime Database(테스트 모드)를 만들어주고,
 
3. 톱니바퀴 모양을 눌러 프로젝트 설정으로 이동,
 
4. 이어서 앱 추가 버튼을 클릭해준다.
 

마지막으로 세 번째에 보이는 웹 앱을 클릭해 주고 닉네임을 추가해 주면 끝이다. 새롭게 시작하는 거라면 프로젝트를 만들 때에 웹 앱으로 시작해 주면 된다.
 
그러고 나면

이 부분이 보일 텐데 저기서 보이는 json 느낌의 데이터가(후가공 필요) Python code를 통해 데이터베이스에 접근하기 위해 필요한 정보라고 보면 되시겠다.
 

python, json 파일 생성 및 코드 작성

 
이 정보들을 모두 가져와 json 데이터 형식으로 바꿔 주면 데이터베이스에 접근하기 위한 입장 티켓은 완성이다.

{
    "apiKey": "AIzaSyBxLLjhEOHCIwsk8jaqlAiIc4MRIhhYm14",
    "authDomain": "databasewithpython-f2762.firebaseapp.com",
    "databaseURL": "https://databasewithpython-f2762-default-rtdb.firebaseio.com",
    "projectId": "databasewithpython-f2762",
    "storageBucket": "databasewithpython-f2762.appspot.com",
    "messagingSenderId": "875171369357",
    "appId": "1:875171369357:web:cf6a0dcbabb364e807edc4"
}

 
예시 json data는 다음과 같겠지. 해당 코드를 auth.json이라는 이름의 파일로 저장해두었다. 필자는 어차피 쓰지 않을 거라 공개로 두지만, 본인의 서비스라면 입장 티켓을 남에게 함부로 보여주면 안 된다.
 
이어서 같은 디렉터리에 다음과 같은 예시 코드를 작성해 보자.
(문법에 대한 자세한 설명은 pyrebase 문서를 참고해 주면 된다)

import pyrebase
import json

with open("auth.json") as f:
    config = json.load(f)

firebase = pyrebase.initialize_app(config)
db = firebase.database()

data = {"password" : 1234, "name" : "Dusan Baek"}
db.child("User").update(data)

 
 
해당 예시 코드는 auth.json이라는 입장 티켓을 통해 데이터베이스에 접근하고, 이어서 User라는 하위 계층에 미리 만들어 둔 data를 작성한다는 의미이다.

결과적으로 아주 입력이 잘 된 모습을 확인할 수 있다.

'Dev > etc' 카테고리의 다른 글

코스트잇 앱 개인정보 처리방침  (0) 2021.09.10
킬미 앱 개인정보 처리방침  (0) 2021.01.10
짠! 앱 개인정보 처리방침  (0) 2020.12.28
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/06   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30
글 보관함