inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

프론트엔드 개발자를 위한, 실전 웹 성능 최적화(feat. React) - Part. 1

1-5) 이미지 사이즈 최적화

이미지 화질에 대해 질문있습니다

845

jjang9

작성한 질문수 36

1

10배 크기의 이미지를 2배로 바꾼후 렌더링하니 화질이 많이 떨어져 보이게 됩니다. 

만약 화질이 중요시 되는 상황이라면 최적화를 맞추지 못하더라도 3배 4배의 크기로 이미지를 불러와 우선순위를 화질로 하는것이 옳은 방법인가요? 

아무래도 성능과 품질에 대한 타협점은 상황에 따라 맞춰가는게 맞겠죠??

좋은 강의 감사합니다! 

react devtools

답변 1

2

유동균

안녕하세요, juuu o 님,

이미지 사이즈에 대해서 질문을 주셨는데요,

10배 크기의 이미지를 2배로 바꿨다는게 어떤 의미일까요?

10 만큼의 크기인 이미지를 2로 이미지 자체를 압축해서 렌더링 했을 때를 말씀하시는 걸까요?

만약 그렇다면, 말씀하신대로 성능과 품질에 대한 조율을 하시면 될 것 같습니다.
예를 들어, 이미지 갤러리 서비스와 같이 이미지가 메인인, 혹은 이미지의 선명함이 중요한 서비스를 개발한다고 하면, 이미지 로딩이 조금 오래 걸리더라도 고화질의 이미지를 넣는 것이 좋고,
그런게 아니라 사소한 이미지일 경우, 굳이 고화질의 이미지로 넣어주실 필요가 없습니다.

고화질의 이미지를 넣을 때에도 몇 가지 팁이 있는데,
- 가능하면 PNG 대신 JPG 또는 WEBP 로 압축
- 이미지 로드 전후에 Layout Shift가 발생하지 안도록 영역 잡아두기
- 이미지 로딩에 대한 UX 적용 (스켈레톤, 로더 등)
등등 이렇게 적용을 하시면 이미지 로드가 오래걸려도 사용성을 크게 해치지 않을 것이라고 생각됩니다.

추가로, 일반적으로 이미지는 실제 화면에 렌더링 되는 사이즈의 2배 이미지로 넣어주시는게 최적입니다.
(ex - 100x100 으로 화면에 넣어줘야 한다면, 200x200 이미지 사용)
자세한 내용은 아래 링크를 참고하시면 좋습니다.
- https://www.danrodney.com/blog/retina-web-graphics-explained-1x-versus-2x-low-res-versus-hi-res/
- https://www.sleeplessmedia.com/2018/12/14/optimizing-website-images-and-graphics-for-retina-displays/

답변이 도움되었기를 바라며, 강의에 관심을 가져주셔서 감사합니다. :) 

0

jjang9

강의에서 120px로 이미지를 렌더링하기위해 unsplash API로 1200px이미지를 불러왔던것을 최적화를 위해 240px로 줄이게 돼서 10배에서 2배로 바꿨다고 표현했는데 설명이 부족했던것 같습니다ㅎㅎ

링크도 달아주시고 좋은 답변 감사합니다!! 

0

유동균

아하 그런 의미셨군요.

그런데 4배의 이미지는 의미가 없는 걸로 알고 있습니다.

결국 렌더링 하는 영역은 정해저 있으니까요.

만약 3x이나 4x인 레티나 디스플레이에 대해서 대응을 한다면 의미가 있겠습니다만,,,
(좀 찾아보니 모바일은 3x 까지도 사용되는 것 같네요, 3배 이미지까지는 의미가 있을 것 같습니다.)

bundle analyzer 에 대한 질문이 있습니다.

0

118

2

Cannot find module serve 에러

1

126

1

성능 탭에서 소요시간이 안보입니다

0

230

2

이미지 CDN 만드는 방법

0

474

1

Performance FPS 탭이 안보여요.

1

819

1

CPU throttling이 뭔가요?

0

1127

1

default export가 아닌 named export일 때 lazy사용법

1

1079

1

lazy적용하였는데 네트워크탭에 분리하여 보이지 않습니다

1

593

1

network 캐싱에 대해서 질문 있습니다!

1

430

1

vue project에서 chrome performance tab 확인하기

1

462

1

node version으로 인한 오류

4

1240

1

강의 자막

1

961

2

번들파일과 병목현상 질문

2

402

1

webpack-bundle-analyzer 질문

1

790

1

이미지 프리로딩 질문

1

389

1

이미지 최적화 활용

1

589

1

강력 새로고침

1

331

1

Suspense 관련해서 질문드립니다

2

365

1

config-overrides cant resolve path

1

369

1

이미지 preload 컴포넌트 preload 차이 질문드립니다.

1

617

1

custom react 환경에서 node_modules chunk 분리

1

384

1

removeSpeical 함수를 줄여야겠다고 하는 이유!

1

291

1

Factory pattern에 대해서 궁금한 점이 있습니다

2

377

2

텍스트 압축 방식에 대해 질문이 있습니다

2

959

1