์ ํ์ ํ์ด๋๋ ์ด์ ์ ํตํด Deno ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์ต์ ํํ๋ ๊ฐ๋ ฅํ ๊ธฐ์ ์ธ Fresh ์์ผ๋๋๋ฅผ ์์๋ณด์ธ์. ์ํธ์์ฉ ์ปดํฌ๋ํธ๋ฅผ ์ ํ์ ์ผ๋ก ํ์ด๋๋ ์ด์ ํ์ฌ ์ฑ๋ฅ๊ณผ ์ฌ์ฉ์ ๊ฒฝํ์ ๊ฐ์ ํ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์ธ ์ ์์ต๋๋ค.
Fresh ์์ผ๋๋: ๊ณ ์ฑ๋ฅ Deno ์น์ฌ์ดํธ๋ฅผ ์ํ ์ ํ์ ํ์ด๋๋ ์ด์
๋์์์ด ์งํํ๋ ์น ๊ฐ๋ฐ ํ๊ฒฝ์์ ์ฑ๋ฅ์ ๊ฐ์ฅ ์ค์ํฉ๋๋ค. ์ฌ์ฉ์๋ค์ ๋ฒ๊ฐ์ฒ๋ผ ๋น ๋ฅธ ๋ก๋ฉ ์๊ฐ๊ณผ ์ํํ ์ํธ์์ฉ์ ๊ธฐ๋ํฉ๋๋ค. Deno๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌ์ถ๋ Fresh์ ๊ฐ์ ํ๋ ์์ํฌ๋ ์ด๋ฌํ ์๊ตฌ์ ์ ๋ฉด์ผ๋ก ๋์ํ๊ณ ์์ต๋๋ค. Fresh๊ฐ ๋ฐ์ด๋ ์ฑ๋ฅ์ ๋ฌ์ฑํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ํต์ฌ ์ ๋ต ์ค ํ๋๋ ์์ผ๋๋ ์ํคํ ์ฒ(Islands Architecture)์ ๊ฒฐํฉ๋ ์ ํ์ ํ์ด๋๋ ์ด์ (Selective Hydration)์ ๋๋ค. ์ด ๊ธ์์๋ Fresh ์์ผ๋๋์ ๊ฐ๋ ์ ๊น์ด ํ๊ณ ๋ค๊ณ , ์ ํ์ ํ์ด๋๋ ์ด์ ์ ์๋ ๋ฐฉ์์ ์ค๋ช ํ๋ฉฐ, ์ต์ ์น ์ ํ๋ฆฌ์ผ์ด์ ๊ตฌ์ถ์ ์์ด ๊ทธ ์ด์ ์ ๋ณด์ฌ์ค๋๋ค.
์์ผ๋๋ ์ํคํ ์ฒ๋ ๋ฌด์์ธ๊ฐ?
Astro์ ๊ฐ์ ํ๋ ์์ํฌ๊ฐ ๊ฐ์ฒํ๊ณ Fresh๊ฐ ์ฑํํ ์์ผ๋๋ ์ํคํ ์ฒ๋ ์น ํ์ด์ง๋ฅผ ๊ตฌ์ถํ๋ ์๋ก์ด ์ ๊ทผ ๋ฐฉ์์ ์ ์ํฉ๋๋ค. ์ ํต์ ์ธ ๋จ์ผ ํ์ด์ง ์ ํ๋ฆฌ์ผ์ด์ (SPA)์ ์ข ์ข ์ ์ฒด ํ์ด์ง๋ฅผ ํ์ด๋๋ ์ด์ ํ์ฌ ์ ์ HTML์ ํด๋ผ์ด์ธํธ ์ธก์์ ์์ ํ ์ํธ์์ฉ ์ ํ๋ฆฌ์ผ์ด์ ์ผ๋ก ๋ณํํฉ๋๋ค. ์ด๋ ํ๋ถํ ์ฌ์ฉ์ ๊ฒฝํ์ ์ ๊ณตํ์ง๋ง, ํนํ ์ฝํ ์ธ ๊ฐ ๋ง์ ์น์ฌ์ดํธ์ ๊ฒฝ์ฐ ์๋นํ ์ฑ๋ฅ ์ค๋ฒํค๋๋ฅผ ์ ๋ฐํ ์ ์์ต๋๋ค.
๋ฐ๋ฉด์ ์์ผ๋๋ ์ํคํ ์ฒ๋ ์น ํ์ด์ง๋ฅผ ๋ ์๊ณ ๊ณ ๋ฆฝ๋ ์ํธ์์ฉ์ ์์ผ๋๋(islands)๋ก ๋ถํดํ๋ ๋ฐ ์ค์ ์ ๋ก๋๋ค. ์ด ์์ผ๋๋๋ค์ ์ ํ์ ์ผ๋ก ํ์ด๋๋ ์ด์ ๋๋ ์ํธ์์ฉ ์ปดํฌ๋ํธ๋ก, ์๋ฐ์คํฌ๋ฆฝํธ๊ฐ ํ์ํ ํ์ด์ง๋ง ํด๋ผ์ด์ธํธ ์ธก์์ ์ค์ ๋ก ์ฒ๋ฆฌ๋๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ํ์ด์ง์ ๋๋จธ์ง ๋ถ๋ถ์ ์ ์ HTML๋ก ๋จ์ ํจ์ฌ ๋น ๋ฅด๊ฒ ๋ก๋๋๊ณ ๋ ์ ์ ๋ฆฌ์์ค๋ฅผ ์๋นํฉ๋๋ค.
์ผ๋ฐ์ ์ธ ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ์ ์๋ก ๋ค์ด๋ณด๊ฒ ์ต๋๋ค. ํ ์คํธ๋ ์ด๋ฏธ์ง์ ๊ฐ์ ์ฃผ์ ์ฝํ ์ธ ๋ ๋๋ถ๋ถ ์ ์ ์ ๋๋ค. ๊ทธ๋ฌ๋ ๋๊ธ ์น์ , ๊ฒ์์ฐฝ, ์์ ๋ฏธ๋์ด ๊ณต์ ๋ฒํผ๊ณผ ๊ฐ์ ์์๋ค์ ์ํธ์์ฉ์ ์ํด ์๋ฐ์คํฌ๋ฆฝํธ๊ฐ ํ์ํฉ๋๋ค. ์์ผ๋๋ ์ํคํ ์ฒ๋ฅผ ์ฌ์ฉํ๋ฉด ์ด๋ฌํ ์ํธ์์ฉ ์์๋ค๋ง ํ์ด๋๋ ์ด์ ๋๊ณ , ์ ์ ์ฝํ ์ธ ๋ ์ฌ์ ๋ ๋๋ง๋ HTML๋ก ์ ๊ณต๋ฉ๋๋ค.
์์ผ๋๋ ์ํคํ ์ฒ์ ์ฅ์ :
- ์ฑ๋ฅ ํฅ์: ํด๋ผ์ด์ธํธ ์ธก์์ ์คํ๋๋ ์๋ฐ์คํฌ๋ฆฝํธ์ ์์ ์ค์์ผ๋ก์จ ์์ผ๋๋ ์ํคํ ์ฒ๋ ํ์ด์ง ๋ก๋ฉ ์๊ฐ๊ณผ ์ ๋ฐ์ ์ธ ์ฑ๋ฅ์ ํฌ๊ฒ ํฅ์์ํต๋๋ค.
- ํฅ์๋ ์ฌ์ฉ์ ๊ฒฝํ: ๋ ๋น ๋ฅธ ๋ก๋ฉ ์๊ฐ์ ์ฌ์ฉ์์๊ฒ ๋ ์ฆ๊ฑฐ์ด ๋ธ๋ผ์ฐ์ง ๊ฒฝํ์ผ๋ก ์ด์ด์ ธ ์ฐธ์ฌ๋๋ฅผ ๋์ด๊ณ ์ดํ๋ฅ ์ ๋ฎ์ถฅ๋๋ค.
- ๋ฆฌ์์ค ์๋น ๊ฐ์: ์ ํ์ ํ์ด๋๋ ์ด์ ์ ํด๋ผ์ด์ธํธ ์ธก์์ ์ฌ์ฉ๋๋ CPU์ ๋ฉ๋ชจ๋ฆฌ ์์ ์ค์ฌ ์น์ฌ์ดํธ๋ฅผ ๋ ํจ์จ์ ์ผ๋ก ๋ง๋ค๊ณ ์ฑ๋ฅ์ด ๋ฎ์ ๊ธฐ๊ธฐ๋ฅผ ๊ฐ์ง ์ฌ์ฉ์๋ ์ฝ๊ฒ ์ ๊ทผํ ์ ์๋๋ก ํฉ๋๋ค.
- ๋ ๋์ SEO: ๊ฒ์ ์์ง์ ๋ก๋ฉ ์๊ฐ์ด ๋น ๋ฅด๊ณ ์ฑ๋ฅ์ด ์ข์ ์น์ฌ์ดํธ๋ฅผ ์ ํธํฉ๋๋ค. ์์ผ๋๋ ์ํคํ ์ฒ๋ SEO ์์ ํฅ์์ ๊ธฐ์ฌํ ์ ์์ต๋๋ค.
์ ํ์ ํ์ด๋๋ ์ด์ : ์์ผ๋๋ ์ฑ๋ฅ์ ํต์ฌ
์ ํ์ ํ์ด๋๋ ์ด์ ์ ์น ํ์ด์ง์ ํน์ ์ปดํฌ๋ํธ์ ์ ํ์ ์ผ๋ก ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์ถ๊ฐํ์ฌ ์ํธ์์ฉ์ด ๊ฐ๋ฅํ๊ฒ ๋ง๋๋ ๊ณผ์ ์ ๋๋ค. ์ด๋ ์์ผ๋๋ ์ํคํ ์ฒ๋ฅผ ๊ตฌ๋ํ๋ ์์ง์ ๋๋ค. ์ ์ฒด ํ์ด์ง๋ฅผ ํ์ด๋๋ ์ด์ ํ๋ ๋์ , ์ ํ์ ํ์ด๋๋ ์ด์ ์ ํตํด ๊ฐ๋ฐ์๋ ๋์ ์ด ๋ ํ์๊ฐ ์๋ ์ปดํฌ๋ํธ๋ง ํ๊ฒํ ํ ์ ์์ต๋๋ค. ์ด ์ ๊ทผ ๋ฐฉ์์ ํด๋ผ์ด์ธํธ ์ธก์์ ๋ค์ด๋ก๋, ํ์ฑ ๋ฐ ์คํํด์ผ ํ๋ ์๋ฐ์คํฌ๋ฆฝํธ์ ์์ ํฌ๊ฒ ์ค์ฌ ๋ก๋ฉ ์๊ฐ์ ๋จ์ถํ๊ณ ์ฑ๋ฅ์ ํฅ์์ํต๋๋ค.
Fresh์์ ์ ํ์ ํ์ด๋๋ ์ด์ ์ด ์๋ํ๋ ๋ฐฉ์:
Fresh๋ Deno์ ๋ด์ฅ ํ์ ์คํฌ๋ฆฝํธ ์ง์๊ณผ ์ปดํฌ๋ํธ ๊ธฐ๋ฐ ์ํคํ ์ฒ๋ฅผ ํ์ฉํ์ฌ ์ ํ์ ํ์ด๋๋ ์ด์ ์ ์ํํ๊ฒ ๋ง๋ญ๋๋ค. ๊ทธ ๊ณผ์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
- ์ปดํฌ๋ํธ ๊ธฐ๋ฐ ๊ตฌ์กฐ: Fresh ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ์ปดํฌ๋ํธ๋ฅผ ์ฌ์ฉํ์ฌ ๊ตฌ์ถ๋ฉ๋๋ค. ๊ฐ ์ปดํฌ๋ํธ๋ ์ ์ ์ด๊ฑฐ๋ ์ํธ์์ฉ์ ์ผ ์ ์์ต๋๋ค.
- ์๋ ๊ฐ์ง: Fresh๋ ์ฝ๋๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ด๋ค ์ปดํฌ๋ํธ๊ฐ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ํ์๋ก ํ๋์ง ์๋์ผ๋ก ๊ฐ์งํฉ๋๋ค. ์ปดํฌ๋ํธ๊ฐ ์ด๋ฒคํธ ๋ฆฌ์ค๋, ์ํ ๊ด๋ฆฌ ๋๋ ๊ธฐํ ์ํธ์์ฉ ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ, Fresh๋ ํด๋น ์ปดํฌ๋ํธ๋ฅผ ํ์ด๋๋ ์ด์ ํด์ผ ํ๋ค๋ ๊ฒ์ ์ธ์งํฉ๋๋ค.
- ๋ถ๋ถ์ ํ์ด๋๋ ์ด์ : Fresh๋ ํ์ํ ์ปดํฌ๋ํธ๋ง ํ์ด๋๋ ์ด์ ํฉ๋๋ค. ์ ์ ์ปดํฌ๋ํธ๋ ์ฌ์ ๋ ๋๋ง๋ HTML๋ก ์ ๊ณต๋๊ณ , ์ํธ์์ฉ ์ปดํฌ๋ํธ๋ ํด๋ผ์ด์ธํธ ์ธก์์ ํ์ด๋๋ ์ด์ ๋ฉ๋๋ค.
- ์์ผ๋๋ ์ ์: Fresh๋ฅผ ์ฌ์ฉํ๋ฉด ์ด๋ค ์ปดํฌ๋ํธ๋ฅผ ์์ผ๋๋๋ก ์ฒ๋ฆฌํ ์ง ๋ช ์์ ์ผ๋ก ์ ์ํ ์ ์์ต๋๋ค. ์ด๋ฅผ ํตํด ํ์ด๋๋ ์ด์ ํ๋ก์ธ์ค๋ฅผ ์ธ๋ฐํ๊ฒ ์ ์ดํ ์ ์์ต๋๋ค.
์์: ๊ฐ๋จํ ์นด์ดํฐ ์ปดํฌ๋ํธ
Fresh์์ ๊ฐ๋จํ ์นด์ดํฐ ์ปดํฌ๋ํธ๋ก ์ ํ์ ํ์ด๋๋ ์ด์ ์ ์ค๋ช ํด ๋ณด๊ฒ ์ต๋๋ค:
// components/Counter.tsx
import { useState } from "preact/hooks";
export default function Counter() {
const [count, setCount] = useState(0);
return (
Count: {count}
);
}
์ด ์์์์ Counter
์ปดํฌ๋ํธ๋ useState
ํ
์ ์ฌ์ฉํ์ฌ ๋ด๋ถ ์ํ๋ฅผ ๊ด๋ฆฌํ๊ณ , ์ด๋ฒคํธ ๋ฆฌ์ค๋(onClick
)๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ์ฉ์ ์ํธ์์ฉ์ ์ฒ๋ฆฌํฉ๋๋ค. Fresh๋ ์ด ์ปดํฌ๋ํธ๊ฐ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ํ์๋ก ํ๋ค๋ ๊ฒ์ ์๋์ผ๋ก ์ธ์ํ๊ณ ํด๋ผ์ด์ธํธ ์ธก์์ ํ์ด๋๋ ์ด์
ํ ๊ฒ์
๋๋ค. ์ ์ ํ
์คํธ๋ ์ด๋ฏธ์ง์ ๊ฐ์ ํ์ด์ง์ ๋ค๋ฅธ ๋ถ๋ถ๋ค์ ์ฌ์ ๋ ๋๋ง๋ HTML๋ก ๋จ๊ฒ ๋ฉ๋๋ค.
Fresh์์ ์ ํ์ ํ์ด๋๋ ์ด์ ์ ์ด์
์์ผ๋๋ ์ํคํ ์ฒ์ ์ ํ์ ํ์ด๋๋ ์ด์ ์ ์กฐํฉ์ Fresh ๊ฐ๋ฐ์์๊ฒ ๋ค์๊ณผ ๊ฐ์ ๋ช ๊ฐ์ง ์ค์ํ ์ด์ ์ ์ ๊ณตํฉ๋๋ค:
- ๋ ๋น ๋ฅธ ๋ก๋ฉ ์๊ฐ: ๋ค์ด๋ก๋ํ๊ณ ์คํํด์ผ ํ๋ ์๋ฐ์คํฌ๋ฆฝํธ์ ์์ ์ค์์ผ๋ก์จ ์ ํ์ ํ์ด๋๋ ์ด์ ์ ํ์ด์ง ๋ก๋ฉ ์๊ฐ์ ํฌ๊ฒ ๊ฐ์ ํฉ๋๋ค. ์ด๋ ๋๋ฆฐ ์ธํฐ๋ท ์ฐ๊ฒฐ์ด๋ ์ฑ๋ฅ์ด ๋ฎ์ ๊ธฐ๊ธฐ๋ฅผ ์ฌ์ฉํ๋ ์ฌ์ฉ์์๊ฒ ํนํ ์ ์ฉํฉ๋๋ค.
- ์ฑ๋ฅ ํฅ์: ์ ํ์ ํ์ด๋๋ ์ด์ ์ ํด๋ผ์ด์ธํธ ์ธก์์ ์ฌ์ฉ๋๋ CPU์ ๋ฉ๋ชจ๋ฆฌ ์์ ์ค์ฌ ๋ ๋ฐ์์ฑ ์๊ณ ๋ถ๋๋ฌ์ด ์ฌ์ฉ์ ๊ฒฝํ์ ์ ๊ณตํฉ๋๋ค.
- ํฅ์๋ SEO: ๊ฒ์ ์์ง์ ๋ก๋ฉ ์๊ฐ์ด ๋น ๋ฅด๊ณ ์ฑ๋ฅ์ด ์ข์ ์น์ฌ์ดํธ๋ฅผ ์ฐ์ ์ํฉ๋๋ค. ์ ํ์ ํ์ด๋๋ ์ด์ ์ SEO ์์ ํฅ์์ ๊ธฐ์ฌํ ์ ์์ต๋๋ค.
- ๋จ์ํ๋ ๊ฐ๋ฐ: Fresh์ ์ํธ์์ฉ ์ปดํฌ๋ํธ ์๋ ๊ฐ์ง ๊ธฐ๋ฅ์ ๊ฐ๋ฐ ํ๋ก์ธ์ค๋ฅผ ๋จ์ํํฉ๋๋ค. ๊ฐ๋ฐ์๋ ์๋์ผ๋ก ํ์ด๋๋ ์ด์ ์ ๊ด๋ฆฌํ๋ ๊ฒ์ ๋ํด ๊ฑฑ์ ํ์ง ์๊ณ ์ ํ๋ฆฌ์ผ์ด์ ๊ตฌ์ถ์ ์ง์คํ ์ ์์ต๋๋ค.
- ๋ ๋์ ์ ๊ทผ์ฑ: ์ ์ ์ฝํ ์ธ ๋ฅผ ์ฌ์ ๋ ๋๋ง๋ HTML๋ก ์ ๊ณตํจ์ผ๋ก์จ ์ ํ์ ํ์ด๋๋ ์ด์ ์ ์ฅ์ ๊ฐ ์๊ฑฐ๋ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ๋นํ์ฑํํ ์ฌ์ฉ์๋ ์น์ฌ์ดํธ์ ์ ๊ทผํ ์ ์๋๋ก ๋ณด์ฅํฉ๋๋ค.
์ ํ์ ํ์ด๋๋ ์ด์ vs. ์ ํต์ ์ธ ํ์ด๋๋ ์ด์
์ ํ์ ํ์ด๋๋ ์ด์ ์ ์ด์ ์ ์์ ํ ์ดํดํ๋ ค๋ฉด SPA์์ ์ฌ์ฉ๋๋ ์ ํต์ ์ธ ํ์ด๋๋ ์ด์ ์ ๊ทผ ๋ฐฉ์๊ณผ ๋น๊ตํ๋ ๊ฒ์ด ๋์์ด ๋ฉ๋๋ค.
๊ธฐ๋ฅ | ์ ํต์ ์ธ ํ์ด๋๋ ์ด์ (SPA) | ์ ํ์ ํ์ด๋๋ ์ด์ (Fresh ์์ผ๋๋) |
---|---|---|
ํ์ด๋๋ ์ด์ ๋ฒ์ | ์ ์ฒด ํ์ด์ง | ์ํธ์์ฉ ์ปดํฌ๋ํธ๋ง |
์๋ฐ์คํฌ๋ฆฝํธ ๋ก๋ | ํฌ๊ณ , ์ ์ฌ์ ์ผ๋ก ๋ธ๋กํน๋จ | ์ต์ํ๋๊ณ , ํ๊ฒํ ๋จ |
๋ก๋ฉ ์๊ฐ | ๋ ๋๋ฆผ, ํนํ ๋๊ท๋ชจ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฒฝ์ฐ | ๋ ๋น ๋ฆ, ์ฒด๊ฐ ์ฑ๋ฅ์ด ํฌ๊ฒ ํฅ์๋จ |
๋ฆฌ์์ค ์๋น | ๋ ๋์ CPU ๋ฐ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋ | ๋ ๋ฎ์ CPU ๋ฐ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋ |
SEO | ์ต์ ํํ๊ธฐ ์ด๋ ค์ธ ์ ์์ | ๋ ๋น ๋ฅธ ๋ก๋ฉ ์๊ฐ์ผ๋ก ์ต์ ํํ๊ธฐ ๋ ์ฌ์ |
ํ์์ ๋ณผ ์ ์๋ฏ์ด, ์ ํ์ ํ์ด๋๋ ์ด์ ์ ์ฑ๋ฅ, ๋ฆฌ์์ค ์๋น ๋ฐ SEO ์ธก๋ฉด์์ ์ ํต์ ์ธ ํ์ด๋๋ ์ด์ ์ ๋นํด ์๋นํ ์ด์ ์ ์ ๊ณตํฉ๋๋ค.
Fresh ์์ผ๋๋์ ์ ํ์ ํ์ด๋๋ ์ด์ ์ฌ์ฉ์ ์ํ ๋ชจ๋ฒ ์ฌ๋ก
Fresh ์์ผ๋๋์ ์ ํ์ ํ์ด๋๋ ์ด์ ์ ์ด์ ์ ๊ทน๋ํํ๋ ค๋ฉด ๋ค์ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ๊ณ ๋ คํ์ญ์์ค:
- ์ ์ ์ฝํ ์ธ ์ฐ์ ์ค๊ณ: ํ์ด์ง๋ฅผ ์ ์ ์ฝํ ์ธ ๋ฅผ ์ผ๋์ ๋๊ณ ์ค๊ณํ๋ ๊ฒ๋ถํฐ ์์ํ์ญ์์ค. ์ํธ์์ฉ์ด ํ์ํ ์์ญ์ ์๋ณํ๊ณ ์ด๋ฅผ ์์ผ๋๋๋ก ์ทจ๊ธํ์ญ์์ค.
- ์๋ฐ์คํฌ๋ฆฝํธ ์ต์ํ: ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋๋ฅผ ์ต๋ํ ๊ฐ๊ฒฐํ๊ฒ ์ ์งํ์ญ์์ค. ๋ถํ์ํ ์ข ์์ฑ์ ํผํ๊ณ ์ฑ๋ฅ์ ์ํด ์ฝ๋๋ฅผ ์ต์ ํํ์ญ์์ค.
- Fresh์ ์๋ ๊ฐ์ง ๊ธฐ๋ฅ ํ์ฉ: Fresh์ ์ํธ์์ฉ ์ปดํฌ๋ํธ ์๋ ๊ฐ์ง ๊ธฐ๋ฅ์ ํ์ฉํ์ญ์์ค. ์ด๋ ๊ฐ๋ฐ ํ๋ก์ธ์ค๋ฅผ ๋จ์ํํ๊ณ ์ค๋ฅ ์ํ์ ์ค์ฌ์ค๋๋ค.
- ๋ช ์์ ์ผ๋ก ์์ผ๋๋ ์ ์: ํ์ด๋๋ ์ด์ ํ๋ก์ธ์ค๋ฅผ ๋ ์ธ๋ฐํ๊ฒ ์ ์ดํด์ผ ํ๋ ๊ฒฝ์ฐ, ์ด๋ค ์ปดํฌ๋ํธ๋ฅผ ์์ผ๋๋๋ก ์ฒ๋ฆฌํ ์ง ๋ช ์์ ์ผ๋ก ์ ์ํ์ญ์์ค.
- `hydrate` ์ต์ ์ฌ์ฉ: ์ปดํฌ๋ํธ์ `hydrate` ์ต์ ์ ์ฌ์ฉํ์ฌ ์์ผ๋๋๋ฅผ ํด๋ผ์ด์ธํธ ์ธก์์ ํ์ด๋๋ ์ด์ ํ ์ง ์๋ฒ ์ธก์์ ํ ์ง ์ ์ดํ ์ ์์ต๋๋ค.
- ์ด๋ฏธ์ง ๋ฐ ์์ฐ ์ต์ ํ: ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋๋ฅผ ์ต์ ํํ๋ ๊ฒ ์ธ์๋ ์ด๋ฏธ์ง ๋ฐ ๊ธฐํ ์์ฐ๋ ์ต์ ํํด์ผ ํฉ๋๋ค. ์ด๋ ํ์ด์ง ๋ก๋ฉ ์๊ฐ์ ๋์ฑ ๊ฐ์ ํ ๊ฒ์ ๋๋ค.
- ์ฒ ์ ํ ํ ์คํธ: ๋ค์ํ ๊ธฐ๊ธฐ์ ๋ธ๋ผ์ฐ์ ์์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฒ ์ ํ ํ ์คํธํ์ฌ ๋ชจ๋ ํ๊ฒฝ์์ ์ ์๋ํ๋์ง ํ์ธํ์ญ์์ค. Lighthouse์ ๊ฐ์ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ฑ๋ฅ์ ์ธก์ ํ๊ณ ๊ฐ์ ํ ์์ญ์ ์๋ณํ์ญ์์ค.
Fresh ์์ผ๋๋ ์ค์ ์ ์ฉ ์ฌ๋ก
๋ช๋ช ์ค์ ์น์ฌ์ดํธ์ ์ ํ๋ฆฌ์ผ์ด์ ์ Fresh ์์ผ๋๋์ ์ ํ์ ํ์ด๋๋ ์ด์ ์ ํ์ ๋ณด์ฌ์ค๋๋ค. ๋ค์์ ๋ช ๊ฐ์ง ์์ ๋๋ค:
- Fresh ์น์ฌ์ดํธ: Fresh ๊ณต์ ์น์ฌ์ดํธ ์์ฒด๋ Fresh๋ฅผ ์ฌ์ฉํ์ฌ ๊ตฌ์ถ๋์์ผ๋ฉฐ, ์์ผ๋๋ ์ํคํ ์ฒ๋ฅผ ํ์ฉํ์ฌ ๋ฐ์ด๋ ์ฑ๋ฅ์ ๋ฌ์ฑํฉ๋๋ค.
- ๊ฐ์ธ ๋ธ๋ก๊ทธ: ๋ง์ ๊ฐ๋ฐ์๋ค์ด Fresh๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ์ธ ๋ธ๋ก๊ทธ์ ํฌํธํด๋ฆฌ์ค ์น์ฌ์ดํธ๋ฅผ ๊ตฌ์ถํ๊ณ ์์ผ๋ฉฐ, ์ด ํ๋ ์์ํฌ์ ์๋์ ๋จ์์ฑ์ ํ์ฉํ๊ณ ์์ต๋๋ค.
- ์ ์์๊ฑฐ๋ ์น์ฌ์ดํธ: Fresh๋ ๋น ๋ฅธ ๋ก๋ฉ ์๊ฐ๊ณผ ์ํํ ์ฌ์ฉ์ ๊ฒฝํ์ ๊ฐ์ถ ์ ์์๊ฑฐ๋ ์น์ฌ์ดํธ๋ฅผ ๊ตฌ์ถํ๋ ๋ฐ ์ฌ์ฉ๋ ์ ์์ต๋๋ค. ์ ํ์ ํ์ด๋๋ ์ด์ ์ ์ ํ ํํฐ, ์ผํ ์นดํธ, ๊ฒฐ์ ์์๊ณผ ๊ฐ์ ์ํธ์์ฉ ์์๋ฅผ ์ต์ ํํ๋ ๋ฐ ์ฌ์ฉ๋ ์ ์์ต๋๋ค.
- ๋ฌธ์ ์ฌ์ดํธ: ๋ฌธ์ ์ฌ์ดํธ๋ ์ข ์ข ์ ์ ์ฝํ ์ธ ์ ๊ฒ์์ฐฝ, ์ฝ๋ ์์ ์ ๊ฐ์ ์ํธ์์ฉ ์์๊ฐ ํผํฉ๋์ด ์์ต๋๋ค. Fresh ์์ผ๋๋๋ ์ด๋ฌํ ์ฌ์ดํธ์ ์ฑ๋ฅ๊ณผ ์ ๊ทผ์ฑ์ ์ต์ ํํ๋ ๋ฐ ์ฌ์ฉ๋ ์ ์์ต๋๋ค.
Fresh์ ์์ผ๋๋ ์ํคํ ์ฒ๋ฅผ ํตํ ์น ๊ฐ๋ฐ์ ๋ฏธ๋
์์ผ๋๋ ์ํคํ ์ฒ์ ์ ํ์ ํ์ด๋๋ ์ด์ ์ ์น ๊ฐ๋ฐ์์ ์ค์ํ ์ง์ ์ ๋ํ๋ ๋๋ค. ์ฑ๋ฅ๊ณผ ์ฌ์ฉ์ ๊ฒฝํ์ ์ค์ ์ ๋ ์ผ๋ก์จ ์ด๋ฌํ ๊ธฐ์ ๋ค์ ๋ ๋น ๋ฅด๊ณ , ๋ ํจ์จ์ ์ด๋ฉฐ, ๋ ์ ๊ทผ์ฑ ๋์ ์น์ฌ์ดํธ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํ ๊ธธ์ ๋ฆ๊ณ ์์ต๋๋ค. Deno ๊ธฐ๋ฐ ์ํคํ ์ฒ์ ์์ผ๋๋์ ๋ํ ๋ด์ฅ ์ง์์ ๊ฐ์ถ Fresh๋ ์ด ์์ง์์ ์ ๋์ ์์ต๋๋ค.
์น ๊ฐ๋ฐ์ด ๊ณ์ ์งํํจ์ ๋ฐ๋ผ, ๋ ๋ง์ ํ๋ ์์ํฌ์ ๋๊ตฌ๋ค์ด ์์ผ๋๋ ์ํคํ ์ฒ์ ์ ํ์ ํ์ด๋๋ ์ด์ ์ ์ฑํํ ๊ฒ์ผ๋ก ์์๋ฉ๋๋ค. ์ด๋ ๋ชจ๋์๊ฒ ๋ ๋์ ์ฑ๋ฅ๊ณผ ์ฌ์ฉ์ ์นํ์ ์ธ ์น์ผ๋ก ์ด์ด์ง ๊ฒ์ ๋๋ค.
Fresh ์์ผ๋๋ ์์ํ๊ธฐ
Fresh ์์ผ๋๋๋ฅผ ์ง์ ์ฌ์ฉํด ๋ณผ ์ค๋น๊ฐ ๋์ จ๋์? ์์ํ๋ ๋ฐ ๋์์ด ๋ ๋ช ๊ฐ์ง ์๋ฃ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
- Fresh ์น์ฌ์ดํธ: https://fresh.deno.dev/ - ๊ณต์ Fresh ์น์ฌ์ดํธ๋ ๋ฌธ์, ํํ ๋ฆฌ์ผ ๋ฐ ์์ ๋ฅผ ์ ๊ณตํฉ๋๋ค.
- Deno ์น์ฌ์ดํธ: https://deno.land/ - Fresh๋ฅผ ๊ตฌ๋ํ๋ ๋ฐํ์ ํ๊ฒฝ์ธ Deno์ ๋ํด ์์ธํ ์์๋ณด์ญ์์ค.
- Fresh GitHub ์ ์ฅ์: https://github.com/denoland/fresh - Fresh ์์ค ์ฝ๋๋ฅผ ํ์ํ๊ณ ํ๋ก์ ํธ์ ๊ธฐ์ฌํ์ญ์์ค.
- ์จ๋ผ์ธ ํํ ๋ฆฌ์ผ ๋ฐ ๊ฐ์ข: Fresh์ ์์ผ๋๋ ์ํคํ ์ฒ์ ๋ํ ์จ๋ผ์ธ ํํ ๋ฆฌ์ผ ๋ฐ ๊ฐ์ข๋ฅผ ๊ฒ์ํด ๋ณด์ญ์์ค.
๊ฒฐ๋ก
์ ํ์ ํ์ด๋๋ ์ด์ ์ผ๋ก ๊ตฌ๋๋๋ Fresh ์์ผ๋๋๋ Deno๋ฅผ ์ฌ์ฉํ์ฌ ๊ณ ์ฑ๋ฅ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ๊ธฐ ์ํ ๊ฐ๋ ฅํ ๊ธฐ์ ์ ๋๋ค. ์ํธ์์ฉ ์ปดํฌ๋ํธ๋ฅผ ์ ํ์ ์ผ๋ก ํ์ด๋๋ ์ด์ ํ๊ณ ํ์ด์ง์ ๋๋จธ์ง ๋ถ๋ถ์ ์ ์ HTML๋ก ์ ๊ณตํจ์ผ๋ก์จ Fresh๋ ๋ ๋น ๋ฅธ ๋ก๋ฉ ์๊ฐ, ํฅ์๋ ์ฑ๋ฅ ๋ฐ ๋ ๋์ ์ฌ์ฉ์ ๊ฒฝํ์ ์ ๊ณตํฉ๋๋ค. ์น ๊ฐ๋ฐ์ด ๊ณ์ ์งํํจ์ ๋ฐ๋ผ, ์์ผ๋๋ ์ํคํ ์ฒ์ ์ ํ์ ํ์ด๋๋ ์ด์ ์ ํ๋์ ์ด๊ณ ์ฑ๋ฅ์ด ๋ฐ์ด๋๋ฉฐ ์ ๊ทผ์ฑ ๋์ ์น์ฌ์ดํธ๋ฅผ ๊ตฌ์ถํ๋ ๋ฐ ์ ์ ๋ ์ค์ํด์ง ๊ฒ์ ๋๋ค. ์ด๋ฌํ ๊ธฐ์ ์ ๋ฐ์๋ค์ด๊ณ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ์ฌ๋ ฅ์ ์ต๋ํ ๋ฐํํ์ญ์์ค.