조금 더 기술적인 이야기: 당사의 자체 쇼트코드 매핑을 구현한 방법

작성자

카테고리:

,

How-We-Made-Our-Version-Of-Shortcode-Mapping-Happen-2이전 글에서는 쇼트코드 매핑의 기본 원리와 이를 통해 얻을 수 있는 유용한 이점에 대해 논의했습니다. 이어지는 내용이 다소 기술적일 수 있어, Page Builder Sandwich 버전의 쇼트코드 매핑을 다루는 글을 나누어 작성하기로 결정했습니다.

아래에는 저희 쇼트코드 매핑 기능의 내부 작동 방식과 이를 구현해 낸 과정에 대한 심도 있는 설명이 나와 있습니다.

자동화된 프로세스

쇼트코드 매퍼에 포함할 플러그인을 결정하기 위해, 다음 기준에 따라 워드프레스 플러그인 디렉터리에서 주요 플러그인을 수집하는 자동화 스크립트를 제작했습니다:

  • 인기 순위, 평점 및 업데이트 기준 상위 1,000개 플러그인 중 활성 설치 수 최소 4,000회 이상,
  • 활성 설치 수 최소 4,000회 이상,
  • 최소 20개 이상의 평가 수, 그리고;
  • 평균 평점 3점 이상

저희는 워드프레스 플러그인 디렉터리를 대상으로 매일 이 쿼리를 실행합니다. 이러한 필터를 통해 많은 사람들이 사용하는 양질의 플러그인 목록을 확보할 수 있습니다. 이 글을 작성할 당시, 이 기준에 부합하는 플러그인은 800개에 달했습니다. 정말 많은 수치입니다. 정말로요.

쇼트코드 매핑을 위해 감지된 가장 인기 있는 플러그인 중 일부.
쇼트코드 매핑을 위해 감지된 가장 인기 있는 플러그인 중 일부.

그런 다음 각 플러그인의 소스 코드에 대한 일련의 자동화된 검사를 실행하여 쇼트코드가 포함되어 있는지 확인하고, 모든 속성을 포함한 해당 쇼트코드를 모두 찾아냅니다. 데이터를 분석한 결과, 2,000개가 넘는 쇼트코드가 추출되었습니다. 정말 엄청납니다. 이렇게 감지된 쇼트코드는 수동 검토를 위해 쇼트코드 매핑 데이터베이스에 입력됩니다.

이 프로세스가 끝나면 방대한 플러그인 목록과 각 플러그인이 가질 수 있는 쇼트코드 목록이 완성됩니다. 이제 모든 데이터가 올바른지 확인하기 위해 이 데이터를 정제하는 일만 남았습니다.

수동 프로세스

이것이 아마 전체 매핑 시스템에서 가장 어려운 부분일 것입니다. 플러그인 코드는 형태와 구조가 제각각이어서 모든 쇼트코드가 스크립트에 의해 자동으로 감지되는 것은 아닙니다. 워드프레스 코덱스(WordPress Codex)에는 쇼트코드의 속성을 필터링하기 위해 `shortcode_atts` 함수를 사용하라고 나와 있지만, 이는 권장 사항일 뿐이며 모두가 이를 따르는 것은 아닙니다. 또한 플러그인이 설치되었을 때 쇼트코드의 내부를 확실하게 확인할 수 있는 방법도 없습니다.

따라서 모든 쇼트코드와 해당 속성을 올바르게 파악할 수 있도록, AngularJS와 Bootstrap으로 쇼트코드 및 속성 편집 전용 프런트엔드 영역을 구축했습니다.

매핑된 모든 쇼트코드를 수정하기 위한 Bootstrap 및 AngularJS 인터페이스.
매핑된 모든 쇼트코드를 수정하기 위한 Bootstrap 및 AngularJS 인터페이스.

저희는 모든 플러그인을 일일이 수동으로 살펴보면서 쇼트코드 문서를 확인하고 수집된 모든 데이터가 올바른지 점검해야 합니다.

매우 고되고 지루한 작업이긴 하지만, 자동화 프로세스를 마련해 둠으로써 얻는 긍정적인 면도 있습니다:

  • 초기 통계에 따르면 플러그인 2개 중 1개 정도에만 쇼트코드가 있습니다.
  • 감지된 쇼트코드 중 절반은 속성이 없습니다(하지만 이 중 일부는 오탐지일 수 있습니다).
  • 양질의 플러그인만을 수집하기 때문에, 대부분 쇼트코드 문서가 잘 갖추어져 있습니다.

플러그인의 모든 쇼트코드가 확인된 후에야 비로소 서버에서 해당 플러그인의 쇼트코드 매핑을 사용자에게 배포하기 시작합니다.

REST API 호출

퍼즐의 마지막 조각은 플러그인 자체입니다. 개념은 간단합니다. 어떤 플러그인이 활성화되어 있는지, 사이트에서 어떤 테마를 사용하고 있는지, 어떤 쇼트코드를 사용할 수 있는지 파악한 다음, 쇼트코드 매핑 데이터베이스에 매핑 정보가 있는지 확인하는 것입니다. 이를 위해 모든 클라이언트가 최신 쇼트코드 매핑을 받아올 수 있도록 핑을 보내는 커스텀 WP REST API 엔드포인트를 만들었습니다.

미래: 크라우드소싱

각 플러그인을 수동으로 확인하는 일에는 많은 시간과 노력이 필요합니다. 쇼트코드 매핑 플랫폼이 안정화되면, 누구나 참여할 수 있도록 쇼트코드 매핑을 공개할 계획입니다. 즉, 누구나 쇼트코드 추가를 도울 수 있게 됩니다.

여러분은 “내가 왜 쇼트코드 매핑을 도와야 하지? 내게 무슨 이득이 있지?”라고 생각하실 수도 있습니다. 사람들이 기꺼이 돕고자 하는 몇 가지 이유를 생각해 볼 수 있습니다:

  1. 플러그인을 직접 개발했는데 위 기준 때문에 아직 감지되지 않았고(워드프레스 플러그인 디렉터리에 등록되어 있다면), 직접 매핑을 추가할 수 있습니다. 개발하신 플러그인이 PBS에서 완벽하게 지원됩니다!
  2. 자동화 프로세스에서는 워드프레스 플러그인 디렉터리에 있는 플러그인만 다루기 때문에 프리미엄 플러그인 및 테마 제작자는 포함되지 않습니다. 따라서 해당 플러그인/테마를 보유하고 있다면 이에 대한 쇼트코드 매핑을 직접 추가할 수도 있습니다.
  3. 플러그인 제작자가 아닌 분들을 위해, 도움을 주시는 분들께 보상을 제공할 수도 있습니다. 쇼트코드 매핑을 매력적인 작업으로 만들기 위해, 흔쾌히 도와주신 분들께 PBS 개인 라이선스 또는 프리미엄 라이선스 업그레이드로 보답할 수 있습니다!

뉴스레터 구독하기

쇼트코드 매핑 기능은 고객 여러분을 위해 2016년 8월 12일  8월 15일  8월 16일에 잠정 출시될 예정입니다. 이때까지 모든 쇼트코드가 매핑되지는 않겠지만(약 100개 플러그인 예상), 매핑 작업은 지속적으로 진행되며 새로운 매핑이 출시되는 대로 고객에게 제공될 것입니다.

쇼트코드 매핑에 대한 소식, 출시 일정, 대중에게 공개되는 시점에 대한 정보를 받아보시려면 뉴스레터를 구독하세요!