<aside> ๐
Figma ๋์์ธ ํ์ผ๊ณผ ์ค์ ๊ตฌํ๋ ์น์ฌ์ดํธ๋ฅผ ํฝ์ ๋จ์๋ก ๋น๊ตํ๋ ์๋น์ค์ ๋๋ค. URL๊ณผ Figma ํ์ผ ๊ฒฝ๋ก๋ฅผ ์ ๋ ฅํ๋ฉด ์๋์ผ๋ก ์คํฌ๋ฆฐ์ท์ ์บก์ฒํ๊ณ , ์ค๋ฒ๋ ์ด/๋ถํ ํ๋ฉด ๋ชจ๋๋ก ์ฐจ์ด๋ฅผ ์๊ฐํํฉ๋๋ค.
</aside>
๋์์ด๋์ ํ์ ํ๋ฉด์ "๋์์ธ ํ์ผ๊ณผ ์์ ํ ๋์ผํ๊ฒ ๊ตฌํํ๋๋ฐ ์ ํผ๋๋ฐฑ์ด ์ค์ง?"๋ผ๋ ์ํฉ์ ์์ฃผ ๊ฒช์์ต๋๋ค. Figma๋ฅผ ๋ณด๋ฉด์ ์ค์ ์น์ฌ์ดํธ๋ฅผ ๋์ผ๋ก ๋น๊ตํ๋ ๊ฒ์ ํ๊ณ๊ฐ ๋ช ํํ๊ณ , ์คํฌ๋ฆฐ์ท์ ์ฐ์ด์ Figma์ ๋ถ์ฌ๋ฃ๊ณ ๋น๊ตํ๋ ๊ฒ๋ ๋ฒ๊ฑฐ๋กญ์ต๋๋ค.
PixelDiff๋ ์ด ๊ณผ์ ์ ์๋ํํฉ๋๋ค. URL๊ณผ Figma ํ์ผ ๊ฒฝ๋ก๋ฅผ ์ ๋ ฅํ๋ฉด ๋ ์ด๋ฏธ์ง๋ฅผ ์ฆ์ ๋น๊ตํ ์ ์์ต๋๋ค.
๋ฌธ์ :
Figma API ๋ ๋๋ง์ด ํ๊ท 20-30์ด, ์ต๋ 55์ด๊น์ง ์์๋ฉ๋๋ค. ์ด ์๊ฐ ๋์ ๋ก๋ฉ๋ง ๋๋ฉด ์ ์ ๋ ์์ ์ด ๋ฉ์ท๋ค๊ณ ์คํดํ๊ณ ์ดํํฉ๋๋ค.
๊ณ ๋ คํ ์ต์ :
์ ํ ์ด์ :
์๋ฒ๊ฐ ํด๋ผ์ด์ธํธ์๊ฒ ์งํ๋ฅ ์ ์ ์กํ๊ธฐ๋ง ํ๋ฉด ๋๋ฏ๋ก ๋จ๋ฐฉํฅ ํต์ ์ผ๋ก ์ถฉ๋ถํฉ๋๋ค. SSE๋ HTTP ์ธํ๋ผ๋ฅผ ๊ทธ๋๋ก ์ฌ์ฉํ๊ณ , EventSource API๊ฐ ์ฌ์ฐ๊ฒฐ์ ์๋์ผ๋ก ์ฒ๋ฆฌํฉ๋๋ค. WebSocket์ ์ฑํ ์ฒ๋ผ ์๋ฐฉํฅ์ด ํ์ํ ๊ฒฝ์ฐ์ ์ ํฉํ์ง๋ง ์ฌ๊ธฐ์๋ ์ค๋ฒ์คํ์ ๋๋ค.
const eventSource = new EventSource('/api/render/progress');
eventSource.onmessage = (event) => {
const { stage, progress } = JSON.parse(event.data);
setProgressState({ stage, progress });
};
๋ ๋๋ง ์ค์๋ ๋ค๋ฅธ ์์ ์ด๋ ํ์คํ ๋ฆฌ ํ์ธ์ด ๊ฐ๋ฅํ ๋ ผ๋ธ๋กํน ์ํฌํ๋ก์ฐ๋ฅผ ์ ๊ณตํฉ๋๋ค.
๋ฌธ์ :