Front End/Web

REST API

๐ŸŒ

REST API

REST API์—์„œ REST๋Š” Representational State Transfer์˜ ์•ฝ์ž๋กœ, ์›น์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๋ฐ์ดํ„ฐ๋‚˜ ์ž์›(Resource)์„ HTTP URI๋กœ ํ‘œํ˜„ํ•˜๊ณ  HTTP ํ”„๋กœํ† ์ฝœ์„ ํ†ตํ•ด ์š”์ฒญ๊ณผ ์‘๋‹ต์„ ์ •์˜ํ•˜๋Š” ๋ฐฉ์‹์„ ์˜๋ฏธํ•œ๋‹ค.

HTTP ํ”„๋กœํ† ์ฝœ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์š”์ฒญ๊ณผ ์‘๋‹ต์— ๋”ฐ๋ผ ๋ฆฌ์†Œ์Šค๋ฅผ ์ฃผ๊ณ  ๋ฐ›๊ธฐ ์œ„ํ•ด์„œ๋Š” API๋ฅผ ์•Œ์•„๋ณด๊ธฐ ์‰ฝ๊ฒŒ ์ž˜ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค. REST๋Š” ์ด๋ฅผ ์œ„ํ•œ ๋ฆฌ์†Œ์Šค ์ค‘์‹ฌ์˜ ์ผ์ข…์˜ ๋ฐฉ๋ฒ•๋ก ์ด์ž ์•„ํ‚คํ…์ฒ˜(API๋ฅผ ์„ค๊ณ„ํ•˜๊ณ  ๊ตฌ์ถ•ํ•˜๋Š”๋ฐ ์‚ฌ์šฉํ•˜๋Š” ํŒจํ„ด๊ณผ ๊ธฐ์ˆ )์ด๋ผ ๋ณผ ์ˆ˜๋„ ์žˆ๋‹ค. ์ฆ‰, REST๋ฅผ ์ด์šฉํ•ด ์ž‘์„ฑ๋œ API๊ฐ€ REST API์ธ ๊ฒƒ์ด๋‹ค.

REST API ์„ฑ์ˆ™๋„ ๋ชจ๋ธ

REST API๋ฅผ ์ž‘์„ฑํ•  ๋•Œ๋Š” ๋ช‡ ๊ฐ€์ง€ ์ง€์ผœ์•ผ ํ•  ๊ทœ์น™์ด ์žˆ๊ณ , ๋ ˆ์˜ค๋‚˜๋ฅด๋“œ ๋ฆฌ์ฐจ๋“œ์Šจ(Leonard Richardson)์€ ์ด๋ฅผ ์ž˜ ์ ์šฉํ•˜๊ธฐ ์œ„ํ•œ 4๋‹จ๊ณ„ ๋ชจ๋ธ์„ ์ œ์‹œํ–ˆ๋‹ค. ์ด๋ฅผ REST API ์„ฑ์ˆ™๋„ ๋ชจ๋ธ์ด๋ผ ํ•œ๋‹ค.

REST ์„ฑ์ˆ™๋„ ๋ชจ๋ธ์€ 0~3๋‹จ๊ณ„๊นŒ์ง€ ์ด 4๋‹จ๊ณ„๋กœ ๋‚˜๋ˆ„์–ด์ง€๊ณ , ์‹ค์ œ๋กœ ์—„๋ฐ€ํ•˜๊ฒŒ 3๋‹จ๊ณ„๊นŒ์ง€ ์ง€ํ‚ค๊ธฐ ์–ด๋ ต๊ธฐ ๋•Œ๋ฌธ์— ์ผ๋ฐ˜์ ์œผ๋ก  2๋‹จ๊ณ„๊นŒ์ง€๋งŒ ์ ์šฉํ•ด๋„ ์ข‹์€ API ๋””์ž์ธ์ด๋ผ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ์ด๋Ÿฐ ๊ฒฝ์šฐ๋ฅผ HTTP API๋ผ๊ณ  ๋ถ€๋ฅด๊ธฐ๋„ ํ•œ๋‹ค.

0๋‹จ๊ณ„ : HTTP ํ”„๋กœํ† ์ฝœ ์‚ฌ์šฉ

