Contents

[Project] Youtube Shorts Generator : dall3 api ๋ฅผ ์“ฐ๋ฉด์„œ

Contents

Youtube Shorts Generator ๋Š” content ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ gpt์—๊ฒŒ ์Šคํ† ๋ฆฌ๋ณด๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ฒŒ ํ•˜๊ณ , ์Šคํ† ๋ฆฌ๋ณด๋“œ๋Š” ์—ฌ๋Ÿฌ๊ฐœ์˜ ์”ฌ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ๊ฐ ์”ฌ์˜ ์ด๋ฏธ์ง€ ํ”„๋กฌํ”„ํŠธ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ dalle-3 ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ ์Šคํ† ๋ฆฌ์— ๋Œ€ํ•œ ์ด๋ฏธ์ง€ ์ƒ์„ฑ์‹œํ‚ค๊ณ , ์ƒ์„ฑ๋œ ์ด๋ฏธ์ง€๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ stability AI ์˜ img2vid ๋ชจ๋ธ์„ ์ด์šฉํ•˜์—ฌ ์ด๋ฏธ์ง€๋ฅผ ์งง์€ ๋น„๋””์˜ค๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ๋ชจ๋“  ์”ฌ์„ ์ด์–ด ๋ถ™์ธ ํ›„, ๋Œ€๋ณธ์„ ์ž…ํžˆ๊ณ , ์Œ์„ฑ์„ ์ž…ํ˜€ ์š”์ฆ˜ ์œ ํ–‰ํ•˜๋Š” shorts๋ฅผ ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•˜๊ฒŒ ํ•ด์ฃผ๋Š” ํ”„๋กœ๊ทธ๋žจ์ด๋‹ค.

์˜ค๋Š˜ ํฌ์ŠคํŒ…ํ•  ์ฃผ์ œ๋Š”, ์ž‘์„ฑ๋œ ์Šคํ† ๋ฆฌ๋ณด๋“œ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ด๋ฏธ์ง€๋ฅผ ์ƒ์„ฑํ•˜๋Š” dalle3 ๋ชจ๋ธ์„ ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ–ˆ๋Š”์ง€, ๊ทธ๋ฆฌ๊ณ  ํ•ด๋‹น ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•˜๋ฉด์„œ ์ƒ๊ฒผ๋˜ ๋ฌธ์ œ์™€ ๊ทธ ๋ฌธ์ œ๋ฅผ ์–ด๋–ป๊ฒŒ ํ•ด๊ฒฐํ•˜๊ณ ์ž ํ•˜๋Š”์ง€์— ๋Œ€ํ•œ ํฌ์ŠคํŒ…์„ ํ•˜๋ ค๊ณ  ํ•œ๋‹ค.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
DALL-E 3๋ฅผ ๊ฐœ๋ฐœ์ž ๊ด€์ ์—์„œ ๋ณด๋ฉด, ์ด ๋ชจ๋ธ์€ ์ž์—ฐ์–ด ์ฒ˜๋ฆฌ์™€ ์ด๋ฏธ์ง€ ์ƒ์„ฑ ๊ธฐ์ˆ ์„ ํ†ตํ•ฉํ•œ ์ธ๊ณต์ง€๋Šฅ ๋ชจ๋ธ์ด์•ผ. DALL-E 3์˜ ํ•ต์‹ฌ์€ ํ…์ŠคํŠธ๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ ๊ทธ ๋‚ด์šฉ์— ๋ถ€ํ•ฉํ•˜๋Š” ๊ณ ํ•ด์ƒ๋„ ์ด๋ฏธ์ง€๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ฑด๋ฐ, ์ด ๊ณผ์ •์—์„œ ๋ช‡ ๊ฐ€์ง€ ์ค‘์š”ํ•œ ๊ธฐ์ˆ ์  ์š”์†Œ๋“ค์ด ์ž‘์šฉํ•ด.

