Gorilla-Kim/Project

[MEMO APP] Compression

Kim_gorilla 2020. 3. 20. 15:57

 

๐Ÿ‘จ‍๐Ÿ’ป Compression ๋ฏธ๋“ค์›จ์–ด ์„ค์น˜

 

๐Ÿ“Œ Compression์ด๋ž€

๋‚ด๊ฐ€ ์šด์˜์ค‘์ธ ์›น์„œ๋น„์Šค์˜  ์‘๋‹ต์†๋„๋ฅผ ๋น ๋ฅด๊ฒŒ ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ๋ฌด์—‡์ด ์žˆ์„๊นŒ์š”?

์›น์„œ๋ฒ„์™€ WAS๋ฅผ ํ•จ๊ป˜์‚ฌ์šฉํ•ด์„œ ์›น์„œ๋ฒ„์˜ ์„ค์ •์œผ๋กœ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ๊ฒ ์ง€๋งŒ, ์˜ค๋Š˜์€ Javascript์˜ compression ๋ฏธ๋“ค์›จ์–ด๋ฅผ ํ†ตํ•ด ํ–ฅ์ƒ์‹œํ‚ค๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•˜์—ฌ ๊ฐ™์ด ํ•™์Šตํ•˜๊ณ  ์ด๋ฒˆ ํ† ์ดํ”„๋กœ์ ํŠธ์— ์ ์šฉ์‹œ์ผœ ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

compression์€ gzip์••์ถ•์„ ์ด์šฉํ•ด ์‘๋‹ต์†๋„๋ฅผ ํ–ฅ์ƒ์‹œ์ผœ์ฃผ๋Š” ๋ฏธ๋“ค์›จ์–ด์ž…๋‹ˆ๋‹ค. 

 

(์•ž์œผ๋กœ ์„ค๋ช…๋“œ๋ฆด ๋‚ด์šฉ์€ ์•„๋ž˜์˜ ๋ธ”๋กœ๊ทธ๋ฅผ ์ฐธ๊ณ ๋ฐ ๋ฐœ์ทŒํ•˜์—ฌ ์ž‘์„ฑํ•œ ๋‚ด์šฉ์ž„์„ ์•Œ๋ ค๋“œ๋ฆฝ๋‹ˆ๋‹ค.)

https://taetaetae.github.io/2018/04/01/apache-gzip/

