내가 본 워드프레스 핵심 구조 및 기능

(Wordpress Architecture and Function) 

워드프레스(Wordpress)

 

워드프레스는 CMS(Content Management System)으로서 웹사이트를 쉽게 호스팅할 수 있도록 제공되는 오픈소스 솔루션이다. php로 구성되어 있으며 보통 apache, mysql(mariadb)와 같이 연동되어 구성된다.

 

워드프레스 구조, php를 전혀 몰랐을 때 워드프레스의 구조와 각종 기능들이 어떻게 연동되며 동작하는 지 몰라 많이 헤멨었던 기억이 난다. 그동안에 여러 블로그와 책들을 봤지만 내가 원하는 핵심적으로 워드프레스의 구조와 기능을 설명하는 글은 딱히 찾아보지 못했고 워드프레스의 admin 페이지와 php 소스 코드를 분석해보고 나서 워드프레스가 어떻게 돌아가는 지 겨우 감을 잡을 수 있었다.

 

워드프레스의 핵심 구조만 알면 wp-admin 페이지에서 수정하기 어려웠던 커스텀 테마나 여러 기능들을 직접 php 코드나 DB의 데이터를 수정하면서 손쉽게 바꿀 수 있다. 이제 내가 생각하는 워드프레스의 핵심 구조와 기능을 알아보겠다.

 

워드프레스 구조(Wordpress Architecture)

 

워드프레스는 php 뭉치라고 생각하면 된다. wp-admin, wp-content, wp-includes 같은 핵심 디렉터리 밑에 하위 디렉터리로 나뉘어 있지만 결국에는 php 코드로 이루어진 솔루션이다. 이 php는 html 코드를 동적으로 생성하고 이 php가 만들어준 동적인 html에 css와 js가 적용되어 프론트 페이지가 사용자에게 전달되는 것이다. 처음에 칼립소 admin 페이지가 React 기반의 nodejs라고 해서 워드프레스가 javascript로 바뀌는 건가 생각했지만 아니다. 핵심 기능은 php코드로 다 작성되어 있다. 

 

워드프레스는 php 뭉치와 그것을 뒷받침 해주는 html, css, js  솔루션이라고 다시 한 번 말하고 싶다.

 

보통 아래와 같이 워드프레스 구조가 구성된다. (DB로는 mariaDB 혹은 mysql을 쓴다)

 

 

  • 사용자가 워드프레스 기반 웹사이트의 URL을 타고 들어가 HTTP 요청을 한다. 
  • HTTP SERVER(Apache) 서버는 이 요청을 받아 Wordpress의 PHP 모듈에 동적인 HTML 페이지를 요청하게 된다.
  • Wordpress는 이 요청을 받아 필요하면 DBMS에 데이터를 저장하거나 받아와 동적인 HTML 페이지를 만들고 HTTP SERVER에게 보낸다.
  • HTTP SERVER는 동적으로 생성된 HTML 페이지를 사용자에게 전달한다.

 

정말 단순하다. 이렇게 보면 Wordpress에 어떤 문제나 수정사항이 발생하였을 때 어느 부분을 보면 되고 디버깅해야 되는 지 쉽게 보인다.

 

예로들어 Wordpress 사이트에 특정 페이지의 데이터가 잘못 표기되는 문제가 발생했다고 하자. 그렇다면 Wordpress가 어떤 데이터를 쓰는지 php코드를 통해 확인하고 이 데이터가 MariaDB에 어떻게 저장되어 있는 지 확인하면 되는 것이다.

 

만약 404 Not Found 코드가 떴을 경우에는 먼저 HTTP SERVER가 잘못 설정되어 있는 지 혹은 실제 잘못된 URL이 매핑되어 있는지 확인하면 되는 것이다.

 

워드프레스 기능

 

워드프레스는 사용자가 쉽게 웹사이트를 제작할 수 있도록 테마와 플러그인을 설치할 수 있는 환경을 제공한다. 단순히 테마만 설치하면 꽤나 그럴싸한 웹사이트를 제작할 수 있고 플러그인을 설치하면 직접 javascript로 개발해야하는 기능을 손쉽게 적용가능하다.

 

