세상의 모든 일을 아주 제대로. 멋지게. 해결하기 위해 연구합니다.

워드프레스 속도 개선 및 최적화 방안

1.워드 프레스 작동 방식

 
사용자가 워드 프레스 컨텐츠를 보기 위해 인터넷 브라우저에 명령을 내립니다.
인터넷 브라우저는 컨텐츠가 있는 사이트 서버를 찾습니다. 이것을 DNS Lookup 이라고 합니다.
브라우저가 서버를 찾아 명령을 전달하면 사이트 서버는 이 내용이 어디에 있는지를 찾습니다.
찾은 후에는 PHP를 통해 사람들이 이해할 수 있는 HTML 파일로 만듭니다.
서버는 이렇게 만들어진 HTML 파일을 크롬 같은 브라우저로 보냅니다.
브라우저는 서버로부터 HTML 정보를 받아서 사용자의 데스크탑 컴퓨터나 모바일 단말기에 보여줍니다. 이를 렌더링(Rendering)이라고 부릅니다.
 
 

2.속도를 높이는 방법

 
위에서 살펴본 여러 단계를 빨리 처리하려면 하드웨어 면에서는 성능 좋은 서버 CPU, 용량이 큰 메모리, 많이 저장할 수 있고 빨리 넣고 꺼낼 수 있는 입출력 속도를 가진 SSD와 같은 디스크가 필요합니다. 소프트웨어 쪽으로는 많은 단계를 압축적으로 할 수 있는 caching과 같은 방법들이 필요합니다.
 
렌더링 단계에서는 서버로부터 폰트, 이미지, JS, CSS 와 같은 정보가 담긴 파일을 받게 됩니다. 이러한 파일들의 크기를 최소화하면 속도를 높일 수 있는데, 여기에서는 관련 파일을 압축해서 작게 만들거나, 처음부터 작은 파일로 만들어서 다운 받아야 하는 용량을 줄이는 방법이 필요합니다.
 
서버의 성능 또한 중요한데, 허락되는 비용 한도 내에서 가장 좋은 성능의 웹서버를 선택하는 것이 좋습니다. 서버 사양은 워드프레스 속도에 가장 큰 영향을 미치기 때문입니다.
 

1) 서버 선택

 
웹서버 선택에는 이미 구축 되어 있는 웹서버를 이용하는 방법과 사용자 본인이 직접 서버를 운영하는 방법으로 나눌 수 있습니다.
 
전자의 경우 웹서버를 제공하는 웹호스팅 업체를 이용하는 것이 제일 흔한 방법입니다. 이러한 웹호스팅 업체들은 최소의 자본 투자로 최대의 이익을 얻기 위해 한 개의 서버 당 수십 – 수백 개의 사이트가 운영할 수 있도록 하고 있습니다. 때문에 성능은 낮을 수밖에 없습니다. 또한 모든 사용자의 요구사항에 맞춰야 되므로 새로운 기술 적용이 매우 느립니다.
 
이에 반해 직접 서버를 운영하는 방법은 서버에 대한 공부를 해야 가능하지만, 가장 효과적으로 사이트를 운영할 수 있는 방법입니다. 서버 운영에는 단독 서버를 운영하는 방법이 있고 클라우드 기술을 적용한 가상 서버 호스팅(VPS)를 이용할 수 있습니다. 특히 가상 서버 호스팅 이용은 적은 비용을 가지고 높은 성과를 낼 수 있습니다.
 
 
서버 운영을 배울 여건이 되면 가성비 좋은 가상 서버 호스팅을 사용하면 되고, 여건이 허락되지 않는다면 웹호스팅 업체 중에서 선택을 하면 됩니다.
가성비가 뛰어난 가상 서버 호스팅은 VULTR 이 있고, 웹 호스팅 중 가장 큰 업체는 카페 24, 가성비가 괜찮은 업체는 루아틱 등이 있습니다. 각자 필요한 용도에 맞게 웹호스팅 업체를 고르면 됩니다.
 

2) 테마 선택

 
웹 서버에 요청하는 내용을 최소화 하는 것도 속도를 개선하는 좋은 방법 중 하나입니다. 웹 페이지에 다양한 효과와 기능을 적용하면 이를 구현하기 위해서 필연적으로 많은 요청을 할 수 밖에 없습니다. 속도를 고려하면 무료로 배포되는 심플하고 단순한 테마가 답일 수 있습니다. 하지만 이런 가벼운 무료 테마들의 경우에는 업데이트가 거의 이루어지지 않고, 오류가 발생하거나 보안 이슈로 반드시 업데이트가 필요한 경우에 대응을 제대로 하지 못하는 경우가 생길 수 있습니다.
따라서 안정성있는 유료 테마중에서 용도에 따라 꼭 필요한 기능을 중심으로 커스터마이징 해서 사용하는 것이 좋습니다.
 