0๋‹จ๊ณ„๋Š” ๋‹จ์ˆœํžˆ HTTP ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜๊ธฐ๋งŒ ํ•ด๋„ ๋œ๋‹ค. ๋ฌผ๋ก  ์ด ๋‹จ๊ณ„์—์„œ ํ•ด๋‹น API๋ฅผ REST API๋ผ ๋ถ€๋ฅผ ์ˆœ ์—†๊ณ , REST API๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๊ธฐ๋ณธ ๋‹จ๊ณ„๋กœ ์ดํ•ดํ•˜๋ฉด ๋œ๋‹ค. ์•„๋ž˜์˜ ์˜ˆ์‹œ๋Š” ์˜ˆ์•ฝ์„ ์œ„ํ•œ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์„œ๋ฒ„์™€ ํ†ต์‹ ํ•˜๋Š” ์ƒํ™ฉ์ด๋ผ ๊ฐ€์ •ํ•œ๋‹ค.

๋‹จ์ˆœํžˆ HTTP ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด 0๋‹จ๊ณ„์ด์ž REST API์˜ ์ถœ๋ฐœ์ ์ด๋‹ค.

1๋‹จ๊ณ„ : ๊ฐœ๋ณ„ ๋ฆฌ์†Œ์Šค์™€์˜ ํ†ต์‹  ์ค€์ˆ˜

1๋‹จ๊ณ„๋Š” ๊ฐœ๋ณ„ ๋ฆฌ์†Œ์Šค(Resource)์™€์˜ ํ†ต์‹ ์„ ์ค€์ˆ˜ํ•ด์•ผ ํ•œ๋‹ค. ์•ž์„œ ์„ค๋ช…ํ•œ REST์˜ ์ •์˜์— ๋”ฐ๋ฅด๋ฉด ๋ฐ์ดํ„ฐ๋‚˜ ์ž์›(Resource)์„ HTTP URI๋กœ ํ‘œํ˜„ํ•œ๋‹ค๊ณ  ํ–ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ชจ๋“  ์ž์›์€ ๊ฐœ๋ณ„ ๋ฆฌ์†Œ์Šค์— ๋งž๋Š” ์—”๋“œํฌ์ธํŠธ(Endpoint)๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๊ณ  ์š”์ฒญํ•˜๊ณ  ๋ฐ›๋Š” ์ž์›์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์‘๋‹ต์œผ๋กœ ์ „๋‹ฌํ•˜๋Š” ๊ฒƒ์ด 1๋‹จ๊ณ„์˜ ํ•ต์‹ฌ์ด๋‹ค.

0๋‹จ๊ณ„์™€ ๋น„๊ตํ–ˆ์„ ๋•Œ ๊ฐ ์š”์ฒญ์˜ ์—”๋“œํฌ์ธํŠธ์— ๋ณ€ํ™”๊ฐ€ ์žˆ์œผ๋ฉฐ, ์‹ค์ œ ๋ณ€๊ฒฝ๋˜๋Š” ๋ฆฌ์†Œ์Šค์ธ โ€˜123โ€™ slot์„ ์—”๋“œํฌ์ธํŠธ๋กœ ์‚ฌ์šฉํ–ˆ๋‹ค

์œ„์˜ ์˜ˆ์‹œ์ฒ˜๋Ÿผ ์–ด๋–ค ๋ฆฌ์†Œ์Šค๋ฅผ ๋ณ€ํ™”์‹œํ‚ค๋Š”์ง€ ํ˜น์€ ์–ด๋–ค ์‘๋‹ต์ด ์ œ๊ณต๋˜๋Š”์ง€์— ๋”ฐ๋ผ ๊ฐ๊ธฐ ๋‹ค๋ฅธ ์—”๋“œํฌ์ธํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ ์ ˆํ•œ ์—”๋“œํฌ์ธํŠธ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค. ์—”๋“œํฌ์ธํŠธ ์ž‘์„ฑ ์‹œ์—๋Š” ๋™์‚ฌ, HTTP ๋ฉ”์„œ๋“œ, ์–ด๋–ค ํ–‰์œ„์— ๋Œ€ํ•œ ๋‹จ์–ด ์‚ฌ์šฉ์€ ์ง€์–‘ํ•˜๊ณ  ๋ฆฌ์†Œ์Šค์— ์ง‘์ค‘ํ•ด ๋ช…์‚ฌ ํ˜•ํƒœ์˜ ๋‹จ์–ด๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์ด ๋ฐ”๋žŒ์งํ•˜๋‹ค.

์ด์™€ ํ•จ๊ป˜, ์š”์ฒญ์— ๋”ฐ๋ฅธ ์‘๋‹ต์œผ๋กœ ๋ฆฌ์†Œ์Šค๋ฅผ ์ „๋‹ฌํ•  ๋•Œ ์‚ฌ์šฉํ•œ ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ์ •๋ณด์™€ ๋”๋ถˆ์–ด ๋ฆฌ์†Œ์Šค ์‚ฌ์šฉ์— ๋Œ€ํ•œ ์„ฑ๊ณต/์‹คํŒจ ์—ฌ๋ถ€๋ฅผ ๋ฐ˜ํ™˜ํ•ด์•ผ ํ•œ๋‹ค.

