@MiryangJung ์ ํ๋ธ React, GraphQL, Relay ๊ด๋ จ ์ถ์ฒ ์ค๋ ๋
๋จผ์ ๋ฆฌ์กํธ ๊ทธ๋ฆผ์ ๋ฐ๋ผ๊ฐ๋ด ์๋ค. ์ ์ค์ด ์์๋ JSConfUS 2013 ์ ๋ฆฌ์กํธ ์ฒซ ๊ณต๊ฐ์์ ๊ฐ์ฅ ์ด๊ธฐ์ ํต์ฌ ์ปจ์ (Markup Generation, Reconcilation, Escape Hatch)๊ณผ ๋ฐฐ๊ฒฝ ์ด์ผ๊ธฐ์ ๋ํด ์กฐ๊ธ ๋ค์ ์ ์์ต๋๋ค. https://youtu.be/GW0rj4sNH2w
๊ทธ ๋น์์ ๋ฆฌ์กํธ๋ ์ผ์ธ์ด์ ๋ ํ์ง๋ง, ์ง๊ธ์ ๋ฆฌ์กํธ์๋ ๋ค๋ฅธ ๋ฌผ๊ฑด์ด๋ผ๊ณ ํ ์ ์์ต๋๋ค. ์ด๊ฑธ ๊ตฌ๋ถ ์ง๋ ๊ธฐ์ค์ด ๋๋ Fiber๋ฅผ ์ดํดํ๋๊ฒ ๋ฆฌ์กํธ๋ฅผ ์ดํดํ๋๋ฐ ๋์์ด ๋ฉ๋๋ค. 2016๋ ์ ์๊ฐํ React Fiber, ์ค์ผ์ค๋ง์ ํ์์ฑ์ ์ญ์คํฉ๋๋ค. https://youtu.be/aV1271hd9ew
๋์์ฑ ์ค์ผ์ค๋ง์ ์ดํดํ๋๊ฒ ๋ฆฌ์กํธ๋ฅผ ์ดํดํ๋๋ฐ ํ์ํ ํต์ฌ์์ ์๋ฌด๋ฆฌ ๊ฐ์กฐํด๋ ์ง๋์น์ง ์์ต๋๋ค. 2016๋ ์ดํ ๋ฆฌ์กํธ ์ปจํผ๋ฐ์ค์ ๋จ๊ณจ ์ฃผ์ ์ด๊ธฐ๋ ํฉ๋๋ค. ๊ฐ์ธ์ ์ผ๋ก ๊ฐ์ฅ ์ ์ค๋ช ํ ๋ฐํ๋ก๋ ReactEurope 2019 ์ ์ด ์ธ์ ์ ๋ฝ์ต๋๋ค. https://youtu.be/Iyrf52cwxQI
Fiber ๊ธฐ๋ฐ ์ํคํ ์ฒ์ ํ๋ก๊ทธ๋๋ฐ ๋ชจ๋ธ์ ๋ํด ์กฐ๊ธ ๋ ์์ธํ ์ค๋ช ์ด ํฌํจ๋ ์ธ์ https://youtu.be/7GcrT0SBSnI
Fiber ์ํคํ ์ฒ๋ ํ์คํ ํ์น ์์ ๋์์ธ ๊ฒฐ์ ์ด๋ฉฐ, ์ค๋๋ ์ฑ์ฅํ๋ ๋ค๋ฅธ ํ๋ก ํธ์๋ ํ๋ ์์ํฌ ๋๋น ๋ฆฌ์กํธ๊ฐ ์๋์ ์ผ๋ก ๋ฌด๊ฒ๊ณ ๋ณต์กํด ๋ณด์ด๊ฒ ๋ง๋๋ ์ฃผ์์ธ์ด๊ธฐ๋ ํฉ๋๋ค.
๋ฆฌ์กํธ๋ ์๋์ง๋ง Rethinking Reactivity ๋ ์์ฃผ ์ข์ ๋ฐํ์ธ๋ฐ https://youtu.be/AdNJ3fydeao ์ ์์๋ค์ ๋ฒ๊ฐ์ ๋ณด๋ฉด Svelte์ ์ฒ ํ์ผ๋ก ๋ฝ๋ "Radical Simplicity"์ React์ "์ฑ๋ฅ๋ง์ด UX๋ฅผ ๊ฒฐ์ ํ์ง ์๋๋ค" ์ฌ์ด์ ์จ๋ ์ฐจ์ด๋ฅผ ๋๋ ์ ์์ต๋๋ค.
์ด๋ ๊ฒ ๊ณผ๋ํ ๋ณต์ก์ฑ์ ์์ ๋๋์ฒด ๋ฌด์์ ๋ฌ์ฑํ๋๊ฐ๋ Suspense์ Relay๋ฅผ ๋นผ๋๊ณ ์๋ ๋์ ํ ์ค๋ช ํ ์๊ฐ ์์ต๋๋ค. 2016๋ ๋ถํฐ ๋ก๋ฐฅ์ด ๋๋ฌดํ๋ Facebook F5 ํ๋ก์ ํธ(์น ํด๋ผ์ด์ธํธ ๋ฆฌ๋์์ธ)์ ๊ฒฐ๊ณผ ๋ฐํ๋ ์กฐ๊ธ ์ถฉ๊ฒฉ์ ์ผ๋งํผ ๊ธฐ์ ๊ฒฉ์ฐจ๋ฅผ ๋๋ผ๊ฒ ํฉ๋๋ค. https://youtu.be/KT3XKDBZW7M
๋ฆด๋ ์ด ํ์บ์คํธ ๊ฐ์๊ฑฐ ๋ฃ๋ค๋ณด๋ฉด 2021๋ ์ดํ๋ ๋ ์๋ํ ๋จผ ๊ณณ์ผ๋ก ๊ฐ ๊ฒ ๊ฐ์๋ฐ.... ํ์บ๋ ์์นด์ด๋น์ ์ํด์ ์ฐพ๊ธฐ๊ฐ ์ด๋ ต๊ตฐ์
GraphQL๊ณผ Relay ์๊ธฐ๋ฅผ ์ข ํด๋ณด๊ฒ ์ต๋๋ค. ์ด๋ค์ ๋ถ๋ช ๋ฐ์์๋ ๋ ๋ฆฝ์ ์ผ๋ก ๋ฐ์ ํด์๋๋ฐ ์ ๋ ๊ฒ ์ ํตํฉ๋์ด ๊ตด๋ฌ๊ฐ๋ค๋ ๋๋ผ์ด ์ผ์ ๋๋ค. ์ฌ์ค ๊ฑฐ์ ์ญ์ฌ๋ฅผ ํจ๊ป ํ ๋ฌผ๊ฑด์ด๊ธฐ ๋๋ฌธ์ React ํ๋ํฐ์ค๊ฐ ์์ฌ์๋ ๊ฒ ๋งํผ์ด๋ GraphQL ํ๋ํฐ์ค๊ฐ ์์ฌ์์ต๋๋ค.
GraphQL์ N+1 ๋ฌธ์ ์ ๋ํ ์ผ๋ฐ ํด๊ฒฐ์ฑ ๊ณผ ํจ๊ป ์๊ฐ๋ฉ๋๋ค. ์ฌ์ค์์ ํ๋ชธ ์ด๋ผ๊ณ ํ ์ ์๋ DataLoader ๋ฅผ ์ดํดํ๋ ๊ฒ์ด ์ ๋ง ์ค์ํฉ๋๋ค. https://youtu.be/OQTnXNCDywA ์์ ์ด๋ฐ์ ํฅ๋ฏธ๋ก์ด ํ์์คํ ๋ฆฌ๊ฐ ๋ด๊ฒจ์๊ณ ํ๋ฐ์ ๊ตฌํ ๋ํ ์ผ์ ์ค๋ช ํฉ๋๋ค.
GraphQL์ ๊ณต๊ฐ๋ ์์ ์งํ๋ถํฐ ์ ๊ณ์์ ๊ฝค๋ ํ๋ฐํ๊ฒ ์ฌ์ฉ๋์๊ธฐ ๋๋ฌธ์ ์ค๋๋ ์๋ ๋ฒ ์คํธ ํ๋ํฐ์ค๋ผ๊ณ ๋ถ๋ฅด๋ ๊ฒ๋ค์ ๋๋ถ๋ถ 2015๋ ~ 2016๋ ๋ฐํ๋ฅผ ์ฐพ์๋ณด๋ฉด ๋ง์ด ์ฟ๋ณผ ์ ์์ต๋๋ค. ์ด๋ฐ๊ฑฐ๋ผ๋๊ฐ: https://youtu.be/1Fg_QtzI7SU
์ด๋ฐ๊ฑฐ: https://youtu.be/zVNrqo9XGOs
GraphQL ์ผ๋ฆฌ์ด๋ตํฐ๋ก ์๊ผฝํ๋ ๋น ํ ํฌ ์์ง๋์ด๋ค์ด ๊ฐ์ ์๊ฐํ๋ ๋ฐฉ์์ผ๋ก GraphQL์ ์๊ฐํ๋ ์งง์ ์์์ ๋๋ค https://youtu.be/mRgvbtNuCZY
React ์ GraphQL ์ ๋ํตํฉ์ธ Relay ์ญ์ ์ญ์ฌ๋ฅผ ํจ๊ปํฉ๋๋ค. ์ฝ์ด ์ปจ์ ์ ์ด ์์์์ ์ฟ๋ณผ ์ ์์ต๋๋ค. https://youtu.be/oPSuvaYmXBY
๋ญ๊ฐ ๋ ๋ฆฝ์ ์ผ๋ก ์ฑ์ฅํ ๊ฒ ๊ฐ์ ๋ ๊ธฐ์ ์ด ์ ๋ง์ ๋จ์ด์ง๋ ๊ฒ ์ฒ๋ผ ๋ณด์ด๋ ๊ฒ์ ์ฐ์ฐ์ด ์๋๋๋ค. React ์ GraphQL์ ์ค์ ๋ก ์๋ ๊ฑฐ๋ํ ๋ฌธ์ ๋ฅผ ํจ๊ป ํด๊ฒฐ(๊ฐ๋ฐฅ)ํ๋ฉด์ ์ฑ์ฅํด์จ ์ค์ฉ์ ์ธ ๊ธฐ์ ์ ๋๋ค. ์ ์ต์ ๋ฐํ์์ ๊ทธ๊ฒ๋ค์ ๋ฐฐ๊ฒฝ ์ฒ ํ์ ์ด์ง ์ฟ๋ณผ ์ ์์ต๋๋ค. https://youtu.be/vG8WpLr6y_U
GraphQL๊ณผ Relay๋ ์ค์ ํด๋ผ์ด์ธํธ์ ์ด๋ ค์ด ๋ฌธ์ ๋ค์ ํํํ๋ฆฌ๋ง์น ์ฝ๊ฒ ํด๊ฒฐํด์ค๋๋ค. ํ์ง๋ง ์ค์ ๋ก ์ฌ์ฉํด๋ณด์ จ๋ค๋ฉด ๊ทธ๊ฑธ ์ํ API ๋์์ธ์ด ์ผ๋ง๋ ์ค์ํ์ง๋ ๋๋๊ฒ๋๋ค. GraphQL ์คํค๋ง ๋์์ธ์๋ ์ ๋ต์ด ์์ต๋๋ค๋ง, ๊ฒฝํ์ ๊ธฐ๋ฐํ ๋ค์ํ ์์น๋ค์ด ์๊ฐ๋ฉ๋๋ค. https://youtu.be/pJamhW2xPYw
์ ์ฐํ ์คํค๋ง ์ค๊ณ์ ๋ํด์๋ ์์ฃผ ์๊ธฐํ๋ ํธ์ด๊ณ ์ https://youtu.be/fBkmlFfwRu0
์๋ฌ ๋์์ธ๋ ์๋นํ ์ค์ํ ์ฃผ์ ์ ๋๋ค https://youtu.be/RDNTP66oY2o
API ์ด์ผ๊ธฐ๋ฅผ ํ๋๋ฐ ๊ฑฐ๋ฒ๋์ค ์๊ธฐ๊ฐ ๋น ์ง ์ ์์ฃ . ์กฐ์ง์ด ์ปค์ง๋ฉด ํญ์ API ๊ฑฐ๋ฒ๋์ค ๋ฌธ์ ๋ฅผ ํจ๊ป ๊ณ ๋ฏผํด์ผ ํฉ๋๋ค. GraphQL์ ์กฐ์ง์ด ์ฑํํ๊ธฐ ์ข์ ๊ธฐ์ ์ผ๊น์? GraphQL์ ๋๊ท๋ชจ ํฌ์๋ฅผ ์์ ๋ทํ๋ฆญ์ค์ ์ฌ๋ก์์ ๊ทธ ๊ฒฐ๊ณผ(ํฌ๋งํธ)๋ฅผ ์ฟ๋ณผ ์ ์์ต๋๋ค. https://youtu.be/QrEOvHdH2Cg
ํ์ง๋ง Federation ์ ๋ต์ด ์ฑ๊ณตํ๋ ค๋ฉด ์๋นํ ์์ค์ ์กฐ์ง์ ์ธ ํฌ์๊ฐ ํ์ํ ๊ฒ์ผ๋ก ๋ณด์ ๋๋ค. ๋ง์ ํ๋ค์ด ์ง์งํ๊ณ ์ธํ๋ผ์ ๊ต์ก์ ์ธ ํฌ์๊ฐ ์ด๋ฃจ์ด์ ธ์ ๊ฐ๋ฅํ๋ค๊ณ ๋ค์์ต๋๋ค. ๋์์ผ๋ก ๋ ์์ฃผ๋ณด์ด๋ BFF ํผํฉ ํจํด์ ๋ํด ์๊ฐํฉ๋๋ค https://youtu.be/YnZr-qeiGO0
GraphQL์ JS ํด๋ผ์ด์ธํธ์์๋ ์ ์ฉํ๊ฑฐ ์๋๊ฐ์? ๋ผ๊ณ ํ๋ฉด ์ ํ ์๋๊ฒ... GraphQL ์ด ๋ฑ์ฅ์ด ๋ ๋นจ๋ผ๊ณ ์ฒซ ์ง์ ํ๊ฒ์ (RN์ด ์๋) iOS ์ฑ์ด์์ต๋๋ค. ์ด ์ธ์ ์ GraphQL ํด๋ผ์ด์ธํธ ์ํคํ ์ฒ๋ฅผ ๋ ๋ฆฝ์ ์ผ๋ก ์ ์ค๋ช ํฉ๋๋ค https://youtu.be/vQkGO5q52uE
React ๋ ๊ทธ๋์. ๋ฆฌ์กํธ๋ฅผ ์์ฐ๊ฑฐ๋ ์์ฐ๊ฒ ๋๋ค ํ๋๋ผ๋ React ์์ ์๋ํ ์ปจ์ ๊ณผ ํ๋ก๊ทธ๋๋ฐ ๋ชจ๋ธ๋ค์ด ๋ค๋ฅธ ์ํ๊ณ์๋ ๋ง์ ์ํฅ์ ๋ฏธ์ณค๋ค๋ ๊ฒ์ ๋ถ์ ํ ์ ์์ต๋๋ค. ๋ฐฐ์์ ๋ฐํ์ผ๋ก ๋ ๋์ ํ๋ ์์ํฌ๋ฅผ ๋ง๋๋๋ฐ ์ ํจํ๊ฒ ํ์ฉํ ์ ์๊ฒ ์ฃ . https://youtu.be/K3JqNaw0-Us
๋ค ์ข์๋ฐ ๋ฐ์ดํฐ ํจ์นญ๊ณผ ๋ฆฌ์กํฐ๋นํฐ ๋ฌธ์ ๋ฅผ ์ ํด๊ฒฐํด๋ ์ฌ์ ํ ์์ฒด์ ์ผ๋ก ๋ณต์กํ UI๊ฐ ์์ต๋๋ค. ์ด๋ฐ ์ํฉ์์ ์ถ์ฒํ๊ณ ์ถ์ ์์์ ์ด๊ฒ์ ๋๋ค https://youtu.be/VU1NKX6Qkxc
๋ ์ง์ ์ ์ผ๋ก ๋ฆฌ์กํธ ์ฝ๋๋ฒ ์ด์ค๋ฅผ ๊ธฐ๋ฐํ ์ค๋ช ์ด ํฌํจ๋ ์ด ๋ฐํ๋ ์ถ์ฒํฉ๋๋ค https://youtu.be/sZg3DoTfHLQ
์์ iOS GraphQL ํด๋ผ์ด์ธํธ ์ํคํ ์ฒ ์์์์ ๋ญ๊ฐ ๋นผ๋จน์๋ฏํ ๋๋์ด ๋ค์ด์ ์ฐพ์์ด. Apollo ๋ฒ์ ๋ ์ข์ต๋๋ค https://x.com/KrComet/status/1...
์ด๊ฒ๋ ์ฌ๋ฐ์ด์ ใ ใ ใ https://youtu.be/wNUg1jpj9T0
์ข ์ผ๋ฐ์ ์ธ ํด๋ผ์ด์ธํธ ์ํคํ ์ฒ ์๊ธฐ๋ฅผ ํ๋ ค๋ฉด Elm ์ด๋ Cycle.js ๋ฅผ ๋ค๊ณ ์์ผํ๊ฑฐ๋ ์...? ๋ํ ์ผ ํ ๊ฑด ๊ธ๊ฐ์ผ๋ก ์์ฌ๋๊ณ ํนํ๋ ๋ฆฌ์กํธ ์ํ๊ณ์์ Elm์ด ์ธ๊ธ๋๋ ๊ฒฝ์ฐ๊ฐ ์ฆ์๋ฐ ์ด ๋ฐํ์์ ๋ ์ฌ์ด์ ์ฐ๊ด์ฑ์ ์๊ธฐํฉ๋๋ค https://youtu.be/jl1tGiUiTtI
์ ์ ํ๋ธ๋ ํ์บ๋ ์์นด์ด๋นํ ๋ฆฌ์์ค๋ก์จ ๋ณ๋ก ์ ํธํ์ง ์์์ ์ฌ์๋ชฉ๋ก์ด ์ด ์ ๋ ๋ฐ์ ์๋ค์. ์ฌ์ฌํ๊ฑฐ๋ ์๊ทน์ด ํ์ํ ๋ ํ๋์ฉ ํ์ด๋ณด๋ฉด ์ข์ต๋๋ค.
@KrComet @NotionAddon ์ข์๊ธ ์ ์ ๋ถ๋งํฌ ํด๊ฐ๊ฒ์ต๋๋น ๊ฐ์ฌํฉ๋๋ค!
