ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 웹 사이트 성능 최적화_ (feat. 해보진 않았지만 알아 본다.)
    공부 2023. 5. 19. 17:44
    반응형

    웹 사이트 성능 최적화

    웹 사이트 성능 최적화....

    시니어 자격요건이나 우대사항에 나와 있는 그놈!!!!

     

     

    (❗ 내가 알고 어렴풋이 알고 있는 거(추측)라고는.... )

     

    1. 웹 사이트 성능 최적화는 로딩 속도와 관련된 게 아닐까?

    👉 로딩 시간 몇 초 차이로 사이트 이탈률도 높아지니까 중요할 거 같다.

    👉 구글에서는 최적 사용자 경험을 위해서는 3초 이하 페이지 로딩 시간 추천한다고 함

     

    실제로 나도 몇 초 이상 기다리다가 사이트 나가버린 적이 많았지...😥

     

    2. 그럼 코드의 양을 불필요하게 늘리면 안되겠구나! 코드를 최적화하자.

    👉 내가 불필요하게 테스트한다고 적어놓고 주석처리 해놨던 코드들

    👉 반복되는 코드들 

    👉 사용하지 않는 코드는 없애고, 반복되는 코드는 제거할 필요가 있겠다!

    👉 리팩토링(코드 구조 개선 및 중복 제거)이 필요하겠네?

     

    3. 로딩은 결국 이미지와도 관련 있을 거 같아. 이미지를 최적화하자.

    👉 이미지 저장할 때 웹용으로 저장 또는 이미지 파일 형식은?

    👉 webP는 어떨까? (이미지 압축효과 높고 화질 저하 최소화, jpeg보다 크기 작아짐)

    👉 이미지 스프라이트를 사용하자 (IS기법 - 여러개의 이미지를 하나의 이미지로 합쳐 관리)

     

    📍11번가에서 주워온 스프라이트 이미지 이렇게 하나의 이미지로 만든 후 background로 처리해 위치 조절하는 식으로 사용함

     

    11번가 스프라이트 이미지

     

     

     


     

     

    1. 웹성능 측정 도구 사용하기

    웹 사이트 성능 진단 도구를 사용하면, 웹 사이트의 성능 문제를 찾을 수 있다.

    개발자도구, pageSpeed, WebPageTest 에 대한 좀 더 자세한 설명은 펀코딩에서 확인 가능

     

    • 크롬 개발자 도구
    • 구글 PageSpeed Insights (무료 사용 가능)
    • GTmetrix (무료/유료 버전)
    • Pingdom (무료 - 모니터링 / 부분 유료)
    • WebPageTest (무료 / 부분 유료)

     

    2. 이미지 최적화 하기

    웹 사이트의 이미지는 로딩 시간에 많은 영향을 미치므로, 이미지 파일을 줄이는 것으로 로딩 시간을 단축할 수 있다.

     

    1) 이미지 스프라이트(이미지 분할)  사용하기

    스프라이트 이미지는 여러개의 이미지를 하나의 이미지로 합쳐서 관리하는 이미지를 의미한다.웹페이지에서 이미지를 사용하는 경우, 해당 이미지 다운 시 브라우저는 서버에 이미지를 요청한다.로딩 시간이 오래 걸리는 이유는 사용된 이미지 개수 만큼 서버에 요청을 해야되기 때문!!!

     

    이 때 이미지 스프라이트를 사용하면, 서버 요청을 줄일 수 있기 때문에 시간을 단축할 수 있다.

    .menu .m1 a {background: url(./sprite_all.jpg) 0 0}
    .menu .m2 a {background: url(./sprite_all.jpg) 0 -120px}
    .menu .m3 a {background: url(./sprite_all.jpg) 0 -240px}

     

    2) 이미지 지연 로딩 

    lazy loading

    웹페이지에 필요한 리소스를 지연해서 로딩하는 기술👉 페이지 로딩 속도와 페이지 성능을 향상시킨다.

     

    img 태그 loading 속성

    img 태그에서는 loading 속성을 이용해 lazy loading을 구현할 수 있다.img의 loading 속성은 브라우저가 이미지를 불러올 때 사용할 방식을 지정하는 것으로loading의 값으로는 eager(기본값)와 lazy 를 사용할 수 있다.(IE에서는 지원 X , 브라우저에서는 지원 O)

     

    • eager : 기본값, 뷰포트 안 위치여부와 상관없이 이미지 즉시 불러온다.
    • lazy : 이미지가 뷰포트의 일정 거리 안으로 들어올 때 불러온다. 
    <img src="./star.jpg" alt="star" loading="eager">
    <img src="./star.jpg" alt="star" loading="lazy">

     

    3. 코드 최적화하기

    1) 불필요하게 주석 처리해 둔 코드(사용하지 않는 CSS) 제거 

    2) 불필요한 div 제거하기

     

     

     

    위에서 언급한 웹 성능 최적화 방법 외에 다양한 최적화 방법은

    아래 [최적화] 웹 성능 최적화 방법 5분 완성에서 잘 설명해뒀으니 나중에 참고해야지!

     

    * 참고 사이트: 

    '공부' 카테고리의 다른 글

    ChatGTP로 nav 메뉴 만들기  (0) 2023.03.02

    댓글

Designed by Tistory.