WordPress 하트비트 API를 관리하는 방법

게시 됨: 2023-01-31

WordPress Heartbeat API는 거의 10년 동안 사용되었습니다. WordPress 대시 보드와 호스트 서버 간의 원활한 실시간 통신을 제공했습니다. WordPress 코어에 내장된 Heartbeat API는 웹 사이트 관리 경험을 크게 향상시킬 수 있는 강력한 기능을 제공합니다.

그러나 이 힘에는 대가가 따른다. 통신을 원활하게 실행하는 데 필요한 서버 리소스의 수입니다. 리소스 집약적인 웹 사이트를 실행하거나 호스팅 공급자가 메모리 및 CPU 시간에 엄격한 제한을 가하도록 하면 Heartbeat API가 역할을 할 수 있는 눈에 띄는 성능 저하가 발생할 수 있습니다.

이 가이드에서는 WordPress Heartbeat API의 잠재력과 WordPress 생태계에서의 역할을 알아봅니다. Heartbeat API의 작동 방식을 배우게 됩니다. 또한 WordPress 사이트에서 활동을 제한해야 하는 이유도 알아봅니다. 이렇게 하면 호스팅 계획을 업그레이드하지 않고도 더 나은 성능을 얻을 수 있습니다.

WordPress 하트비트 API란 무엇입니까?

WordPress Heartbeat API는 서버와 WordPress 대시보드 간의 실시간 통신을 가능하게 하는 WordPress 코어에 내장된 인터페이스입니다. Heartbeat API는 2013년 WordPress 3.6 출시와 함께 처음 도입되었습니다. 콘텐츠 관리 및 웹 사이트 관리의 기타 주요 영역에 대한 주요 개선 사항을 제공했습니다.

워드프레스 하트비트 API

하트비트 API가 중요한 이유는 무엇입니까?

WordPress 대시보드는 주로 클라이언트 측 애플리케이션입니다. 이는 대부분의 작업이 사용자의 브라우저에서 발생함을 의미합니다. 프런트 엔드 애플리케이션으로서 WordPress 관리 영역은 웹 사이트 콘텐츠 및 기타 주요 정보가 저장되는 WordPress 데이터베이스에 직접 액세스할 수 없습니다.

제대로 작동하려면 WordPress 대시보드가 ​​서버와 통신하여 데이터를 보내고 받을 수 있어야 합니다. WordPress Heartbeat API와 같은 API(응용 프로그래밍 인터페이스)를 사용하면 새 정보를 표시하기 위해 전체 페이지를 다시 로드하지 않고도 실시간으로 업데이트를 받을 수 있습니다.

원활한 사용자 경험을 제공하기 위해 WordPress 대시보드는 웹 사이트에 로그인하고 작업 중인 WordPress 사용자의 업데이트 지연을 제거할 수 있을 만큼 자주 서버에 요청을 전송합니다. Heartbeat API는 15~120초마다 서버 및 API 호출에 요청을 보냅니다.

세 가지 주요 기능 WordPress Heartbeat API Powers

WordPress Heartbeat API는 웹 사이트 관리를 보다 쉽고 편리하게 만드는 세 가지 주요 기능을 제공합니다. 이러한 기능은 자동 저장, 콘텐츠 잠금 및 실시간 대시보드 알림입니다. 이는 여러 사용자가 동시에 로그인하고 활성화된 커뮤니티 또는 공동으로 편집된 웹 사이트에 특히 중요합니다.

1. 자동 저장 및 수정

자동 저장 및 수정은 WordPress Heartbeat API에서 제공하는 주요 기능 중 하나입니다. 사용자가 블록 편집기에서 작업할 때마다 WordPress는 60초마다 콘텐츠 자동 저장을 수행합니다. 이렇게 하면 변경 사항이 저장되지 않은 상태로 남지 않습니다. WordPress Heartbeat API는 1분마다 서버에 요청을 전송하여 게시물 또는 페이지의 작업 복사본을 새 자동 저장이 실행될 때까지 데이터베이스에 저장합니다.

Heartbeat API로 구동되는 WordPress 자동 저장은 매우 유용합니다. 브라우저 충돌 또는 연결 문제가 발생한 경우 데이터 손실을 방지할 수 있습니다. 자동 저장은 사용자가 만든 수정본을 대체하지 않으며 데이터베이스에 누적되지 않습니다.

2. 콘텐츠 잠금

