워드프레스 기본 구조 이해하기

souvik banerjee WPrNEM 6dg

설치형 워드프레스 기본 구조에 대해 알아봅니다. 워드프레스는 기능을 담당하는 파일 부분과 데이터를 담당하는 데이터베이스 부분이 맞물려 돌아가는 CMS(Content Management System: 콘텐츠 관리 시스템)입니다. 따라서 워드프레스 설치 과정 또한 워드프레스 파일을 먼저 설치한 후 데이터베이스에 연결하는 순차적인 방식으로 이루어져 있습니다. 워드프레스를 실제로 설치해서 사용하다 보면 곧 익숙해질 수 있는 내용이기도 하지만, 설치하기 전에 워드프레스 기본 구조를 한 번 훑어보는 것도 워드프레스와 친해지는데 도움이 될거라 생각합니다.

워드프레스 기본 구조 – 워드프레스 파일


워드프레스 파일은 워드프레스의 기능을 구현하는 소스 파일들의 조합으로 PHP 웹 프로그래밍 언어를 이용하여 작성되며, 주로 소스들이 들어있는 폴더 구조가 압축된 방식의 *.ZIP 파일 형태로 다운로드 혹은 업로드를 하게 됩니다. 이러한 워드프레스 파일로는 다음과 같은 세 종류가 있습니다.

  • 워드프레스 코어 파일
  • 워드프레스 테마 파일
  • 워드프레스 플러그인 파일

1. 워드프레스 코어 파일

워드프레스 코어 파일은 실제 워드프레스 작동에 관여하는 핵심적 기본 파일로, 워드프레스 설치 자체가 이 코어 파일을 서버에 업로드하는 작업으로 시작됩니다. 인텔 기반 PC의 운영체제인 윈도우즈, 맥킨토시의 운영체제인 macOS처럼, 워드프레스를 사용하기 위해서는 없어서는 안되는 운영체제와 같은 존재라 할 수 있겠습니다.

아래 공식 링크에서 언제든 최신 버전의 워드프레스 코어 파일을 무료로 다운로드 할 수 있습니다. 25MB 안팎의 *.ZIP 파일이므로 실제로 한 번 다운로드해서 압축을 풀어보는 것도 추천합니다.

한글 버전의 경우, *.ZIP 파일 외에 주로 리눅스 서버용으로 많이 사용되는 *.TAR.GZ 파일로도 다운로드를 제공하고 있는데, 통상적인 압축/해제 프로그램에서는 *.TAR.GZ 파일도 .ZIP 파일과 동일하게 압축 해제가 가능하므로 둘 중 아무 파일이나 다운로드하셔도 무방합니다. 다만 *.ZIP 파일과 *.TAR.GZ 파일간에 용량 차이가 있을 수 있는데, 이는 *.TAR.GZ 형식이 압축률이 높아서 그런 것일 뿐 실제 압축된 내용물, 즉 파일들은 동일하니 신경쓰지 않으셔도 됩니다.

워드프레스 코어 파일 구조

워드프레스 코어 파일의 압축을 풀어보면, 아래와 같이 3개의 서브 폴더들이 있고, 대략 16개 정도의 루트 파일들이 있는 간단한 구조입니다. 루트 파일들의 종류나 갯수는 버전에 따라 약간씩 다를 수 있습니다.

워드프레스 기본 구조

/ (루트) 폴더

웹사이트 출력, 사용자 등록, 사용자 로그인, 게시물 등록, 댓글 등록, 데이터 베이스 연결 설정, 등과 관련된 워드프레스 작동에의 핵심적 파일들이 위치하고 있습니다.

/wp-admin 폴더

워드프레스 사이트를 관리하기 위한 대쉬보드(관리자 모드) 운용과 관련된 파일들이 들어있습니다.

/wp-contents 폴더

통상적으로 버전 업그레이드와 무관한 폴더로, 주로 사용자가 추가하는 내용들을 처리하는 폴더로, 곧 이어 설명할 워드프레스 테마 파일들과 워드프레스 플러그인 파일들이 바로 이 디렉토리에 저장됩니다.

/wp-includes 폴더

주요 함수와 변수, 클래스, 라이브러리, 스크립트, 등, 실제 워드프레스의 구동과 관련된 핵심 파일들이 들어있습니다.

2. 워드프레스 테마 파일

