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

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

SlashData์˜ 2021๋…„ ์„ค๋ฌธ์กฐ์‚ฌ์— ๋”ฐ๋ฅด๋ฉด ์ „ ์„ธ๊ณ„ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์ž์˜ 77% ์ด์ƒ์ด ํ”„๋กœ์ ํŠธ์—์„œ Web API๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ๋ณด๊ณ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ํ˜„๋Œ€ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ์ƒํƒœ๊ณ„์—์„œ Web API๊ฐ€ ์ˆ˜ํ–‰ํ•˜๋Š” ์ค‘์š”ํ•œ ์—ญํ• ์„ ๋ฐ˜์˜ํ•ฉ๋‹ˆ๋‹ค. ์›น API๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐœ๋ฐœ์ž๋Š” ๋‹ค์–‘ํ•œ ํƒ€์‚ฌ ๋ฆฌ์†Œ์Šค, ๋„๊ตฌ ๋ฐ ์„œ๋น„์Šค๋ฅผ ํ™œ์šฉํ•˜๊ณ , ์ •๋ณด ๊ตํ™˜์„ ์ด‰์ง„ํ•˜๊ณ , ์—ฌ๋Ÿฌ ์‹œ์Šคํ…œ, ํ”Œ๋žซํผ ๋ฐ ์žฅ์น˜์—์„œ ๋ณต์žกํ•œ ๋น„์ฆˆ๋‹ˆ์Šค ํ”„๋กœ์„ธ์Šค๋ฅผ ์กฐ์œจํ•˜์—ฌ ํ˜์‹ ์ ์ด๊ณ  ์ •๊ตํ•œ ์›น ๋ฐ ๋ชจ๋ฐ”์ผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ƒ์„ฑ์„ ์ง€์›ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์›น API์˜ ์ฃผ์š” ํŠน์ง• ์ค‘ ํ•˜๋‚˜๋Š” ๋‹ค์–‘ํ•œ ์‹œ์Šคํ…œ์—์„œ ํ†ต์ผ์„ฑ, ์ผ๊ด€์„ฑ ๋ฐ ์ƒํ˜ธ ์šด์šฉ์„ฑ์„ ๋ณด์žฅํ•˜๋Š” REST(Representational State Transfer) ๋ฐ SOAP(Simple Object Access Protocol)์™€ ๊ฐ™์ด ๋„๋ฆฌ ์ˆ˜์šฉ๋˜๋Š” ์•„ํ‚คํ…์ฒ˜ ์›์น™, ๊ทœ์น™ ๋ฐ ํ‘œ์ค€์„ ์ค€์ˆ˜ํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์„œ๋น„์Šค. ์˜ˆ๋ฅผ ๋“ค์–ด, RESTful ์›น API๋Š” HTTP ๋ฉ”์„œ๋“œ(GET, POST, PUT, DELETE)์— ์˜์กดํ•˜๊ณ  ํ‘œ์ค€ URL ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฆฌ์†Œ์Šค์™€ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋…ธ์ถœํ•˜๋Š” ์ƒํƒœ ๋น„์ €์žฅ ํด๋ผ์ด์–ธํŠธ-์„œ๋ฒ„ ์•„ํ‚คํ…์ฒ˜๋ฅผ ๋”ฐ๋ฅด๋ฏ€๋กœ ๋‹ค์–‘ํ•œ ๊ตฌ์„ฑ ์š”์†Œ ๊ฐ„์— ์›ํ™œํ•˜๊ณ  ํšจ์œจ์ ์ธ ํ†ต์‹ ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ๊ธฐ์ˆ , ์–ธ์–ด ๋˜๋Š” ํ”Œ๋žซํผ.

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

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

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

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