콘텐츠 잠금은 WordPress Heartbeat API를 통해 WordPress 웹사이트 소유자에게 더 나은 편집 경험을 제공할 수 있는 또 다른 기능입니다. 게시물이나 페이지가 현재 편집 중인 경우 WordPress는 다른 사용자가 변경할 수 없도록 잠급니다. WordPress Heartbeat API는 15초마다 서버에 요청을 보냅니다. 다른 사용자가 편집을 위해 잠긴 콘텐츠를 열면 알림이 표시됩니다.

3. 실시간 대시보드 알림

WordPress Heartbeat API는 플러그인에서 보내는 알림을 포함하여 실시간 대시보드 알림을 지원합니다. Heartbeat API가 제공하는 클라이언트-서버 통신의 안정성으로 인해 수천 명의 WordPress 플러그인 개발자가 이를 애플리케이션에 통합했습니다.

웹 사이트의 관리 영역에서 WordPress Heartbeat API 호출의 기본 간격은 15초입니다. API 기능을 사용하려는 플러그인 개발자는 클라이언트 애플리케이션과 서버 간에 데이터를 교환하기 위한 사용자 지정 간격을 구성할 수 있습니다.

WordPress 하트비트 API는 어떻게 작동합니까?

WordPress Heartbeat API는 AJAX(Asynchronous JavaScript And XML)를 사용하여 관리자 대시보드에서 서버와 통신합니다. 애플리케이션 프로그래밍 인터페이스는 데이터를 수집하고 jQuery 이벤트라고 알려진 것을 통해 전송합니다. admin-ajax 처리기는 데이터를 수신하고 서버 측에서 처리한 후 JSON 형식으로 응답을 준비하고 반환합니다.

WordPress 대시보드가 ​​로드되면 클라이언트 측 코드는 작업에 따라 15~120초마다 실행되도록 간격(틱이라고도 함)을 설정합니다. 하트비트 API 코드는 클라이언트 측에서 데이터를 수집하고 이를 서버와 통신하여 업데이트를 받는 작업을 담당합니다.

하트비트 API 호출의 총 수는 웹사이트에서 동시에 작업하는 활성 사용자 수에 따라 다릅니다. 이는 로드된 WordPress 대시보드 인스턴스의 수와 동일합니다. 여러 브라우저 창에서 WordPress 관리 영역을 열면 여러 사용자가 웹 사이트의 백엔드에 로그인하여 동시에 작업을 수행하는 것처럼 동일한 수의 Heartbeat API 호출이 생성됩니다.

WordPress Heartbeat API 호출을 제한하는 이유는 무엇입니까?

WordPress 하트비트 API 호출을 제한하면 특히 CPU 시간과 관련하여 할당된 서버 리소스 풀이 매우 제한된 WordPress 사이트의 속도를 높이는 데 도움이 될 수 있습니다. 하트비트 API가 웹 사이트 성능 저하의 핵심 문제는 아닐지라도 확실히 고려해야 할 사항입니다.

Heartbeat API가 서버와 통신할 때마다 wp-admin의 admin-ajax.php 파일에 대한 POST HTTP 요청이 작성됩니다. 하트비트 API 호출은 15~120초마다 서버로 전송되고 활성 관리 사용자가 둘 이상인 경우 수가 증가하므로 API가 서버에 과부하를 일으켜 CPU 및 시스템 메모리 사용량이 높아질 수 있습니다.

일부 WordPress 웹사이트 소유자는 Heartbeat API 활동을 진행 중인 DDOS 공격으로 착각할 수도 있습니다. WordPress Heartbeat API 요청은 캐시할 수 없으므로 각 호출은 일정량의 서버 리소스를 사용합니다. 서버가 리소스를 적극적으로 사용하여 API 호출을 처리하는 경우 고객이 웹사이트를 탐색할 때 콘텐츠 렌더링이 지연될 수 있습니다.

하트비트 API를 비활성화하기 전에 고려해야 할 세 가지 사항

Heartbeat API를 완전히 비활성화하는 것은 좋은 생각이 아닙니다. WordPress 대시보드는 대부분 실시간으로 서버와 통신하는 기능을 잃게 됩니다. 하트비트 API가 비활성화되면 더 이상 알림을 받을 수 없습니다. 또한 콘텐츠 잠금, 자동 저장 및 개정을 이용할 수 없습니다.