워드프레스는 테마라고 불리는 템플릿 파일이 웹사이트의 전체적인 틀과 디자인, 외형상의 세부 구조 등을 담당하고 있습니다. 물론 워드프레스 코어 파일 설치시 자동으로 설치되는 기본 테마들도 있지만, 통상적으로는 사용자가 원하는 테마를 추가 설치하여 사용하게 되는 경우가 대부분이므로 코어 파일 내에 테마 저장 폴더가 위치하는 것과는 별개로 코어 파일과 다른 성격의 파일로 규정합니다.

사용자가 워드프레스 중급 이상일 경우, 테마 자체에서 기본적으로 제공하는 옵션들 외에도 /wp-contents/themes 폴더 내 필요한 테마 파일을 직접 수정하여 추가적인 커스터마이징이 가능합니다. 워드프레스의 구동에 직접 관여하는 코어 파일은 아니지만, 테마를 수정하다가 문법 오류가 발생한다거나 코어 파일의 특정 버전과 호환성 문제가 있거나 하면 웹사이트 전체가 작동하지 않는 경우도 종종 발생하므로, 테마의 설치나 커스터마이징 전에는 항상 백업을 해두는 것이 중요합니다.

워드프레스를 처음 사용하는 경우 원하는 테마를 찾을 때까지 다양한 테마를 설치해보게 되는 경우가 많은데, 그러다 보면 순식간에 폴더의 용량이 늘어나 서버 용량 초과를 초래하기도 합니다. 워드프레스 설치 후 안정이 되고 웹사이트 제작까지 어느 정도 마무리되고 나면, 사용하지 않는 테마 파일들은 모두 삭제하고 현재 사용중인 테마와 문제가 생겼을 때 테스트용으로 사용할 수 있는 비상용 기본 테마 한 개 정도만 추가로 남겨두어 항상 테마 폴더를 가볍게 유지하는 것이 좋습니다.

3. 워드프레스 플러그인 파일

스마트폰에 설치하는 앱처럼 워드프레스에 설치하여 다양한 기능을 애드온할 수 있는 것이 바로 워드프레스 플러그인입니다. 현재 사용 가능한 워드프레스 플러그인은 무료만 60,000개 가까이, 유료까지 포함하면 70,000개 이상이 나와있는 것으로 알려져 있습니다.

오랫동안 꾸준히 사랑받아온 많은 플러그인들이 단순한 애드온을 넘어서 워드프레스 설치시 반드시 함께 설치해야 할 필수 플러그인의 위치를 차지하고 있으며, 그 중 몇몇 플러그인은 워드프레스가 버전업을 거듭하는 사이 자연스럽게 워드프레스의 기본 기능으로 흡수되기도 하였습니다.

테마 파일과 마찬가지로, 사용자가 플러그인을 추가로 설치할 때마다 해당 파일들은 코어 파일의 /wp-contents/plugins 폴더 내에 저장됩니다. 워드프레스 테마의 경우 워드프레스의 구동에는 직접 관여하지 않지만, 아예 한 개도 설치되지 않으면 워드프레스 웹사이트의 출력 자체에 문제가 생기기 때문에 적어도 한 개 이상은 반드시 설치가 되어 있어야 합니다. 하지만, 워드프레스의 플러그인의 경우는 워드프레스 코어 파일과 맞물려 기능하지만, 설치된 플러그인이 0개여도 워드프레스 웹사이트 작동에는 전혀 문제가 없다는 특징이 있습니다.