3) DNS Lookup의 작업 속도 개선

 
브라우저가 컨텐츠가 있는 사이트 서버를 찾는 DNS Lookup의 작업 속도는 어떻게 개선할 수 있을까요
일반적으로 한국 업체에서 도메인을 구입하고 한국 서버를 사용하면 DNS Lookup 시간은 거의 걸리지 않습니다.
또한 데이터 베이스 최적화를 위한 my.cnf 항목 중에 name-resolve 항목에 skip-name-resolve 명령어를 추가하면, DNS lookups 호스트 네임과 IP를 매번 확인하여 속도가 느려지는 것을 방지할 수 있습니다.
다음으로는 구글 페이지스피드 모듈(Google PageSpeed Module)에서 DNS resolution time 축소하는 아래 모듈을 활성화 합니다. pagespeed EnableFilters insert_dns_prefetch;
 

4) 캐시를 이용한 속도 개선

 
서버에서는 브라우저에게 요청 받은 내용을 찾고, PHP 에게 사람들이 이해할 수 있는 HTML 파일로 만들도록 시킵니다. 그러면 PHP는 데이터베이스에서 정보를 찾아 HTML 파일을 만듭니다. 이러한 과정을 단축시키는 것이 cache 의 역할입니다.
 
캐시 플러그인은 충돌을 일으키는 경우가 많아서 가능하면 서버에서 제공하는 cgche 기능을 활용하는 것이 좋습니다.
 
캐시의 종류에는 세 가지가 있습니다.
 
HTML 파일 전체를 cache하는 Full Page Cache – 완성된 HTML 페이지를 저장해 놓고, 요청 시 즉시 보여줍니다.
PHP Script한 결과를 보관하고 있는 PHP Script Cache – PHP가 수행하는 PHP script의 결과물을 Shared Memory에 저장하고, 요청시 저장된 결과물을 이용합니다.
데이타베이스 관련해 Query 결과를 모아 두는 Query Cache – 데이터 베이스에 접속하여 결과를 받을 때에, 데이터베이스에 질문하는 것을 query라고 하는데, 이 query에 대한 결과를 모아서 저장해 놓고, 요청시 즉시 보여줍니다.
 

5) 랜더링 속도 개선

 
브라우저를 통해서 HTML 내용을 보여주는 것이 렌더링인데, 렌더링 속도를 위해서는
 
– 다운 받는 용량이 적어야 합니다 – 디자인과 기능이 복잡할수록 용량이 늘어나므로 디자인/ 기능 과 용량 사이에서 적정선을 찾는 줄타기가 필요합니다.
 
– 어차피 다 함께 받아야 하는 파일들의 경우 압축을 통해 가볍게 할 수 있습니다. 이 작업에서는 리눅스 계열의 압축 프로그램인 gzip이 널리 사용됩니다.
 
– 다운 받을 파일에서 필요가 없는 일부분을 지워 용량을 가볍게 하는 Minify 작업이 있습니다. 추천할 만한 Minify 방식은 NGINX나 APACHE 서버를 설치 시 구글 페이지스피드 모듈(Google PageSpeed Module)을 포함해 컴파일해서 서버에서 직접 알아서 minify 하도록 하는 방식, 서버에서 작업케하는 Perl 모듈과 Minifier 패키지를 설치해 사용하는 방법이 있습니다.
참조: https://extrememanual.net/10038
 
– 다운받을 이미지 압축
 
JPG 포맷: 일반적인 이미지에 사용. 손실 압축 포맷이어서, 화질 조정이 필요하다.
화질은 80% 이상이면 구별하기 힘듦.
GIF 포맷: 투명한 이미지, 움직이는 이미지, 색이 별로 사용되지 않은 이미지에 사용.
색 제한은 256색.
PNG 포맷: 투명한 이미지, 고화질 이미지에 사용. 최적화를 거치면 JPG보다 용량이
덜 나가는 경우도 있음. 일반적으로 압축 후에도 용량이 큼.
 
– 글 작성 및 수정 시 히스토리 기록 제한
글 작성 및 수정 시에 히스토리가 계속해서 자동으로 기록되는데, 정말 중요한 작업이 아닌 이상에는 이러한 기능을 제한하는 것이 속도 향상에 도움이 됩니다.
참조:
https://happist.com/552599/%EC%9B%8C%EB%93%9C%ED%94%84%EB%A0%88%EC%8A%A4-tips-%EC%9B%8C%EB%93%9C%ED%94%84%EB%A0%88%EC%8A%A4-%EB%A6%AC%EB%B9%84%EC%A0%BCrevision-%EA%B0%AF%EC%88%98-%EC%A0%9C%ED%95%9C%EC%9C%BC%EB%A1%9C-db/
 
– 휴지통 관리 – 워드프레스에서는 39일이 경과하면 휴지통에서 파일이 완전 삭제되는데,
워드프레스 wp-config.php에서
/** 휴지통 완전 삭제 기간을 10일로 단축하기 */
define (‘EMPTY_TRASH_DAYS’, 10);
이런 식의 문구를 넣어 그 기간을 앞당길 수 있습니다.
 
– 플러그인은 반드시 필요한 경우가 아니면 설치하지 않도록 하고, 꼭 필요한 플러그인의 경우에는 보다 가벼운 플러그인을 선택하도록 합니다.
 
컨설팅 의뢰 및 쇼핑몰/홈페이지 개발 문의는 아래 사이트에 남겨주시기 바랍니다.
 
비즈니스 기획서비스 전문 기업, ㈜아이린앤컴퍼니 http://irenecompany.com
주문제작형 고퀄리티 워드프레스홈페이지 제작 전문, 워프로 http://wor-pro.com