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

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

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

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

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

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

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

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