본문 바로가기
PHP

Wordpress

by enough 2023. 4. 4.

전 회사에서 워드프레스르 작업하는 일이 많았습니다.

wordpress로 뭔 개발작업이냐 하실 수 있는데 처음엔 아마 웹페이지를 빨리 만들 수 있다는 장점때문에 썼나봅니다.

템플릿작업(html, css, javascript)은 themes 에서 하고 백엔드는 plugin 형태로 만들어서 구동했습니다.

CMS이긴 하지만 나름 개발작업에 필요한 많은 내장라이브러리가 존재합니다.

예를 들면 데이트베이스에 고정테이블인 wp_users 에 대한 모델객체를 불러오는 get_users() 나,

http client인 WP_Http 객체를 반환하는 wp_remote_request() 등 다양한 객체와 헬퍼함수들을 사용할 수 있습니다.

 

개발작업에 있어서 가장 핵심적인 기능은 바로 훅(hook)이라는 개념입니다.

아무래도 CMS다 보니 프레임워크처럼 자유로이 비지니스 로직을 구현할 수 있는 게 아닙니다.

워드프레스 자체가 이미 하나의 완성된 웹애플리케이션이고   

워드프레스의 라이프사이클에서 수많은 액션 전후에 모두 훅이 심어져있습니다.

우리는 그러한 훅에 우리의 코드를 끼워넣는 방식으로 작업을 하는거죠.

plugin 도 그 수많은 훅 중에 하나입니다.

 

다들 라이브러리랑 프레임워크에 대한 차이를 설명할 때 라이브러리는 우리가 가져다 쓰는 도구 같은거고,

프레임워크는 우리가 규칙을 지키면서 프레임워크의 형식에 맞춰 개발하는 거라고 한다면

워드프레스는 우리가 워드프레스의 라이프사이클에 묻어서 가는 느낌인 것 같습니다.

그만큼 개발자가 발휘할 수 있는 여지가 매우 적다는 얘기죠.

저는 개인적으로 매우 마음에 안들었던 부분이 페이지 라우팅에 대해 프로그래밍적으로 접근할 수 없다는 것입니다.

페이지 라우팅은 모두 워드프레스 관리지페이지에서 CMS 기능으로 페이지를 생성하는 방식으로 진행되며 데이터베이스에 저장됩니다.

기타 웹프레임워크처럼 http요청에 대한 라우팅 처리를 코드에서 작성할 수 없습니다.

그로인해 프로젝트 스타터킷을 만들어도 소스코드뿐만 아니라 데이터베이스까지 따라다녀야 하는 번거로움이 있었습니다.

 

프로젝트에 게시판을 만들어야 하는 작업이 있다하면 워드프레스 플러그인 중에 Kboard 라는 게시판 모듈을 사용했습니다.Kboard는 작업 시 템플릿에 대해 자유롭게 코딩할 수 있었지만 각종 초기설정은 여전히 CMS기능으로 설정해야 했고

스타터킷을 만들 시 마이그레이션 작업까지 해야만 제대로 작동되는 단점은 여전했습니다.

 

그리고 워드프레스에 많은 내장라이브러리 있었어도 처음에는 있는 줄도 잘 몰랐어서 거의 퓨어코딩을 하다시피 작업을 해왔었고 또한 워드프레스의 개발적 한계도 느끼기 시작하여 1년간의 사용 끝에 프레임워크 쪽으로 관심을 돌리기 시작했습니다.

 

처음에는 언어전향을 고려하기도 했지만 이미 php로 쌓은 커리도 있고 또 새로운 언어에 새로운 프레임워크까지 더하면 너무 많은 비용이 들가봐 php에 좋은 프레임워크만 찾아보기로 했습니다.

그러던 참에 같이 일하던 동료분한테서 라라벨이 인기가 많다는 이야기를 들었습니다.

php는 입지가 별로여도 라라벨만은 대우가 다르다고 하더군요.

 

다음에는 라라벨에 대하여 이야기 해보도록 하겠습니다.

감사합니다.

'PHP' 카테고리의 다른 글

PHP에 대한 이해  (0) 2023.04.04