2023๋…„ 9์›” 04์ผยท3๋ถ„ ์ฝ๊ธฐ

REST ์„ค๊ณ„ ์›์น™

๋ฌด์ƒํƒœ ์ˆ˜์šฉ, ์ ์ ˆํ•œ ๋ฆฌ์†Œ์Šค ์ด๋ฆ„ ์ง€์ •, ๋ฒ„์ „ ๊ด€๋ฆฌ ๋“ฑ ๋ชจ๋ฒ” ์‚ฌ๋ก€์™€ ์ง€์นจ์„ ํƒ์ƒ‰ํ•˜์—ฌ REST API ์„ค๊ณ„ ์›์น™์„ ์ž์„ธํžˆ ์•Œ์•„๋ณด์„ธ์š”.

REST ์„ค๊ณ„ ์›์น™

REST(Representational State Transfer)๋Š” ์›น ์„œ๋น„์Šค ๋ฐ API ๊ตฌ์ถ•์„ ์œ„ํ•œ ์•„ํ‚คํ…์ฒ˜ ์Šคํƒ€์ผ์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ธ๊ธฐ๋Š” ๋‹จ์ˆœ์„ฑ, ํ™•์žฅ์„ฑ ๋ฐ ์‚ฌ์šฉ ์šฉ์ด์„ฑ์—์„œ ๋น„๋กฏ๋ฉ๋‹ˆ๋‹ค. RESTful API๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐœ๋ฐœ์ž๋Š” ํ‘œ์ค€ HTTP ๋ฐฉ๋ฒ• ๋ฐ URL ํŒจํ„ด์„ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋ฒ„์™€ ์ƒํ˜ธ ์ž‘์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๋‹ค์–‘ํ•œ ํ”Œ๋žซํผ ๋ฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์—์„œ ์‰ฝ๊ฒŒ ์ดํ•ดํ•˜๊ณ  ์ฑ„ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

  1. ๋ฌด๊ตญ์ 
  2. ์ ์ ˆํ•œ ๋ฆฌ์†Œ์Šค ๋ช…๋ช… ๋ฐ ๊ตฌ์กฐํ™”
  3. HTTP ๋ฉ”์†Œ๋“œ๋ฅผ ์ ์ ˆํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜๊ธฐ
  4. ํ‘œ์ค€ํ™”๋œ ์˜ค๋ฅ˜ ์‘๋‹ต
  5. ๋ฒ„์ „ ๊ด€๋ฆฌ ๊ตฌํ˜„
  6. API ๋ณด์•ˆ

๋‹ค์Œ ์„น์…˜์—์„œ๋Š” ์ด๋Ÿฌํ•œ ์›์น™์„ ์ดํ•ดํ•˜๊ณ  ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋” ์ž์„ธํžˆ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

๋ฌด๊ตญ์  ์ˆ˜์šฉ

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

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

REST API ์—์„œ ์ƒํƒœ ๋น„์ €์žฅ์„ ์ ์šฉํ•˜๋ ค๋ฉด ์š”์ฒญ ์ฒ˜๋ฆฌ์— ํ•„์š”ํ•œ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๊ฐ€ ์š”์ฒญ ๋‚ด์—์„œ URL, ์š”์ฒญ ํ—ค๋” ๋˜๋Š” ํŽ˜์ด๋กœ๋“œ๋กœ ์ „์†ก๋˜๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š”. ํด๋ผ์ด์–ธํŠธ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด ์„œ๋ฒ„์ธก ์„ธ์…˜์ด๋‚˜ ๊ธฐํƒ€ ์„œ๋ฒ„์ธก ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์‚ฌ์šฉํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. JWT(JSON ์›น ํ† ํฐ)์™€ ๊ฐ™์€ ์ธ์ฆ ํ† ํฐ์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ฌด๊ตญ์  ์ƒํƒœ๋ฅผ ์œ„๋ฐ˜ํ•˜์ง€ ์•Š๊ณ  ์ธ์ฆ ๋ฐ ๊ถŒํ•œ ๋ถ€์—ฌ ๋ชฉ์ ์— ํ•„์š”ํ•œ ํด๋ผ์ด์–ธํŠธ๋ณ„ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ ์ ˆํ•œ ๋ฆฌ์†Œ์Šค ๋ช…๋ช… ๋ฐ ๊ตฌ์กฐํ™”

