당신이 뭔가 개발하면서 테이블 형식의 결과값을 어딘가에 저장해야 하는 경우, 보통 다음과 같은 선택지가 있을 겁니다.
- 로컬 파일에 뱉는다 = 매번 서버에 접속해서 로컬 파일을 확인해야 하는 번거로움이 기다리고 있습니다.
- 어딘가에 DB 서버를 띄우고 거기에다 쓴다 = 1보다도 더한 관리 비용을 지불하시겠다구요... 네, 알겠습니다.
- 남이 제공하는 좋은 솔루션을 활용한다 <- 바로 여기
Google sheet를 쓴다면 다음과 같은 장점이 있습니다.
- 일단 확인이 간편하다: 바로 웹에서 확인 가능하다는 게 개인적으로 큰 장점이었습니다.
- 앱에서 접근이 손쉽다: 설정만 잘 하면...
다만 설정을 좀 해줘야 하고, 여기서 뜬금없는 Google cloud가 의존성으로 나옵니다;; 글이 너무 길어지니 핵심만 정리하면 - https://docs.gspread.org/en/latest/oauth2.html#for-bots-using-service-account 에서 설명하고 있는데, 당신의 앱이 여기서 말하는 봇이라고 생각하면 됩니다.
대충 만들어본 예제 코드:
import gspread
class GSheet:
def __init__(self, spreadsheet_name):
self.gc = gspread.service_account(filename='serviceaccount.json')
self.spreadsheet = self.gc.open(spreadsheet_name)
self.worksheet = self.spreadsheet.get_worksheet(0)
def append_row(self, row):
self.worksheet.append_row(row)
def append_if_not_exist(self, row):
"""Using first column as primary key, append the row if the key does not exist"""
key = row[0]
key_values = set(self.worksheet.col_values(1))
if key in key_values:
return
self.append_row(row)
이 글이 도움이 되셨다면 구독, 좋아요, 알림설정 부탁드립니다. 감사합니다.
PS: 가입 기념으로 쓸데없는 글을 한번 써 봤는데, 기본 편집기는 너무 안좋은 것 같습니다. 차라리 외부 마크다운 문서를 바로 붙여넣기 할 수 있게 해주면 더 좋을 것 같습니다.