์ด๋ฏธ ์˜ˆ์•ฝ์ด ๋˜์–ด์žˆ๋Š” ์ƒํ™ฉ์ด๋ผ ์˜ˆ์•ฝ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜์—ฌ ์‹คํŒจ ์—ฌ๋ถ€๋ฅผ ํฌํ•จํ•œ ์‘๋‹ต์„ ๋ฐ›์•˜๋‹ค

2๋‹จ๊ณ„ : HTTP ๋ฉ”์„œ๋“œ ์›์น™ ์ค€์ˆ˜

2๋‹จ๊ณ„๋Š” CRUD์— ๋งž๊ฒŒ ์ ์ ˆํ•œ HTTP ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์— ํฌ์ปค์Šค๋ฅผ ๋‘”๋‹ค. 0๋‹จ๊ณ„์™€ 1๋‹จ๊ณ„์˜ ์˜ˆ์‹œ๋Š” ๋ชจ๋‘ POST ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์ง€๋งŒ, 2๋‹จ๊ณ„์— ๋”ฐ๋ฅด๋ฉด ์ด๋Š” CRUD์— ๋งž๋Š” ์ ํ•ฉํ•œ ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•œ ๊ฒƒ์ด ์•„๋‹ˆ๋‹ค.

ํ•„์š”ํ•œ ํ–‰์œ„์— ๋”ฐ๋ฅธ ์ ์ ˆํ•œ ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด ์š”์ฒญ์„ ๋ณด๋‚ธ๋‹ค

์˜ˆ์‹œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ, ์˜ˆ์•ฝ ๊ฐ€๋Šฅํ•œ ์‹œ๊ฐ„์„ ํ™•์ธํ•˜๋Š” ๊ฒƒ์€ ์กฐํšŒ(READ)ํ•˜๋Š” ํ–‰์œ„์ด๊ธฐ ๋•Œ๋ฌธ์— ์กฐํšŒ๋Š” GET ๋ฉ”์„œ๋“œ๋กœ ์š”์ฒญ์„ ๋ณด๋‚ด๊ณ , GET๋ฉ”์„œ๋“œ๋Š” body๋ฅผ ๊ฐ€์ง€์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— query parameter๋ฅผ ์‚ฌ์šฉํ•ด ํ•„์š”ํ•œ ๋ฆฌ์†Œ์Šค๋ฅผ ์ „๋‹ฌํ•œ๋‹ค.

์˜ˆ์•ฝ์„ ํ•˜๋Š” ๊ฒƒ์€ ์˜ˆ์•ฝ์„ ์ƒ์„ฑ(CREATE)ํ•˜๋Š” ๊ฒƒ์ด๋ฏ€๋กœ POST๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋ฉฐ, POST์š”์ฒญ์— ๋”ฐ๋ฅธ ์‘๋‹ต ์—ญ์‹œ ์ค‘์š”ํ•˜๋‹ค. ์ด ๊ฒฝ์šฐ ์‘๋‹ต์€ ์ƒˆ๋กญ๊ฒŒ ์ƒ์„ฑ๋œ ๋ฆฌ์†Œ์Šค๋ฅผ ๋ณด๋‚ด์ฃผ๊ธฐ ๋•Œ๋ฌธ์— ์‘๋‹ต์ฝ”๋“œ๋Š” 201 Created๋กœ ๋ช…ํ™•ํ•˜๊ฒŒ ์ž‘์„ฑ๋˜์–ด์•ผ ํ•˜๊ณ  ์ด์™€ ํ•จ๊ป˜ Locationํ—ค๋”์— ๊ด€๋ จ ๋ฆฌ์†Œ์Šค์˜ URI๋ฅผ ํ•จ๊ป˜ ์‘๋‹ตํ•˜๋ฏ€๋กœ ์„ฑ์ˆ™๋„ ๋ชจ๋ธ 2๋‹จ๊ณ„๋ฅผ ์ถฉ์กฑํ•œ ๊ฒƒ์ด๋ผ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