1. ๋ชจ๋ธ ์•„ํ‚คํ…์ฒ˜
DALL-E 3๋Š” ๋ณ€ํ˜•๋œ ํŠธ๋žœ์Šคํฌ๋จธ ์•„ํ‚คํ…์ฒ˜๋ฅผ ์‚ฌ์šฉํ•ด. ํŠธ๋žœ์Šคํฌ๋จธ๋Š” ์ฃผ๋กœ ์ž์—ฐ์–ด ์ฒ˜๋ฆฌ์—์„œ ์‚ฌ์šฉ๋˜์ง€๋งŒ, ์ด๋ฏธ์ง€์™€ ๊ฐ™์€ ๋‹ค๋ฅธ ํ˜•ํƒœ์˜ ๋ฐ์ดํ„ฐ์—๋„ ์ ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ์ ์ด ๋ฐํ˜€์กŒ์–ด. DALL-E 3๋Š” ์ด ์•„ํ‚คํ…์ฒ˜๋ฅผ ํ™œ์šฉํ•ด ํ…์ŠคํŠธ ์ž…๋ ฅ์„ ์ด๋ฏธ์ง€ ๋ฐ์ดํ„ฐ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋ณต์žกํ•œ ๊ณผ์ •์„ ์ฒ˜๋ฆฌํ•ด.

2. ํ›ˆ๋ จ ๋ฐ์ดํ„ฐ์™€ ํ•™์Šต ๋ฐฉ์‹
์ด ๋ชจ๋ธ์€ ๋Œ€๊ทœ๋ชจ ๋ฐ์ดํ„ฐ์…‹์—์„œ ํ•™์Šต๋˜์–ด์•ผ ๊ณ ํ’ˆ์งˆ์˜ ์ด๋ฏธ์ง€๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์–ด. ํ›ˆ๋ จ ๋ฐ์ดํ„ฐ๋Š” ๋‹ค์–‘ํ•œ ํ…์ŠคํŠธ ์„ค๋ช…๊ณผ ํ•ด๋‹น ์„ค๋ช…์— ๋งž๋Š” ์ด๋ฏธ์ง€๋กœ ๊ตฌ์„ฑ๋˜์–ด, ๋ชจ๋ธ์ด ํ…์ŠคํŠธ์™€ ์ด๋ฏธ์ง€ ์‚ฌ์ด์˜ ๊ด€๊ณ„๋ฅผ ํ•™์Šตํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค˜. ์ด ๊ณผ์ •์—์„œ๋Š” ๋†’์€ ์ปดํ“จํŒ… ๋ฆฌ์†Œ์Šค์™€ ๋ณต์žกํ•œ ๋ฐ์ดํ„ฐ ์ „์ฒ˜๋ฆฌ ์ž‘์—…์ด ํ•„์š”ํ•ด.

3. Zero-shot, Few-shot Learning
DALL-E 3๋Š” zero-shot ๋˜๋Š” few-shot ํ•™์Šต ๋Šฅ๋ ฅ์„ ๊ฐ–์ถ”๊ณ  ์žˆ์–ด์„œ, ๋ณธ ์  ์—†๋Š” ์ƒˆ๋กœ์šด ํ…์ŠคํŠธ ์„ค๋ช…์— ๋Œ€ํ•ด์„œ๋„ ์ ์ ˆํ•œ ์ด๋ฏธ์ง€๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์–ด. ์ด๋Š” ๋ชจ๋ธ์ด ๊ด‘๋ฒ”์œ„ํ•˜๊ฒŒ ์ผ๋ฐ˜ํ™”ํ•˜๋Š” ๋Šฅ๋ ฅ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Œ์„ ์˜๋ฏธํ•ด.

4. ๊ฐœ์„ ๋œ ํ•ด์ƒ๋„์™€ ๋””ํ…Œ์ผ
์ด์ „ ๋ชจ๋ธ๋“ค์— ๋น„ํ•ด DALL-E 3๋Š” ์ด๋ฏธ์ง€์˜ ํ•ด์ƒ๋„์™€ ๋””ํ…Œ์ผ์ด ํฌ๊ฒŒ ํ–ฅ์ƒ๋˜์—ˆ์–ด. ์ด๋Š” ๋ณต์žกํ•œ ํ…์Šค์ฒ˜, ์„ฌ์„ธํ•œ ๋””ํ…Œ์ผ, ์ •ํ™•ํ•œ ์ƒ‰์ƒ ์žฌํ˜„ ๋“ฑ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ด์„œ, ์‚ฌ์šฉ์ž๊ฐ€ ์›ํ•˜๋Š” ๋” ์‚ฌ์‹ค์ ์ด๊ณ  ์„ธ๋ฐ€ํ•œ ์ด๋ฏธ์ง€๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค˜.

5. ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ๋ฐ API ์ œ๊ณต
OpenAI๋Š” DALL-E 3๋ฅผ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ API๋ฅผ ์ œ๊ณตํ•˜๊ณ  ์žˆ์–ด. ๊ฐœ๋ฐœ์ž๋Š” ์ด API๋ฅผ ํ†ตํ•ด ์ž์‹ ์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜, ์›น์‚ฌ์ดํŠธ, ์†Œํ”„ํŠธ์›จ์–ด ๋“ฑ์— DALL-E 3 ๊ธฐ๋Šฅ์„ ์‰ฝ๊ฒŒ ํ†ตํ•ฉํ•˜๊ณ , ๋‹ค์–‘ํ•œ ์šฉ๋„๋กœ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์–ด.

by gpt.

๋‚˜๋Š” openAI ์—์„œ dall3 ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” API๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค. API๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋‹จ์ˆœํžˆ API_KEY ๋ฅผ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋“ฑ๋ก๋งŒ ํ•ด์ฃผ๋ฉด ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์šฉ์ด ๊ฐ„ํŽธํ•˜๋‹ค.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
from openai import OpenAI
client = OpenAI()

response = client.images.generate(
  model="dall-e-3",
  prompt="a white siamese cat",
  size="1024x1024",
  quality="standard",
  n=1,
)

image_url = response.data[0].url

dall-e-3 ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋ฉด, quality ๊ฐ’์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ‘standard’ ์ธ๋ฐ, ‘hd’์˜ ๊ณ ํ•ด์ƒ๋„ ์ด๋ฏธ์ง€๋ฅผ ์ƒ์„ฑํ•˜๋„๋ก ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ถ”๊ฐ€์ ์œผ๋กœ style์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ‘vivid’ ์™€ ’natural’์„ ์ œ๊ณตํ•œ๋‹ค. vivid ๋Š” hyper-real, dramastic image ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค๊ณ  ํ•˜๊ณ , natural์€ ๋ง ๊ทธ๋Œ€๋กœ ์ข€ ๋” ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์ด๋ฏธ์ง€๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.

์‚ฌ์ด์ฆˆ๋ฅผ ์ž์œ ๋กญ๊ฒŒ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ์ข‹๊ฒ ์ง€๋งŒ, ์•„์‰ฝ๊ฒŒ๋„ dalle3๋Š” 1024x1024, 1024x1792 or 1792x1024 pixels ๋งŒ ์ง€์›ํ•œ๋‹ค. ๋”ฐ๋ผ์„œ, ํ•ด๋‹น ํ”„๋กœ์ ํŠธ์˜ ์ด๋ฏธ์ง€ ์ƒ์„ฑ ๋ชจ๋ธ์€ dalle3๊ฐ€ ์ƒ์„ฑํ•œ ์ด๋ฏธ์ง€๋ฅผ, img2vid ๋ชจ๋ธ์˜ input์— ๋งž๊ฒŒ ํ•ด์ƒ๋„๋ฅผ ๋ณ€๊ฒฝํ•ด์•ผ ํ•˜๋ฏ€๋กœ ํ•ด์ƒ๋„๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•ด์คฌ๋‹ค.

dall3 ๋Š” ์›น์—์„œ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ์ด๋ฏธ์ง€ url ๋˜๋Š” base64 json ํฌ๋งท์œผ๋กœ ์ด๋ฏธ์ง€๋ฅผ ์‘๋‹ตํ•˜๋Š”๋ฐ, ์›น url์€ ์ ‘๊ทผ ์ œํ•œ ์‹œ๊ฐ„์ด 1์‹œ๊ฐ„์ž„์— ์œ ์˜ํ•˜์ž.

์—ฌ๊ธฐ์„œ n์— ์ฃผ๋ชฉ์„ ํ•ด๋ณด๋ฉด, n๊ฐ’์€ ๋ชจ๋ธ์ด ์ƒ์„ฑํ•˜๋Š” ์ด๋ฏธ์ง€์˜ ๊ฐฏ์ˆ˜์ด๋‹ค. dalle3์˜ ๋ชจ๋ธ์˜ ๊ฒฝ์šฐ n=1๋งŒ์„ ์ง€์›ํ•œ๋‹ค.dalle2 ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ, ํ”„๋กฌํ”„ํŠธ๋‹น 10๊ฐœ์˜ ์ด๋ฏธ์ง€๊ฐ€ ์ƒ์„ฑ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