๋ฆฌ์†Œ์Šค ์ด๋ฆ„ ์ง€์ • ๋ฐ ๊ตฌ์กฐํ™”๋Š” ์ง๊ด€์ ์ด๊ณ  ์‚ฌ์šฉํ•˜๊ธฐ ์‰ฌ์šด REST API๋ฅผ ๊ตฌ์ถ•ํ•˜๋Š” ๋ฐ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ ์ง€์นจ์€ ํšจ๊ณผ์ ์ธ ๋ฆฌ์†Œ์Šค ์ด๋ฆ„ ์ง€์ • ๋ฐ ๊ตฌ์กฐํ™”๋ฅผ ์„ค๊ณ„ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  1. ๋™์‚ฌ๊ฐ€ ์•„๋‹Œ ๋ช…์‚ฌ ์‚ฌ์šฉ: REST API ๋””์ž์ธ์—์„œ ๋ฆฌ์†Œ์Šค๋Š” ๋™์‚ฌ๊ฐ€ ์•„๋‹Œ ๋ช…์‚ฌ๋กœ ํ‘œํ˜„๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด "/getOrders" ๋˜๋Š” "/createOrder" ๋Œ€์‹  "/orders"๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์ž‘์—… ์ž์ฒด๊ฐ€ ์•„๋‹ˆ๋ผ ๋ฆฌ์†Œ์Šค๊ฐ€ ์กฐ์ž‘๋˜๊ณ  ์žˆ๋‹ค๋Š” ์‚ฌ์‹ค์„ ๊ฐ•์กฐํ•ฉ๋‹ˆ๋‹ค.
  2. ๋‹จ์ˆœํ•˜๊ณ  ์„ค๋ช…์ ์ธ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•˜์„ธ์š”. ์ดํ•ดํ•˜๊ธฐ ์‰ฝ๊ณ  ๋ฆฌ์†Œ์Šค์˜ ์˜๋ฏธ๋ฅผ ์ •ํ™•ํ•˜๊ฒŒ ์ „๋‹ฌํ•˜๋Š” ์ด๋ฆ„์„ ์‚ฌ์šฉํ•˜์„ธ์š”. ์˜ˆ๋ฅผ ๋“ค์–ด "/prdcts" ๋˜๋Š” "/inventory_items" ๋Œ€์‹  "/products"๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ์‹ ์†ํ•˜๊ฒŒ ์ฑ„ํƒํ•  ์ˆ˜ ์žˆ๋Š” ์ง๊ด€์ ์ธ API๋ฅผ ๊ตฌ์ถ•ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.
  3. ์ปฌ๋ ‰์…˜ ๋ฆฌ์†Œ์Šค์— ๋ณต์ˆ˜ํ˜• ์‚ฌ์šฉ: ๋ฆฌ์†Œ์Šค ์ปฌ๋ ‰์…˜์„ ์ฒ˜๋ฆฌํ•  ๋•Œ ๋ณต์ˆ˜ํ˜• ์ด๋ฆ„์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค(์˜ˆ: /orders, /customers). ์ด๋Š” ๋ฆฌ์†Œ์Šค๊ฐ€ ํ•ญ๋ชฉ ๋ชจ์Œ์„ ์ฐธ์กฐํ•˜์—ฌ ๊ฐœ๋ฐœ์ž๊ฐ€ API๋ฅผ ๋” ์‰ฝ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Œ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
  4. ๊ด€๊ณ„๋ฅผ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•œ ์ค‘์ฒฉ ๋ฆฌ์†Œ์Šค: ๋ฆฌ์†Œ์Šค ๊ฐ„์— ๋ช…ํ™•ํ•œ ๊ณ„์ธต ๊ตฌ์กฐ๋‚˜ ๊ด€๊ณ„๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ์ค‘์ฒฉ๋œ URL์„ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋ฅผ ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, "/orders/123/items"๋Š” ์ฃผ๋ฌธ 123์— ์†ํ•˜๋Š” ํ•ญ๋ชฉ์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๊ฐ„๋‹จํ•˜๊ณ  ์ง๊ด€์ ์ธ URL ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฆฌ์†Œ์Šค ๊ฐ„์˜ ๋ณต์žกํ•œ ๊ด€๊ณ„๋ฅผ ๋‚˜ํƒ€๋‚ผ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

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

