워드프레스의 액션(Actions)과 필터(Filters)

액션(Actions)과 필터(Filters)를 빼놓고는 워드프레스 개발을 얘기할 수 없다. 즉, 워드프레스의 훅(Hooks)을 이해나는 것이 매우 중요하다는 것이다.

간단히 말하자면, 테마나 플러그인을 개발하고, 기타 커스터마이징 개발을 하는데, 훅(Hooks)을 이용하여 기능을 수정하거나 다양하게 확장할 수 있다는 말이다.

하지만 문제는 이 두가지 특성이 워드프레스에서 가장 중요하게 여겨지는 부분이긴 하지만, 반면 가장 잘못 이해되고 무시된다는 점이다.

이런 점에서 워드프레스의 페이지 특성을 살펴보고, 훅이 어떻게 작동하는지, 또한 액션과 필터의 차이점은 무엇인지를 알아봄으로써, 단순히 좋은 테마와 플러그인을 만드는 것 뿐 아니라, 워드프레스 자체의 동작 원리에 대해 깊이 이해할 수 있는 기회로 삼고자 한다.

워드프레스에서 페이지가 브라우저에 뿌려지는 원리

워드프레스의 훅을 얘기하기 전에, 먼저 워드프레스에서 하나의 페이지가 브라우저에 뿌려졌다가 사라지는 원리에 대해 이해하는 것이 중요하다.

[quote author=””]워드프레스에서 하나의 페이지가 브라우저에 뿌려지는 동작은, 브라우저가 페이지를 호출하는 순간부터 서버가 그 결과를 브라우저에 다시 뿌려주는 순간까지 이벤트의 연속이외에는 아무것도 없다.[/quote]

예를 들어, 싱글 페이지가 로딩되는 것을 예로 보자. 싱글 페이지가 로딩될 때 아래와 같은 동작들이 일어난다.

  • 요청된 싱글 페이지 아이디(ID)를 찾는다.
  • 이 ID를 이용하여 DB에서 페이지를 호출한다.
  • DB에서 연관된 데이터를 호출한다. (카테고리, 태그, 이미지 등)
  • 그 싱글 페이지와 관련된 코멘트를 호출한다.
  • 브라우저에 모든 데이터를 뿌려준다.

템플릿 파일들과 모든 API 호출은 그 이후에 데이터를 브라우저에 뿌려줄 때 랜더링을 하거나 스타일링, 그리고 데이터의 위치 등을 위해 작동하게 되는 것이다.

간단해 보이지만 어떤 복잡한 웹사이트의 경우나 여러분이 개발한 여러 웹사이트를 돌이켜 생각해보면, 이러한 프로세스가 얼마나 복잡하고 어려운 것인지 느낄 수 있을 것이다.

이번에 얘기할 내용은 가장 단순한 경우를 예로 들 것이다. 캐싱 메커니즘이나 워드프레스 기반의 프로젝트를 수행할 때 종종 논의되는 고급 사항들은 포함되지 않을 것이다.

유명한 워드프레스 개발자이자 queryposts.com에서 일하는 Rarst라는 개발자는, 다음과 같은 그래픽을 통하여 워드프레스 엔진이 로딩될 때 동작하는 것들을 자세히 설명해주고 있다.

 

출처: http://wp.tutsplus.com/tutorials/the-beginners-guide-to-wordpress-actions-and-filters/