์—ฌ๊ธฐ์„œ ๋˜ ํ•˜๋‚˜ ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š”๋ฐ, openAI ์— ๋“ฑ๋ก๋œ API KEY ๋‹น 1๋ถ„๋‹น dalle3 API ํ˜ธ์ถœํšŸ์ˆ˜์— ์ œํ•œ์ด ์žˆ๋‹ค๋Š” ๊ฒƒ์ด์—ˆ๋‹ค. openAI ์—๋Š” tier ๊ฐ€ ์กด์žฌํ•ด์„œ, ๊ฐ ํ‹ฐ์–ด๋งˆ๋‹ค ๋ถ„๋‹น api ํ˜ธ์ถœํšŸ์ˆ˜์˜ ์ œํ•œ์ด ์žˆ๋‹ค. ๋‚˜๋Š” ๋ˆ์ด ์—†๋Š” ๋ฐฑ์ˆ˜์ด๊ธฐ ๋•Œ๋ฌธ์—, 1๋‹ฌ์— 50๋‹ฌ๋Ÿฌ ์ด์ƒ์„ openAI ํˆฌ์žํ•  ์ˆ˜ ์—†์–ด 1๋ถ„๋‹น ํ˜ธ์ถœํšŸ์ˆ˜๋Š” 5๋ฒˆ์ด ์ œํ•œ์ด๋‹ค. (dall3 ๋ชจ๋ธ์˜ ๊ฒฝ์šฐ)

gpt ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ƒ์„ฑํ•œ ์Šคํ† ๋ฆฌ๋ณด๋“œ๋Š” 10๊ฐœ์˜ ์”ฌ์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๊ณ , ๊ฐ ์”ฌ ๋ณ„๋กœ ์ด๋ฏธ์ง€๋ฅผ ์ƒ์„ฑํ•˜๋„๋ก ํ˜ธ์ถœํ–ˆ๋”๋‹ˆ rate limit ์ œํ•œ์— ๊ฑธ๋ ค ์ด๋ฏธ์ง€๋ฅผ ์ƒ์„ฑํ•˜์ง€ ๋ชปํ•˜๋Š” ์ด์Šˆ๊ฐ€ ์žˆ์—ˆ๋‹ค.

๋ฌผ๋ก  ํ•ด๋‹น ํ”„๋กœ๊ทธ๋žจ์„ ๋‚˜ ํ˜ผ์ž์„œ ์“ฐ๊ฒŒ ๋œ๋‹ค๋ฉด ๋ฌธ์ œ๋Š” ์—†์ง€๋งŒ, ๋‚˜๋Š” ์ด ํ”„๋กœ๊ทธ๋žจ์„ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์ด ์“ธ ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“ค๊ณ  ์‹ถ์—ˆ๊ณ , 1๋ถ„๋‹น ํ˜ธ์ถœํšŸ์ˆ˜ ์ œํ•œ์˜ ๋ฒฝ์„ ๋šซ๊ธฐ ์œ„ํ•ด ์–ด๋–ป๊ฒŒ ํ•˜๋ฉด ์ข‹์„ ์ง€ ์ƒ๊ฐํ•ด๋ณด์•˜๋‹ค. ์ฒซ๋ฒˆ์งธ๋กœ ๋“  ์ƒ๊ฐ์€, ๊ฐ ์”ฌ์— ๋Œ€ํ•œ ์ด๋ฏธ์ง€ ํ”„๋กฌํ”„ํŠธ๋ฅผ ๋ฐ›๋Š” ๋Œ€๊ธฐ์—ด ํ์— ์ด๋ฏธ์ง€ ํ”„๋กฌํ”„ํŠธ๋ฅผ ๋“ฑ๋กํ•˜๊ณ , 1๋ถ„๋งˆ๋‹ค cron job ์„ ๋Œ๋ ค์„œ 5๊ฐœ์”ฉ ๋ฉ”์‹œ์ง€๋ฅผ ๋นผ์˜ค๋ฉด ์ข‹๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์„ ํ–ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ๋˜ ํ•˜๋‚˜ ๋“ค์—ˆ๋˜ ์ƒ๊ฐ์€ 5๊ฐœ์˜ ๋ฉ”์‹œ์ง€๊ฐ€ ๋ชจ๋‘ ํ•œ ์‚ฌ๋žŒ์ด ์ƒ์„ฑํ•œ ํ”„๋กฌํ”„ํŠธ๊ฐ€ ์•„๋‹ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ชจ๋“  ์”ฌ์— ๋Œ€ํ•œ ์ด๋ฏธ์ง€ ์ƒ์„ฑ ํ›„ ์ž‘๋™ํ•  img2vid ๋ชจ๋“ˆ์ด ์–ธ์ œ ๋น„๋””์˜ค๋ฅผ ์ƒ์„ฑํ•˜๋ฉด ์ข‹์„ ์ง€ ๋ชจ๋ฅธ๋‹ค๋Š” ๊ฒƒ์ด์—ˆ๋‹ค.

