@fastify/compress ํ๋ฌ๊ทธ์ธ์ ์ฌ์ฉํ์ฌ HTTP ์๋ต์ ์๋์ผ๋ก ์์ถํฉ๋๋ค. gzip, brotli(br), deflate ๋ฑ ๋ค์ํ ์์ถ ์๊ณ ๋ฆฌ์ฆ์ ์ง์ํฉ๋๋ค.
์ ์์ถ์ด ํ์ํ๊ฐ?
์์ถ์ ๋คํธ์ํฌ๋ฅผ ํตํด ์ ์ก๋๋ ๋ฐ์ดํฐ ํฌ๊ธฐ๋ฅผ ์ค์ฌ์ค๋๋ค.์์ถ ์์ด
์์ถ ์ฌ์ฉ
ํจ๊ณผ:- ์ ์ก ํฌ๊ธฐ: 100KB โ 10KB (90% ๊ฐ์)
- ๋ค์ด๋ก๋ ์๊ฐ: 1์ด โ 0.1์ด (10๋ฐฐ ๋น ๋ฆ)
- ๋์ญํญ ์ ์ฝ
๊ธฐ๋ณธ ์ค์
sonamu.config.ts
- threshold: 1024 (1KB ์ด์๋ง ์์ถ)
- encodings:
["br", "gzip", "deflate"](์ฐ์ ์์ ์) - ๋ชจ๋ API์ ์๋ ์ ์ฉ
์ค์ ์ต์
- boolean
- CompressOptions
๊ฐ๋จํ ํ์ฑํ/๋นํ์ฑํ
์์ถ ์๊ณ ๋ฆฌ์ฆ
Brotli (br)
๊ฐ์ฅ ์์ถ๋ฅ ์ด ๋์ ์๊ณ ๋ฆฌ์ฆ- ์์ถ๋ฅ : ์ต๊ณ (gzip ๋๋น 15~20% ๋ ์์ถ)
- ์๋: ๋๋ฆผ (CPU ์ฌ์ฉ๋ ๋์)
- ์ง์: ๋ชจ๋ ๋ธ๋ผ์ฐ์ (IE ๋ฏธ์ง์)
- ์ ์ ์ฝํ ์ธ (์ฌ์ ์์ถ ๊ฐ๋ฅ)
- ๋์ญํญ์ด ์ค์ํ ๊ฒฝ์ฐ
- ์๋ฒ CPU์ ์ฌ์ ๊ฐ ์๋ ๊ฒฝ์ฐ
Gzip
๊ฐ์ฅ ๋ณดํธ์ ์ธ ์๊ณ ๋ฆฌ์ฆ- ์์ถ๋ฅ : ์ค๊ฐ
- ์๋: ๋น ๋ฆ
- ์ง์: ๋ชจ๋ ๋ธ๋ผ์ฐ์
- ๋์ API ์๋ต
- ์ค์๊ฐ ์์ถ
- ํธํ์ฑ์ด ์ค์ํ ๊ฒฝ์ฐ
Deflate
๋ ๊ฑฐ์ ์๊ณ ๋ฆฌ์ฆ- ์์ถ๋ฅ : gzip๊ณผ ์ ์ฌ
- ์๋: ๋น ๋ฆ
- ์ง์: ๋๋ถ๋ถ ๋ธ๋ผ์ฐ์
์์ถ ์ฐ์ ์์
๋ธ๋ผ์ฐ์ ๊ฐ ์ฌ๋ฌ ์ธ์ฝ๋ฉ์ ์ง์ํ ๋ ์ฐ์ ์์๋ฅผ ์ค์ ํฉ๋๋ค.Threshold (์ต์ ํฌ๊ธฐ)
์์ ์๋ต์ ์์ถํ์ง ์์ต๋๋ค.- ์์ ๋ฐ์ดํฐ๋ ์์ถ ํจ์จ์ด ๋ฎ์
- ์์ถ/์์ถ ํด์ ์ค๋ฒํค๋๊ฐ ๋ ํด ์ ์์
- HTTP ํค๋ ํฌ๊ธฐ ์ฆ๊ฐ
- ๊ธฐ๋ณธ๊ฐ:
1024(1KB) - ์ ๊ทน์ :
256(256B) - ๋ณด์์ :
4096(4KB)
์์
Custom Types
ํน์ Content-Type๋ง ์์ถํฉ๋๋ค.text/*(text/html, text/css, text/plain)application/jsonapplication/javascriptapplication/xml
image/png,image/jpeg(์ด๋ฏธ ์์ถ๋ ํ์)video/mp4(์ด๋ฏธ ์์ถ๋ ํ์)- ์ถ๊ฐ ์์ถํด๋ ํจ๊ณผ ์์
ํจ์๋ก ์ ์ด
์ค์ ์ค์ ์์
1. ๊ธฐ๋ณธ ์ค์ (๊ถ์ฅ)
- threshold: 1024 (1KB)
- encodings:
["br", "gzip", "deflate"]
2. ๊ณ ์ฑ๋ฅ API ์๋ฒ
- ์ต๋ ์์ถ๋ฅ (brotli ์ฐ์ )
- 256 ๋ฐ์ดํธ ์ด์ ๋ชจ๋ ์์ถ
- ๋์ญํญ ์ต์ ํ
3. ๋ ๊ฑฐ์ ๋ธ๋ผ์ฐ์ ์ง์
- IE ๋ฑ ์ค๋๋ ๋ธ๋ผ์ฐ์ ์ง์
- gzip๋ง ์ฌ์ฉ (์์ ์ )
4. ์ ํ์ ์์ถ
API๋ณ๋ก ์์ถ์ ์ ์ดํ๊ณ ์ถ์ ๋:- ๋๋ถ๋ถ API๋ ์์ถ ๋ถํ์
- ํน์ API๋ง ์ ํ์ ์ผ๋ก ์์ถ
5. CPU ์ ์ฝ (๋ณด์์ )
- CPU ์ฌ์ฉ๋ ์ต์ํ
- ํฐ ์๋ต๋ง ์์ถ
- ๋น ๋ฅธ ์ฒ๋ฆฌ
ํ๊ฒฝ๋ณ ์ค์
- ๋๋ฒ๊น ์ฉ์ด
- ๋น ๋ฅธ ์๋ต (์์ถ ์ค๋ฒํค๋ ์์)
- ๋์ญํญ ์ ์ฝ
- ์ฌ์ฉ์ ๊ฒฝํ ๊ฐ์
์์ถ ํ์ธ
๋ธ๋ผ์ฐ์ ๊ฐ๋ฐ์ ๋๊ตฌ
curl ๋ช ๋ น
์ฃผ์์ฌํญ
์ฑ๋ฅ ์ํฅ
์ฅ์
- ๋์ญํญ ์ ์ฝ: 70~90% ํฌ๊ธฐ ๊ฐ์
- ๋ค์ด๋ก๋ ์๋: ํนํ ๋๋ฆฐ ๋คํธ์ํฌ์์ ํจ๊ณผ์
- ๋น์ฉ ์ ๊ฐ: CDN ์ ์ก๋ ๊ฐ์
๋จ์
- CPU ์ฌ์ฉ๋ ์ฆ๊ฐ: ์์ถ/์์ถ ํด์ ์ค๋ฒํค๋
- ์๋ต ์ง์ฐ: ์์ถ ์๊ฐ ์ถ๊ฐ (๋ณดํต ์ ms)
- ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ: ์์ถ ๋ฒํผ