플러그인 설치를 통해 추가할 수 있는 기능은 너무나 다양하기 때문에 일일이 언급하는 것이 불가능하지만, 대부분의 워드프레스 웹사이트들이 반드시 설치하는 필수 플러그인들로는 다음과 같은 것들이 있습니다.

  • SEO(검색 엔진 최적화) 플러그인: 사용자들이 웹사이트나 블로그 운영을 위해 워드프레스를 선택하는 가장 큰 이유 중 하나는 SEO(검색 엔진 최적화)에 강하다는 점입니다. 그러나, SEO는 그 범위가 매우 방대하고 설정해야 하는 사항들이 많으므로 검색 결과에서의 노출을 기대하기 위해서는 SEO 작업에 특화된 플러그인의 도움을 받는 것이 좋습니다. 꽤 오랫동안 Yoast SEO와 All in One SEO Pack이 SEO 플러그인계의 양대 산맥과도 같았는데, 최근에는 인도산 SEO 플러그인 Rank Math도 빠른 속도로 사용자가 증가하고 있습니다.
  • 백업 관리 플러그인: 워드프레스 웹사이트 작업을 하다 보면 예기치 않은 문제가 발생하여 웹사이트를 복구해야 하는 일이 종종 발생하기 때문에, 플러그인 설치 및 기타 중요한 작업을 하기 전에는 반드시 웹사이트 전체 백업을 하는 것이 권장사항입니다. 그리고, 호스팅 이전 등의 서버 이전을 하게 될 경우에도 웹사이트 백업이 필요합니다. 물론 워드프레스 파일과 워드프레스 데이터베이스는 수동으로도 얼마든지 백업이 가능하지만, 워드프레스에 익숙하지 않은 초보 사용자들에게는 다소 쉽지 않을 수 있는 작업이므로, 백업 프로세스를 간소화해주는 백업 관리 플러그인은 필수로 설치해야 할 플러그인입니다. 워드프레스 중급/고급 사용자들도 시간과 에너지 절약을 위해 백업 관리 플러그인을 사용하는 경우가 많습니다. Duplicator나 BackupBuddy를 추천합니다.
  • 캐시 플러그인: 캐시란 자주 요청되는 페이지들을 좀 더 신속하게 로딩하기 위해 임시로 저장해놓는 곳입니다. 이는 웹사이트의 로딩 속도를 빠르게 해주는 장점이 있지만, 플러그인 설치라든지 기타 중요한 작업이 있은 후 업데이트가 바로바로 반영되지 않는 단점도 있기 때문에, 다양한 옵션을 이용하여 캐시를 최적으로 관리해주기 위한 캐시 플러그인이 필요합니다. 사용자가 많은 캐시 플러그인으로는 W3 Total Cache, WP Super Cache, WP Rocket 등이 있습니다. 저는 W3 Total Cache를 사용하다가 현재는 WP Rocket을 사용하고 있습니다.
  • 스팸 차단 플러그인: 워드프레스 웹사이트는 가장 흔한 댓글 스팸부터 트랙백 스팸, 회원 등록 스팸, 양식 등록 스팸 등에 이르기까지 다양한 종류의 스팸에 노출될 수 있습니다. 흔히 볼 수 있는 구글 Captcha나 이중 옵트인 등의 방법들과 스팸 차단용 플러그인을 함께 사용하면 스팸으로부터의 피해를 최소한으로 줄일 수 있습니다. Akismet, Stop Spammers, WordPress Zero Spam 등의 플러그인을 많이 사용합니다.
  • 통계 분석 플러그인: 더 나은 웹사이트를 만들기 위해서는 방문자들의 반응을 모니터링하는 것이 매우 중요합니다. 방문자수, 방문자 유입 통로, 방문자 유입 검색어, 페이지별 조회수 등의 통계 보여주는 Jetpack, MonsterInsights 등의 통계 플러그인도 워드프레스 설치시 함께 설치하는 필수 플러그인입니다.
  • 양식 등록 플러그인: 방문자들과의 인터랙션을 위해 방문자로부터 다양한 양식을 받을 수 있는 양식 등록 플러그인도 반드시 있어야 할 플러그인 중 하나입니다. 양식 등록 플러그인을 설치하면 방문자들로부터 문의나 피드백, 설문조사, 회원 등록, 뉴스레터 구독 등 다양한 양식을 받을 수 있습니다. Contact Form 7, Gravity Form, WPForms 등이 인기있는 양식 플러그인들입니다.
  • 소셜미디어 공유 플러그인: 블로그 게시물이나 웹사이트 내의 페이지에 소셜미디어용 공유 버튼을 출력해주는 플러그인으로, 소셜미디어와 공유의 비중이 갈수록 커지고 있는만큼 대부분의 사용자들이 필수로 설치하는 플러그인이라 할 수 있습니다. Jetpack, Social Share Button, Smash Balloon 등이 여전히 많이 사용하는 소셜미디어 공유 플러그인들입니다.
  • 일정 예약 플러그인: 방문 예약, 컨설팅 예약, 회의 예약, 클래스 예약 등 온라인으로 예약을 받아야 하는 웹사이트의 경우, 양식 등록 플러그인으로도 어느 정도 약식으로 구현이 가능하긴 하지만, 좀 더 본격적인 예약 관리를 위해서는 일정 예약 전용 플러그인이 필요하게 됩니다. Booking Calendar, BookingPress, Simply Schedule Appointments 등 좋은 플러그인들이 많이 나와있습니다.

