์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ๋ฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ตฌ์ถ• ์˜์—ญ์—์„œ RESTful API(Representational State Transfer Application ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ธํ„ฐํŽ˜์ด์Šค)๋Š” ํ™•์žฅ ๊ฐ€๋Šฅํ•˜๊ณ  ๊ฐ•๋ ฅํ•˜๋ฉฐ ์‚ฌ์šฉ์ž ์นœํ™”์ ์ธ API๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•œ ์ผ๋ จ์˜ ์ œ์•ฝ ์กฐ๊ฑด๊ณผ ๋ชจ๋ฒ” ์‚ฌ๋ก€๋ฅผ ์ •์˜ํ•˜๋Š” ์ค‘์š”ํ•œ ์•„ํ‚คํ…์ฒ˜ ์Šคํƒ€์ผ์ž…๋‹ˆ๋‹ค. 2000๋…„ Roy Fielding ๋ฐ•์‚ฌ์˜ ๋ฐ•์‚ฌ ๋…ผ๋ฌธ์—์„œ ํƒ„์ƒํ•œ RESTful API๋Š” ์‚ฌ์‹ค์ƒ ์›น ์„œ๋น„์Šค์˜ ํ‘œ์ค€์ด ๋˜์—ˆ์œผ๋ฉฐ ์ „ ์„ธ๊ณ„ ๊ฐœ๋ฐœ์ž์™€ ์„ค๊ณ„์ž ์‚ฌ์ด์—์„œ ์—„์ฒญ๋‚œ ์ธ๊ธฐ๋ฅผ ์–ป๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํŽธ์žฌ์„ฑ์˜ ์ฃผ์š” ์ด์œ  ์ค‘ ํ•˜๋‚˜๋Š” RESTful API๊ฐ€ ์„œ๋ฒ„์™€ ํšจ๊ณผ์ ์œผ๋กœ ํ†ต์‹ ํ•˜๊ณ , ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ƒ‰ ๋ฐ ์กฐ์ž‘ํ•˜๊ณ , ๋‹ค์–‘ํ•œ ํ”Œ๋žซํผ์—์„œ ์ตœ์†Œํ•œ์˜ ๋Œ€๊ธฐ ์‹œ๊ฐ„๊ณผ ์›ํ™œํ•œ ํ˜ธํ™˜์„ฑ์œผ๋กœ ๊ธฐํƒ€ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค.

RESTful API๋Š” ์ฃผ๋กœ ์ƒํƒœ ๋น„์ €์žฅ ํด๋ผ์ด์–ธํŠธ-์„œ๋ฒ„ ์•„ํ‚คํ…์ฒ˜์— ์˜์กดํ•˜๋ฏ€๋กœ ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ๊ตฌ์„ฑ ์š”์†Œ ๋ชจ๋‘์˜ ๋ฌธ์ œ๋ฅผ ๋” ์ž˜ ๋ถ„๋ฆฌํ•˜๊ณ  ๋” ์‰ฝ๊ฒŒ ์œ ์ง€ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์•„ํ‚คํ…์ฒ˜์—์„œ ์„œ๋ฒ„๋Š” ๋ฆฌ์†Œ์Šค์™€ ์„œ๋น„์Šค๋ฅผ ์ €์žฅํ•˜๊ณ  ํด๋ผ์ด์–ธํŠธ๋Š” ์ด๋Ÿฌํ•œ ๋ฆฌ์†Œ์Šค๋ฅผ ๋ Œ๋”๋งํ•˜๊ณ  ์‚ฌ์šฉ์ž์™€ ์ƒํ˜ธ ์ž‘์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ์„œ๋ฒ„๋Š” GET, POST, PUT ๋ฐ DELETE์™€ ๊ฐ™์€ ํ‘œ์ค€ HTTP ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๋Š” endpoints ์ง‘ํ•ฉ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฉ”์„œ๋“œ๋Š” ๊ฐ๊ฐ ๋ฆฌ์†Œ์Šค ์ฝ๊ธฐ, ์ƒ์„ฑ, ์—…๋ฐ์ดํŠธ ๋ฐ ์‚ญ์ œ์™€ ๊ฐ™์€ ์ž‘์—…์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋ฐ˜ํ™˜ ๋ฐ์ดํ„ฐ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ JSON ๋˜๋Š” XML๊ณผ ๊ฐ™์€ ๊ฒฝ๋Ÿ‰ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋กœ ํ˜•์‹ํ™”๋ฉ๋‹ˆ๋‹ค.