Heartbeat API를 비활성화하거나 활동을 제한하기 전에 고려해야 할 세 가지 주요 사항은 다음과 같습니다.

  • 호스팅. 웹 사이트에 할당된 CPU 시간과 시스템 메모리 양을 검토합니다. 웹 사이트에서 생성할 수 있는 프로세스 수에 제한이 있습니까?
  • 웹사이트 관리에 소요되는 시간. 관리 및 콘텐츠 게시에 얼마나 많은 시간을 할애합니까? 워드프레스 대시보드와 백엔드 인터페이스에서 동시에 작업하는 활성 사용자는 몇 명입니까?
  • 일일 트래픽이 수신되었습니다. 워드프레스 웹사이트의 일일 방문자 수는 몇 명입니까? 서버의 부하를 완화하기 위한 캐싱 솔루션이 있습니까?

웹 사이트 유형 및 현재 호스팅 설정에 따라 WordPress Heartbeat API 호출 수를 제한하면 전체 성능에 다른 영향을 미칩니다. 정기적인 유지 관리 및 콘텐츠 게시를 수행하는 여러 사용자가 있는 리소스 집약적인 WordPress 사이트를 실행하는 경우 Heartbeat API 호출 수를 줄이는 것이 매우 유용할 수 있습니다. 또한 증가하는 트래픽 양을 수용하기 위해 호스팅 비용이 증가하는 것을 방지할 수 있습니다.

플러그인으로 WordPress Heartbeat API를 관리하는 방법

WordPress Heartbeat API 요청을 관리하는 가장 쉬운 방법은 이를 위해 설계된 WordPress 플러그인을 사용하는 것입니다. 활용할 수 있는 다양한 솔루션이 있습니다. WP Rocket에서 개발한 Heartbeat Control은 최고이자 가장 인기 있는 것 중 하나입니다.

하트비트 제어

WordPress 대시보드에서 Heartbeat Control 플러그인을 설치하고 활성화합니다. 설정 > 하트비트 제어 로 이동하여 플러그인 구성을 엽니다. Heartbeat Control을 사용하면 다음 옵션을 사용하여 웹 사이트의 프런트엔드, WordPress 대시보드 및 블록 편집기에서 Heartbeat API의 활동을 관리할 수 있습니다.

  • 하트비트를 허용합니다. 이 옵션이 활성화되면 플러그인은 어떤 식으로든 Heartbeat API 호출을 제한하지 않습니다.
  • 하트비트를 비활성화합니다. 하트비트를 비활성화하면 WordPress 웹사이트의 선택한 영역에서 모든 API 호출이 차단됩니다.
  • 하트비트 수정. 15~300초 범위에서 WordPress Heartbeat API 호출에 대한 사용자 지정 간격을 설정할 수 있습니다.
하트비트 제어

대부분의 경우 WordPress Heartbeat API 호출에 대해 더 큰 간격을 구성하는 것이 최선의 조치입니다. 예를 들어, 웹 사이트의 세 영역 모두에서 API 호출 수를 5분마다 한 번으로 제한하면 Heartbeat API를 모두 비활성화하는 것과 동일한 효과가 전체 성능에 나타납니다.

블록 편집기에서 하트비트 API 활동을 제한하면 편집 중인 콘텐츠에 대한 변경 내용이 손실되지 않도록 수정본을 더 자주 저장해야 할 수 있습니다. 자동 저장에 의존하지 않고 콘텐츠 잠금이 필요하지 않은 경우 Gutenberg에서 WordPress Heartbeat API를 모두 비활성화할 수 있습니다.

플러그인 없이 WordPress Heartbeat API 호출을 제한하는 방법

WordPress 후크를 사용하여 플러그인 없이 WordPress Heartbeat API 호출을 제한할 수 있습니다. 웹 사이트의 활성 테마 functions.php 파일에 몇 줄의 코드를 추가하면 Heartbeat API를 비활성화하거나 API 호출에 대한 사용자 정의 간격을 지정할 수 있습니다.

WordPress에는 관리자 대시보드에서 functions.php를 수정할 수 있는 테마 편집기가 내장되어 있습니다. 그러나 iThemes Security Pro와 같은 대부분의 WordPress 보안 플러그인은 웹사이트가 손상될 경우를 대비하여 이 기능을 비활성화합니다.

호스팅 제어판에서 제공하는 파일 관리자 인터페이스를 사용하거나 FTP 또는 SSH를 통해 웹사이트 파일에 연결하여 파일을 편집할 수 있습니다. Kadence WP가 선택한 WordPress 블록 테마인 경우 WordPress 콘텐츠 디렉터리 내의 Kadence 폴더에서 functions.php 파일을 찾을 수 있습니다.