이 테마와 플러그인은 {SITE_URL}/wp-admin 에 들어가면 쉽게 설치할 수 있으며 가이드를 자세히 읽어보지 않더라도 매우 직관적으로 사용자가 편리하게 되어 있다.

 

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

 

 

위 사진은 내가 유료 테마를 사서 적용한 사이트의 admin 페이지다. 처음 사용 시 조금 헤메겠지만 개발자들은 조금 클릭만 하면 금방 적응할 수 있도록 아주 직관적으로 UI 설계가 잘 되어 있다.

 

무료 테마 혹은 유료 테마를 적용해서 사이트를 만들면 아래와 같이 아주 그럴싸한 웹사이트 UI가 완성된다.

 

<유료 테마 적용 realhomes - http://modern.realhomes.io/>

 

그리고 위 테마를 만들기 위해 여러 기능을 제공하는 플러그인들이 설치된다. 이 플러그인 기능을 이용하면 각종 payment 결제, 소셜 로그인, 페이지 템플릿 툴 등을 손쉽게 사용할 수 있다.

 

역시 plugin들과 theme들도 php코드 및 css, js, html로 구성되어 있다. theme들과 plugin 들은 wp-content 디렉터리 밑에 설치되며 wp-admin에서 바꾸기 어려운 부분을 바꾸고 싶다면 themes 디렉터리에 들어가서 그 기능이 구현된 php 코드를 찾아 수정하면 된다. 수정하는 방법도 위 아키텍처를 이해하고 적응이 되면 그리 어렵지 않다. 

 

 

| 워드프레스와 DB

 

워드프레스는 페이지 구현에 필요한 데이터와 각종 옵션들을 DB에 저장하여 관리하고 있다. 여기서 중요한 것은 각 DB들이 어떤 역할을 하는 것을 파악하는 것이다.

 

 

 

예로 wp_options 테이블은 워드프레스 사이트의 각종 설정값과 제목, 링크값들을 모아놓은 테이블로서 워드프레스 php 코드가 이 테이블을 참조하여 각종 정보를 읽어들인다. 

 

 



출처: https://engkimbs.tistory.com/870 [새로비]

 

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
128 Creating a Website Design Templating System Using PHP 졸리운_곰 2021.02.13 22
127 Build a CRUD Operation using PHP & MongoBD 졸리운_곰 2021.01.04 23
126 CRUD Operation using PHP & Mongodb file 졸리운_곰 2021.01.04 26
125 PHP and MongoDB Connection file 졸리운_곰 2021.01.04 62
124 PHP 기반의 Micro Frameworks 정리 졸리운_곰 2020.12.02 50
123 CKEditor 4 설치와 PHP 연동 하기 file 졸리운_곰 2020.11.22 47
122 [php] CKeditor 설정 및 적용 졸리운_곰 2020.11.22 37
121 [PHP]Fuelframework 설치 및 시작 방법(window10,xampp) file 졸리운_곰 2020.10.01 34
120 Building a Simple Blog App with MongoDB and PHP file 졸리운_곰 2020.09.13 50
119 웹 설문조사 시스템 & 설문조사를 잘 하는 방법 file 졸리운_곰 2020.09.10 185
118 ReactPHP Series 졸리운_곰 2020.07.01 50
117 Building a RESTful API Using ReactPHP and MySQL file 졸리운_곰 2020.07.01 44
116 [PHP 웹개발] MySQL 데이터베이스에서 mysqli(MySQL Improved) 사용법 졸리운_곰 2020.05.07 37
115 PHP 파일 업로드와 다운로드 만들기 file 졸리운_곰 2020.05.07 372
114 HOW TO INTEGRATE R WITH PHP : php와 R 언어의 연동 file 졸리운_곰 2020.05.05 243
113 XAMPP, PhpStorm, Hello World 출력하기 졸리운_곰 2020.03.27 40
112 Pico is a stupidly simple, blazing fast, flat file CMS. file 졸리운_곰 2020.03.19 30
111 directorylister php 사용법 file 졸리운_곰 2020.03.18 129
110 flat file 플랫파일시스템 : GRAV CMS file 졸리운_곰 2020.03.18 60
» 내가 본 워드프레스 핵심 구조 및 기능 (Wordpress Architecture and Function) file 졸리운_곰 2020.02.20 34
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED