일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 동적 계획법
- VIM
- 그레이들
- frontend
- TypeScript
- Database
- Graph
- db
- network
- DFS
- 자바
- git
- CS
- DP
- react
- 프로그래머스
- Redux
- 다이나믹 프로그래밍
- java
- Javascript
- LeetCode
- 안드로이드
- Data Structure
- Python
- vscode
- Algorithm
- 리트코드
- BFS
- 알고리즘
- 백준
- Today
- Total
늘 겸손하게
Frontend - 웹 사이트 성능 최적화 방법 본문
사이트 속도를 높이는 방법을 알아보자
목차
- CDN 사용하기
- 더 좋은 호스팅 서비스를 찾자
- 웹 사이트 이미지 크기 최적화
- 플러그인 숫자 줄이기
- JavaScript, CSS 파일 최소화
- 웹 사이트 캐시 사용
- Gzip 압축 사용
- CMS의 데이터베이스 최적화
- 웹 폰트 (Web Font) 사용 줄이기
- 404 에러 찾기
- Prefetching technique(미리 불러오기) 사용하기
1. CDN 사용하기
CDN은 Content Delivery Network의 약자로 다양한 지리적 위치에 분산된 웹 서버들의 집합입니다.
서버를 한 개만 구축한다면 해당 서버에 부하가 심해질 것이고 먼 거리에서 오는 요청을 처리하는 시간이 늦어지므로 CDN을 통해 사용자의 요청을 가장 근처의 서버로 리다이렉팅 할 수 있습니다.
가격이 부담되지만 로딩 시간을 줄이기에 효과적인 방법입니다.
2. 더 좋은 호스팅 서비스를 찾자
호스팅 서비스에는 세 가지 종류가 있습니다.
1. Shared Hosting ( 공유 호스팅 )
2. Virtual Private Servers (VPS) hosting ( 가상 서버 호스팅 )
3. Dedicated server ( 전용 호스팅 서비스 )
더 빠른 웹 서비스를 위해서는 좋은 호스팅 서버가 필수적입니다.
가장 저렴한 호스팅 서비스는 공유 호스팅이지만 서버의 자원을 공유하기 때문에 VPS나 전용 호스팅 서비스보다 느립니다.
VPS, 전용 서버는 공유 호스팅보다 더 빠르므로 만약 웹 사이트가 평균적인 트래픽을 가지고 있다면 VPS, 재정적 여유가 있다면 전용 서버를 개설하는 방식을 선택할 수 있습니다.
3. 웹 사이트 이미지 크기 최적화
웹 사이트 이미지는 파일의 크기가 커 속도를 저하시키는 주범입니다.
그러므로 이미지 압축 툴로 크기를 줄이거나 이미지의 크기를 줄여 최적화를 할 수 있습니다.
4. 플러그인 숫자 줄이기
플러그가 많은 웹 사이트는 자원을 더 많이 소모하므로 가능한 플러그인을 사용하지 말고 더 이상 사용하지 않는 플러그는 정리하는것이 좋습니다.
5. JavaScript, CSS 파일 최소화
웹 사이트에 많은 JS, CSS 파일이 포함되어 있다면 사용자의 요청도 그만큼 늘어날 확률이 높습니다.
JS, CSS 파일의 숫자를 줄여 웹 사이트의 속도를 개선시킬 수 있습니다.
6. 웹 사이트 캐시 사용
웹 사이트 캐시를 사용하면 렌더링된 웹 페이지를 캐시에 저장해 두고 요청이 들어오면 렌더링 해둔 페이지를 전송하는 방법을 사용하여 사용자로부터 HTTP 요청이 들어올 때마다 새로운 웹 페이지를 렌더링 하는 일을 피할 수 있습니다.
7. Gzip 압축 사용
Gzip 압축은 파일 크기를 줄이는 효과적인 방법입니다.
Gzip은 HTTP 요청을 줄이고 서버 응답시간을 빠르게 합니다.
Gzip은 브라우저에 파일을 보내기 전 파일들을 압축시키는 일을 합니다.
사용자 측에서는 압축되어 보내진 파일들을 압축 풀기하여 콘텐츠를 출력합니다.
이 방법은 웹 사이트에 포함된 모든 파일에 적용할 수 있습니다.
8. CMS의 데이터베이스 최적화
CMS는 Content management system의 약자로 콘텐츠 관리 시스템을 말합니다.
만약 복잡한 플러그인들이 가득찬 CMS를 사용 중이면 데이터베이스의 크기는 커지고 웹 사이트 속도는 느려집니다.
그러므로 CMS의 최적화 플러그인을 이용해 최적화 작업을 해주는 것도 좋은 방법입니다.
9. 웹 폰트(Web font) 사용 줄이기
웹 폰트는 페이지 렌더링을 느리게하고 외부 리소스에 HTTP 요청을 증가시킵니다.
그러므로 웹 폰트 트래픽을 줄이기 위해서는
- WOFF2 포맷 사용
- 사이트에서 사용하는 character set만 include
- 필요한 스타일만 선택
10. 리다이렉션 줄이기
웹 사이트의 리다이렉션은 추가적인 HTTP 요청을 생성하여 성능 저하를 유발합니다.
그러므로 최적화를 위해 리다이렉션 횟수를 최소화해야합니다.
사이트 스캔을 통해 웹 페이지의 리다이렉션을 파악하고 필수적인 리다이렉션만 유지합니다.
11. Prefetching techinque(미리 불러오기) 사용하기
현대적인(modern) 브라우저들은 디폴트로 prefetching(프리페칭)을 허용합니다.
프리 페칭에는 대표적으로 세 가지 종류가 있습니다.
1. DNS-prefetching : IP 주소에 미리 도메인 이름을 추가
2. Link-prefetching : 사용자가 특정 링크를 클릭할 것이 확실할 경우 사용
3. Prerendering : 미리 웹 페이지 전체를 렌더링하거나 일부를 미리 렌더링
프리 페칭의 효과는 좋지만 정확한 예측을 위해 깊은 사용자 행동 분석이 필요
요약
요즘 일반적인 사용자는 웹 페이지가 3초 이내로 로딩될 것을 기대합니다.
만약 3초 이내로 웹 페이지를 로드하지 못하면 웹 사이트 트래픽을 잃을 것이고(= 사이트 방문자들을 잃을 것이고) 결과적으로 수익도 줄어들 것입니다.
출처
'Programming > Frontend' 카테고리의 다른 글
Frontend - 반응형 웹 개발 (0) | 2023.08.07 |
---|---|
Frontend - 크로스 브라우징 (0) | 2023.06.16 |
Frontend - 쿠키, 세션, 웹 스토리지 (0) | 2022.08.09 |
Frontend - 타입스크립트를 사용하는 이유 (0) | 2022.08.08 |
Frontend - 웹 표준 (Web Standards) (0) | 2022.08.05 |