REST API ๋ณด์•ˆ

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

์•”ํ˜ธํ™”๋œ ํ†ต์‹ ์— HTTPS ์‚ฌ์šฉ

ํด๋ผ์ด์–ธํŠธ์™€ API ๊ฐ„์˜ ๋ชจ๋“  ํ†ต์‹ ์— HTTPS(Hypertext Transfer Protocol Secure)๋ฅผ ์ ์šฉํ•˜๋Š” ๊ฒƒ์€ ์•ˆ์ „ํ•œ ๋ฐ์ดํ„ฐ ๊ตํ™˜์„ ์œ„ํ•œ ์ฒซ ๋ฒˆ์งธ ๋ฐฉ์–ด์„ ์ž…๋‹ˆ๋‹ค. HTTPS๋Š” SSL/TLS ์•”ํ˜ธํ™”๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ์‚ฌ์ด์— ๋ณด์•ˆ ์—ฐ๊ฒฐ์„ ์„ค์ •ํ•จ์œผ๋กœ์จ ์ œ3์ž๊ฐ€ ์ „์†ก ์ค‘์ธ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€๋กœ์ฑ„๊ฑฐ๋‚˜ ๋ณ€์กฐํ•˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค.

์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ์ธ์ฆ ๊ธฐ๊ด€(CA)์—์„œ SSL ์ธ์ฆ์„œ๋ฅผ ํš๋“ํ•˜๊ณ  ์ด๋ฅผ ์„œ๋ฒ„์— ๊ตฌํ˜„ํ•˜๋ฉด ํด๋ผ์ด์–ธํŠธ๊ฐ€ API๋ฅผ ์‹ ๋ขฐํ•˜๊ณ  ์•ˆ์ „ํ•˜๊ฒŒ ํ†ต์‹ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ ์ตœ์‹  ํด๋ผ์ด์–ธํŠธ์™€ ๋ธŒ๋ผ์šฐ์ €๋Š” HTTPS๊ฐ€ ์•„๋‹Œ ์—ฐ๊ฒฐ์„ ์‹œ๋„ํ•  ๋•Œ ๊ฒฝ๊ณ ๋ฅผ ํ‘œ์‹œํ•˜์—ฌ ๊ณ„์†ํ•˜๊ธฐ ์ „์— ์‚ฌ์šฉ์ž์—๊ฒŒ ๋‹ค์‹œ ๊ณ ๋ คํ•˜๋ผ๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

์ธ์ฆ ๋ฐ ๊ถŒํ•œ ๋ถ€์—ฌ ๋ฉ”์ปค๋‹ˆ์ฆ˜ ๊ตฌํ˜„

API ๋ฐ ํ•ด๋‹น ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๋ฅผ ์ œ์–ดํ•˜๋ ค๋ฉด ๊ฐ•๋ ฅํ•œ ์ธ์ฆ ๋ฐ ๊ถŒํ•œ ๋ถ€์—ฌ ์†”๋ฃจ์…˜์ด ๋งˆ๋ จ๋˜์–ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. OAuth 2.0, JWT(JSON ์›น ํ† ํฐ) ๋˜๋Š” API ํ‚ค์™€ ๊ฐ™์ด ์ž˜ ํ™•๋ฆฝ๋œ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ๊ตฌํ˜„ํ•˜๋ฉด ์ด ๋ชฉํ‘œ๋ฅผ ๋‹ฌ์„ฑํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

