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

REST: ์†Œํ”„ํŠธ์›จ์–ด ์•„ํ‚คํ…์ฒ˜์— ๋ฏธ์น˜๋Š” ์˜ํ–ฅ

REST(Representational State Transfer)๊ฐ€ ์ตœ์‹  ์†Œํ”„ํŠธ์›จ์–ด ์•„ํ‚คํ…์ฒ˜์— ๋ฏธ์น˜๋Š” ์˜ํ–ฅ, ๊ทธ ์›์น™, ์ง„ํ™”, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ API์— ๊ฐ€์ ธ์˜ค๋Š” ์ด์ ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์„ธ์š”.

REST: ์†Œํ”„ํŠธ์›จ์–ด ์•„ํ‚คํ…์ฒ˜์— ๋ฏธ์น˜๋Š” ์˜ํ–ฅ

REST(Representational State Transfer)๋Š” Roy Fielding์ด 2000๋…„ ๋ฐ•์‚ฌ ํ•™์œ„ ๋…ผ๋ฌธ์—์„œ ์†Œ๊ฐœํ•œ ์•„ํ‚คํ…์ฒ˜ ์Šคํƒ€์ผ์ž…๋‹ˆ๋‹ค. REST์˜ ์ฃผ์š” ์ดˆ์ ์€ ์›น ์„œ๋น„์Šค๋ฅผ ํ™•์žฅ ๊ฐ€๋Šฅํ•˜๊ณ  ์œ ์ง€ ๊ด€๋ฆฌ ๊ฐ€๋Šฅํ•˜๋ฉฐ ๋‹จ์ˆœํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ์ผ๋ จ์˜ ์ œ์•ฝ ์กฐ๊ฑด๊ณผ ์›์น™์„ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. REST๋Š” ์ตœ์‹  ์†Œํ”„ํŠธ์›จ์–ด ์•„ํ‚คํ…์ฒ˜์— ๋„๋ฆฌ ์ฑ„ํƒ๋˜์–ด ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด ์ธํ„ฐ๋„ท์„ ํ†ตํ•ด ํ†ต์‹ ํ•˜๋Š” ๋ฐฉ์‹์„ ํ˜•์„ฑํ•ฉ๋‹ˆ๋‹ค.

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

REST์˜ ํ•ต์‹ฌ ์›์น™

