대량의 컨텐츠를 wordpress 로 운영할려면..

워드프레스가 무거운 것은 Mysql 테이블 스키마가 무겁고, 하나의 화면을 구성하기 위해 include 해야하는 파일이 많아서 입니다.

이런 상황에서 빠른 속도를 연출하려면, mysql 테이블 스키마를 바꾸고, 하나의 화면을 보여주기 위해 include 하는 과정을 cache 를 통해 줄여야 합니다.

저희가 운영하는 http://lyric.nett.kr 서비스의 경우 wp_posts 컨텐츠에 수십만개의 컨텐츠를 등록하여 활용하고 있는데요.

테이블 스키마를 보여드리겠습니다.

자, 위의 테이블 스키마가 어떤 부분이 달라졌는지 일반적인 스키마와 비교해볼까요 ?

위의 예시는 cafe24 에서 자동으로 설치해주는 워드프레스 스키마입니다.

우선 컨텐츠가 100,000 개 이상이 되면 워드프레스의 기본적인 스키마를 사용하게 되면 너무나 느려지게 됩니다.

text 와 longtext 는 차이가 크기 때문에, 중요한 다이어트 포인트가 됩니다.

post_content longtext COLLATE utf8mb4_unicode_520_ci NOT NULL,
post_title text COLLATE utf8mb4_unicode_520_ci NOT NULL,
post_excerpt text COLLATE utf8mb4_unicode_520_ci NOT NULL,

post_content text NOT NULL,
post_title varchar(400) NOT NULL,
post_excerpt char(1) NOT NULL,

post_excerpt 를 사용하지 않아서 char(1) 로 바꾸어 보았습니다.

테이블 스키마를 실제 사용하는 환경에 맞추어 적절하게 바꾸면, 큰 성능 향상을 경험하게 될 것 입니다.

파티셔닝 partitioning 은 굉장히 중요한 작업이고요.

워드프레스는 단순히 그것을 사용하는 사람들에게 기초적인 틀을 제공해주며, 워드프레스를 사용해서 더 불편하거나 손해보는 상황이 되지는 않습니다.

단지, 워드프레스를 제대로 이해하지 못한 상태에서 성능이 느리다느니 불평을 하면, 테이블 스키마를 고쳐볼 생각을 왜 하지 않는지 물어 보고 싶더라고요.

어떤 프로그램이던 워드프레스로 컨버팅하면 테마와 플러그인으로 부터 받는 엄청난 혜택이 있어서, 오래된 서비스를 워드프레스로 컨버팅하는 일들이 꼭 필요하고 중요한 일이다라고 말씀드리고 싶답니다.

기존 서비스가 막코딩으로 개발했는데 워드프레스로 래핑하고 기능을 살릴 수 있나요 ? 라면..

당연히 가능합니다.

기존 서비스의 구성들을 워드프레스의 구성에 맞게 재설계하고 단단한 프레임웍 위에 플러그인으로 분리하여 서비스를 구성하면 되니깐요.

$wpdb, $wp_query 라는 존재만 제대로 이해하면 누구나 워드프레스를 지금 보다 더 자유롭게 활용할 수 있을 거에요.