๋ธ”๋กœ๊ทธ

๐Ÿ‘ท๐Ÿฝโ€โ™‚๏ธ Gato GraphQL ๊ณต๊ฐœ ๊ฐœ๋ฐœ ์ผ์ง€ #1 (2021๋…„ 3์›”)

Leonardo Losoviz
์ž‘์„ฑ์ž: Leonardo Losoviz ยท

ใ€ŒBuilding in the Openใ€ ๋‰ด์Šค๋ ˆํ„ฐ์˜ ๊ธฐ๋…๋น„์ ์ธ ์ฒซ ๋ฒˆ์งธ ํ˜ธ์— ์˜ค์‹  ๊ฒƒ์„ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค!

์ด ์ฑ„๋„์€ Gato GraphQL ๊ฐœ๋ฐœ์— ๊ด€ํ•œ ์†Œ์‹์„ ์ปค๋ฎค๋‹ˆํ‹ฐ์™€ ๊ณต์œ ํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์œผ๋กœ, ๋งค์›” ์ฒซ ๋ฒˆ์งธ ์ฃผ์— ๋ฐœ์†ก๋ฉ๋‹ˆ๋‹ค.

์ด ๊ณต๊ฐ„์„ ํ†ตํ•ด ์ง€๋‚œ ํ•œ ๋‹ฌ ๋™์•ˆ ์ผ์–ด๋‚œ ๋ชจ๋“  ์ผ์„ ์•Œ๋ ค๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค. ๋‚ด์šฉ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:

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

์ด ๋‰ด์Šค๋ ˆํ„ฐ๊ฐ€ ๋งˆ์Œ์— ๋“œ์‹ ๋‹ค๋ฉด, ์นœ๊ตฌ๋ถ„๋“ค๊ป˜๋„ ๊ตฌ๋…์„ ๊ถŒํ•ด ์ฃผ์„ธ์š”.

์‹œ์ž‘ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค!

์•ˆ๋‚ด: ์ด ๋‰ด์Šค๋ ˆํ„ฐ๋Š” ์–‘๋ฐฉํ–ฅ ์†Œํ†ต ์ฑ„๋„์ž…๋‹ˆ๋‹ค. ํ•˜๊ณ  ์‹ถ์€ ๋ง์”€์ด ์žˆ์œผ์‹œ๋ฉด ์–ธ์ œ๋“ ์ง€ ๋Œ“๊ธ€์„ ์ถ”๊ฐ€ํ•ด ์ฃผ์„ธ์š” (๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๋ฌผ ํ•˜๋‹จ์— ์žˆ์Šต๋‹ˆ๋‹ค).

๋‰ด์Šค๋ ˆํ„ฐ์— ์˜ค์‹  ๊ฒƒ์„ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค, ์ง„ํ–‰์ž ๋“œ๋ฆผ

์ฝ”๋”ฉ ์ž‘์—… ๋‚ด์šฉ

๊ฐ€์ด๋“œ๋ฅผ ๋ณด์‹œ๋ฉด ใ€ŒExtending Gato GraphQLใ€ ์„น์…˜์ด ์•„์ง ๋งŽ์ด ๋น„์–ด ์žˆ์Šต๋‹ˆ๋‹ค:

ใ€ŒExtending the pluginใ€ ๊ฐ€์ด๋“œ๋Š” ์•„์ง ์™„์„ฑ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค

์ €์˜ ์šฐ์„  ๊ณผ์ œ๋Š” ์ด ๊ฐ€์ด๋“œ๋“ค์„ ์™„์„ฑํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ทธ์— ์•ž์„œ ํ”Œ๋Ÿฌ๊ทธ์ธ ์ฝ”๋“œ๋ฅผ ์ตœ๋Œ€ํ•œ ๊ฐ„๊ฒฐํ•˜๊ฒŒ ๋งŒ๋“ค๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์ฝ”๋“œ๊ฐ€ ๊ฐ„๊ฒฐํ• ์ˆ˜๋ก ํ•„์š”ํ•œ ๋ฌธ์„œ๊ฐ€ ์ค„์–ด๋“ค๊ณ , ๋” ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ์ดํ•ดํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

์ด๋Ÿฐ ์ƒ๊ฐ์„ ๋ฐ”ํƒ•์œผ๋กœ Symfony์˜ DependencyInjection ์ปดํฌ๋„ŒํŠธ๋ฅผ ์™„์ „ํžˆ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋„๋ก ์ฝ”๋“œ๋ฅผ ๋ฆฌํŒฉํ„ฐ๋งํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

ํ•ต์‹ฌ ์•„์ด๋””์–ด๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ์— ๋Œ€ํ•œ ํ™•์žฅ(์ปค์Šคํ…€ TypeResolver, FieldResolver, DirectiveResolver ๋“ฑ)์„ ์ปจํ…Œ์ด๋„ˆ์˜ ์„œ๋น„์Šค๋กœ ์ •์˜ํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด, ์ปดํŒŒ์ผ๋Ÿฌ ํŒจ์Šค๋ฅผ ํ†ตํ•ด ์„œ๋น„์Šค๊ฐ€ ์ž๋™์œผ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

Symfony์˜ ์˜์กด์„ฑ ์ฃผ์ž…์— ์™„์ „ํžˆ ์˜์กดํ•˜๋ฉด ๋ช‡ ๊ฐ€์ง€ ์žฅ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค:

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

์ฝ”๋“œ๊ฐ€ ๊ถ๊ธˆํ•˜์‹ ๊ฐ€์š”? ์ตœ๊ทผ ๋ณ‘ํ•ฉ๋œ PR๋“ค์„ ํ™•์ธํ•ด ๋ณด์„ธ์š” (#453, #452, #449 ๋ฐ ๊ธฐํƒ€ ์—ฌ๋Ÿฌ ๊ฐœ).

๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์ด 100% ์™„๋ฃŒ๋˜์–ด ๋ˆ„๋ฝ๋œ ๊ฐ€์ด๋“œ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์„ ๋•Œ๊นŒ์ง€ ์•ž์œผ๋กœ ๋ช‡ ์ฃผ๊ฐ„ ์ด ์ฝ”๋“œ ์ž‘์—…์„ ๊ณ„์†ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

gatographql.com ํŠธ๋ž˜ํ”ฝ

ํ•œ ๊ฐ€์ง€ ๋ถ„๋ช…ํžˆ ๋ง์”€๋“œ๋ฆฌ๊ณ  ์‹ถ์€ ๊ฒƒ์ด ์žˆ์Šต๋‹ˆ๋‹ค: ํ”Œ๋Ÿฌ๊ทธ์ธ ์›น์‚ฌ์ดํŠธ๋ฅผ ๋ฐฉ๋ฌธํ•˜๋Š” ์‚ฌ๋žŒ์˜ ์ˆ˜๋Š”, ์–ผ๋งˆ๋‚˜ ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์•Œ๊ณ  ์žˆ๋Š”์ง€ ํŒŒ์•…ํ•˜๊ธฐ ์œ„ํ•œ ๋Œ€๋ฆฌ ์ง€ํ‘œ๋กœ์„œ ์ €์—๊ฒŒ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

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

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

๊ทธ๋ฆฌ๊ณ  ์ง€๊ธˆ๊นŒ์ง€์˜ ๊ฒฐ๊ณผ์—๋Š” ๊ฝค ๋งŒ์กฑํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์ง€๋‚œ ๋‹ฌ์—๋Š” 4,500๋ช…์˜ ๋ฐฉ๋ฌธ์ž์™€ 6,000 ํŽ˜์ด์ง€ ๋ทฐ๋ฅผ ๊ธฐ๋กํ–ˆ์Šต๋‹ˆ๋‹ค:

๋ˆ์„ ๋ณด์—ฌ์ค˜!

์ด ํ†ต๊ณ„๋ฅผ ์ž์„ธํžˆ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

๋ฐฉ๋ฌธ์ž์˜ ๋Œ€๋ถ€๋ถ„์€ ๋ช‡ ๊ฐœ์˜ ใ€ŒShow HNใ€ ํ”„๋ŸฐํŠธ ํŽ˜์ด์ง€์— ์˜ค๋ฅผ ์ˆ˜ ์žˆ์—ˆ๋˜ Hacker News์—์„œ ์˜ต๋‹ˆ๋‹ค. ๋˜ํ•œ Reddit์—์„œ๋„ ๋ฐฉ๋ฌธ์ž๊ฐ€ ์˜ค๋Š”๋ฐ, ์ฃผ๋กœ /r/PHP์™€ /r/graphql์—์„œ์ž…๋‹ˆ๋‹ค (ํ•ญ์ƒ ๊ธ€์„ ๊ณต์œ ํ•˜๋Š” ๊ณณ์ž…๋‹ˆ๋‹ค).

ใ€Œwordpress core graphqlใ€ ๊ฒ€์ƒ‰ ์‹œ Google 1์œ„๋ฅผ ๋‹ฌ์„ฑํ•˜์—ฌ ๋งŽ์€ ํŠธ๋ž˜ํ”ฝ์„ ๊ฐ€์ ธ์™”์Šต๋‹ˆ๋‹ค. ์•„์‰ฝ๊ฒŒ๋„ ๊ทธ๊ฒƒ์€ ๋‹จ ํ•œ ๋ฒˆ๋ฟ์ด์—ˆ์Šต๋‹ˆ๋‹ค: 24์‹œ๊ฐ„ ํ›„, ๊ฐ‘์ž๊ธฐ ๋‚˜ํƒ€๋‚œ ๊ฒƒ์ฒ˜๋Ÿผ ๊ฐ‘์ž๊ธฐ ์‚ฌ๋ผ์กŒ์Šต๋‹ˆ๋‹ค. ๊ทธ ์™ธ ์ผ๋ฐ˜์ ์ธ ๋‚ ์—๋Š” Google์—์„œ 3~10๋ช…์˜ ๋ฐฉ๋ฌธ์ž๊ฐ€ ์˜ต๋‹ˆ๋‹ค.

Twitter์™€ Facebook์€ ์ƒ๋‹นํ•œ ํŠธ๋ž˜ํ”ฝ์„ ๊ฐ€์ ธ์˜ค์ง€๋งŒ, ๋ˆ„๊ตฌ์—๊ฒŒ์„œ์ธ์ง€๋Š” ์•Œ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค (์ €๋Š” ์•„๋‹™๋‹ˆ๋‹ค. ์†Œ์…œ ๋ฏธ๋””์–ด๋ฅผ ๊ทน๋„๋กœ ์ž˜ ๋ชปํ•˜๊ธฐ ๋•Œ๋ฌธ์—). Twitter์—๋Š” ๊ธ€์„ ๊ณต์œ ํ•˜์ง€๋งŒ ๋ฆฌํŠธ์œ—๋˜๋Š” ๊ฒฝ์šฐ๋Š” ๊ฑฐ์˜ ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๐Ÿ‘Ž๐Ÿพ Facebook์€ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

(์ฐธ๊ณ ๋กœ, ์†Œ์…œ ๋ฏธ๋””์–ด์—์„œ ์ œ ๊ธ€์„ ๊ณต์œ ํ•ด ์ฃผ์‹œ๋Š” ๋ถ„๋“ค, ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค โค๏ธ)

graphql.org์˜ PHP GraphQL ์„œ๋ฒ„ ๋ชฉ๋ก๊ณผ dev.to์— ๊ฒŒ์žฌํ•œ ๊ธ€ (ใ€Œgraphql execute multiple queriesใ€๋กœ Google ๊ฒ€์ƒ‰ ์‹œ 1์œ„)์—์„œ ์†Œ๋ฐ•ํ•˜์ง€๋งŒ ๊พธ์ค€ํ•œ ํŠธ๋ž˜ํ”ฝ์„ ์–ป๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๋งˆ์ง€๋ง‰์œผ๋กœ, ์ œ ๊ธ€์€ WordPress์˜ ์ฃผ์š” ๋‰ด์Šค๋ ˆํ„ฐ(WP Owls, wpMail.me, Post Status, WP Builds, The WP Weekly ๋“ฑ)์— ๊พธ์ค€ํžˆ ๊ฒŒ์žฌ๋ฉ๋‹ˆ๋‹ค. ๊ฐ ๋‰ด์Šค๋ ˆํ„ฐ๊ฐ€ ์–ผ๋งˆ๋‚˜ ๋งŽ์€ ํŠธ๋ž˜ํ”ฝ์„ ๊ฐ€์ ธ์˜ค๋Š”์ง€๋Š” ์ •ํ™•ํžˆ ์•Œ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ฐธ์กฐ ์ถœ์ฒ˜๊ฐ€ Gmail ๋“ฑ ๋‹ค๋ฅธ ์„œ๋น„์Šค๋กœ ํ‘œ์‹œ๋˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ํ•ฉ์‚ฐํ•ด์„œ ๋ณด๋ฉด, ์ด ๋‰ด์Šค๋ ˆํ„ฐ๋“ค์€ ์ƒ๋‹นํ•œ ์ˆ˜์˜ ๋ฐฉ๋ฌธ์ž๋ฅผ ๋งŒ๋“ค์–ด๋ƒ…๋‹ˆ๋‹ค.

๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๋ฌผ์ด ๋‹จ์—ฐ ๊ฐ€์žฅ ์ธ๊ธฐ ์žˆ๋Š” ์ฝ˜ํ…์ธ ๋กœ, ์ตœ๊ทผ 3๊ฐœ์˜ ๊ธ€(์ด ๊ธ€, ์ด ๊ธ€, ์ด ๊ธ€)์ด ๊ฐ๊ฐ 1,000๋ช… ์ด์ƒ์˜ ๋ฐฉ๋ฌธ์ž๋ฅผ ๊ธฐ๋กํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด ์ˆ˜์น˜๋“ค์€ ๊ฝค ์ข‹์•„ ๋ณด์ž…๋‹ˆ๋‹ค. ์›น์‚ฌ์ดํŠธ๋ฅผ ์‹œ์ž‘ํ•œ ์ง€ 2๊ฐœ์›”๋„ ์ฑ„ ๋˜์ง€ ์•Š์€ ์ ์„ ๊ฐ์•ˆํ•˜๋ฉด ๋”์šฑ ๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋ชจ๋“  ๊ฒƒ์ด ์ข‹์€ ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค: ์ดํƒˆ๋ฅ ์ด 88%๋กœ ๋งค์šฐ ๋†’์Šต๋‹ˆ๋‹ค. ์ด ๋ถ€๋ถ„์€ ๊ฐœ์„ ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์ง€ํ‘œ

์‚ฌ์ดํŠธ ํŠธ๋ž˜ํ”ฝ์€ ํ”Œ๋Ÿฌ๊ทธ์ธ ์ธ์ง€๋„๋ฅผ ์ถ”์ •ํ•˜๊ธฐ ์œ„ํ•œ ์žฅ์‹์ ์ธ ์ง€ํ‘œ์— ๋ถˆ๊ณผํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋” ์ค‘์š”ํ•œ ์งˆ๋ฌธ์€ ์ง€๋‚œ ๋‹ฌ ๋™์•ˆ ์‹ค์ œ๋กœ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์‹œ์ž‘ํ•œ ์‚ฌ๋žŒ์ด ๋ช‡ ๋ช…์ธ๊ฐ€ ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋‚ด ๋ช…์„ฑ์ด ๋‚˜๋ณด๋‹ค ์•ž์„œ ์žˆ๋‹ค

์ง€๋‚œ ๋‹ฌ ํ”Œ๋Ÿฌ๊ทธ์ธ์˜ ์‹ค์ ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:

๐ŸŽฏ ํ”Œ๋Ÿฌ๊ทธ์ธ ๋‹ค์šด๋กœ๋“œ ์ˆ˜: 170
โญ๏ธ GitHub ์Šคํƒ€ ์ˆ˜: 27

๋‹ค์šด๋กœ๋“œ ์ˆ˜๋Š” GitHub API์—์„œ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ง€๋‚œ ๋‹ฌ์— ์ƒ์„ฑ๋œ ๋ฆด๋ฆฌ์Šค 3๊ฐœ๋งŒ ํฌํ•จํ•˜๊ธฐ ์œ„ํ•ด per_page=3 ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค:

curl -H "Accept: application/vnd.github.v3+json" https://api.github.com/repos/GatoGraphQL/GatoGraphQL/releases?per_page=3 | grep "download_count"

์ด ์ˆ˜์น˜๋“ค์— ๋Œ€ํ•ด ๊ธฐ์˜์ง€๋„ ๋ถˆ๋งŒ์Šค๋Ÿฝ์ง€๋„ ์•Š์Šต๋‹ˆ๋‹ค. ํ›Œ๋ฅญํ•˜์ง€๋Š” ์•Š์ง€๋งŒ (๋” ์ข‹์•˜์œผ๋ฉด ํ•˜๋Š” ๋งˆ์Œ์€ ์žˆ์ง€๋งŒ), ์ข‹์€ ์‹œ์ž‘์ ์ž…๋‹ˆ๋‹ค.

๋‹ค์šด๋กœ๋“œ ์ˆ˜์™€ ๊ด€๋ จํ•˜์—ฌ, ์ฒซ ๋ฒˆ์งธ ์‚ฌ์šฉ์ž๋ฅผ ์–ป๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ์–ด๋ ค์šด ๊ณผ์ œ๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋ช‡ ์‚ฌ๋žŒ์ด ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์‹œ์ž‘ํ•˜๊ณ  ๊ทธ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๊ธฐ ์‹œ์ž‘ํ•ด์•ผ๋งŒ ์‚ฌ์šฉ์ด ๋” ๋„๋ฆฌ ํผ์ง‘๋‹ˆ๋‹ค. ์ €๋Š” ์•„์ง ํ—Œ์‹ ์ ์ธ ์ฒซ ๋ฒˆ์งธ ์‚ฌ์šฉ์ž๋“ค์„ ์ฐพ๋Š” ์ดˆ๊ธฐ ๋‹จ๊ณ„์— ์žˆ์Šต๋‹ˆ๋‹ค.

GitHub ์Šคํƒ€ ์ˆ˜์— ๋Œ€ํ•ด์„œ๋Š”, ๊ฝค ํ‰ํƒ„ํ•ด ๋ณด์ธ๋‹ค๊ณ  ๋ง์”€๋“œ๋ฆด ์ˆ˜๋ฐ–์— ์—†์Šต๋‹ˆ๋‹ค: ํ‰๊ท  ํ•˜๋ฃจ์— ์•ฝ 1๊ฐœ์˜ ์Šคํƒ€์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๊ฒฐ์ฝ” ํ›Œ๋ฅญํ•œ ๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค. Gato GraphQL๋กœ ๊ตฌ์ถ•ํ•˜๊ณ  ์žˆ๋Š” ๊ฒƒ์ด ๋งˆ์Œ์— ๋“œ์‹œ๊ณ  โค๏ธ ์• ์ •์„ ๋ณด์—ฌ์ฃผ์‹œ๋Š” ๊ฒƒ์„ ๊บผ๋ฆฌ์ง€ ์•Š์œผ์‹ ๋‹ค๋ฉด, GitHub์—์„œ โญ๏ธ ์Šคํƒ€ ์ฃผ๋Š” ๊ฒƒ์„ ๊ณ ๋ คํ•ด ์ฃผ์„ธ์š”.

์žฌ์ •์  ์ง€์† ๊ฐ€๋Šฅ์„ฑ

์ด๊ฒƒ์ด ์–ด๋ ค์šด ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค: ํ”„๋กœ์ ํŠธ๋Š” ์žฌ์ •์ ์œผ๋กœ ์ง€์† ๊ฐ€๋Šฅํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์•ฝ๊ฐ„์˜ ์ˆ˜์ต์„ ์ฐฝ์ถœํ•˜๊ฑฐ๋‚˜, ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์˜ค๋ž˜ ์ง€์†๋˜์ง€ ๋ชปํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์— ๋‚ด ์ธ์ƒ์ด ๊ฑธ๋ ค ์žˆ๋‹ค

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

ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์™„์ „ํ•œ ์˜คํ”ˆ ์†Œ์Šค๋กœ ์œ ์ง€ํ•˜๋Š” ๊ฒƒ์ด ๋ชฉํ‘œ์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด ํ˜„์žฌ ๋ช‡๋ช‡ ์ž ์žฌ์  ์Šคํฐ์„œ์—๊ฒŒ ์—ฐ๋ฝํ•˜์—ฌ ํ”Œ๋Ÿฌ๊ทธ์ธ ๊ฐœ๋ฐœ ์ž๊ธˆ์„ ์ง€์›ํ•  ์˜ํ–ฅ์ด ์žˆ๋Š”์ง€ ๋ฌป๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์–‘์ธก ๋ชจ๋‘์—๊ฒŒ ์ด๋“์ด ๋˜๋Š” ์ƒํ™ฉ์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ปค๋ฎค๋‹ˆํ‹ฐ์˜ ๋ˆ„๊ตฌ์—๊ฒŒ์„œ๋‚˜ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ์ผ๋ฐ˜์ ์ธ ์Šคํฐ์„œ์‹ญ์— ์˜์กดํ•˜๋Š” ๋Œ€์‹ , ์™œ ใ€Œํฐ ์†ใ€ ์Šคํฐ์„œ์—๊ฒŒ ์˜์กดํ•˜๋ ค๊ณ  ํ•˜๋Š” ๊ฑธ๊นŒ์š”?

๋„ค, ๊ทธ๊ฒƒ๋„ ์‹œ๋„ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค: GitHub Sponsors์— ๋“ฑ๋ก๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด๋ฏธ ์ˆ˜์ฒœ ๋ช…์˜ ์‚ฌ์šฉ์ž, ํŒ”๋กœ์›Œ, ๋˜๋Š” ๋ฉ”์ผ๋ง ๋ฆฌ์ŠคํŠธ ๊ตฌ๋…์ž๊ฐ€ ์žˆ์–ด์„œ ๊ทธ๋“ค์—๊ฒŒ ์—ฐ๋ฝํ•˜์—ฌ ๋งŽ์€ ์ง€์›์„ ๊ธฐ๋Œ€ํ•  ์ˆ˜ ์žˆ๋Š” ์ƒํ™ฉ์ด ์•„๋‹ˆ๋ผ๋ฉด ์‹ค์ œ๋กœ๋Š” ์ž˜ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ์›” ํ‘œ์ค€ 5~10๋‹ฌ๋Ÿฌ๋ฅผ ์š”์ฒญํ•œ๋‹ค๋ฉด, ์ด ๋ฐฉ์‹์œผ๋กœ ์ œ ์ž‘์—…์„ ์ถฉ๋‹นํ•˜๋ ค๋ฉด ์ˆ˜๋ฐฑ ๋ช…์˜ ํ›„์›์ž๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ €๋Š” ๊ทธ ๋‹จ๊ณ„์™€๋Š” ๊ฑฐ๋ฆฌ๊ฐ€ ๋ฉ‰๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ๋” ๋‚˜์•„๊ฐ€์„œ, ์ด ๋ฐฉ์‹์œผ๋กœ ์ •๋ง๋กœ ์„ฑ๊ณตํ•  ์ˆ˜ ์žˆ๋Š” ์‚ฌ๋žŒ์ด ์žˆ์„๊นŒ์š”? Caleb Porzio (Livewire ์ œ์ž‘์ž)๋Š” ์„ฑ๊ณต์„ ๊ฑฐ๋‘์—ˆ๊ณ , ํ˜„์žฌ 1,350๋ช… ์ด์ƒ์˜ ์Šคํฐ์„œ๋ฅผ ๋ณด์œ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค! ํ•˜์ง€๋งŒ ๊ทธ๊ฒƒ์€ ์˜ˆ์™ธ์ด์ง€ ํ‘œ์ค€์ด ์•„๋‹™๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด Composer๋ฅผ ๋ณด์‹ญ์‹œ์˜ค. Composer๋Š” PHP ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ ๋ฐฉ์‹์„ ๊ทผ๋ณธ์ ์œผ๋กœ ๋ฐ”๊พธ์—ˆ์ง€๋งŒ, ์Šคํฐ์„œ๊ฐ€ ๊ฒจ์šฐ 90๋ช… ์ •๋„์— ๋ถˆ๊ณผํ•ฉ๋‹ˆ๋‹ค. ์–ด๋–ป๊ฒŒ Composer๋ณด๋‹ค ๋” ๋งŽ์€ ์Šคํฐ์„œ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค๊ณ  ๊ธฐ๋Œ€ํ•  ์ˆ˜ ์žˆ๊ฒ ์Šต๋‹ˆ๊นŒ?

๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ์ œ ํ˜„์žฌ ์ ‘๊ทผ ๋ฐฉ์‹์€ ์ €์˜ ํ”„๋กœ์ ํŠธ์™€ ์Šคํฐ์„œ๋ฅผ ์›ํ•˜๋Š” ์†Œ์ˆ˜์˜ ๊ธฐ์—… ๋ชจ๋‘์—๊ฒŒ ์ด๋“์ด ๋˜๋Š” ์ƒํ™ฉ์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ž˜ ๋  ๊ฒƒ์„ ๋ฐ”๋ž๋‹ˆ๋‹ค. Gato GraphQL์ด ๋ชจ๋“  ์‚ฌ๋žŒ์—๊ฒŒ ๋ฌด๋ฃŒ๋กœ, ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ณ , ์ข‹์€ ๊ธฐ๋Šฅ์„ ์œ ๋ฃŒ ์žฅ๋ฒฝ ๋’ค์— ์ˆจ๊ธธ ํ•„์š”๊ฐ€ ์—†๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

(์–ด๋–ป๊ฒŒ ์–‘์ธก ๋ชจ๋‘์—๊ฒŒ ์ด๋“์ด ๋˜๋Š”์ง€ ์•Œ๊ณ  ์‹ถ์œผ์‹œ๋‹ค๋ฉด, ์ด๋ฉ”์ผ์„ ๋ณด๋‚ด์ฃผ์„ธ์š” ๋˜๋Š” DM์„ ๋ณด๋‚ด์ฃผ์„ธ์š”. ๊ท€ํ•˜์˜ ํšŒ์‚ฌ๋„ ๊ด€์‹ฌ์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.)

์ด ์ ‘๊ทผ ๋ฐฉ์‹์— ๋ช‡ ๋‹ฌ์˜ ์‹œ๊ฐ„์„ ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค. ์„ฑ๊ณตํ•˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค. ์„ฑ๊ณตํ•˜์ง€ ๋ชปํ•  ๊ฒฝ์šฐ์—๋งŒ ํ”Œ๋Ÿฌ๊ทธ์ธ์˜ PRO ๋ฒ„์ „์„ ๊ฐœ๋ฐœํ•˜๊ณ  ์ผ๋ถ€ ๊ธฐ๋Šฅ์„ ์œ ๋ฃŒ ๋ฒ„์ „์œผ๋กœ ์ œํ•œํ•˜๋Š” ๊ฒƒ์„ ๊ณ ๋ คํ•ด์•ผ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. (๊ทธ๋ ‡๊ฒŒ ๋˜๋ฉด ์•ˆํƒ€๊นŒ์šธ ๊ฒƒ์ด๋ฏ€๋กœ, ๊ทธ ๋‹จ๊ณ„๋ฅผ ํ”ผํ•  ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.)

๋‹ค์Œ ๋‰ด์Šค๋ ˆํ„ฐ์—์„œ ์Šคํฐ์„œ๋ฅผ ํ™•๋ณดํ–ˆ๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ์•Œ๋ ค๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๋ฌผ

๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๋ฌผ์€ ์ €์˜ ์ ˆ๋Œ€์ ์ธ ์ž๋ถ€์‹ฌ์ด์ž ๊ธฐ์จ์ž…๋‹ˆ๋‹ค.

์•ˆ๋‚ด: ์‚ฌ์ดํŠธ์— RSS ํ”ผ๋“œ๊ฐ€ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ๊ณ„์…จ๋‚˜์š”? ๋ชจ๋“  ๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๋ฌผ์„ ๋ฐ›์•„๋ณด๋„๋ก ๊ตฌ๋…ํ•˜๊ณ , ์ข‹์•„ํ•˜๋Š” ๋ฆฌ๋”์—์„œ ์ฝ์œผ์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ง€๋‚œ ๋‹ฌ์—๋Š” ๋งค์ฃผ ๊ณ ํ’ˆ์งˆ ๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๋ฌผ์„ ํ•˜๋‚˜์”ฉ ๊ฒŒ์‹œํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค:

๐Ÿ›  WordPress๋Š” ์ฝ”์–ด์— GraphQL API๋ฅผ ๊ฐ€์ ธ์•ผ ํ• ๊นŒ์š”?์—์„œ๋Š” WP REST API๊ฐ€ WordPress 5.6์—์„œ ์ƒˆ ๊ธฐ๋Šฅ(๋ฐฐ์น˜ ์ž‘์—…)์„ ์–ป์—ˆ๊ธฐ ๋•Œ๋ฌธ์—, GraphQL API๊ฐ€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ WordPress๊ฐ€ GraphQL๋กœ๋ถ€ํ„ฐ ํ˜œํƒ์„ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค๋Š” ์ฃผ์žฅ์„ ํŽผ์นฉ๋‹ˆ๋‹ค.

๐ŸฅŠ Gato GraphQL vs WPGraphQL: ๋Œ€๊ฒฐ!์—์„œ๋Š” ์ œ ํ”Œ๋Ÿฌ๊ทธ์ธ๊ณผ WPGraphQL์„ ๋น„๊ตํ•˜๋ฉฐ, ์˜ค๋žซ๋™์•ˆ ๊ธฐ์–ต๋  ๋Œ€๊ฒฐ๋กœ ๋ณต์‹ฑ ํŒฌ๋“ค์ด ๋” ๋งŽ์€ ๊ฒƒ์„ ์›ํ•˜๊ฒŒ ๋งŒ๋“ค ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๐Ÿ‘ถ๐Ÿป GraphQL๋กœ WordPress ์ Š์–ด์ง€๊ฒŒ ํ•˜๊ธฐ์—์„œ๋Š” ํ—ค๋“œ๋ฆฌ์Šค WordPress๋ฅผ WordPress ์ฝ”๋“œ๋ฒ ์ด์Šค์—์„œ ๋ถ„๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์‹œ์—ฐํ•˜๋ฉฐ, ์ถ•์ ๋œ ๊ธฐ์ˆ  ๋ถ€์ฑ„๋ฅผ ์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜ (์ ์–ด๋„ ์šฐํšŒํ• ) ๊ธฐํšŒ๋ฅผ ์ œ๊ณตํ•œ๋‹ค๋Š” ๊ฒƒ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

๐Ÿพ Gato GraphQL์ด PHP-Scoper ๋•๋ถ„์— ์Šค์ฝ”ํ”„๋˜์—ˆ์Šต๋‹ˆ๋‹ค!์—์„œ๋Š” ๋‹ค๋ฅธ ํ”Œ๋Ÿฌ๊ทธ์ธ๊ณผ์˜ ์ถฉ๋Œ์„ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด PHP-Scoper๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ WordPress ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์Šค์ฝ”ํ”„ํ•˜๋Š” ์ „๋žต์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

์•„์›ƒ๋ฆฌ์น˜ / ํ”Œ๋Ÿฌ๊ทธ์ธ ์–ธ๊ธ‰

ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ๋ช‡ ๊ณณ์—์„œ ์†Œ๊ฐœ๋œ ๊ฒƒ์„ ๋งค์šฐ ๊ธฐ์˜๊ฒŒ ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

โœ… WordCamp India 2021์—์„œ ใ€ŒIntro to Gato GraphQLใ€ ๊ฐ•์—ฐ์„ ํ•˜๋ฉฐ ํ”Œ๋Ÿฌ๊ทธ์ธ ๋ฐ๋ชจ๋ฅผ ์ง„ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค. (๋ฐ๋ชจ์ž„์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ๋†€๋ž๊ฒŒ๋„) ๋ชจ๋“  ๊ฒƒ์ด ์™„๋ฒฝํ•˜๊ฒŒ ์ง„ํ–‰๋˜์—ˆ์Šต๋‹ˆ๋‹ค! YouTube ๋™์˜์ƒ์„ ํ™•์ธํ•ด ๋ณด์„ธ์š”.

โœ… Joe Howard๊ฐ€ WPMRR ํŒŸ์บ์ŠคํŠธ๋ฅผ ์œ„ํ•ด ์ €๋ฅผ ์ธํ„ฐ๋ทฐํ–ˆ์Šต๋‹ˆ๋‹ค. ๋…น์Œ์€ ๊ณง ๊ณต๊ฐœ๋  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.

โœ… Chris Coyier๊ฐ€ CSS-Tricks ๋‰ด์Šค๋ ˆํ„ฐ #239์—์„œ ์ œ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์†Œ๊ฐœํ–ˆ์Šต๋‹ˆ๋‹ค!

์˜ค๋Š˜ ํ•˜๋ฃจ๊ฐ€ ์ตœ๊ณ ์˜ ๋‚ ์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค

์ด๊ฒƒ์ €๊ฒƒ

์ง€๋‚œ ํ•œ ๋‹ฌ ๋™์•ˆ ์ผ์–ด๋‚œ ๋‹ค์–‘ํ•œ ์ผ๋“ค์— ๋Œ€ํ•œ ์ผ๋ฐ˜ ์†Œ์‹์ž…๋‹ˆ๋‹ค.

Jason Bahl์˜ WP Engine ํ•ฉ๋ฅ˜

Jason์ด WP Engine์— ํ•ฉ๋ฅ˜ํ•œ ๊ฒƒ์„ ์ถ•ํ•˜ํ•ฉ๋‹ˆ๋‹ค! WPGraphQL์—์„œ ์ง€๊ธˆ๊นŒ์ง€ ํ•ด์˜จ ๊ฒƒ์ฒ˜๋Ÿผ ์•ž์œผ๋กœ๋„ ๊ณ„์† ํ™œ์•ฝํ•ด ์ฃผ์‹œ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

์ฐธ๊ณ ๋กœ, ์šฐ๋ฆฌ๊ฐ€ ๊ฒฝ์Ÿ ๊ด€๊ณ„๋ผ๋Š” ์‚ฌ์‹ค (๋ญ, ์ œ๊ฐ€ ๊ทธ์™€ ๊ฒฝ์Ÿํ•˜๋Š” ๊ฒƒ์ด์ง€๋งŒ, ๊ทธ๋Š” ํ›จ์”ฌ ์•ž์„œ ์žˆ์Šต๋‹ˆ๋‹ค)์ด ์นœ๊ตฌ๊ฐ€ ๋  ์ˆ˜ ์—†๋‹ค๊ฑฐ๋‚˜ ์„œ๋กœ์˜ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด ํ˜‘๋ ฅํ•  ์ˆ˜ ์—†๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ์šฐ๋ฆฌ๋Š” ๊ฐ™์€ ๋ชฉํ‘œ๋ฅผ ๊ณต์œ ํ•ฉ๋‹ˆ๋‹ค: GraphQL์„ WordPress์— ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ (๊ทธ๊ฒƒ์ด ์–ด๋–ป๊ฒŒ ์‹คํ˜„๋˜์–ด์•ผ ํ•˜๋Š”์ง€์— ๋Œ€ํ•ด์„œ๋Š” ๋‹ค๋ฅธ ์ƒ๊ฐ์„ ๊ฐ€์ง€๊ณ  ์žˆ์ง€๋งŒ).

ํ•˜์ง€๋งŒ ์ €๋Š” ๊ฒฝ์Ÿ์ด ์ข‹๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฉฐ, ๋ชจ๋‘์—๊ฒŒ ์œ ์ตํ•  ๊ฒƒ์ด๋ผ๊ณ  ๋ฏฟ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค, ๊ฒฝ์Ÿ์€ ์ข‹์€ ๊ฒƒ์ž…๋‹ˆ๋‹ค, ๋‹น์‹ ์ด ์œ„์— ์žˆ๋Š” ํ•œ

WP Engine์˜ Atlas ์ถœ์‹œ์™€ ํ—ค๋“œ๋ฆฌ์Šค์— ๋Œ€ํ•ด ๋ชจ๋“  ๊ฒƒ์„ ์•ˆ๋‹ค๋Š” ์ฃผ์žฅ (์ •๋ง๋กœ?)

WP Engine์ด ์ƒˆ๋กœ์šด ํ—ค๋“œ๋ฆฌ์Šค WordPress ์†”๋ฃจ์…˜์ธ Atlas๋ฅผ ์ถœ์‹œํ•œ ๊ฒƒ๋„ ์ถ•ํ•˜๋“œ๋ฆฝ๋‹ˆ๋‹ค.

์•ˆํƒ€๊น๊ฒŒ๋„, ๋ถ€์ •ํ™•ํ•œ ์ •๋ณด๋ฅผ ๊ธฐ์ˆ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค:

์™„์ „ํžˆ ํ—ค๋“œ๋ฆฌ์Šค ์†”๋ฃจ์…˜์„ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ์—…๋“ค์€ ์ผ๋ฐ˜์ ์œผ๋กœ ํ”„๋ŸฐํŠธ์—”๋“œ์šฉ ๋ณ„๋„์˜ JavaScript ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ํ˜ธ์ŠคํŒ…ํ•˜๋ฉฐ, API(WordPress REST API ๋˜๋Š” WPGraphQL ํ”Œ๋Ÿฌ๊ทธ์ธ)๋ฅผ ํ†ตํ•ด ํŠน์ • WordPress ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

๊ทธ๋ ‡๊ตฐ์š”, Gato GraphQL์€ ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ฑฐ์ฃ ?

์ด๋ด์š”, ์ € ์—ฌ๊ธฐ ์žˆ๋Š”๋ฐ, ์—†๋Š” ๊ฑด๊ฐ€์š”?

์ €๋Š” ๋ณดํ†ต ์ด๊ฒƒ์„ ์‹ ๊ฒฝ ์“ฐ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ์‚ฌ๋žŒ์ด ์ œ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์•Œ๊ณ  ์žˆ๋‹ค๊ณ  ๊ธฐ๋Œ€ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ทธ๋“ค์€ ์ œ ํ”„๋กœ์ ํŠธ๋ฅผ ์•Œ๊ณ  ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฉฐ, ์˜๋„์ ์œผ๋กœ ๋ฌด์‹œํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๊ทธ๋“ค์ด developers.wpengine.com (ยซํ—ค๋“œ๋ฆฌ์Šค WordPress๋ฅผ ์œ„ํ•œ ๋ชจ๋ฒ” ์‚ฌ๋ก€, ํŠœํ† ๋ฆฌ์–ผ, ๋ธ”๋กœ๊ทธ, ๋ฌธ์„œ์˜ ์›์Šคํ†ฑ ํ—ˆ๋ธŒยป)์„ ์ถœ์‹œํ•œ ํ›„, ์ €๋Š” ๊ทธ๋“ค์—๊ฒŒ ์—ฐ๋ฝํ–ˆ์Šต๋‹ˆ๋‹ค:

์•„๋งˆ๋„ ๊ทธ๋“ค์€ ์ œ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„์ง€ํ•˜๊ฒŒ ๋ฐ›์•„๋“ค์ด์ง€ ์•Š์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์•„๋‹ˆ๋ฉด WPGraphQL์— ์™„์ „ํžˆ ํˆฌ์ž๋˜์–ด ์žˆ์–ด์„œ ๋‹จ์ˆœํžˆ ์‹ ๊ฒฝ ์“ฐ์ง€ ์•Š์•˜์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

์ œ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์–ธ๊ธ‰ํ•˜๊ณ  ์‹ถ์ง€ ์•Š๋‹ค๋ฉด, ๊ทธ๊ฒƒ์€ ๊ทธ๊ฒƒ๋Œ€๋กœ ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ WP REST API์™€ WPGraphQL์ด ์œ ์ผํ•œ ๋‘ ๊ฐ€์ง€ ์„ ํƒ์ง€๋ผ๊ณ  ๋งํ•˜๋Š” ๊ฒƒ์€ ๋งค์šฐ ์˜คํ•ด๋ฅผ ๋ถˆ๋Ÿฌ์ผ์œผํ‚ต๋‹ˆ๋‹ค. ๊ทธ ๊ฒฐ๊ณผ, ์ œ ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ํ”ผํ•ด๋ฅผ ์ž…๊ณ  ๊ฐœ๋ฐœ์ž ์ปค๋ฎค๋‹ˆํ‹ฐ๊ฐ€ ํ˜ผ๋ž€์„ ๊ฒช์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‹ˆ ๋„ค, ์†”์งํžˆ ๋งํ•ด์„œ ์ €๋Š” ํ™”๊ฐ€ ๋‚ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ „ํ˜€ ์ข‹์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค์ด ๋ถ€์ •ํ™•ํ•œ ์ •๋ณด๋ฅผ ์ˆ˜์ •ํ•ด ์ฃผ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค (์ด๋ฏธ ์ด๋ฉ”์ผ์„ ๋ณด๋ƒˆ์Šต๋‹ˆ๋‹ค).

๋งˆ๋ฌด๋ฆฌ

์ด๊ฒƒ์ด ์ฒซ ๋ฒˆ์งธ ใ€ŒBuilding Gato GraphQL in the Openใ€์˜ ๋์ž…๋‹ˆ๋‹ค.

์–ด๋– ์…จ๋‚˜์š”? ๋Œ“๊ธ€๋กœ ์ƒ๊ฐ์„ ๊ณต์œ ํ•ด ์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

๋งˆ์Œ์— ๋“œ์…จ๋‹ค๋ฉด, ์นœ๊ตฌ๋“ค๊ณผ ๋‰ด์Šค๋ ˆํ„ฐ๋ฅผ ๊ณต์œ ํ•ด ์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค (ํ˜น์€ ๋” ์ข‹์€ ๊ฒƒ์€, ๊ตฌ๋…์„ ๊ถŒํ•ด ์ฃผ์„ธ์š”).

๋‹ค์Œ ๋‹ฌ์— ๋ต™๊ฒ ์Šต๋‹ˆ๋‹ค!


๋‰ด์Šค๋ ˆํ„ฐ ๊ตฌ๋…ํ•˜๊ธฐ

Gato GraphQL์˜ ๋ชจ๋“  ์—…๋ฐ์ดํŠธ๋ฅผ ๋†“์น˜์ง€ ๋งˆ์„ธ์š”.