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

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

์ž˜ ์ •์˜๋œ endpoint ์˜ ์ฃผ์š” ์ด์  ์ค‘ ํ•˜๋‚˜๋Š” ํŠนํžˆ ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์—์„œ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ์•„ํ‚คํ…์ฒ˜ ์ ‘๊ทผ ๋ฐฉ์‹์œผ๋กœ ๊ฐ„์ฃผ๋˜๋Š” RESTful API ์ปจํ…์ŠคํŠธ์—์„œ ์žฌ์‚ฌ์šฉ์„ฑ์„ ์ด‰์ง„ํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. REST(Representational State Transfer)๋Š” ํšจ์œจ์ ์ธ ์บ์‹ฑ ๋ฐ ์‘๋‹ต ์บ์‹œ ๊ฐ€๋Šฅ์„ฑ ์›์น™๊ณผ ํ•จ๊ป˜ ๊ตฌ์„ฑ ์š”์†Œ ๊ฐ„์˜ ์ƒํƒœ ๋น„์ €์žฅ ์ƒํ˜ธ ์ž‘์šฉ์„ ๊ฐ•์กฐํ•˜๋Š” ์•„ํ‚คํ…์ฒ˜ ์Šคํƒ€์ผ์ž…๋‹ˆ๋‹ค. RESTful API์—์„œ endpoints ๊ฐœ๋ฐœ์ž๊ฐ€ GET, POST, PUT ๋ฐ DELETE์™€ ๊ฐ™์€ ํ‘œ์ค€ํ™”๋œ HTTP ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŠน์ • ๋ฆฌ์†Œ์Šค์™€ ์ƒํ˜ธ ์ž‘์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์‚ฌ์šฉ์ž ์ •๋ณด๋ฅผ ๊ฒ€์ƒ‰ํ•˜๊ธฐ ์œ„ํ•œ endpoint ๋Š” /users/{userId} ๋กœ ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ {userId} ์ž๋ฆฌ ํ‘œ์‹œ์ž๋Š” ์ƒํ˜ธ์ž‘์šฉ ์ค‘์— ์‹ค์ œ ์‚ฌ์šฉ์ž ์‹๋ณ„์ž๋กœ ๊ต์ฒดํ•ด์•ผ ํ•˜๋Š” ๊ณ ์œ  ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ด endpoint ์— HTTP GET ์š”์ฒญ์„ ๋ณด๋‚ด๋ฉด ์„œ๋ฒ„๋Š” ์š”์ฒญ๋œ ์‚ฌ์šฉ์ž ๋ฐ์ดํ„ฐ๋กœ ์‘๋‹ตํ•˜์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜, ๊ธฐํƒ€ ์„œ๋น„์Šค ๋˜๋Š” ์žฅ์น˜์— ์‰ฝ๊ฒŒ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

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

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

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

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