๊ทธ๋ž˜์„œ ๋‘๋ฒˆ์งธ๋กœ ํ–ˆ๋˜ ์ƒ๊ฐ์€, ์ตœ๊ทผ์— ์นดํ”„์นด ๊ด€๋ จ ์ฑ…์„ ์ฝ์œผ๋ฉด์„œ control message ๋ฅผ ์ด์šฉํ•ด ํŠธ๋žœ์žญ์…˜ ๊ด€๋ฆฌ๋ฅผ ํ•˜๋Š” ๋‚ด์šฉ์„ ๋ณธ์ ์ด ์žˆ์–ด์„œ, control message ์™€ ๋น„์Šทํ•˜๊ฒŒ ๊ฐ ์Šคํ† ๋ฆฌ ๋ณด๋“œ ๋งˆ์ง€๋ง‰ ์”ฌ์˜ ์ด๋ฏธ์ง€ ํ”„๋กฌํ”„ํŠธ๋ฅผ ๋ฉ”์‹œ์ง€ํ์— ๋„ฃ๊ณ  ๋‚˜์„œ, ํ•ด๋‹น ์ด๋ฏธ์ง€ ํ”„๋กฌํ”„ํŠธ๊ฐ€ ๋งˆ์ง€๋ง‰์ด๋ผ๋Š” ๊ฒƒ์„ ์•Œ๋ฆด ์ˆ˜ ์žˆ๋„๋ก ๋ฉ”์‹œ์ง€ ํ์— “ํŠน์ • ์Šคํ† ๋ฆฌ๋ณด๋“œ์˜ ์ด๋ฏธ์ง€ ํ”„๋กฌํ”„ํŠธ์˜ ๋์ž…๋‹ˆ๋‹ค” ๋ผ๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ํ•˜๋‚˜ ๋” ์ถ”๊ฐ€ํ•ด์ฃผ๋ฉด ์œ„ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋  ์ˆ˜๋„ ์žˆ๊ฒ ๋‹ค๋ผ๋Š” ์ƒ๊ฐ์„ ํ–ˆ๋‹ค.

์ถ”๊ฐ€์ ์œผ๋กœ, ์ด๋ฏธ์ง€ ์ƒ์„ฑ ๋ชจ๋ธ์ด dalle3 ๋งŒ ์กด์žฌํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๊ณ  ์—ฌ๋Ÿฌ ๋ชจ๋ธ์ด ์กด์žฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ( e.g. stable diffusion) ์œ„ ๋ชจ๋ธ์„ ๊ฐ™์ด ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋ฉด, ๋ถ„๋‹น 5๊ฐœ ์ด์ƒ์˜ ์ด๋ฏธ์ง€๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์„ ํ–ˆ๋‹ค. ๋” ์‹คํ—˜ํ•ด๋ด์•ผ ํ•  ๊ฒƒ์€, ๋ถ„๋‹น ํ˜ธ์ถœํšŸ์ˆ˜๋ฅผ ๋Š˜๋ฆฌ๊ธฐ ์œ„ํ•ด, ์„œ๋กœ ๋‹ค๋ฅธ ip, api-key๋ฅผ ๊ฐ€์ง„ ์„œ๋ฒ„๋ฅผ ์—ฌ๋Ÿฌ๊ฐœ ๋„์›Œ์„œ ํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ์‹œ๋„ํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค.