๋ธ”๋กœ๊ทธ

๐Ÿš€ Gato GraphQL v1.1 ์ถœ์‹œ (์‚ฌ์ „ ์ •์˜๋œ Persisted Queries ํฌํ•จ)

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

Gato GraphQL ๋ฒ„์ „ 1.1์ด ์ถœ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค! ๐ŸŽ‰

๋ชจ๋“  ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์€ GitHub ๋ฆด๋ฆฌ์Šค ๋…ธํŠธ์—์„œ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜์— ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ธฐ๋Šฅ๋“ค์„ ์š”์•ฝํ•˜์—ฌ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค.

์‚ฌ์ „ ์ •์˜๋œ Persisted Queries

๋ฒ„์ „ 1.1์—์„œ๋Š” ๋‹ค์Œ์„ ํฌํ•จํ•œ ์—ฌ๋Ÿฌ ์ผ๋ฐ˜์ ์ธ ๊ด€๋ฆฌ ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ์‚ฌ์ „ ์ •์˜๋œ Persisted Queries๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค:

  • ๊ฒŒ์‹œ๋ฌผ ๋ณต์ œ
  • ๊ฒŒ์‹œ๋ฌผ ๋‚ด ๋ฌธ์ž์—ด ๊ต์ฒด
  • ๊ฒŒ์‹œ๋ฌผ ๋‚ด ๊ธฐ์กด ๋„๋ฉ”์ธ์„ ์ƒˆ ๋„๋ฉ”์ธ์œผ๋กœ ๊ต์ฒด
  • ๊ฒŒ์‹œ๋ฌผ์— ๋ธ”๋ก ์‚ฝ์ž…
  • ๊ฒŒ์‹œ๋ฌผ์—์„œ ๋ธ”๋ก ์ œ๊ฑฐ
  • ๊ฒŒ์‹œ๋ฌผ ๋ฒˆ์—ญ
  • ๋‹ค๋ฅธ WordPress ์‚ฌ์ดํŠธ์—์„œ ๊ฒŒ์‹œ๋ฌผ ๊ฐ€์ ธ์˜ค๊ธฐ
  • ๋‹ค๋ฅธ WordPress ์‚ฌ์ดํŠธ๋กœ ๊ฒŒ์‹œ๋ฌผ ๋‚ด๋ณด๋‚ด๊ธฐ
  • ๊ทธ ์™ธ ๋‹ค์ˆ˜
์‚ฌ์ „ ์ •์˜๋œ Persisted Queries
์‚ฌ์ „ ์ •์˜๋œ Persisted Queries

์ด Persisted Queries๋Š” ๋ชจ๋‘ private์œผ๋กœ ๊ฒŒ์‹œ๋˜์–ด ์žˆ์–ด ์™ธ๋ถ€์— ๊ณต๊ฐœ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ๊ถŒํ•œ์„ ๊ฐ€์ง„ ๋กœ๊ทธ์ธ๋œ ์‚ฌ์šฉ์ž๊ฐ€ wp-admin ๋‚ด์—์„œ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๏ผˆInstaWP์— ์›นํ›…์œผ๋กœ ์ œ๊ณตํ•˜์—ฌ ๋‰ด์Šค๋ ˆํ„ฐ ๋“ฑ๋ก์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ์ถ”๊ฐ€ Persisted Query๋Š” draft ์ƒํƒœ๋กœ ์ถ”๊ฐ€๋˜์–ด ์žˆ์œผ๋ฉฐ, ์ด ์—ญ์‹œ ์™ธ๋ถ€์— ๊ณต๊ฐœ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.๏ผ‰

๊ฐ Persisted Query์—๋Š” ํ•ด๋‹น ์ž‘์—…์„ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•œ GraphQL ์ฟผ๋ฆฌ, ์ œ๊ณตํ•ด์•ผ ํ•  ์ž…๋ ฅ์— ๊ด€ํ•œ ๋ฌธ์„œ, ๊ทธ๋ฆฌ๊ณ  ํ•„์š”ํ•œ ํ™•์žฅ ๊ธฐ๋Šฅ๏ผˆ์žˆ๋Š” ๊ฒฝ์šฐ๏ผ‰์— ๋Œ€ํ•œ ์•ˆ๋‚ด๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค:

