트리쉐이킹(Tree Shaking)

N·2022년 8월 4일
0

최적화

목록 보기
8/11
  • 말 그대로 나무를 흔들어 잔가지를 털어내듯 불필요한 코드를 제거하는 것을 의미

  • 웹 개발을 할 때, 애플리케이션의 규모가 커지면서 코드의 양이 방대해지고, 다양한 라이브러리를 가져다 사용하게 되면 불필요한 코드를 그대로 가져가는 경우가 생각보다 많이 생기는데 이런 불필요한 코드들을 찾아내어 제거하면 웹 사이트 성능 최적화에 큰 도움이 된다.

  • 특히 JavaScript는 다음과 같은 이유로 가능하면 트리쉐이킹을 해주는 것이 좋다.

    1) JavaScript 파일의 크기
    - 요즘은 과거 HTML 위주의 단순한 웹 페이지와는 비교도 안 될 정도로 규모 있고 화려한 인터랙션을 자랑하는 웹 애플리케이션들이 많다. 웹 사이트에서 인터랙션이 많아졌다는 것은 그만큼 JavaScript의 비중이 높아졌다는 뜻
    - JavaScript 파일 크기의 증가, 요청 횟수의 증가는 그만큼 파일이 오고 가는 동안 화면 표시가 늦어진다는 것을 뜻하고, 네트워크 속도가 느린 환경에서는 더 큰 병목현상을 유발한다. 따라서 트리쉐이킹을 통해 파일 크기를 가능한 줄이는 것이 최적화에 도움이 된다.

    2) JavaScript 파일의 실행 시간
    JavaScript 파일이 실행되기 위해서는 여러 과정을 거치게 된다.
    다운로드부터 필요한 경우에는 우선 요청을 보내어 파일을 다운받아 온 다음 압축을 해제 -> JavaScript 코드를 파싱하여 DOM 트리를 생성 -> 파싱이 끝나면 컴파일하여 컴퓨터가 이해할 수 있는 언어로 바꿔준다.
    이 컴파일 과정까지 거쳐야지 비로소 코드를 실행할 수 있다. 이처럼 코드 실행까지 거쳐야 하는 과정이 많기 때문에 JavaScript는 다른 리소스에 비해서 실행까지 상대적으로 많은 시간을 소모하게 된다.

    => JavaScript 파일의 크기가 커진 만큼, 파일의 실행 시간 또한 증가한다!
    JavaScript 파일의 실행은 CPU에 크게 영향을 받는데, 그렇다 보니 사양이 천차만별인 모바일 환경에서 그 영향이 더욱 두드진다. -> 휴대폰의 사양에 따라 소모 시간이 크게 차이 난다.

    =>이탈률이 그만큼 커질 수 있기 때문에 트리쉐이킹을 통한 최적화가 필요하다.

profile
web

0개의 댓글