RESTful ์•„ํ‚คํ…์ฒ˜๋ฅผ ์•ˆ๋‚ดํ•˜๋Š” ๊ธฐ๋ณธ ์›์น™์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  1. ์ƒํƒœ ๋น„์ €์žฅ ํ†ต์‹ : ์„œ๋ฒ„์— ๋Œ€ํ•œ ๋ชจ๋“  ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ์—๋Š” ์ €์žฅ๋œ ์ •๋ณด๋‚˜ ์ด์ „ ์š”์ฒญ ์ปจํ…์ŠคํŠธ์— ์˜์กดํ•˜์ง€ ์•Š๊ณ  ์„œ๋ฒ„๊ฐ€ ํ•ด๋‹น ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๋ชจ๋“  ์ •๋ณด๊ฐ€ ํฌํ•จ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์‹œ์Šคํ…œ์˜ ๋” ๋‚˜์€ ํ™•์žฅ์„ฑ์„ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.
  2. ์บ์‹œ ๊ฐ€๋Šฅํ•œ ๋ฆฌ์†Œ์Šค: ์„œ๋ฒ„์˜ ์‘๋‹ต์€ ์บ์‹œ ๊ฐ€๋Šฅ ๋˜๋Š” ์บ์‹œ ๋ถˆ๊ฐ€๋Šฅ์œผ๋กœ ํ‘œ์‹œ๋  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ํด๋ผ์ด์–ธํŠธ๋Š” ์ด์ „์— ๊ฐ€์ ธ์˜จ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ์žฌ์‚ฌ์šฉํ•˜์—ฌ ์„ฑ๋Šฅ์„ ๊ฐœ์„ ํ•˜๊ณ  ์„œ๋ฒ„ ๋ถ€ํ•˜๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  3. ํด๋ผ์ด์–ธํŠธ-์„œ๋ฒ„ ๋ถ„๋ฆฌ: ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๋Š” ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ํด๋ผ์ด์–ธํŠธ์™€ ๋ฆฌ์†Œ์Šค ๋ฐ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ์„œ๋ฒ„์™€ ํ•จ๊ป˜ ๋ณ„๊ฐœ์˜ ์ฑ…์ž„์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ถ„๋ฆฌ๋ฅผ ํ†ตํ•ด ๋…๋ฆฝ์ ์ธ ์ง„ํ™”์™€ ๊ฐœ์„ ๋œ ์‹œ์Šคํ…œ ๊ด€๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
  4. ๊ท ์ผํ•œ ์ธํ„ฐํŽ˜์ด์Šค: REST๋Š” ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ๊ฐ„์˜ ํ†ต์‹ ์„ ์œ„ํ•œ ํ‘œ์ค€ํ™”๋œ ๋ฐฉ๋ฒ•์„ ์ ์šฉํ•˜์—ฌ HTTP ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฆฌ์†Œ์Šค ์กฐ์ž‘์„ ์œ„ํ•œ ๋‹จ์ˆœํ•˜๊ณ  ์ผ๊ด€๋œ ๊ทœ์น™ ์„ธํŠธ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  5. ๊ณ„์ธตํ™”๋œ ์‹œ์Šคํ…œ ์•„ํ‚คํ…์ฒ˜: REST ๊ธฐ๋ฐ˜ ์‹œ์Šคํ…œ์€ ๊ฐ๊ฐ ํŠน์ • ๊ธฐ๋Šฅ์„ ๋‹ด๋‹นํ•˜๋Š” ์—ฌ๋Ÿฌ ๊ณ„์ธต์œผ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์ด ๋ชจ๋“ˆ์‹ ์ ‘๊ทผ ๋ฐฉ์‹์€ ๊ด€์‹ฌ์‚ฌ์˜ ๋ช…ํ™•ํ•œ ๋ถ„๋ฆฌ, ํ–ฅ์ƒ๋œ ์žฌ์‚ฌ์šฉ์„ฑ ๋ฐ ๋” ์‰ฌ์šด ์‹œ์Šคํ…œ ๊ด€๋ฆฌ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  6. Code-on-Demand(์„ ํƒ ์‚ฌํ•ญ): ๊ฒฝ์šฐ์— ๋”ฐ๋ผ ์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๊ธฐ๋Šฅ์„ ํ™•์žฅํ•  ์ˆ˜ ์žˆ๋„๋ก ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ์ฝ”๋“œ๋ฅผ ์ œ๊ณตํ•˜์—ฌ ์‹œ์Šคํ…œ์˜ ํ™•์žฅ์„ฑ๊ณผ ์œ ์—ฐ์„ฑ์„ ๋†’์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋ฏธ์ง€ ์ถœ์ฒ˜: restfulapi.net

์ด๋Ÿฌํ•œ ์›์น™์„ ์ค€์ˆ˜ํ•˜๋ฉด RESTful ์†Œํ”„ํŠธ์›จ์–ด ์•„ํ‚คํ…์ฒ˜๊ฐ€ ์ตœ์‹  ์›น ์„œ๋น„์Šค์—์„œ ์š”๊ตฌํ•˜๋Š” ํ™•์žฅ์„ฑ, ๋‹จ์ˆœ์„ฑ ๋ฐ ์œ ์ง€ ๊ด€๋ฆฌ ํŠน์„ฑ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

REST๊ฐ€ ์†Œํ”„ํŠธ์›จ์–ด ์•„ํ‚คํ…์ฒ˜๋ฅผ ๋ณ€๊ฒฝํ•œ ๋ฐฉ๋ฒ•

REST๊ฐ€ ๋„๋ฆฌ ์ฑ„ํƒ๋˜๊ธฐ ์ „์—๋Š” ๋งŽ์€ ์›น ์„œ๋น„์Šค๊ฐ€ SOAP(Simple Object Access Protocol) ํ‘œ์ค€์„ ๋”ฐ๋ฅด๊ฑฐ๋‚˜ ์‚ฌ์šฉ์ž ์ •์˜ ๋ฐ ๋…์  ํ†ต์‹  ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ข…์ข… ๋น„ํšจ์œจ์„ฑ๊ณผ ์ƒํ˜ธ ์šด์šฉ์„ฑ ๋ฌธ์ œ๋กœ ์ด์–ด์กŒ์Šต๋‹ˆ๋‹ค. SOAP๋Š” XML ๊ธฐ๋ฐ˜ ๋ฉ”์‹œ์ง€ ํ˜•์‹๊ณผ ๋ณต์žกํ•œ ์ ˆ์ฐจ์— ์˜์กดํ•˜๋Š” ๋ฐ˜๋ฉด ๋งž์ถคํ˜• ์ ‘๊ทผ ๋ฐฉ์‹์€ ํด๋ผ์ด์–ธํŠธ์™€ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ƒˆ๋กœ์šด ์‹œ์Šคํ…œ์„ ๋ฐฐ์šฐ๊ณ  ์ ์‘ํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค.

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

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

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

