Published: August 13, 2022
2
189
326

@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 ์ข‹์€๊ธ€ ์ž ์‹œ ๋ถ๋งˆํฌ ํ•ด๊ฐ€๊ฒŸ์Šต๋‹ˆ๋‹น ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

Share this thread

Read on Twitter

View original thread

Navigate thread

1/30