ํŽธ์ง‘๊ธฐ ๋‚ด์˜ Persisted Query
ํŽธ์ง‘๊ธฐ ๋‚ด์˜ Persisted Query

๋˜ํ•œ Persisted Query๊ฐ€ ํŠน์ • ์„ค์ •๏ผˆ์˜ˆ: "nested mutations"๏ผ‰์„ ํ•„์š”๋กœ ํ•˜๋Š” ๊ฒฝ์šฐ, ํ•ด๋‹นํ•˜๋Š” Schema Configuration๋„ ํ•จ๊ป˜ ์ƒ์„ฑ ๋ฐ ์ •์˜๋ฉ๋‹ˆ๋‹ค.

Persisted Query๋Š” ๋‹ค์Œ ์ค‘ ํ•œ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์œผ๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

  • GraphiQL ํด๋ผ์ด์–ธํŠธ์—์„œ ์ง์ ‘ ์ž…๋ ฅ์„ ๋ณ€์ˆ˜๋กœ ์ „๋‹ฌํ•˜์—ฌ ์‹คํ–‰
  • ๋ธŒ๋ผ์šฐ์ €์—์„œ Persisted Query์˜ URL์„ ํ˜ธ์ถœํ•˜๊ณ  ์ž…๋ ฅ์„ URL ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ์ „๋‹ฌํ•˜์—ฌ ์‹คํ–‰

์‚ฌ์ „ ์ •์˜๋œ Persisted Queries์˜ ์ „์ฒด ๋ชฉ๋ก์€ ๋ฆด๋ฆฌ์Šค ๋…ธํŠธ์—์„œ ํ™•์ธํ•˜์„ธ์š”.

์‚ฌ์ „ ์ •์˜๋œ Persisted Queries๋Š” ์–ด๋–ป๊ฒŒ ์œ ์šฉํ•œ๊ฐ€์š”?

์‚ฌ์ „ ์ •์˜๋œ Persisted Queries์˜ ์ถ”๊ฐ€๋กœ ๊ด€๋ฆฌ์ž๊ฐ€ ์‚ฌ์ดํŠธ์—์„œ ์ž‘์—…์„ ์‹คํ–‰ํ•˜๊ณ  ์ž๋™ํ™”ํ•˜๊ธฐ๊ฐ€ ๋”์šฑ ์‰ฌ์›Œ์ง‘๋‹ˆ๋‹ค.

๊ฒŒ์‹œ๋ฌผ์„ ํŠน์ • ์–ธ์–ด๋กœ ๋ฒˆ์—ญํ•ด์•ผ ํ•˜์‹œ๋‚˜์š”? Persisted Query "Translate post"๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ์–ธ์–ด์™€ ๊ฒŒ์‹œ๋ฌผ ID๋ฅผ URL ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ์ „๋‹ฌํ•˜์„ธ์š”.

์‚ฌ์ดํŠธ ๊ฐ„์— ์ฝ˜ํ…์ธ ๋ฅผ ๋™๊ธฐํ™”ํ•ด์•ผ ํ•˜์‹œ๋‚˜์š”? Persisted Query "Export a post into another WordPress site"๋ฅผ ์‹คํ–‰ํ•˜๊ณ , ๋™๊ธฐํ™”ํ•  ๊ฒŒ์‹œ๋ฌผ์˜ ์Šฌ๋Ÿฌ๊ทธ์™€ ๋Œ€์ƒ ์‚ฌ์ดํŠธ์˜ ์—”๋“œํฌ์ธํŠธ URL์„ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ์ „๋‹ฌํ•˜์„ธ์š”.

์ด์™€ ๊ฐ™์ด WP-CLI ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ, GraphQL ์ฟผ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ wp-admin ๋‚ด์—์„œ ์ง์ ‘ ๊ตฌ์„ฑํ•˜๊ณ  ์ €์žฅํ•˜๊ณ  ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์•ž์œผ๋กœ์˜ ๋ฆด๋ฆฌ์Šค์—์„œ๋„ ๋” ๋งŽ์€ ์‚ฌ์ „ ์ •์˜๋œ Persisted Queries๋ฅผ ๊ณ„์† ์ถ”๊ฐ€ํ•ด ๋‚˜๊ฐˆ ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.


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

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