API ๋ฐ AppMaster ํ”Œ๋žซํผ์—์„œ REST์˜ ์—ญํ• 

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

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

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

RESTful ์•„ํ‚คํ…์ฒ˜ ์‚ฌ์šฉ์˜ ์ด์ 

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

ํ–ฅ์ƒ๋œ ํ™•์žฅ์„ฑ

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

ํ–ฅ์ƒ๋œ ์„ฑ๋Šฅ

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

ํ–ฅ์ƒ๋œ ์‹ ๋ขฐ์„ฑ

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

ํ™•์žฅ์„ฑ๊ณผ ์œ ์—ฐ์„ฑ

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

๊ฐ„์†Œํ™”๋œ API ๋ฐ ๋ฆฌ์†Œ์Šค ๊ด€๋ฆฌ

ํ‘œ์ค€ํ™”๋œ HTTP ๋ฉ”์„œ๋“œ์™€ ์ž˜ ์ •์˜๋œ ๋ฆฌ์†Œ์Šค ๋ช…๋ช… ๊ทœ์น™์„ ์‚ฌ์šฉํ•˜๋Š” RESTful API๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ฆฌ์†Œ์Šค ๊ด€๋ฆฌ๋ฅผ ๋‹จ์ˆœํ™”ํ•ฉ๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž๋Š” ๋งž์ถคํ˜• ํ†ต์‹  ํ”„๋กœํ† ์ฝœ ๊ตฌํ˜„์— ๋Œ€ํ•ด ๊ฑฑ์ •ํ•˜๋Š” ๋Œ€์‹  ํ•ต์‹ฌ ๊ธฐ๋Šฅ์„ ๊ตฌ์ถ•ํ•˜๋Š” ๋ฐ ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹ค๋ฅธ ์‹œ์Šคํ…œ๊ณผ์˜ ์†์‰ฌ์šด ํ†ตํ•ฉ

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

์†Œํ”„ํŠธ์›จ์–ด ์„ค๊ณ„์—์„œ REST์˜ ๋ฏธ๋ž˜

๊น”๋”ํ•œ ์—”๋“œํฌ์ธํŠธ ๋งŒ๋“ค๊ธฐ
๋ฆฌ์†Œ์Šค์™€ HTTP ๋ฉ”์„œ๋“œ๋กœ ๋ณด์ผ๋Ÿฌํ”Œ๋ ˆ์ดํŠธ ์—†์ด ๋™์ž‘ํ•˜๋Š” ์—”๋“œํฌ์ธํŠธ๋ฅผ ๋งŒ๋“œ์„ธ์š”.
์ง€๊ธˆ ์‹œ์ž‘ํ•˜๊ธฐ

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

์ด๋Ÿฌํ•œ ๊ธฐ์ˆ ์€ ์งง์€ ๋Œ€๊ธฐ ์‹œ๊ฐ„, ์‹ค์‹œ๊ฐ„ ํ†ต์‹  ๋ฐ ๋ณด๋‹ค ์œ ์—ฐํ•œ ์ฟผ๋ฆฌ ๊ธฐ๋Šฅ๊ณผ ๊ฐ™์€ REST์— ๋น„ํ•ด ํŠน์ • ์‚ฌ์šฉ ์‚ฌ๋ก€์—์„œ ํŠน์ • ์ด์ ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๊ฐœ๋ฐœ์ž๋Š” ์ด๋Ÿฌํ•œ ์˜ต์…˜์„ ํ‰๊ฐ€ํ•˜๊ณ  ํŠน์ • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์š”๊ตฌ ์‚ฌํ•ญ์— ๋”ฐ๋ผ ๊ฐ€์žฅ ์ ํ•ฉํ•œ ์ ‘๊ทผ ๋ฐฉ์‹์„ ์„ ํƒํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

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

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

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

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

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

