Docs Menu

Atlas Data API [์‚ฌ์šฉ ์ค‘๋‹จ๋จ]

๋ฐ์ดํ„ฐ API๋Š” ํ‘œ์ค€ HTTPS ์š”์ฒญ์„ ์‚ฌ์šฉํ•˜์—ฌ Atlas์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋กœ ์•ˆ์ „ํ•˜๊ฒŒ ์ž‘์—…ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด ์ฃผ๋Š” ๊ด€๋ฆฌํ˜• ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ API๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ง์ ‘ ์—ฐ๊ฒฐ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋Œ€์‹  ์ด API๋Š” ์™„์ „ ๊ด€๋ฆฌํ˜• ๋ฏธ๋“ค์›จ์–ด ์„œ๋น„์Šค๋กœ์„œ ํด๋Ÿฌ์Šคํ„ฐ์™€ ์š”์ฒญ์„ ์ „์†กํ•œ ํด๋ผ์ด์–ธํŠธ ์‚ฌ์ด์— ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ์„ ํฌํ•จํ•˜์—ฌ HTTPS๋ฅผ ์ง€์›ํ•˜๋Š” ๋ชจ๋“  ํ”Œ๋žซํผ์—์„œ ๋ฐ์ดํ„ฐ API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ MongoDB Atlas์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์›น ๋ธŒ๋ผ์šฐ์ €

  • ์›น ์„œ๋ฒ„

  • CI/CD ํŒŒ์ดํ”„๋ผ์ธ

  • ๋ชจ๋ฐ”์ผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜

  • IoT ์žฅ์น˜

๋ฐ์ดํ„ฐ API๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋“œ๋ผ์ด๋ฒ„๋‚˜ ์ „์šฉ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์„ค์น˜ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๋Œ€์‹  ๋‹ค์Œ๊ณผ ๊ฐ™์€ HTTPS requests๋ฅผ ์ „์†กํ•ฉ๋‹ˆ๋‹ค.

curl -s "https://data.mongodb-api.com/app/myapp-abcde/endpoint/data/v1/action/insertOne" \
-X POST \
-H "Content-Type: application/ejson" \
-H "Accept: application/json" \
-H "apiKey: TpqAKQgvhZE4r6AOzpVydJ9a3tB1BLMrgDzLlBLbihKNDzSJWTAHMVbsMoIOpnM6" \
-d '{
"dataSource": "mongodb-atlas",
"database": "learn-data-api",
"collection": "hello",
"document": {
"text": "Hello, world!"
}
}'
{ "insertedId": "63dc56ac74ddb86ed3eb8474" }

Data API๋Š” 2๊ฐ€์ง€ ์œ ํ˜•์˜ ์—”๋“œํฌ์ธํŠธ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

  • ๋ฐ์ดํ„ฐ API ์—”๋“œํฌ์ธํŠธ๋Š” ๊ฐ๊ฐ MongoDB ์ž‘์—…์„ ๋‚˜ํƒ€๋‚ด๋Š” ์ž๋™์œผ๋กœ ์ƒ์„ฑ๋œ ์—”๋“œํฌ์ธํŠธ์ž…๋‹ˆ๋‹ค. ์—”๋“œํฌ์ธํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ MongoDB ๋ฐ์ดํ„ฐ ์†Œ์Šค์—์„œ ๋ฌธ์„œ๋ฅผ ์ž‘์„ฑ, ์ฝ๊ธฐ, ์—…๋ฐ์ดํŠธ, ์‚ญ์ œ ๋ฐ ์ง‘๊ณ„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ์—”๋“œํฌ์ธํŠธ๋ฅผ ์„ค์ •ํ•˜๊ณ  ํ˜ธ์ถœํ•˜๋Š” ๋ฐฉ๋ฒ• ๋“ฑ ์ž์„ธํ•œ ์ •๋ณด๋Š” ๋ฐ์ดํ„ฐ API ์—”๋“œํฌ์ธํŠธ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

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

    ์—”๋“œํฌ์ธํŠธ ์ƒ์„ฑ ๋ฐ ํ˜ธ์ถœ ๋ฐฉ๋ฒ• ๋“ฑ ์ž์„ธํ•œ ๋‚ด์šฉ์€ Custom HTTPS Endpoints(์‚ฌ์šฉ์ž ์ง€์ • HTTPS ์—”๋“œํฌ์ธํŠธ)๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

