안녕하세요. 린치핀소프트 한광희입니다.

 

이번 포스트는 워드프레스를 오랫동안 운영하시다가 메인 테마의 변경을 원하시는 분에게 제 경험을 공유하고자 하는 글입니다.

 

여기서 말하는 “오랫동안”이란 ,꾸준히 워드프레스를 이용하여 콘텐츠를 수정하고 발신하여 꽤나 묵직한(?) 워드프레스 사이트를 운영중인 분들을 말하고자 합니다. 보통 wp_posts 테이블에 등록된 레코드가 수만건 이상이며 수십 또는 수백페이지가 제작되어 활용되고 있는 커뮤니티나 중소규모 이상의 워드프레스를 말합니다.

 

최근에 위에 설명한 특성을 고스란히 반영하고 있는 규모가 있는 워드프레스 커뮤니티의 테마변경 및 수정작업을 요청받아 진행하며 부딪친 문제들과 그에 대해서 어떻게 작업을 진행하였는지에 대해서 설명드리겠습니다. 우선, 이런 꽤나 규모가 큰 워드프레스를 살펴보면 다음과 같은 특징을 발견하게 됩니다.

 

1.사용하는 플러그인의 갯수가 굉장히 많으며 해당 플러그인의 기능을 차용하여 많은 부분이 운용중이다.

2.기존 콘텐츠의 양이 많다. (여기서 콘텐츠란 비단 데이터베이스의 레코드뿐만 아니라 업로드된 Media 들이나 백업된 데이터까지도 의미합니다.)

3.기존 콘텐츠가 테마나 플러그인에 종속되어 있다.( 비쥬얼 콤포저, 테마제공 shortcode, 사이드바,위젯 등)

4.DB자체의 테이블이 굉장히 많다.(플러그인 수가 많다는 것은 해당 플러그인에 의해 생성되는 Custom Table의 갯수가 증가할수 있음을 의미합니다.)

5.기타 워드프레스의 독립적인 요소 뿐만 아니라 DDOS 공격이나 Cache , CDN 등을 염두해두어 서버설정이나 환경설정이 다르고 이런 서비스에 있어 외부 서비스업체의 다양한 서비스를 이용하고 있을 수 있다.

 

pexels-photo-89724

 

이외에도 다양하게 많은 특성이 있을수 있겠지만 위의 특성에 따라 테마 변경같은 작업에 생각보다 쉽지 않은 작업으로 대두됩니다.

제가 식별한 문제들은 대략 다음과 같은 문제들입니다.

 

1.자체 백업시스템으로 워드프레스 백업데이터가 대략 100GB 정도 되며, Media , SQL 테이블의 데이터의 사이즈가 크다. 이에 따라, 시스템 변경전 백업을 해야하는 요소의 식별과 백업/이식간에 사용되는 작업에 있어 Memory Limit / Excute Time등의 환경설정 변경이 필요할 수 있다.

2.각 플러그인의 갯수가 많으므로 플러그인의 역할을 규명해야 한다. ( 테마만 변경할것인데 왜 플러그인의 역할까지 같이 규명해야 하는지 의문이 있을 수 있습니다. 초기 테마설치시에 Require/ Rec0mmand 로 요청되는 플러그인이 같이 추가로 설치되는 경우가 빈번하므로 어떤 플러그인이 테마의 기능을 담당하며 어떤 역할을 하고 있는지 대략적인 역할을 파악해야 합니다. )

3.각 페이지와 콘텐츠의 구성 파악이 아주 중요하다. 보통 이런 볼륨이 큰 워드프레스의 사이트일 수록 다양한 기능을 요구하며 해당 기능을 충족하기 위해 잘 설계되고 많은 기능을 지원하는 테마를 사용할 확률이 높다. 이는, 경우에 따라서 DB에 저장된 많은 포스트와 페이지와 같은 콘텐츠가 테마에 종속되어 버리는 모순적인 상황이 발생될 수 있다. 이 부분이 생각보다 작업공수가 커질 수 있다. 각 콘텐츠별로 테마의 종속여부를 확인해주어야 한다. 보통 테마에서 제공하는 플러그인의 기능이나 숏트코드를 사용하는지를 확인하며 포스트나 페이지의 중요 내용을 테마에서 개별적으로 사용하는 Custom Table이나 해당 테마에서만 차용하는 특별한 방법으로 데이터를 저장하는지 등을 확인해야 한다. 만약, 위에 언급한 방식으로 구성하여 다른 테마가 해당 데이터를 참조하기 어렵게 구성되어 있다면 작업에 있어 상당한 고충이 수반된다.

4. 커뮤니티의 경우 이식작업의 시간을 최소화하며 이식작업에 따른 여파를 어떻게 효과적으로 리스크를 분담하고 안정적으로 작업할 수 있을지 모색해야 한다. 커뮤니티의 경우 특히나 접속량이 많고 해당 커뮤니티와 연계된 시스템이 있을 수 있기때문에 이 점이 중요하다.

 

 

pexels-photo-31123

 

이런 문제에 따라 저희는 다음과 같은 방법으로 이식작업을 준비하고 수행했습니다.

1.모든 데이터와 워드프레스 디렉토리의 백업(백업 후에 테스트 서버에서 복원하여 확실히 복원될수 있도록 데이터들이 잘 백업되어 있는지 확인합니다.)

2.테스트서버 환경에 백업한 워드프레스 디렉토리 이식하여 설치

3.테마 변경 및 기타 다른 수정사항 들과 콘텐츠 구성

4.테마 변경후 최종적으로 각 페이지 및 포스트별로 테스트하여 구성

5.이후에 실제 서버환경에서 테마 변경 작업 수행

6. 실제 테마 변경 작업간에는 여러가지 이식작업을 도와주는 플러그인을 활용 할 수 있습니다.

  • 관리자로 접속시에만 특정 테마로 사이트 구성을 보여주기
  • 특정 URL Query를 입력하면 해당 페이지/포스트가 특정 테마에서 어떻게 보여지는지 확인하기

7. 위처럼 작업을 하게 되면 하나의 워드프레스사이트에서 관리자는 향후 이식될 테마의 환경에서 작업을 하며 기존의 일반 사이트 방문자나 관리자 이하의 이용자에게는 기존 사이트환경과 동일하게 이용할수 있으므로 사이트블록 시간을 줄여주고 이식작업도 지속할 수 있습니다.

8. 최종구성후에 확실한 테스트 후에 기존 테마를 비활성화하고 테마를 활성화합니다.

 

이럼으로써 작업을 마무리할 수 있습니다. 이 작업의 골자는 테마변경중간 과정에 관리자는 향후 변경될 테마로 작업을 가능토록 하고 그외 모든 이용자는 현재 사용하고 있는 테마로 사이트를 사용할 수 있도록 함으로써 DB이식 백업/이식 작업의 배제 및 사이트 이식간의 사이트 접근블록 시간을 최소화 할 수 있다는 점입니다. 다만, 기존 워드프레스 사이트에 직접 수정작업을 진행하므로 확실한 백업/복원 대책과 스케쥴을 계획하여야 하며, 현재 사용하는 테마와 향후 변경할 테마가 병행되어도 문제가 없는지 등을 확인해보아야 합니다.