๋ฌด๊ตญ์  ํ†ต์‹  ์บ์‹œ ๊ฐ€๋Šฅํ•œ ๋ฆฌ์†Œ์Šค ํด๋ผ์ด์–ธํŠธ-์„œ๋ฒ„ ๋ถ„๋ฆฌ ๊ท ์ผํ•œ ์ธํ„ฐํŽ˜์ด์Šค ๊ณ„์ธตํ™”๋œ ์‹œ์Šคํ…œ ์•„ํ‚คํ…์ฒ˜ ์ฃผ๋ฌธํ˜• ์ฝ”๋“œ(์„ ํƒ ์‚ฌํ•ญ)

REST๋Š” ์†Œํ”„ํŠธ์›จ์–ด ์•„ํ‚คํ…์ฒ˜์— ์–ด๋–ค ์˜ํ–ฅ์„ ๋ฏธ์ณค์Šต๋‹ˆ๊นŒ?

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

API ๋””์ž์ธ์—์„œ REST๊ฐ€ ์ธ๊ธฐ ์žˆ๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ธ๊ฐ€์š”?

REST๋Š” HTTP ๋ฐ URI์™€ ๊ฐ™์€ ๊ธฐ์กด ์›น ํ‘œ์ค€์„ ํ™œ์šฉํ•˜์—ฌ ๊ตฌํ˜„, ์ดํ•ด ๋ฐ ์œ ์ง€ ๊ด€๋ฆฌ๊ฐ€ ๋” ์‰ฝ๊ธฐ ๋•Œ๋ฌธ์— API ๋””์ž์ธ์—์„œ ๋„๋ฆฌ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ API์˜ ํ™•์žฅ์„ฑ, ์œ ์—ฐ์„ฑ ๋ฐ ํ™•์žฅ์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค.

AppMaster๋Š” REST๋ฅผ ์–ด๋–ป๊ฒŒ ํ†ตํ•ฉํ•˜๋‚˜์š”?

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

RESTful ์•„ํ‚คํ…์ฒ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์–ด๋–ค ์ด์ ์ด ์žˆ๋‚˜์š”?

ํ–ฅ์ƒ๋œ ํ™•์žฅ์„ฑ ํ–ฅ์ƒ๋œ ์„ฑ๋Šฅ ํ–ฅ์ƒ๋œ ์‹ ๋ขฐ์„ฑ ํ™•์žฅ์„ฑ ๋ฐ ์œ ์—ฐ์„ฑ ๊ฐ„์†Œํ™”๋œ API ๋ฐ ๋ฆฌ์†Œ์Šค ๊ด€๋ฆฌ ๋‹ค๋ฅธ ์‹œ์Šคํ…œ๊ณผ์˜ ์‰ฌ์šด ํ†ตํ•ฉ

REST๋Š” ๋ชจ๋“  ์œ ํ˜•์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์ ํ•ฉํ•ฉ๋‹ˆ๊นŒ?

REST๋Š” ํด๋ผ์ด์–ธํŠธ-์„œ๋ฒ„ ํ†ต์‹  ๋ฐ ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ์•„ํ‚คํ…์ฒ˜์— ์˜์กดํ•˜๋Š” ์›น ๊ธฐ๋ฐ˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ API์— ๋งค์šฐ ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ WebSocket ๋˜๋Š” gRPC์™€ ๊ฐ™์€ ๋Œ€์ฒด ์•„ํ‚คํ…์ฒ˜๊ฐ€ ๋” ์ ํ•ฉํ•  ์ˆ˜ ์žˆ๋Š” ๋Œ€๊ธฐ ์‹œ๊ฐ„์ด ์งง์€ ํ†ต์‹ ์ด ํ•„์š”ํ•œ ์‹ค์‹œ๊ฐ„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด๋‚˜ ์‹œ์Šคํ…œ์—๋Š” ์ตœ์„ ์˜ ์„ ํƒ์ด ์•„๋‹ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์†Œํ”„ํŠธ์›จ์–ด ์„ค๊ณ„์—์„œ REST์˜ ๋ฏธ๋ž˜๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

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

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

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

์‹œ์ž‘ํ•˜๋‹ค
REST: ์†Œํ”„ํŠธ์›จ์–ด ์•„ํ‚คํ…์ฒ˜์— ๋ฏธ์น˜๋Š” ์˜ํ–ฅ | AppMaster