OAuth 2.0์€ ์‚ฌ์šฉ์ž๊ฐ€ ์ž๊ฒฉ ์ฆ๋ช…์„ ๊ณต์œ ํ•˜์ง€ ์•Š๊ณ ๋„ ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ์•ก์„ธ์Šค ๊ถŒํ•œ์„ ํƒ€์‚ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋ถ€์—ฌํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„๋ฆฌ ์ฑ„ํƒ๋œ ์ธ์ฆ ํ”„๋ ˆ์ž„์›Œํฌ์ž…๋‹ˆ๋‹ค. ๋ฐ˜๋ฉด์— JWT๋Š” ๋‹น์‚ฌ์ž ๊ฐ„ ์•ˆ์ „ํ•œ ๋ฐ์ดํ„ฐ ๊ตํ™˜์„ ํ—ˆ์šฉํ•˜๊ณ  ์ธ์ฆ ๋ฐ ๊ถŒํ•œ ๋ถ€์—ฌ ๋ชฉ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ปดํŒฉํŠธํ•˜๊ณ  ๋…๋ฆฝ์ ์ธ ํ† ํฐ ํ˜•์‹์ž…๋‹ˆ๋‹ค. API ํ‚ค๋Š” ํด๋ผ์ด์–ธํŠธ์— ๋ฐœ๊ธ‰๋œ ๊ณ ์œ  ์‹๋ณ„์ž๋กœ, ์ด๋ฅผ ํ†ตํ•ด ํด๋ผ์ด์–ธํŠธ์˜ API ์‚ฌ์šฉ๋Ÿ‰์„ ์ถ”์ ํ•˜๊ณ  ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•„์š”์— ๋”ฐ๋ผ ์ด๋Ÿฌํ•œ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ๊ฒฐํ•ฉํ•˜๋ฉด API์— ์œ ์—ฐํ•˜๊ณ  ์•ˆ์ „ํ•˜๋ฉฐ ์‚ฌ์šฉ์ž ์นœํ™”์ ์ธ ์•ก์„ธ์Šค ์ œ์–ด ์†”๋ฃจ์…˜์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์•ก์„ธ์Šค ์ œ์–ด ๋ฐ ์†๋„ ์ œํ•œ ์ •์ฑ… ์ ์šฉ

์•ก์„ธ์Šค ์ œ์–ด๋Š” API ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ๋‹ค์–‘ํ•œ ๊ถŒํ•œ ์ˆ˜์ค€์„ ์ •์˜ํ•˜๊ณ  ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๊ถŒํ•œ์ด ๋ถ€์—ฌ๋œ ๊ธฐ๋Šฅ๊ณผ ๋ฐ์ดํ„ฐ์—๋งŒ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ํ”„๋กœ์„ธ์Šค์ž…๋‹ˆ๋‹ค. ์—ญํ•  ๊ธฐ๋ฐ˜ ์•ก์„ธ์Šค ์ œ์–ด(RBAC) ๋˜๋Š” ์†์„ฑ ๊ธฐ๋ฐ˜ ์•ก์„ธ์Šค ์ œ์–ด(ABAC)๋ฅผ ๊ตฌํ˜„ํ•˜๋ฉด API์— ๋Œ€ํ•œ ๋ช…ํ™•ํ•˜๊ณ  ์œ ์—ฐํ•œ ๊ถŒํ•œ ๊ตฌ์กฐ๋ฅผ ์„ค์ •ํ•˜์—ฌ ์„ธ๋ถ„ํ™”๋œ ์•ก์„ธ์Šค ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๊ฑฐ๋‚˜ ์ œํ•œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

REST API ๋””์ž์ธ์„ AppMaster ์™€ ํ†ตํ•ฉ

๋ฐฐํฌ ์ŠคํŠธ๋ ˆ์Šค ์—†์ด ์ถœ์‹œํ•˜์„ธ์š”
์ค€๋น„๋˜๋ฉด AppMaster Cloud ๋˜๋Š” ์ž์ฒด ์ธํ”„๋ผ์— ๋ฐฐํฌํ•˜์„ธ์š”.
์•ฑ ๋ฐฐํฌ

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

๋ฐฑ์—”๋“œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ ๋น„์ฆˆ๋‹ˆ์Šค ํ”„๋กœ์„ธ์Šค์˜ ์‹œ๊ฐ์  ๋””์ž์ธ

AppMaster ์˜ ์ง๊ด€์ ์ธ ์‹œ๊ฐ์  ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜์ง€ ์•Š๊ณ ๋„ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์„ ์ƒ์„ฑํ•˜๊ณ , ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ์„ค๊ณ„ํ•˜๊ณ , REST API ๋ฐ WebSocket endpoints ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ”Œ๋žซํผ์˜ ๊ฐ•๋ ฅํ•œ ๋ฐฑ์—”๋“œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ๋น„์ฆˆ๋‹ˆ์Šค ํ”„๋กœ์„ธ์Šค ๋””์ž์ด๋„ˆ ๋„๊ตฌ๋ฅผ ํ™œ์šฉํ•˜๋ฉด REST ๋””์ž์ธ ์›์น™์„ ์ค€์ˆ˜ํ•˜๋Š” ํ™•์žฅ ๊ฐ€๋Šฅํ•˜๊ณ  ์ „๋ฌธ์ ์ธ ํ’ˆ์งˆ์˜ API๋ฅผ ์‹ ์†ํ•˜๊ฒŒ ๊ตฌ์ถ•ํ•˜๊ณ  ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์†Œ์Šค ์ฝ”๋“œ ๋ฐ ๋ฌธ์„œ ์ž๋™ ์ƒ์„ฑ

