SDK ์—ฐ๋™

๐Ÿ“˜

Hackle Python SDK๋Š” Python 3 ์ด์ƒ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

WSGI ํ™˜๊ฒฝ์„ ์‚ฌ์šฉํ•˜์‹œ๋Š” ๊ฒฝ์šฐ ๊ฐ€์ด๋“œ WSGI ์„ค์ • ์„ ๊ผญ ํ™•์ธํ•ด์ฃผ์„ธ์š”


์˜์กด์„ฑ ์ถ”๊ฐ€

pip install hackle-sdk


SDK ์ดˆ๊ธฐํ™”

โ—๏ธ

hackle_client๋Š” ์ „์—ญ๋ณ€์ˆ˜์ด๋ฉฐ, ๋ฐ˜๋“œ์‹œ ํ•œ ๋ฒˆ๋งŒ ์ƒ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

hackle_client๋Š” ์“ฐ๋ ˆ๋“œ์—์„œ I/O์—†์ด ๋ฐ”๋กœ ๊ฒฐ๊ณผ๋ฅผ ํ‰๊ฐ€ํ•˜๊ธฐ ์œ„ํ•ด ๋‚ด๋ถ€์ ์œผ๋กœ ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
์ด๋ฅผ ์œ„ํ•ด ์ถ”๊ฐ€์ ์ธ ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๋ชจ๋“  ์š”์ฒญ์— ๋Œ€ํ•ด ์ƒˆ๋กœ์šด ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•˜์ง€ ์•Š๊ณ , ์ด๋ฏธ ์ƒ์„ฑ๋˜์–ด ์žˆ๋Š” ์ธ์Šคํ„ด์Šค๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

hackle_client ๋Š” ์‹ฑ๊ธ€ํ†ค(Singleton) ๊ฐ์ฒด๋กœ ๋งŒ๋“ค์–ด์ ธ ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ๋‹ค๋ฅธ ํ•จ์ˆ˜์—์„œ ์‚ฌ์šฉํ•  ๋•Œ hackle.Client()๋กœ ์‚ฌ์šฉํ•ด๋„ ์žฌ์ƒ์„ฑํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

hackle_client๋Š” SDK ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ๋ฉ”์†Œ๋“œ๋“ค์„ ์ œ๊ณตํ•˜๋Š” ํด๋ž˜์Šค์ž…๋‹ˆ๋‹ค.

SDK๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” hackle_client ์ดˆ๊ธฐํ™”๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์ธ์Šคํ„ด์Šคํ™”

SDK ํ‚ค๋ฅผ ์ „๋‹ฌํ•˜์—ฌ hackle_client๋ฅผ ์ธ์Šคํ„ด์Šคํ™” ํ•ฉ๋‹ˆ๋‹ค.
hackle_client๋Š” ํ•„์š”ํ•œ ์ •๋ณด๋“ค์„ ์–ป๊ธฐ ์œ„ํ•ด ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์ž‘์—…์œผ๋กœ ํ•ตํด ์„œ๋ฒ„์™€ ์ฃผ๊ธฐ์ ์œผ๋กœ ๋™๊ธฐํ™”ํ•ฉ๋‹ˆ๋‹ค.

  • SDK ํ‚ค๋Š” ํ•ตํด ์„œ๋น„์Šค์˜ ๋Œ€์‹œ๋ณด๋“œ ์•ˆ์— ์œ„์น˜ํ•œ SDK ์—ฐ๋™ ์ •๋ณด์—์„œ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
from hackle import hackle

# YOUR_SERVER_SDK_KEY ์ž๋ฆฌ์— SDK ํ‚ค๋ฅผ ๋„ฃ์Šต๋‹ˆ๋‹ค.
hackle_client = hackle.Client(sdk_key=YOUR_SERVER_SDK_KEY)


์ข…๋ฃŒ

์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ข…๋ฃŒ๋  ๋•Œ hackle_client.close() ๋ฉ”์†Œ๋“œ๋ฅผ ํ†ตํ•ด hackle_client๋ฅผ ์ข…๋ฃŒ์‹œ์ผœ์•ผ ํ•ฉ๋‹ˆ๋‹ค.
์ด ๊ณผ์ •์„ ํ†ตํ•ด ์‚ฌ์šฉ ์ค‘์ธ ๋ฆฌ์†Œ์Šค๋ฅผ ๋ฐ˜๋‚ฉํ•˜๊ณ  ๋‚จ์•„์žˆ๋Š” ์ด๋ฒคํŠธ๋ฅผ ์ „์†กํ•ฉ๋‹ˆ๋‹ค.

โ—๏ธ

hackle_client.close() ํ˜ธ์ถœ ์—†์ด ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ข…๋ฃŒ๋˜๋ฉด ์ด๋ฒคํŠธ๊ฐ€ ๋ˆ„๋ฝ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

hackle_client.close()

Flask๋‚˜ Django๋ฅผ ์‚ฌ์šฉ ์ค‘ ์ด๋ผ๋ฉด?

@atexit.register๋ฅผ ํ†ตํ•ด ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ข…๋ฃŒ ์‹œ ์ž๋™์œผ๋กœ hackle_client๋ฅผ ์ข…๋ฃŒ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

import atexit

@atexit.register
def __exit__():
    hackle_client.close()