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

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

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

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

AppMaster no-code ํ”Œ๋žซํผ ๋‚ด์—์„œ ์‚ฌ์šฉ์ž๋Š” GraphQL์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์„ ์‹œ๊ฐ์ ์œผ๋กœ ์ƒ์„ฑํ•˜๊ณ  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ์„ค๊ณ„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. AppMaster ์˜ ์ง๊ด€์ ์ธ BP Designer๋Š” ๊ฐœ๋ฐœ ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ฐ„์†Œํ™”ํ•˜์—ฌ ๊ฐœ๋ฐœ์ž๊ฐ€ ์„œ๋ฒ„ endpoints, ๋ชจ๋ฐ”์ผ UI ๋ฐ ์›น ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ์‰ฝ๊ฒŒ ์ƒ์„ฑํ•˜๋ฉด์„œ GraphQL ์Šคํ‚ค๋งˆ, ์ฟผ๋ฆฌ, ๋ณ€ํ˜• ๋ฐ ๊ตฌ๋…์„ ์‹ ์†ํ•˜๊ฒŒ ์ •์˜ํ•˜๊ณ  ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. AppMaster ํ”Œ๋žซํผ์€ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์šฉ Vue3 ํ”„๋ ˆ์ž„์›Œํฌ์™€ ๋ฐฑ์—”๋“œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์šฉ Go(golang) ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ฅผ ์ฑ„ํƒํ•˜์—ฌ ์†Œ๊ธฐ์—…์—์„œ ๋Œ€๊ธฐ์—…์— ์ด๋ฅด๊ธฐ๊นŒ์ง€ ๊ด‘๋ฒ”์œ„ํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ 10๋ฐฐ ๋” ๋น ๋ฅด๊ณ  3๋ฐฐ ๋” ๋น„์šฉ ํšจ์œจ์ ์ธ ๊ฐœ๋ฐœ์„ ์ด‰์ง„ํ•จ์œผ๋กœ์จ ์ธ์ƒ์ ์ธ ๊ฒฐ๊ณผ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ ์‚ฌ๋ก€.

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

๋ชจ๋ฐ”์ผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์— ๋Œ€ํ•œ AppMaster ์˜ ์„œ๋ฒ„ ๊ธฐ๋ฐ˜ ์ ‘๊ทผ ๋ฐฉ์‹์„ ํ†ตํ•ด ๊ฐœ๋ฐœ์ž๋Š” App Store ๋˜๋Š” Play Market์— ์ƒˆ ๋ฒ„์ „์„ ์ œ์ถœํ•  ํ•„์š” ์—†์ด Android ๋ฐ iOS ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ UI, ๋…ผ๋ฆฌ ๋ฐ API ํ‚ค๋ฅผ ์—…๋ฐ์ดํŠธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์‹ค์ œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ƒ์„ฑ์— ๋Œ€ํ•œ AppMaster ์˜ ์•ฝ์†์„ ํ†ตํ•ด ๊ณ ๊ฐ์€ ๊ตฌ๋…์— ๋”ฐ๋ผ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ๋ฐ”์ด๋„ˆ๋ฆฌ ํŒŒ์ผ ๋˜๋Š” ์˜จํ”„๋ ˆ๋ฏธ์Šค ํ˜ธ์ŠคํŒ…์šฉ ์†Œ์Šค ์ฝ”๋“œ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

GraphQL์€ ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์„ ์œ„ํ•œ ํŒ๋„๋ฅผ ๋ฐ”๊พธ๋Š” ์ฟผ๋ฆฌ ์–ธ์–ด๋กœ ๋“ฑ์žฅํ•˜์—ฌ ๊ธฐ์กด RESTful API ๋””์ž์ธ์— ๋น„ํ•ด ๋งŽ์€ ์ด์ ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๊ฐ„๊ฒฐํ•œ ๋ฐ์ดํ„ฐ ๊ฐ€์ ธ์˜ค๊ธฐ๋ฅผ ์ด‰์ง„ํ•˜๊ณ , ํ†ตํ•ฉ API endpoint ํ™๋ณดํ•˜๊ณ , ๊ฐ•๋ ฅํ•œ ์œ ํ˜• ์‹œ์Šคํ…œ์„ ์ง€์›ํ•˜๋Š” GraphQL์€ ๋” ํฐ ์œ ์—ฐ์„ฑ๊ณผ ํ–ฅ์ƒ๋œ ์„ฑ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. AppMaster ์˜ no-code ํ”Œ๋žซํผ์€ ๊ฐ•๋ ฅํ•œ ํ†ตํ•ฉ ๋„๊ตฌ ๋ฐ ๊ณ ํ’ˆ์งˆ ์†Œ์Šค ์ฝ”๋“œ ์ƒ์„ฑ์— ๋Œ€ํ•œ ๋…ธ๋ ฅ๊ณผ ํ•จ๊ป˜ ๋น ๋ฅด๊ฒŒ ์„ฑ์žฅํ•˜๋Š” GraphQL ์—์ฝ”์‹œ์Šคํ…œ์„ ํ™œ์šฉํ•˜๋ ค๋Š” ๊ฐœ๋ฐœ์ž์—๊ฒŒ ์‹œ์˜์ ์ ˆํ•˜๊ณ  ํšจ์œจ์ ์ธ ์†”๋ฃจ์…˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.