AppMaster ์˜ ์‹œ๊ฐ์  ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ API๋ฅผ ์„ค๊ณ„ํ•˜๋ฉด ํ”Œ๋žซํผ์€ ๋ฐฑ์—”๋“œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์šฉ ์†Œ์Šค ์ฝ”๋“œ(Go์—์„œ), ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์šฉ TypeScript ๋ฐ Vue3 , Android ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์šฉ Kotlin / Jetpack Compose ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ AppMaster ํฌ๊ด„์ ์ธ Swagger(OpenAPI) ๋ฌธ์„œ๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ํด๋ผ์ด์–ธํŠธ๊ฐ€ API๋ฅผ ์‰ฝ๊ฒŒ ์ดํ•ดํ•˜๊ณ  ํ†ตํ•ฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ์ž๋™์œผ๋กœ ์ƒ์„ฑ๋œ ๋ฌธ์„œ๋Š” API ์„ค๊ณ„์˜ ์ผ๊ด€์„ฑ์„ ๋ณด์žฅํ•˜๊ณ  ํ”„๋กœ์ ํŠธ๊ฐ€ ๋ฐœ์ „ํ•จ์— ๋”ฐ๋ผ ์œ ์ง€ ๊ด€๋ฆฌ ๋ฐ ์—…๋ฐ์ดํŠธ๋ฅผ ๋‹จ์ˆœํ™”ํ•ฉ๋‹ˆ๋‹ค.

๊ธฐ์ˆ ์  ๋ถ€์ฑ„๊ฐ€ ์—†์œผ๋ฉฐ ํ™•์žฅ์„ฑ์ด ๋›ฐ์–ด๋‚ฉ๋‹ˆ๋‹ค.

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

์œ ์—ฐํ•œ ๊ตฌ๋… ๊ณ„ํš ๋ฐ ๋ฐฐํฌ ์˜ต์…˜

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

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

์ž์ฃผ ๋ฌป๋Š” ์งˆ๋ฌธ

REST ๋””์ž์ธ ์›์น™์€ ๋ฌด์—‡์ธ๊ฐ€์š”?

REST ๋””์ž์ธ ์›์น™์€ REST(Representational State Transfer) ์›์น™์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์›น ์„œ๋น„์Šค ๋ฐ API๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•œ ์ผ๋ จ์˜ ์ง€์นจ ๋ฐ ๋ชจ๋ฒ” ์‚ฌ๋ก€์ž…๋‹ˆ๋‹ค. ํ™•์žฅ ๊ฐ€๋Šฅํ•˜๊ณ  ์œ ์ง€ ๊ด€๋ฆฌ ๊ฐ€๋Šฅํ•˜๋ฉฐ ์ƒํ˜ธ ์šด์šฉ ๊ฐ€๋Šฅํ•œ API๋ฅผ ์„ค๊ณ„ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

REST๋ž€ ๋ฌด์—‡์ด๋ฉฐ ์›น ์„œ๋น„์Šค์—์„œ ์™œ ์ค‘์š”ํ•œ๊ฐ€์š”?

REST(Representational State Transfer)๋Š” ์ผ๋ จ์˜ ์ œ์•ฝ ์กฐ๊ฑด์„ ์ •์˜ํ•˜์—ฌ ์›น ์„œ๋น„์Šค ๊ฐœ๋ฐœ์„ ๋‹จ์ˆœํ™”ํ•˜๋Š” ์•„ํ‚คํ…์ฒ˜ ์Šคํƒ€์ผ์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ œ์•ฝ์œผ๋กœ ์ธํ•ด ์ƒํƒœ ๋น„์ €์žฅ, ํ™•์žฅ์„ฑ ๋ฐ ๋‹จ์ˆœ์„ฑ์ด ํ–ฅ์ƒ๋˜์–ด REST๊ฐ€ ์›น API ๊ตฌ์ถ•์— ๋„๋ฆฌ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