Data API ์š”์ฒญ์€ find ๋˜๋Š” insertOne๊ณผ ๊ฐ™์€ ๊ธฐ์กด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ž‘์—…๊ณผ ์œ ์‚ฌํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, Data API๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ง์ ‘ ์—ฐ๊ฒฐ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋Œ€์‹  Data API๋Š” ์ถ”๊ฐ€ ์ธ์ฆ, ๊ถŒํ•œ ๋ถ€์—ฌ, ์ •ํ™•์„ฑ ๊ฒ€์‚ฌ๋ฅผ ์ถ”๊ฐ€ํ•ด ์‚ฌ์šฉ์ž๊ฐ€ ํ—ˆ์šฉํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ๋งŒ ๋ฐ์ดํ„ฐ์— ์•ก์„ธ์Šคํ•˜๊ฑฐ๋‚˜ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฐฉ์‹์„ ํ†ตํ•ด ์›น ์•ฑ๊ณผ ๊ฐ™์ด ์ž ์žฌ์ ์œผ๋กœ ์ทจ์•ฝํ•œ ํด๋ผ์ด์–ธํŠธ์—์„œ Atlas์˜ ๋ฐ์ดํ„ฐ์— ์•ˆ์ „ํ•˜๊ฒŒ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋“ค์–ด์˜ค๋Š” ๊ฐ๊ฐ์˜ ์š”์ฒญ์— ๋Œ€ํ•ด Data API๋Š” ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

  1. ํ˜ธ์ถœ ์‚ฌ์šฉ์ž๋ฅผ ์ธ์ฆํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ์•ก์„ธ์Šค ํ† ํฐ์˜ ์œ ํšจ์„ฑ์„ ๊ฒ€์‚ฌํ•˜๊ฑฐ๋‚˜, ํ—ค๋” ์ž๊ฒฉ ์ฆ๋ช…์„ ์‚ฌ์šฉํ•˜์—ฌ ๋กœ๊ทธ์ธํ•˜๊ฑฐ๋‚˜, ๊ตฌ์„ฑ์— ๋”ฐ๋ผ ํŠน์ • ๋Ÿฐํƒ€์ž„ ์‚ฌ์šฉ์ž๋ฅผ ์ง์ ‘ ํ• ๋‹นํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ํฌํ•จ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  2. ์š”์ฒญ์„ ์Šน์ธํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์‚ฌ์šฉ์ž๊ฐ€ ์˜ฌ๋ฐ”๋ฅธ ํ˜•์‹์˜ ์š”์ฒญ์„ ๋ณด๋ƒˆ๊ณ  ์—”๋“œํฌ์ธํŠธ ๊ถŒํ•œ ๋ถ€์—ฌ ์ฒด๊ณ„์— ๋”ฐ๋ผ ์š”์ฒญ๋œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๊ถŒํ•œ์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  3. ์š”์ฒญ๋œ ์ž‘์—…์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ์ƒ์„ฑ๋œ ์—”๋“œํฌ์ธํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Atlas์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ฑฐ๋‚˜ ์“ฐ๋Š” ์ž‘์—…, ํ˜น์€ ์‚ฌ์šฉ์ž๊ฐ€ ์ž‘์„ฑํ•œ ์‚ฌ์šฉ์ž ์ง€์ • ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ์ž‘์—…์ด ํฌํ•จ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

  4. ํ˜ธ์ถœ์ž์—๊ฒŒ HTTPS ์‘๋‹ต์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์‘๋‹ต์—๋Š” ์ƒ์„ฑ๋œ ์—”๋“œํฌ์ธํŠธ ์ž‘์—…์˜ ๊ฒฐ๊ณผ๋‚˜ ์‚ฌ์šฉ์ž ์ง€์ • ์—”๋“œํฌ์ธํŠธ์—์„œ ๋ฐ˜ํ™˜ํ•œ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ์š”์ฒญ์—์„œ JSON ๋˜๋Š” EJSON ํ˜•์‹์œผ๋กœ ์‘๋‹ต์„ ๋ฐ›๋„๋ก ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

๋ฐ์ดํ„ฐ API๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ์— ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

  • ์‹ ๋ขฐํ•  ์ˆ˜ ์—†๋Š” ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด๋‚˜ ๋‹ค๋ฅธ ํด๋ผ์ด์–ธํŠธ์—์„œ MongoDB ์ž‘์—…์„ ์‹คํ–‰ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

  • ์„œ๋ฒ„ ์ธก ํ™˜๊ฒฝ์—์„œ MongoDB ๋“œ๋ผ์ด๋ฒ„๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์—†๊ฑฐ๋‚˜ ๊ด€๋ฆฌํ•˜๊ณ  ์‹ถ์ง€ ์•Š์€ ๊ฒฝ์šฐ. ์˜ˆ๋ฅผ ๋“ค์–ด, ์ผ๋ถ€ ์—ฃ์ง€ ์ปดํ“จํŒ… ํ™˜๊ฒฝ์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋“œ๋ผ์ด๋ฒ„๋‚˜ ์—ฐ๊ฒฐ ํ’€๋ง์„ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

  • ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ๊ฐœ๋ฐœํ•˜๊ณ  ์‹ถ๊ณ  ํด๋ผ์ด์–ธํŠธ ์‚ฌ์ด๋“œ์—์„œ ๋จผ์ € ์ž‘์—…ํ•œ ํ›„ ๋‚˜์ค‘์— API ๊ณ„์ธต์„ ๋งŒ๋“ค๊ณ  ๋‹ค๋“ฌ์„ ์ˆ˜ ์žˆ๋Š” ์œ ์—ฐํ•œ ์†”๋ฃจ์…˜์„ ์›ํ•  ๊ฒฝ์šฐ.

  • Atlas ๋ฐ์ดํ„ฐ ์•ก์„ธ์Šค๋ฅผ ์—ฐํ•ฉ API ๊ฒŒ์ดํŠธ์›จ์ด์— ํ†ตํ•ฉํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

  • ํ˜„์žฌ Atlas Device SDK์—์„œ ์ง€์›ํ•˜์ง€ ์•Š๋Š” ํ™˜๊ฒฝ์—์„œ App Services์— ์—ฐ๊ฒฐํ•˜๊ณ  ์‹ถ์œผ๋ฉฐ ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์œ ์„  ํ”„๋กœํ† ์ฝœ์„ ํ†ตํ•ด ์—ฐ๊ฒฐํ•˜๊ณ  ์‹ถ์ง€ ์•Š์€ ๊ฒฝ์šฐ.

๋ฐ์ดํ„ฐ API ์š”์ฒญ ๋ฐ ์‘๋‹ต์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ œ์•ฝ ์กฐ๊ฑด์ด ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

  • ๋Ÿฐํƒ€์ž„ 300์ดˆ ํ›„์— ์š”์ฒญ ํƒ€์ž„์•„์›ƒ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

  • ๋ฐ์ดํ„ฐ API ์‘๋‹ต ํŽ˜์ด๋กœ๋“œ์˜ ํฌ๊ธฐ๋Š” 350MB๋กœ ์ œํ•œ๋ฉ๋‹ˆ๋‹ค.