Frontend ๊ฐœ๋ฐœ์ž - hyo.loui

Project: ๐Ÿšฉcodefolio - ์ด๋ฏธ์ง€ ์ตœ์ ํ™”, ์„ฑ๋Šฅ ๊ฐœ์„  ๋ณธ๋ฌธ

Project

Project: ๐Ÿšฉcodefolio - ์ด๋ฏธ์ง€ ์ตœ์ ํ™”, ์„ฑ๋Šฅ ๊ฐœ์„ 

hyo.loui 2023. 3. 24. 01:09

๐ŸŽฏ๋ชฉ์  :

์ด๋ฏธ์ง€ ํŒŒ์ผ ์••์ถ• ์—…๋กœ๋“œ ๊ธฐ๋Šฅ ๊ตฌํ˜„,

์ตœ์ข… ์„ฑ๋Šฅ ๊ฐœ์„ ์— ๋Œ€ํ•œ ๊ธฐ๋ก

๋ชฉ์ฐจ

  1. ๋ฌธ์ œ์  ๋ฐœ๊ฒฌ
  2. ๋‘๋ฒˆ์งธ ์†”๋ฃจ์…˜ (์ด๋ฏธ์ง€ ์••์ถ• ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ ์šฉ)
  3. ํŒŒ์ผ ์‚ฌ์ด์ฆˆ  ๋น„๊ต
  4. ์–ป์–ด์ง„ ๊ฒฐ๊ณผ (Chrome LightHouse ์ ์ˆ˜)

 


1.  ๋ฌธ์ œ์  ๋ฐœ๊ฒฌ

 

๊ฒŒ์‹œ๊ธ€์ด post๊ฐ€ ๋˜์–ด detail ํŽ˜์ด์ง€์—์„œ

์‚ฌ์šฉ์ž๊ฐ€ ์ž‘์„ฑํ•œ ๊ธ€์ด ๋ณด์—ฌ์ง€๊ฒŒ ๋œ๋‹ค

 

codefolio ํ”„๋กœ์ ํŠธ ํŠน์„ฑ์ƒ ๋‹ค๋Ÿ‰์˜ ์ด๋ฏธ์ง€๊ฐ€ ๋“ค์–ด๊ฐ€๊ฒŒ ๋จ์— ๋”ฐ๋ผ

editor์˜ ๋ฒˆ๋“ค ์‚ฌ์ด์ฆˆ๋„ ์ ์ง€ ์•Š์€๋ฐ, ๊ฑฐ๊ธฐ์— ๋” ์‚ฌ์ด์ฆˆ๊ฐ€ ํฐ ์ด๋ฏธ์ง€๊ฐ€ ์—ฌ๋Ÿฌ๊ฐœ

๋ณด์—ฌ์ง€๊ฒŒ ๋˜๋ฉด์„œ detail ํŽ˜์ด์ง€์˜ ๋กœ๋”ฉ์†๋„๊ฐ€ ์ด๋ฏธ์ง€์˜ ์‚ฌ์ด์ฆˆ์™€ ์ˆ˜๋Ÿ‰์— ๋”ฐ๋ผ

๋น„๋ก€ํ•˜๊ฒŒ ์ฆ๊ฐ€ํ–ˆ๋‹ค.

 

๊ธฐ์กด์˜ staticํ•œ ์ด๋ฏธ์ง€๋Š” ํ”„๋ก ํŠธ์—์„œ next image๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ

์ด๋ฏธ์ง€ ์ตœ์ ํ™”๋ฅผ ํ•˜๋ฉด์„œ ๋น ๋ฅด๊ฒŒ ๋กœ๋”ฉ ๋˜์—ˆ์ง€๋งŒ

 

๋ทฐ์–ด์—์„œ ๋ณด์—ฌ์ฃผ๋Š” ์ด๋ฏธ์ง€๋Š” ๊ฐœ๋ณ„์ ์œผ๋กœ ์ตœ์ ํ™” ํ•  ์ˆ˜ ์—†์—ˆ๋‹ค.

