Python์—์„œ ๊ตฌ๊ธ€์Šคํ”„๋ ˆ๋“œ์‹œํŠธ ๋ฐ์ดํ„ฐ ๊ฐ€์ ธ์˜ค๋Š” ๋ฐฉ๋ฒ•
๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๋””์ง€ํ„ธ ๊ฟ€ํŒ

Python์—์„œ ๊ตฌ๊ธ€์Šคํ”„๋ ˆ๋“œ์‹œํŠธ ๋ฐ์ดํ„ฐ ๊ฐ€์ ธ์˜ค๋Š” ๋ฐฉ๋ฒ•

by ์ผ์ƒ์„ ๊ณต์œ ํ•ฉ๋‹ˆ๋‹ค 2022. 4. 15.

๊ตฌ๊ธ€ ์Šคํ”„๋ ˆ๋“œ์‹œํŠธ ๋ฐ์ดํ„ฐ์™€ python์„ ์—ฐ๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ๊ณต์œ ํ•ด๋ด…๋‹ˆ๋‹ค. ์‚ฌ์ „์— ๊ตฌ๊ธ€ ํด๋ผ์šฐ๋“œ Platform์—์„œ ์„œ๋น„์Šค ๊ณ„์ •์„ ๋ฐœ๊ธ‰๋ฐ›์•„์•ผ๋งŒ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. 

 

Google Cloud Platform

ํ•˜๋‚˜์˜ ๊ณ„์ •์œผ๋กœ ๋ชจ๋“  Google ์„œ๋น„์Šค๋ฅผ Google Cloud Platform์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๋กœ๊ทธ์ธํ•˜์„ธ์š”.

accounts.google.com

 

์—ฐ๋™ ๋ฐฉ๋ฒ•

1. ๊ตฌ๊ธ€ ํด๋ผ์šฐ๋“œ ํ”Œ๋žซํผ์—์„œ [์‚ฌ์šฉ์ž ์ธ์ฆ ์ •๋ณด] ๋ฅผ ํด๋ฆญํ•˜์—ฌ ์„œ๋น„์Šค ๊ณ„์ •์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค. 

 

2. ์„œ๋น„์Šค ๊ณ„์ • ๋ฉ”๋‰ด์—์„œ ์„œ๋น„์Šค ๊ณ„์ • ๋งŒ๋“ค๊ธฐ๋ฅผ ํด๋ฆญํ•˜์—ฌ ์„œ๋น„์Šค ๊ณ„์ •์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ €๋Š” ์–ธ์–ด ๋ณ„๋กœ ๋”ฐ๋กœ ๊ด€๋ฆฌํ•˜๋ ค ํ‚ค๋ฅผ N๊ฐœ ๋ฐœ๊ธ‰ ํ•˜์˜€์Šต๋‹ˆ๋‹ค. 

 

3. ์›ํ•˜๋Š” ์ •๋ณด๋ฅผ ํด๋ฆญ ํ›„ ์—‘์„ธ์Šค ๊ถŒํ•œ์„ ํŽธ์ง‘์ž๋กœ ์„ค์ •ํ•˜๋ฉด ์ฝ๊ณ  ์“ฐ๊ณ  ์‚ญ์ œ๊ฐ€ ๋‹ค ์šฉ์ดํ•ฉ๋‹ˆ๋‹ค.

 

4. "์™„๋ฃŒ" ๋ฒ„ํŠผ ๋ˆ„๋ฅผ ์‹œ .json ํŒŒ์ผ์„ ํ•˜๋‚˜ ๋‹ค์šด ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ํŒŒ์ผ์„ ์‚ฌ์šฉํ•  ํ”„๋กœ์ ํŠธ ํด๋”์— ๋„ฃ์–ด์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

 

5. ์„œ๋น„์Šค ๊ณ„์ •์— ์ƒ์„ฑ๋œ ์ด๋ฉ”์ผ (xxxx@.iam.gserviceaccount.com) ์„ ๋ณต์‚ฌํ•ด๋‘ก๋‹ˆ๋‹ค.

 