HATEOAS(์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ƒํƒœ ์—”์ง„์œผ๋กœ์„œ์˜ ํ•˜์ดํผ๋ฏธ๋””์–ด) ๊ฐœ๋…์„ ์ค€์ˆ˜ํ•˜๋ฉด RESTful API๊ฐ€ ๊ฒ€์ƒ‰ ๊ฐ€๋Šฅํ•˜๊ณ  ์ž์ฒด ์„ค๋ช…์ ์ž„์„ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ๋Š” ํ•˜์ดํผ๋งํฌ๋ฅผ ํ†ตํ•ด API๋ฅผ ํƒ์ƒ‰ํ•˜๋ฏ€๋กœ endpoints ์— ๋Œ€ํ•œ ์‚ฌ์ „ ์ง€์‹์— ๋Œ€ํ•œ ์˜์กด๋„๊ฐ€ ์ค„์–ด๋“ญ๋‹ˆ๋‹ค. 200, 201, 400, 500๊ณผ ๊ฐ™์€ HTTP ์ƒํƒœ ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด API ์‘๋‹ต์— ๋” ๋งŽ์€ ์ •๋ณด๊ฐ€ ์ œ๊ณต๋˜๊ณ  ์ ์ ˆํ•œ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ์— ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

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

AppMasterno-code ํ”Œ๋žซํผ์˜ ๋งฅ๋ฝ์—์„œ RESTful API๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์˜ ๋‹ค์–‘ํ•œ ์ธก๋ฉด์„ ํ†ตํ•ฉํ•˜๊ณ  ์ž๋™ํ™”ํ•˜๋Š” ๋ฐ ์ค‘์ถ”์ ์ธ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. AppMaster ์‚ฌ์šฉํ•˜๋ฉด ๊ณ ๊ฐ์€ ์‹œ๊ฐ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์„ ์ƒ์„ฑํ•˜๊ณ , ๋น„์ฆˆ๋‹ˆ์Šค ํ”„๋กœ์„ธ์Šค(BP) ๋””์ž์ด๋„ˆ๋ฅผ ํ†ตํ•ด ๋น„์ฆˆ๋‹ˆ์Šค ํ”„๋กœ์„ธ์Šค๋ฅผ ์„ค๊ณ„ํ•˜๊ณ , ์ˆ˜๋งŽ์€ REST API ๋ฐ WSS(WebSocket Secure) endpoints ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ API endpoints ํ™œ์šฉํ•จ์œผ๋กœ์จ AppMaster ์ƒ์„ฑ๋œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋‹ค๋ฅธ ์™ธ๋ถ€ ์„œ๋น„์Šค ๋ฐ ๋„๊ตฌ์™€๋„ ํ†ตํ•ฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๊ธฐ์—…์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ž ์žฌ๋ ฅ์„ ์ตœ๋Œ€ํ•œ ํ™œ์šฉํ•˜๊ณ  ํšจ์œจ์„ฑ์„ ๊ทน๋Œ€ํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

AppMaster ์˜ no-code ํ”Œ๋žซํผ๋งŒํผ ๊ด‘๋ฒ”์œ„ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์‹ค๋ฌด์ž๋Š” RESTful API๊ฐ€ ์ƒํ˜ธ ์šด์šฉ์„ฑ๊ณผ ๋‹จ์ˆœ์„ฑ์— ๋งž์ถฐ์ ธ ์žˆ์Œ์„ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ ํŠน์ • ๋ณต์žกํ•œ ์‚ฌ์šฉ ์‚ฌ๋ก€์—๋Š” ์ด๋Ÿฌํ•œ ํŠน์ • ์š”๊ตฌ ์‚ฌํ•ญ์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๋ณด๋‹ค ๋งž์ถคํ™”๋œ ์†”๋ฃจ์…˜์ด ํ•„์š”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ฒฝ์šฐ ๊ฐœ๋ฐœ์ž๋Š” ๋ณด๋‹ค ์ „๋ฌธ์ ์ธ ์š”๊ตฌ ์‚ฌํ•ญ์— ๋งž๊ฒŒ ๋‹ค์–‘ํ•œ ์ฟผ๋ฆฌ ์–ธ์–ด์™€ RPC(์›๊ฒฉ ํ”„๋กœ์‹œ์ € ํ˜ธ์ถœ) ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์ œ๊ณตํ•˜๋Š” GraphQL ๋˜๋Š” gRPC์™€ ๊ฐ™์€ ๋‹ค๋ฅธ ์•„ํ‚คํ…์ฒ˜ ์Šคํƒ€์ผ์„ ์–ธ์ œ๋“ ์ง€ ํƒ์ƒ‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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