๋˜ํ•œ supabase๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ์šฐ๋ฆฌ ํ”„๋กœ์ ํŠธ๋Š” ์„œ๋ฒ„๋น„์šฉ์ด ๋Š˜์–ด๋‚จ์— ๋”ฐ๋ผ

์„œ๋น„์Šค ์ œํ•œ์ด ์ƒ๊ธธ ์ˆ˜ ์žˆ๋‹ค๋Š” ์šฐ๋ ค๊ฐ€ ์žˆ์—ˆ๊ณ ,

 

๊ธฐ์กด์— ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด์„œ

firebase์—์„œ ๊ฒช์€ ๋ฐ”์™€ ๊ฐ™์ด (์ผ์ผ ํ• ๋‹น ์šฉ๋Ÿ‰ ์ดˆ๊ณผ ์‹œ ์„œ๋ฒ„ ๋‹ค์šด..)

์„œ๋ฒ„ ๋น„์šฉ์„ ๋ฌด์‹œํ•  ์ˆ˜ ์—†์—ˆ๋‹ค.

 

๊ทธ๋ ‡๊ฒŒ ์—ฌ๋Ÿฌ ์†”๋ฃจ์…˜์„ ์ฐพ๋˜ ๋„์ค‘ 3๊ฐ€์ง€ ๋ฐฉ์•ˆ์„ ์ฐพ์•˜๋‹ค.

  1. ์ด๋ฏธ์ง€ ํฌ๊ธฐ ์กฐ์ • = ์œ ์ €์˜ ์ˆ˜๊ณ ๊ฐ€ ํ•„์š”
  2. ์ด๋ฏธ์ง€ ์••์ถ• = ๊ฐœ๋ฐœ ํ•„์š”
  3. ๋ ˆ์ด์ง€ ๋กœ๋”ฉ = ๋ทฐ์–ด ๋‚ด๋ถ€์—์„œ์˜ ์ ์šฉ์€ ์ œํ•œ

์œ„ ์…‹์ค‘ ์„œ๋ฒ„ ๋น„์šฉ์„ ์ค„์ด๋Š”๋ฐ ๊ด€์‹ฌ์‚ฌ๋ฅผ ๋‘” ์†”๋ฃจ์…˜์€

์ด๋ฏธ์ง€ ์‚ฌ์ด์ฆˆ๋ฅผ ์••์ถ•ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด์˜€๊ณ  ๊ทธ๋ ‡๊ฒŒ ์••์ถ• ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ฐพ์•˜๋‹ค,

 

v1.0.0 ๋ฒ„์ „์ด deploy ๋œ ์ƒํ™ฉ์—์„œ
์„œ๋ฒ„๊ฐ€ ๋‹ค์šด๋œ๋‹ค๋ฉด ์ •๋ง ์ตœ์•…์ด๋‹ค..

 

์ง€์ฒด ํ•  ์ด์œ ๊ฐ€ ์—†์—ˆ๊ณ 

๋ฐ”๋กœ ํŒ€์›๋“ค๊ณผ ํ˜„ ์ƒํ™ฉ์„ ๊ณต์œ ํ•˜๊ณ  ๋น ๋ฅด๊ฒŒ ์ ์šฉํ•ด๋ณด๊ฒ ๋‹ค๋Š” ๋œป์„ ๊ณต์œ ํ–ˆ๋‹ค.

 


2.  ๋‘๋ฒˆ์งธ ์†”๋ฃจ์…˜ (์ด๋ฏธ์ง€ ์••์ถ• ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ ์šฉ)

 

https://www.npmjs.com/package/browser-image-compression

 

browser-image-compression

Compress images in the browser. Latest version: 2.0.2, last published: 17 days ago. Start using browser-image-compression in your project by running `npm i browser-image-compression`. There are 110 other projects in the npm registry using browser-image-com

www.npmjs.com

 

common ํด๋”์— ๋งŒ๋“ค์–ด๋‘๊ณ  ๋‹ค๋ฅธ ํŒ€์›๋“ค๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋งŒ๋“ค์–ด ๋‘์—ˆ๋‹ค.