โšก gzip์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€..?

  • gzip์ด๋ž€ ํŒŒ์ผ ์••์ถ•์— ์“ฐ์ด๋Š” ์‘์šฉ ์†Œํ”„ํŠธ์›จ์–ด๋กœ GNU zip์˜ ์ค„์ž„๋ง์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.
    ( ์ฐธ๊ณ : https://ko.wikipedia.org/wiki/Gzip )

์ด๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ธŒ๋ผ์šฐ์ €์—์„œ gzip์„ ์ง€์›ํ•ด์ฃผ์–ด์•ผ ํ•˜๋Š”๋ฐ https://caniuse.com/#search=gzip ๋ฅผ๋“ค์–ด๊ฐ€ ํ™•์ธํ•ด๋ณด๋ฉด ํ˜„์žฌ ๊ฑฐ์˜ ๋Œ€๋ถ€๋ถ„์˜ ๋ธŒ๋ผ์šฐ์ €๋“ค์ด gzip์„ ์ง€์›ํ•ด ์ฃผ๊ณ ์žˆ์Šต๋‹ˆ๋‹ค.

 

โšก gzip์˜ ๋ฐ์ดํ„ฐ ํ๋ฆ„

gzip ์‚ฌ์šฉ์ „

  1. ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์„œ๋ฒ„์ธก์— /index.html์„ ์š”์ฒญํ•œ๋‹ค.
  2. ์„œ๋ฒ„๋Š” Request๋ฅผ ํ•ด์„ํ•œ๋‹ค.
  3. Response์— ์š”์ฒญํ•œ ๋‚ด์šฉ์„ ๋‹ด์•„ ๋ณด๋‚ธ๋‹ค.
  4. Response๋ฅผ ๊ธฐ๋‹ค๋ ธ๋‹ค๊ฐ€ ๋ธŒ๋ผ์šฐ์ €์— ๋ณด์—ฌ์ค€๋‹ค. (100kb)

gzip ์‚ฌ์šฉํ›„

  1. ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์„œ๋ฒ„์ธก์— /index.html์„ ์š”์ฒญํ•œ๋‹ค.
  2. ์„œ๋ฒ„๋Š” Request๋ฅผ ํ•ด์„ํ•œ๋‹ค.
  3. Response์— ์š”์ฒญํ•œ ๋‚ด์šฉ์„ ๋‹ด์•„ ๋ณด๋‚ธ๋‹ค. ์—ฌ๊ธฐ์„œ ํ•ด๋‹น ๋‚ด์šฉ์„ ์••์ถ•ํ•˜๋Š” ๊ณผ์ •์ด ์ถ”๊ฐ€๊ฐ€ ๋œ๋‹ค.
  4. Response header์— ์••์ถ•์ด ๋˜์–ด์žˆ๋‹ค๋Š” ์ •๋ณด๋ฅผ ํ™•์ธํ›„ ๋ธŒ๋ผ์šฐ์ €๋Š” ํ•ด๋‹น ๋‚ด์šฉ์„ ๋ฐ›๊ณ (10kb), ์••์ถ•์„ ํ•ด์ œํ•œ ํ›„ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ณด์—ฌ์ค€๋‹ค.

๊ฒฐ๋ก ์ ์œผ๋กœ ๋ง์”€๋“œ๋ฆฌ์ž๋ฉด, gzip์„ ์ด์šฉํ•˜๋ฉด ์„œ๋ฒ„๊ฐ€ ์‚ฌ์šฉ์ž์—๊ฒŒ ์‘๋‹ตํ•˜๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ์••์ถ•ํ•ด์„œ ๋ณด๋‚ด์ฃผ๊ธฐ ๋•Œ๋ฌธ์— ๋„คํŠธ์›Œํฌ ๋น„์šฉ(์ „์†ก๋˜๋Š” ๋ฐ์ดํ„ฐ์–‘)์„ ์ค„์ผ ์ˆ˜ ์žˆ์–ด ์‘๋‹ต์ด ๋นจ๋ผ์ง„๋‹ค๋Š” ์ด์•ผ๊ธฐ์ž…๋‹ˆ๋‹ค.

 

โšก gzip์€ ๋งŒ๋Šฅ์ธ๊ฐ€?(๋ฌด์กฐ๊ฑด ์‚ฌ์šฉ?)

SW๊ฐœ๋ฐœ์— ์žˆ์–ด์„œ ๋ฌด์กฐ๊ฑด์ ์ธ ํ•ด๋‹ต์€ ์—†์Šต๋‹ˆ๋‹ค. ๊ฐ€์žฅ ์ƒํ™ฉ์— ์ ํ•ฉํ•œ Best Choice๋งŒ ์žˆ์„๋ฟ์ด์ง€ Best solution์€ ์—†๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. 

 

๋ฌผ๋ก  gzip์„ ์ด์šฉํ•˜๋ฉด ๋„คํŠธ์›Œํฌ ๋น„์šฉ์ด ์ ˆ์•ฝ์ด๋˜์–ด ์‘๋‹ต์†๋„๊ฐ€ ๋นจ๋ผ์ง„๋‹ค๋Š” ์žฅ์ ์ด ์žˆ๊ฒ ์ง€๋งŒ, ๋ฐ˜๋Œ€๋กœ ํด๋ผ์ด์–ธํŠธ ์ž…์žฅ์—์„œ๋Š” ๋ฐ›์€ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค์‹œ ํ•ด๋…ํ•˜๋Š” ๊ณผ์ •์ด ํ•„์š”ํ•ด์ง์— ๋”ฐ๋ผ CPU๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ๋˜์–ด ์˜คํžˆ๋ ค ๋žœ๋”๋ง์ด ๋Šฆ์–ด์ง€๋Š” ์ƒํ™ฉ์ด ๋ฐœ์ƒํ• ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

๊ฒฐ๋ก ์ ์œผ๋กœ ์ƒํ™ฉ์—๋”ฐ๋ผ ์‚ฌ์šฉ์ „๊ณผ ์‚ฌ์šฉํ›„์˜ ์„ฑ๋Šฅ์„ ๋น„๊ตํ•ด์„œ ์‚ฌ์šฉํ•˜๋Š”๊ฒƒ์ด BEST WAY๋‹ค ๋ผ๊ณ  ๋ง์”€๋“œ๋ฆด์ˆ˜ ์žˆ์„๊ฒƒ ๊ฐ™์•„์š”!

๐Ÿ“Œ Compression ์„ค์น˜ ๋ฐ ์ ์šฉ

( ์ด์ œ๋ถ€ํ„ฐ ์ž‘์„ฑ๋˜๋Š” ๋‚ด์šฉ์€ ์•„๋ž˜์˜ ์‚ฌ์ดํŠธ๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ ์ง„ํ–‰๋จ์„ ๋ง์”€๋“œ๋ฆฝ๋‹ˆ๋‹ค. )

https://www.tutorialspoint.com/koajs/koajs_compression.htm

 

์œ„์˜ ๋งํฌ๋ฅผ ํƒ€๊ณ  ๋“ค์–ด๊ฐ€๋ฉด ๊ฐ€์žฅ ์ƒ๋‹จ์„ค๋ช…์— ์ด๋Ÿฐ ๊ธ€๊ท€๊ฐ€ ๋ณด์ž…๋‹ˆ๋‹ค.

๋ฒˆ์—ญ :

Compression์€ ์šฐ๋ฆฌ์˜ ์‚ฌ์ดํŠธ์˜ ๋Œ€์—ญํญ๊ณผ ์†๋„๋ฅผ ์ ˆ์•ฝํ•˜๋Š”๋ฐ ๊ฐ„๋‹จํ•˜๊ณ  ํšจ์œจ์ ์ธ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์˜ค์ง ์ตœ์‹  ๋ธŒ๋ผ์šฐ์ €์™€๋งŒ ํ˜ธํ™˜์ด ๋˜์–ด์ง€๋ฉฐ ๋งŒ์•ฝ ์šฐ๋ฆฌ์˜ ์œ ์ €๊ฐ€ ์˜ค๋ž˜๋œ ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์‚ฌ์šฉํ• ๋•Œ๋Š” ์ด๋ฅผ ์ฃผ์˜ํ•ด์„œ ์‚ฌ์šฉํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

 

ํ•˜์ง€๋งŒ, ์œ„์—์„œ ์„ค๋ช…ํ–ˆ๋“ฏ์ด ๋Œ€๋ถ€๋ถ„์˜ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ gzip์„ ์ง€์›ํ•ด์ฃผ๊ณ  ์žˆ์Œ์œผ๋กœ ํฌ๊ฒŒ ๊ฑฑ์ •ํ•˜์‹คํ•„์š”๋Š” ์—†์„๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

( ์•„๋งˆ.. ๊ทธ๋ ‡๊ฒ ์ฃ ? )

 

๊ทธ๋Ÿผ ์šฐ๋ฆฌ์˜ ํ”„๋กœ์ ํŠธ์— ์„ค์น˜๋ฅผ ์ง„ํ–‰ํ•ด๋ณผ๊ฒŒ์š”. ์•„๋ž˜์˜ ์‚ฌ์ง„์ฒ˜๋Ÿผ yarn add koa-compression์„ ์ด์šฉํ•ด ์„ค์น˜ํ•ด ์ฃผ์„ธ์š”.

์˜ˆ์‹œ์ฝ”๋“œ๋ฅผ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์˜ˆ์ œ์ฝ”๋“œ๋Š” ์•„๋ž˜์˜ ๋งํฌ๋ฅผ ์ฐธ๊ณ ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

https://github.com/koajs/compress

(ํ•˜์ด๋ผ์ดํŠธ ๋ถ€๋ถ„์„ ๋ณผ๊ฒŒ์š”.)

์œ„์˜ ์†Œ์Šค์—์„œ compress ์•ˆ์— ์˜ต์…˜๋“ค์— ๋Œ€ํ•ด์„œ ์ข€ ์•Œ์•„๋ณด๋„๋ก ํ• ๊ฒŒ์š”.

  • filter
    : response์˜ constent type์„ ํ™•์ธํ•˜์—ฌ ์••์ถ•์—ฌ๋ถ€๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ์„ ํƒ์  ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. ๋””ํดํŠธ๋กœ๋Š” ์••์ถ•๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • threshold
    : ์••์ถ•์‹œํ‚ฌ response ๋ฉ”์‹œ์ง€์˜ byte๋‹จ์œ„ Minimum์‚ฌ์ด์ฆˆ์ž…๋‹ˆ๋‹ค. ๋””ํดํŠธ๋กœ๋Š” 1024byte(=1kb)๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • flush
    : ์••์ถ•์„์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ๋ถ€๋ถ„์ž…๋‹ˆ๋‹ค. ํ•ด๋‹น ์†Œ์Šค์™€๊ฐ™์ด ์ž‘์„ฑํ•ด์ฃผ์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

 

์œ„์˜ ์‚ฌ์ง„์„ ๋ณด๋ฉด compress๋ฅผ ๊ฐ€์ ธ์™€์„œ ์‚ฌ์šฉํ•˜๋Š”๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์ƒํ•˜๊ฒŒ๋„ ์•„๋ž˜์— zlib์€ ์„ค์น˜๋ฅผ ํ•œ์ ์ด ์—†๋Š”๋ฐ ๋ถˆ๋Ÿฌ์˜ค๊ณ ์žˆ๋Š” ๋ชจ์Šต์„ ๋ณผ ์ˆ˜ ์žˆ๋Š”๋ฐ ์—ญ์‹œ๋‚˜ ์†Œ์Šค์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ์—†๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ผ๋Š” ์˜ค๋ฅ˜๊ฐ€ ๋‚˜์˜ต๋‹ˆ๋‹ค.

 

๊ณ ๋กœ zlib๊ฐ€ ๋ฌด์—‡์ธ์ง€ ์•Œ์•„๋ณด๊ณ  ์„ค์น˜๋ฅผ ํ•ด์ฃผ๋„๋ก ํ• ๊ฒŒ์š”.

 

โšก zlib๋ž€?

zlib ์€ gzip ๋“ฑ์œผ๋กœ ์••์ถ•๋œ ํŒŒ์ผ์„ ์ฝ๊ณ  ์“ฐ๊ธฐ ์œ„ํ•ด ๊ผญ ํ•„์š”ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค. MRTG ๋ฅผ ์ด์šฉํ•œ ํŠธ๋ž˜ํ”ฝ๋ชจ๋‹ˆํ„ฐ๋ง ํ™ˆํŽ˜์ด์ง€๋ฅผ ๊ตฌ์ถ•ํ•  ๋•Œ์— ๋ฐ˜๋“œ์‹œ ํ•„์š”ํ•˜๋‹ค๊ณ  ํ•˜๋„ค์š”.

 

yarn add zlib ๋ฅผ ์ด์šฉํ•ด ์„ค์น˜๋ฅผ ํ•ด์ค๋‹ˆ๋‹ค.

์•„๊นŒ์ „์˜ ์˜ˆ์ œ ์†Œ์Šค๋ฅผ ์šฐ๋ฆฌ ํ”„๋กœ์ ํŠธ์— ์ถ”๊ฐ€ํ•ด์ค„๊ฒŒ์š”.

(srcํด๋” ์•ˆ์— index.js๋ฅผ ์—ด์–ด์ฃผ์„ธ์š”.)

์œ„์™€๊ฐ™์ด ์†Œ์Šค์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€ํ•ด์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค.

์ด์ œ ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•ด ๋ณผ๊ป€๋ฐ์š”, ์ง€๊ธˆ ์šฐ๋ฆฌ๊ฐ€ ๊ธฐ์กด์— ์ž‘์„ฑํ•œ ์ฝ”๋“œ๋Š” ๋ฌธ์ž๋งŒ ์ „์†กํ•ด์ฃผ๋Š” ๊ฐ„๋‹จํ•œ ์‘๋‹ต์ด๋‹ค๋ณด๋‹ˆ ์ด๋ฃจ๊ฐ€ threshold๋กœ ์ง€์ •ํ•œ ํฌ๊ธฐ๋ณด๋‹ค ์ž‘์€ ๋ฐ์ดํ„ฐ๊ฐ€ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ๋ณด๋‚ด์ง‘๋‹ˆ๋‹ค.

 

๊ทธ๋ž˜์„œ ์šฐ๋ฆฌ๊ฐ€ ์ด๋ฒˆ ํ”„๋กœ์ ํŠธ ํฌ์ŠคํŒ… ์ดˆ๋ฐ˜์— ๋งŒ๋“ค์–ด์ฃผ์—ˆ๋˜ react ํด๋”(front)์˜ index.html์„ ์ „์†กํ•ด์ฃผ๋Š” ์†Œ์Šค์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด ์ฃผ๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 

์ผ๋‹จ ์™ธ๋ถ€ ํŠน์ •ํŒŒ์ผ(html๊ณผ ๊ฐ™์€)์„ ์—ฐ๊ฒฐํ•ด์ฃผ๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ช‡๊ฐ€์ง€ ๋ชจ๋“ˆ์„ ์„ค์น˜ํ•ด ์ฃผ์…”์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์•„๋ž˜์˜ 3๊ฐ€์ง€๋ฅผ ์„ค์น˜ํ•ด ์ฃผ์…”์•ผ ํ•˜๋Š”๋ฐ์š”.

koa-static์€ ์ •์ ํŒŒ์ผ ์ฆ‰ ์‚ฌ์ง„์ด๋‚˜ htmlํŒŒ์ผ๊ณผ ๊ฐ™์€ ๊ณ ์ •๋œ ํŒŒ์ผ๋“ค์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ๋ชจ๋“ˆ์ž…๋‹ˆ๋‹ค.

๋จผ์ € ์„ค์น˜๋ฅผ ์ง„ํ–‰ํ• ๊ฒŒ์š”.

yarn add koa-static

 

์„ค์น˜ํ›„ src/index.js ์˜ ์ƒ๋‹จ์— koa-static ๊ณผ path ๋ชจ๋“ˆ์„ ๋ถˆ๋Ÿฌ์˜ค๊ฒ ์Šต๋‹ˆ๋‹ค.

(path ๋ชจ๋“ˆ์€ node์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ง€์›ํ•˜๋Š” ๋ชจ๋“ˆ์ด๋ผ ๋ณ„๋‹ค๋ฅธ ์„ค์น˜๊ฐ€ ํ•„์š” ์—†๋‹ต๋‹ˆ๋‹ค ^^)

path ์™€ static์„ ์ด์šฉํ•ด์„œ ์šฐ๋ฆฌ๋Š” ์ •์ ํŒŒ์ผ๋“ค์ด ๋ชจ์—ฌ์žˆ๋Š” ํด๋”์— ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ ‘๊ทผ์„ ํ—ˆ์šฉํ•ด์ฃผ๋Š” ์†Œ์Šค์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด ์ฃผ๊ฒ ์Šต๋‹ˆ๋‹ค.

(front ์ž‘์—…์—์„œ build ํŒŒ์ผ์„ ๋งŒ๋“ค์–ด์ค„๊ฒ๋‹ˆ๋‹ค.)

์ด๋ ‡๊ฒŒ ์„ค์ •ํ•ด ์คŒ์œผ๋กœ์„œ ์šฐ๋ฆฌ๋Š” ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ buildํด๋”์•ˆ์˜ ํŒŒ์ผ์— ์ ‘๊ทผ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ด์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค.

 

์ด์ œ ์ด ํด๋”์•ˆ์— index.js ํŒŒ์ผ์„ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ๋ณด๋‚ด์ฃผ๋Š” ๋ถ€๋ถ„์„ ์ž‘์„ฑํ• ๊ป€๋ฐ์š”. ์ด๋ ‡๊ฒŒ ํŒŒ์ผ์„ ์ „์†กํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” koa-send๋ผ๋Š” ๋ชจ๋“ˆ์„ ์„ค์น˜ํ•ด ์ฃผ์…”์•ผํ•ฉ๋‹ˆ๋‹ค. 

yarn add koa-send

๊ทธ๋ฆฌ๊ณ  src/index.js ์ƒ๋‹จ์— send๋ฅผ ๋ถˆ๋Ÿฌ์™€ ์ค„๊ฒŒ์š”.

๊ทธ๋‹ค์Œ ์ด send๋ฅผ ์ด์šฉํ•ด ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ index.html์„ ๋ณด๋‚ด์ฃผ๊ฒ ์Šต๋‹ˆ๋‹ค.

์ด๋ ‡๊ฒŒ ์ž‘์„ฑํ•œ ํ›„ front ํด๋”์—์„œ build ํด๋”๋ฅผ ๋งŒ๋“ค์–ด ์ฃผ๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 

VScode๋กœ ์ด์ „์— ์šฐ๋ฆฌ๊ฐ€ ๋งŒ๋“  front ํด๋”๋ฅผ ์—ด๊ณ  ์ฝ˜์†”์ฐฝ์— yarn build ๋ฅผ ํ•ด์ฃผ๊ฒ ์Šต๋‹ˆ๋‹ค.

(์ž๋™์œผ๋กœ build ํด๋”๊ฐ€ ๋งŒ๋“ค์–ด์ง€๋Š”๋ฐ ์ด ์ด์œ ๋Š” front์—์„œ ์„ค๋ช…ํ•ด ์ฃผ๊ฒ ์Šต๋‹ˆ๋‹ค.)

์ด์ œ ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

์ฒ˜์Œ์œผ๋กœ๋Š” compress๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•˜์„๋•Œ ์‹œ๊ฐ„์ž…๋‹ˆ๋‹ค.

(koa์—์„œ๋Š” ๋ฏธ๋“ค์›จ์–ด ์„ค์ • ์œ„์น˜๊ฐ€ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ์ œ๊ฐ€ ์ฒ˜์Œ์— compress์œ„์น˜๋ฅผ ์ž˜๋ชป ๋„ฃ์–ด์คฌ์–ด์š” ใ…œใ…œ ์•„๋ž˜ ์‚ฌ์ง„์œ„์น˜๋กœ ์˜ด๊ฒจ์ฃผ์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.)

์ด๋ฒˆ์—๋Š” compress๋ฅผ ์‚ฌ์šฉํ–ˆ์„๋•Œ ์‹œ๊ฐ„์ž…๋‹ˆ๋‹ค.

์ž ์†๋„๊ฐ€ ํ™•์—ฐํ•˜๊ฒŒ ์ค„์—ฌ์ง„๊ฒŒ ๋ณด์ด์‹œ๋‚˜์š”?

 

์˜ค๋Š˜์€ ์ด๋ ‡๊ฒŒ compress๋ฅผ ํ†ตํ•ด์„œ ๋„คํŠธ์›Œํฌ ์ „์†ก๋Ÿ‰์„ ์ ˆ์•ฝํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์šฐ๊ณ  ์ ์šฉํ•ด ๋ณด์•˜์Šต๋‹ˆ๋‹ค.

์ˆ˜๊ณ ํ•˜์…จ์–ด์š”!

 

๋‹ค์Œ์—๋Š” ๋ฉ”๋ชจ์žฅ๋ฐ์ดํ„ฐ๋ฅผ DB์— ์ €์žฅํ•˜๊ธฐ์œ„ํ•œ ์ž‘์—…์„ ์ง„ํ–‰ํ•ด ์ฃผ๊ฒ ์Šต๋‹ˆ๋‹ค.