6. ์—ฐ๋™ํ•  ๊ตฌ๊ธ€ ๋ฌธ์„œ์— ๋“ค์–ด๊ฐ€ ๊ณต์œ ์— ํ•ด๋‹น ์ด๋ฉ”์ผ์„ ๋ถ™์—ฌ๋„ฃ์Šต๋‹ˆ๋‹ค. 

 

7. python ํŒŒ์ผ์— ์•„๋ž˜์™€ ๊ฐ™์ด ์†Œ์Šค๋ฅผ ๋ณต์‚ฌํ•˜์—ฌ ๋ถ™์—ฌ๋„ฃ์Šต๋‹ˆ๋‹ค.

import gspread

allowed_user_list = []

def googlelib():
    # ๊ตฌ๊ธ€ ์Šคํ”„๋ ˆ๋“œ ์‹œํŠธ ์—ฐ๋™
    # google platform ์ธ์ฆ key file
    json_file_name = 'key file .json'
    gc =  gspread.service_account(filename=json_file_name)

    #๋ฆฌ์ŠคํŠธ ๋ถˆ๋Ÿฌ์˜ฌ URL
    doc = gc.open_by_url("์Šคํ”„๋ ˆ๋“œ์‹œํŠธ URL")
    worksheet = doc.worksheet("์Šคํ”„๋ ˆ๋“œ์‹œํŠธ ์‹œํŠธ๋ช…")
    tempList = worksheet.range("์Šคํ”„๋ ˆ๋“œ์‹œํŠธ์—์„œ ๋ฐ์ดํ„ฐ ๊ฐ€์ ธ์˜ฌ ๋ฒ”์œ„")

    for i in range(len(tempList)):
        if i > 0 and tempList[i].value !='' :
            allowed_user_list.append(tempList[i].value)
    
    print(allowed_user_list)

 

์œ„์™€ ๊ฐ™์ด ํ™œ์šฉํ•  ๊ฒฝ์šฐ ๊ตฌ๊ธ€ ์Šคํ”„๋ ˆ๋“œ ์‹œํŠธ์— ์ ‘๊ทผํ•˜์—ฌ ์›ํ•˜๋Š” ์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ  ์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ € ๊ฐ™์€ ๊ฒฝ์šฐ ๊ณ ์ •๋œ ํŒŒ์ผ๋ช…์„ ๋„ฃ๊ธฐ๋ณด๋‹ค info.json ํŒŒ์ผ์„ ํ•˜๋‚˜ ๋” ๋งŒ๋“ค์–ด์„œ file openํ•˜์—ฌ ์†Œ์Šค ๋ฐ–์—์„œ ์‰ฝ๊ฒŒ ์ˆ˜์ •ํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์ž‘์—… ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

 {
    "keyFile" : "googleKeyํŒŒ์ผ.json",
    "spreadsheetURL" : "๊ตฌ๊ธ€ ์Šคํ”„๋ ˆ๋“œ ์‹œํŠธ URL",
    "sheetName" : "์‹œํŠธ์ด๋ฆ„",
    "DataRange" :"์‹œํŠธ๋ฒ”์œ„"
 }

๐Ÿ python์—์„œ ์œ„ ํŒŒ์ผ ์—ฌ๋Š” ๋ฐฉ๋ฒ•

# ๊ฒฝ๋กœ๋Š” ์•Œ์•„์„œ ์…‹ํŒ…์„ ํ•ด์ฃผ์„ธ์š”.
with open('info.json') as json_file:
    info = json.load(json_file)

 

์œ„์™€ ๊ฐ™์ด python์—์„œ๋„ ๊ตฌ๊ธ€ ์Šคํ”„๋ ˆ๋“œ์‹œํŠธ ๋ฐ์ดํ„ฐ๋ฅผ ๋งˆ์Œ๊ป ํ™œ์šฉํ•ด๋ด…์‹œ๋‹ค.

๋Œ“๊ธ€