4,5 ๋ฒˆ์งธ ์ค„์— ์ ์šฉํ•œ ๋ชจ์Šต์ด๋‹ค.

์‰ฝ๊ฒŒ ์ ์šฉํ•  ์ˆ˜ ์žˆ์—ˆ๊ณ  ๋‹ค๋ฅธ ์ด๋ฏธ์ง€ ์—…๋กœ๋“œ ๋ถ€๋ถ„์—์„œ๋„ ์ „๋ถ€ ์ ์šฉํ–ˆ๋‹ค.


3. ํŒŒ์ผ ์‚ฌ์ด์ฆˆ  ๋น„๊ต

  • ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ „์†กํ•˜๋Š” ๋ชจ๋“  ์ด๋ฏธ์ง€๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํŒŒ์ผํฌ๊ธฐ๋ฅผ ์•ฝ 80% ์••์ถ•ํ•˜์—ฌ ์„œ๋ฒ„ ๋ถ€ํ•˜๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ์—ˆ๋‹ค.
  • ์•„๋ž˜๋Š” ์••์ถ• ์ ์šฉ ์ „์˜ ์‚ฌ์ด์ฆˆ์ด๊ณ , ์œ„๊ฐ€ ์••์ถ• ์ ์šฉ ํ›„ ์‚ฌ์ด์ฆˆ.

4. ์–ป์–ด์ง„ ๊ฒฐ๊ณผ(Chrome LightHouse ์ ์ˆ˜)

 

ํฐํŠธ, ์ด๋ฏธ์ง€ ์ตœ์ ํ™”, ์—๋””ํ„ฐ ๋ณ€๊ฒฝ์„ ํ†ตํ•œ ์„ฑ๋Šฅ ๊ฐœ์„ 

Chrome LightHouse ์ ์ˆ˜ ์ธก์ • ํ›„ ๊ฐœ์„ ์ ์„ ๋ฐœ๊ฒฌํ•˜์˜€๋‹ค.

์ด๋ฅผ ํ†ตํ•ด Chrome LightHouse ์„ฑ๋Šฅ์ ์ˆ˜๋ฅผ ๊ธฐ์กด 74์ ์—์„œ 99์ ์œผ๋กœ ๊ฐœ์„ ํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.


 

 ์ตœ์ข… ์ •๋ฆฌ 

  1. ์ด๋ฏธ์ง€ ์ตœ์ ํ™”๋ฅผ ์œ„ํ•œ ์—ฌ๋Ÿฌ ์†”๋ฃจ์…˜์„ ์ฐพ๋˜ ๋„์ค‘ 3๊ฐ€์ง€ ๋ฐฉ์•ˆ์„ ์ฐพ์•˜๋‹ค.
  2. ๊ทธ์ค‘ ์šฐ๋ฆฌ์—๊ฒŒ ํ•„์š”ํ•œ ์„œ๋ฒ„๋น„์šฉ์„ ์ค„์ผ ์ˆ˜ ์žˆ๋Š” ์†”๋ฃจ์…˜์ธ browser-image-compression ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ ์šฉ.
  3. ์‚ฌ์šฉ์ž๊ฐ€ ์—…๋กœ๋“œํ•˜๋Š” ์ด๋ฏธ์ง€ ํฌ๊ธฐ๋ฅผ ์•ฝ 80% ์••์ถ•ํ•˜์—ฌ ์„œ๋ฒ„ ๋ถ€ํ•˜๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ์—ˆ๋‹ค.
  4. ํฐํŠธ ์ตœ์ ํ™”, ์ด๋ฏธ์ง€ ์ตœ์ ํ™”, ์—๋””ํ„ฐ ๋ณ€๊ฒฝ์„ ํ†ตํ•ด LightHouse ์ ์ˆ˜๋ฅผ 99์ ์œผ๋กœ ๊ฐœ์„ ํ–ˆ๋‹ค.