워드프레스 기본 구조 – 워드프레스 데이터베이스


워드프레스 파일과는 별개로 완전히 다른 또 하나의 부분인 워드프레스 데이터베이스가 있습니다. 워드프레스 파일이 워드프레스의 기능적 부분을 담당한다면 워드프레스 데이터베이스는 정보 저장을 담당한다고 할 수 있습니다. 저장되는 정보들은 주로 다음과 같은 것들입니다.

  • 게시물과 댓글 등의 사용자 콘텐츠
  • 아이디, 비밀번호, 이메일 등의 사용자 정보
  • 웹사이트 설정 정보
  • 플러그인 및 테마 설정 정보

즉, 워드프레스 설치 시, 파일 설치가 끝나면 바로 이어 앞으로 사용할 데이터베이스를 설치하도록 되어 있고, 데이터베이스 설치까지 문제없이 끝나야만 비로소 워드프레스의 설치가 완료되어 웹사이트 홈 화면을 무사히 볼 수 있게 됩니다. 워드프레스가 사용하는 데이터베이스는 가장 널리 알려진 오픈소스 관계형 데이터베이스 관리 시스템(RDBMS: Relational Database Management System)인 MySQL입니다.

워드프레스 웹사이트를 지원하는 대부분의 호스팅 업체는 기본적으로 서버에 MySQL이 설치되어 있기 때문에 사용자는 크게 신경쓸 필요가 없고, 워드프레스가 wp_config.php 파일 내 DB 설정 정보를 참조하여 데이터베이스 생성 및 테이블 구성까지 완료해줍니다. 정보를 저장하고, 조건에 맞게 꺼내오고, 수정하고, 삭제하는 일련의 작업들도 마찬가지로 워드프레스 파일 내 SQL 쿼리문에 의해 처리됩니다. 사용자가 직접 데이터베이스에 접근해야 하는 경우에도, 호스팅사에서 제공하는 GUI (Graphic User Interface) 데이터베이스 관리 도구인 phpMyAdmin를 사용하면 SQL 쿼리문 입력 없이 데이터베이스를 핸들링하는데 전혀 무리가 없습니다.

워드프레스 파일과 워드프레스 데이터베이스는 사용자의 클릭이 발생할 때마다 서로 끊임없이 커뮤니케이션하며 워드프레스 웹사이트가 무사히 기능하도록 협업하고 있지만, 워드프레스 파일에 어떠한 오류나 문제가 발견되었다고 해서 워드프레스 데이터베이스에 영향이 가는 것은 아니며, 반대의 경우도 마찬가지입니다. 따라서, 백업시에도 워드프레스 파일과 워드프레스 데이터베이스는 별도로 백업하도록 되어 있습니다.

워드프레스가 설치될 때 기본적으로 설치되는 테이블은 다음과 같으며, 플러그인의 종류에 따라 설치시 테이블을 추가 생성하는 경우도 있습니다.

  • wp_comments: 게시물(포스트) 댓글이 저장됩니다.
  • wp_commentsmeta: 게시물(포스트) 댓글의 메타데이터가 저장됩니다.
  • wp_links: 링크 관리자 메뉴를 사용하는 경우, 해당 링크 정보가 저장됩니다.
  • wp_options: 워드프레스 설정 내용이 저장됩니다.
  • wp_postmeta: 게시물(포스트)의 메타데이터가 저장됩니다.
  • wp_posts: 게시물(포스트와 페이지) 관련 정보, 그리고 메뉴 정보가 저장됩니다.
  • wp_terms: 게시물(포스트) 카테고리와 태그 등의 값이 저장됩니다.
  • wp_term_relationships: 게시물(포스트) 카테고리와 태그 등의 상호 연결 정보가 저장됩니다.
  • wp_term_taxonomy: 게시물(포스트) 카테고리와 태그 등의 분류 기준 정보가 저장됩니다.
  • wp_users: 등록된 사용자에 대한 정보가 저장됩니다.
  • wp_usermeta: 등록된 사용자의 메타데이터가 저장됩니다.

Leave a Reply

Your email address will not be published. Required fields are marked *