HTTP ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ๋ช‡ ๊ฐ€์ง€ ๊ทœ์น™์—๋„ ์œ ์˜ํ•˜์ž.

  • GET๋ฉ”์„œ๋“œ์˜ ๊ฒฝ์šฐ READ์ด๋ฏ€๋กœ ์„œ๋ฒ„์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณ€ํ™”์‹œํ‚ค์ง€ ์•Š๋Š” ์š”์ฒญ์— ์‚ฌ์šฉํ•œ๋‹ค.
  • POST๋ฉ”์„œ๋“œ๋Š” ์š”์ฒญ๋งˆ๋‹ค ์ƒˆ๋กœ์šด ๋ฆฌ์†Œ์Šค๋ฅผ ์ƒ์„ฑํ•˜์ง€๋งŒ PUT๋ฉ”์„œ๋“œ๋Š” ์š”์ฒญ๋งˆ๋‹ค ๊ฐ™์€ ๋ฆฌ์†Œ์Šค๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ์ด๋ ‡๊ฒŒ ๊ฐ™์€ ๋ฆฌ์†Œ์Šค๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ํŠน์ง•์„ ๋ฉฑ๋“ฑ(idempotent)ํ•˜๋‹ค๊ณ  ๋ถ€๋ฅด๋ฉฐ, ๋ฉฑ๋“ฑ์„ฑ์„ ๊ฐ€์ง€๋Š” ๋ฉ”์„œ๋“œ PUT๊ณผ ๊ทธ๋ ‡์ง€ ์•Š์€ POST๋Š” ๊ตฌ๋ถ„ํ•ด์•ผ ํ•œ๋‹ค.
  • PUT๊ณผ PATCH๋„ ๊ตฌ๋ถ„ํ•ด์„œ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค. ๊ฐ™์€ UPDATE์ด์ง€๋งŒ PUT์€ ๊ต์ฒด, PATCH๋Š” ์ˆ˜์ •์˜ ์šฉ๋„๋กœ ์‚ฌ์šฉํ•œ๋‹ค.

3๋‹จ๊ณ„ : HATEOAS ์›์น™ ์ค€์ˆ˜

3๋‹จ๊ณ„๋Š” HATEOAS(Hypertext As The Engine Of Application State)๋ผ๋Š” ์•ฝ์–ด๋กœ ํ‘œํ˜„๋˜๋Š” ํ•˜์ดํผ๋ฏธ๋””์–ด ์ปจํŠธ๋กค์„ ์ ์šฉํ•œ๋‹ค. 3๋‹จ๊ณ„์˜ ์š”์ฒญ์€ 2๋‹จ๊ณ„์™€ ๋™์ผํ•˜์ง€๋งŒ, ์‘๋‹ต์—๋Š” ๋ฆฌ์†Œ์Šค์˜ URI๋ฅผ ํฌํ•จํ•œ ๋งํฌ ์š”์†Œ๋ฅผ ์‚ฝ์ž…ํ•˜์—ฌ ์ž‘์„ฑํ•ด์•ผ ํ•œ๋‹ค. ์ด๋•Œ ์‘๋‹ต์— ๋“ค์–ด๊ฐ€๋Š” ๋งํฌ ์š”์†Œ๋Š” ์‘๋‹ต์„ ๋ฐ›์€ ๋‹ค์Œ์— ํ•  ์ˆ˜ ์žˆ๋Š” ๋‹ค์–‘ํ•œ ์•ก์…˜๋“ค์„ ์œ„ํ•ด ๋งŽ์€ ํ•˜์ดํผ๋ฏธ๋””์–ด ์ปจํŠธ๋กค์„ ํฌํ•จํ•œ๋‹ค. ์ด๋Š” ํด๋ผ์ด์–ธํŠธ ๊ฐœ๋ฐœ์ž๋“ค์ด ์‘๋‹ต์— ๋‹ด๊ธด ๋งํฌ๋ฅผ ํ†ตํ•ด ์กฐ๊ธˆ ๋” ์‰ฝ๊ณ  ํšจ์œจ์ ์œผ๋กœ ๋ฆฌ์†Œ์Šค์™€ ๊ธฐ๋Šฅ์— ์ ‘๊ทผํ•˜๊ฒŒ๋” ํ•˜๋Š” ์š”์†Œ๊ฐ€ ๋œ๋‹ค.

