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

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

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

GraphQL์—๋Š” ์ตœ์‹  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์„ ์œ„ํ•œ ๊ฐ•๋ ฅํ•œ ์„ ํƒ์ด ๋˜๋Š” ๋ช‡ ๊ฐ€์ง€ ์ฃผ์š” ๊ธฐ๋Šฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

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

์ด๋Ÿฌํ•œ ์ด์ ์„ ๊ณ ๋ คํ•˜๋ฉด GitHub, Airbnb, Shopify ๋ฐ The New York Times๋ฅผ ํฌํ•จํ•˜์—ฌ ์ ์  ๋” ๋งŽ์€ ์กฐ์ง์ด API์— GraphQL์„ ์ฑ„ํƒํ•œ ๊ฒƒ์€ ๋†€๋ผ์šด ์ผ์ด ์•„๋‹™๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ 2019๋…„ JavaScript ํ˜„ํ™ฉ ์„ค๋ฌธ์กฐ์‚ฌ์— ๋”ฐ๋ฅด๋ฉด GraphQL์€ ๊ฐœ๋ฐœ์ž ๋งŒ์กฑ๋„, ์‚ฌ์šฉ ๋ฐ ํ•™์Šต ๊ด€์‹ฌ๋„ ์ธก๋ฉด์—์„œ ๋‹ค๋ฅธ ์–ด๋–ค API ๊ธฐ์ˆ ๋ณด๋‹ค ๋›ฐ์–ด๋‚ฉ๋‹ˆ๋‹ค.

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

AppMaster ์˜ ์‹œ๊ฐ์  BP ๋””์ž์ด๋„ˆ๋Š” ๋ฐฑ์—”๋“œ์šฉ Go(golang), ์›น ํ”„๋ŸฐํŠธ์—”๋“œ์šฉ Vue3, Android์šฉ Kotlin ๋ฐ Jetpack Compose, iOS์šฉ SwiftUI ํฌํ•จํ•˜๋Š” ๊ธฐ์ˆ  ์Šคํƒ๊ณผ ํ•จ๊ป˜ ๋ชจ๋‘ GraphQL๊ณผ์˜ ์›ํ™œํ•œ ํ†ตํ•ฉ์— ๋งค์šฐ ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค. GraphQL์€ ํ†ตํ•ฉ๋œ ์–ธ์–ด๋ฅผ ํ†ตํ•ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์—ฌ๋Ÿฌ ๋ถ€๋ถ„ ๊ฐ„์˜ ์กฐ์ •์„ ๋‹จ์ˆœํ™”ํ•˜์—ฌ ์žฅ๊ธฐ์ ์œผ๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋ณด๋‹ค ์‘์ง‘๋ ฅ ์žˆ๊ณ  ์‰ฝ๊ฒŒ ๊ฐœ๋ฐœ, ์œ ์ง€ ๊ด€๋ฆฌ ๋ฐ ํ™•์žฅํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

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