REST ๋””์ž์ธ์˜ ํ•ต์‹ฌ ์›์น™์€ ๋ฌด์—‡์ธ๊ฐ€์š”?

REST ๋””์ž์ธ์˜ ์ฃผ์š” ์›์น™์—๋Š” ๋ช…ํ™•ํ•˜๊ณ  ์˜๋ฏธ ์žˆ๋Š” URI ์‚ฌ์šฉ, HTTP ๋ฉ”์„œ๋“œ(GET, POST, PUT, DELETE) ํ™œ์šฉ, ๋ฆฌ์†Œ์Šค ํ‘œํ˜„ ์šฐ์„ ์ˆœ์œ„ ์ง€์ •, ๋ฌด์ƒํƒœ ์ˆ˜์šฉ, HATEOAS(์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ƒํƒœ ์—”์ง„์œผ๋กœ์„œ์˜ ํ•˜์ดํผํ…์ŠคํŠธ) ํ†ตํ•ฉ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

๋ช…ํ™•ํ•œ URI๋Š” RESTful API ๋””์ž์ธ์— ์–ด๋–ค ์˜ํ–ฅ์„ ๋ฏธ์น˜๋‚˜์š”?

๋ช…ํ™•ํ•œ URI๋Š” RESTful API์˜ ๊ฐ€๋…์„ฑ๊ณผ ์ดํ•ด์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค. ๋…ผ๋ฆฌ์ ์ด๊ณ  ์ผ๊ด€๋œ ๋ฐฉ์‹์œผ๋กœ ๋ฆฌ์†Œ์Šค์™€ ์ž‘์—…์„ ๋‚˜ํƒ€๋‚ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

RESTful API ์„ค๊ณ„์—์„œ ์ ์ ˆํ•œ HTTP ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์˜ ์ค‘์š”์„ฑ์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

์˜ฌ๋ฐ”๋ฅธ HTTP ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด API๊ฐ€ ์˜๋„ํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋ฐ์ดํ„ฐ ๊ฒ€์ƒ‰์„ ์œ„ํ•œ GET, ๋ฆฌ์†Œ์Šค ์ƒ์„ฑ์„ ์œ„ํ•œ POST, ์—…๋ฐ์ดํŠธ๋ฅผ ์œ„ํ•œ PUT, ์ œ๊ฑฐ๋ฅผ ์œ„ํ•œ DELETE์ž…๋‹ˆ๋‹ค.

REST ๋””์ž์ธ์—์„œ ๋ฆฌ์†Œ์Šค ํ‘œํ˜„์ด ์ค‘์š”ํ•œ ์ด์œ ๋Š” ๋ฌด์—‡์ธ๊ฐ€์š”?

๋ฆฌ์†Œ์Šค ํ‘œํ˜„์€ API ์‘๋‹ต์—์„œ ๋ฐ์ดํ„ฐ๊ฐ€ ๊ตฌ์กฐํ™”๋˜๊ณ  ํ˜•์‹ํ™”๋˜๋Š” ๋ฐฉ์‹์„ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ์ž˜ ์„ค๊ณ„๋œ ํ‘œํ˜„์€ ๋ฐ์ดํ„ฐ ๊ตํ™˜ ํšจ์œจ์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚ค๊ณ  ๋ถˆํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ ์ „์†ก์„ ์ค„์ž…๋‹ˆ๋‹ค.

RESTful API ์„ค๊ณ„ ์›์น™์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ์ฝ”๋“œ ์—†๋Š” ํ”Œ๋žซํผ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‚˜์š”?

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

์‰ฌ์šด ์‹œ์ž‘
๋ฉ‹์ง„๋งŒ๋“ค๊ธฐ

๋ฌด๋ฃŒ ์š”๊ธˆ์ œ๋กœ AppMaster๋ฅผ ์‚ฌ์šฉํ•ด ๋ณด์„ธ์š”.
์ค€๋น„๊ฐ€ ๋˜๋ฉด ์ ์ ˆํ•œ ๊ตฌ๋…์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‹œ์ž‘ํ•˜๋‹ค
REST ์„ค๊ณ„ ์›์น™ | AppMaster