์š”์ฒญ์€ ๊ฐ™์ง€๋งŒ, ์‘๋‹ต์—์„œ ํ•˜์ดํผ๋งํฌ๋ฅผ ์ œ๊ณตํ•˜๋ฉด์„œ ์ถ”๊ฐ€์ ์ธ ์•ก์…˜(์˜ˆ์•ฝ, ์˜ˆ์•ฝ์ทจ์†Œ)์„ ํ•  ์ˆ˜ ์žˆ๋Š” ๋งํฌ๋ฅผ ํฌํ•จํ•ด ์ž‘์„ฑํ•œ๋‹ค.
โ˜๐Ÿผ
API๋ฅผ ์ž‘์„ฑํ•  ๋•Œ, 2๋‹จ๊ณ„๊นŒ์ง€ ์ ์šฉํ•˜๋ฉด ๋Œ€์ฒด์ ์œผ๋กœ ์ž˜ ์ž‘์„ฑ๋œ API๋ผ ๋ถ€๋ฅผ ์ˆ˜ ์žˆ๋‹ค. REST๋ฅผ ์ฒ˜์Œ ์ •์˜ํ•˜๊ณ  ์†Œ๊ฐœํ•œ ๋กœ์ด ํ•„๋”ฉ์€ 3๋‹จ๊ณ„๊นŒ์ง€ ๋งŒ์กฑํ•˜์ง€ ๋ชปํ•˜๋ฉด REST๊ฐ€ ์•„๋‹Œ HTTP API๋กœ ๋ถˆ๋Ÿฌ์•ผ ํ•œ๋‹ค ์ฃผ์žฅํ•˜์ง€๋งŒ, ๋ชจ๋ฒ”์ ์ธ API ๋””์ž์ธ ์กฐ์ฐจ 3๋‹จ๊ณ„๊นŒ์ง€ ์ ์šฉํ•œ ๊ฒฝ์šฐ๋Š” ๋“œ๋ฌผ๊ธฐ ๋•Œ๋ฌธ์— 3๋‹จ๊ณ„๊นŒ์ง€ ๋ฌด์กฐ๊ฑด์ ์œผ๋กœ ์ ์šฉํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค.

Open API

Open API๋Š” ๋ง ๊ทธ๋Œ€๋กœ ๋ˆ„๊ตฌ์—๊ฒŒ๋‚˜ ์—ด๋ ค์žˆ๋Š” API๋ฅผ ๋œปํ•œ๋‹ค. ๋‹จ, ๋ฌด์ œํ•œ์œผ๋กœ ์ด์šฉ์ด ๊ฐ€๋Šฅํ•œ ๊ฒƒ์ด ์•„๋‹Œ API๋งˆ๋‹ค ์ •ํ•ด์ง„ ์ด์šฉ ์ˆ˜์น™์ด ์žˆ๊ณ  ์ด์— ๋”ฐ๋ฅธ ์ œํ•œ์‚ฌํ•ญ(๊ฐ€๊ฒฉ, ์ •๋ณด์˜ ์ œํ•œ ๋“ฑ)์ด ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค. Open API์˜ ๋Œ€ํ‘œ์ ์ธ ์˜ˆ๋กœ๋Š” ์ •๋ถ€์—์„œ ์ œ๊ณตํ•˜๋Š” ๊ณต๊ณต๋ฐ์ดํ„ฐ ํฌํ„ธ, ๋„ค์ด๋ฒ„์—์„œ ์ œ๊ณตํ•˜๋Š” ๋„ค์ด๋ฒ„ ์˜คํ”ˆ API๊ฐ€ ์žˆ๋‹ค.

API Key

์„œ๋ฒ„๋ฅผ ์šด์šฉํ•˜๋Š” ๋ฐ์—๋Š” ๋น„์šฉ์ด ๋ฐœ์ƒํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์„œ๋ฒ„ ์ž…์žฅ์—์„œ๋Š” ์•„๋ฌด๋Ÿฐ ์กฐ๊ฑด ์—†์ด ์ต๋ช…์˜ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ณตํ•  ์˜๋ฌด๊ฐ€ ์—†๋‹ค. ๊ทธ๋ž˜์„œ ์ผ๋ฐ˜์ ์œผ๋กœ API๋ฅผ ์ด์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” API Key๊ฐ€ ํ•„์š”ํ•˜๋‹ค. (๊ฐ€๋” API Key๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ๋„ ์กด์žฌํ•œ๋‹ค)

์„œ๋ฒ„์ชฝ์—์„œ๋Š” ์ž์›์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ๊ถŒํ•œ์„ API Key ํ˜•ํƒœ๋กœ ์ œ๊ณตํ•˜๊ณ , ํด๋ผ์ด์–ธํŠธ ์ชฝ์—์„œ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์š”์ฒญํ•  ๋•Œ API Key๋ฅผ ๊ฐ™์ด ์ „๋‹ฌํ•ด์•ผ ์›ํ•˜๋Š” ์‘๋‹ต์„ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ์‹์ด๋‹ค.


Uploaded by N2T