functions.php 파일에 추가된 모든 코드는 테마의 다음 업데이트에서 덮어쓸 가능성이 높습니다. 따라서 플러그인을 사용하여 WordPress Heartbeat API를 관리하는 것이 더 나을 수 있습니다. 자식 테마를 사용하는 경우 부모 테마가 업데이트될 때 덮어쓸 위험 없이 functions.php 파일을 변경할 수 있습니다.

WordPress 사이트의 백업을 먼저 저장하는 것을 잊지 마십시오.

백업 저장은 웹 사이트 관리의 중요한 부분입니다. 이렇게 하면 오류를 복구하고 긴급 상황에서 웹 사이트를 신속하게 복원할 수 있습니다. WordPress 코어 또는 테마 파일을 편집하기 전에 웹 사이트를 백업했는지 확인하십시오.

WordPress 백업 플러그인을 사용하면 강력한 백업 전략을 세울 수 있습니다. 필요할 때마다 웹 사이트의 작업 사본을 갖게 됩니다. 웹 사이트 백업을 원격 위치에 저장하고 BackupBuddy로 사용자 지정 백업 일정 및 원 클릭 복원을 활용하십시오.

하트비트 API 비활성화

아래 작업을 추가하면 Heartbeat API를 중지하여 모든 API 호출을 효과적으로 비활성화할 수 있습니다. 이를 위해 아래의 코드 스니펫을 functions.php의 맨 아래에 추가합니다.

function wb_stop_heartbeat() {
 wp_deregister_script('heartbeat');
}
add_action('init', 'wb_stop_heartbeat', 1);

동일한 방식으로 WordPress Heartbeat API에서 특정 기능을 비활성화할 수 있습니다.

function disable_autosave() {
 wp_deregister_script('autosave');
}
add_action('admin_init', 'disable_autosave');

하트비트 API 호출에 대한 사용자 지정 간격 구성

WordPress Heartbeat API 호출을 제한하기 위해 API 요청에 대한 사용자 지정 간격을 구성하는 필터를 지정할 수 있습니다. 다음 코드 스니펫은 Heartbeat API 호출을 분당 하나의 요청으로 제한합니다.

function wb_set_heartbeat_time_interval($settings) {
 $settings['interval']=60;
 return $settings;
}
add_filter('heartbeat_settings', 'wb_set_heartbeat_time_interval');

WordPress 자동 저장을 위한 사용자 지정 간격 구성

WordPress를 사용하면 AUTOSAVE_INTERVAL 상수를 재정의하여 자동 저장에 대한 사용자 지정 간격을 구성할 수 있습니다. 다른 상수와 마찬가지로 기본 WordPress 구성 파일에 다음 줄을 추가하여 새 값을 할당할 수 있습니다.

define('AUTOSAVE_INTERVAL', 300);

간격을 더 큰 값(예: 3600(1시간))으로 할당하여 WordPress 자동 저장을 모두 비활성화할 수 있습니다. wp-config.php에 구성된 WordPress 상수는 WordPress 업데이트 중에 수정되지 않습니다. 나중에 재정의할 필요가 없습니다.

마무리

WordPress의 하트비트 API는 AJAX 호출을 사용하여 실시간 클라이언트-서버 통신을 가능하게 하는 WordPress 코어에 내장된 주요 기능 중 하나입니다. 애플리케이션 프로그래밍 인터페이스를 통해 WordPress는 서버와 WordPress 대시보드 간에 데이터를 교환하여 더 나은 관리 경험을 제공할 수 있습니다.

하트비트 API는 1분에 여러 번 서버에 요청을 보냅니다. 이로 인해 서버의 부하가 증가하고 성능이 저하될 수 있습니다. 플러그인을 사용하거나 WordPress 후크를 추가하거나 WordPress 상수를 정의하여 Heartbeat API 호출을 제한할 수 있습니다.

견고한 웹 사이트 성능은 매우 중요하지만 보안도 중요합니다. iThemes는 귀하의 WordPress 웹사이트의 모든 영역을 보호하는 데 도움이 되므로 귀하의 비즈니스는 무슨 일이 있어도 온라인 상태를 유지합니다. iThemes Security Pro를 사용하여 다단계 인증, 파일 변경 모니터링 및 취약성 검색을 포함하여 온라인 상태를 보호하는 방법을 알아보십시오.