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