하트비트 API

[aioseo_eeat_author_tooltip]
[aioseo_eeat_reviewer_tooltip]
Heartbeat API란 무엇인가요?

워드프레스의 하트비트 API는 웹사이트의 맥박과 같습니다. 몇 초마다 브라우저에서 서버로 "살아있어요"라는 작은 신호를 보냅니다. 이 자동 요청/응답 주기를 통해 사이트의 데이터, 게시물, 대시보드가 ​​동기화되어 편집자, 플러그인 개발자, 관리자에게 실시간 업데이트와 중요한 기능을 제공합니다.

이 용어 설명 문서에서는 WordPress Heartbeat API의 정확한 작동 방식, 중요성, 그리고 호스팅에서 CPU 사용량이 급증하는 경우 이를 모니터링, 제어 또는 비활성화하는 방법을 알아봅니다.

WordPress Heartbeat API가 중요한 이유는 무엇일까요?

하트비트 API는 브라우저와 서버 간의 지속적인 통신을 유지함으로써 워드프레스의 가장 사용자 친화적인 기능들을 뒷받침합니다. 이 API가 없다면 편리한 자동 저장, 공동 작업 게시물 잠금, 실시간 대시보드 업데이트 등의 기능을 사용할 수 없게 됩니다.

  • 게시물 편집기를 안전하게 보호합니다: WordPress 편집기 에서 게시물을 작성하거나 편집할 때 Heartbeat는 15~60초마다 변경 사항을 자동으로 저장하므로 브라우저나 연결이 끊어지더라도 작업 내용을 잃지 않습니다.
  • 사용자 잠금 및 알림: 두 명의 작성자가 동시에 같은 게시물을 편집하려고 하면 Heartbeat는 알림("팀 구성원이 이 게시물을 편집하고 있습니다")을 보내고 콘텐츠 충돌을 방지하기 위해 잠금 기능을 적용합니다.
  • 실시간 대시보드 위젯: WooCommerce 와 같은 전자상거래 플러그인은 API를 사용하여 전체 페이지를 새로 고침하지 않고도 대시보드의 판매 데이터를 업데이트합니다.
  • 세션 시간 초과 알림: Heartbeat는 로그인 세션이 만료되면 알림을 보내 저장되지 않은 편집 내용이 손실되기 전에 다시 로그인하도록 안내합니다.

Heartbeat API 작동 방식: 기본 사항

Heartbeat는 서버에 대한 작은 AJAX 호출을 통해 작동하며, WordPress가 페이지를 완전히 새로 고치지 않고도 데이터를 동기화할 수 있도록 합니다. 이러한 빈번한 호출은 편집자가 최신 정보를 확인하고 세션이 유효한 상태로 유지되도록 보장함으로써 보안을

  • 브라우저가 보냅니다 관리자-ajax.php 요구: 심장 박동이 한 번씩 일어날 때마다 브라우저는 작은 AJAX 호출을 보냅니다 /wp-admin/admin-ajax.php.
  • 서버는 요청을 처리합니다. WordPress는 연결된 함수를 실행하고, 새로운 데이터를 가져온 다음, JSON 응답으로 다시 보냅니다.
  • 브라우저 수신 및 동작: 브라우저의 JavaScript 이벤트는 응답을 포착하고, UI를 업데이트(예: 자동 저장, 위젯 새로 고침)하며, 다음 실행 간격을 준비합니다.

js

// 예시: 프런트엔드에서 다음 하트비트 틱을 수신합니다.
jQuery(document).on('heartbeat-tick', function(event, data) {
console.log('하트비트 응답 수신:', data);
});

  • 기본 간격 : 편집기 화면(15초) 및 대시보드 및 기타 관리자 페이지(60초).

핵심 후크 및 코드 예제

개발자는 Heartbeat의 내장 후크를 활용하여 사용자 지정 기능을 추가하거나 동작을 조정할 수 있습니다. 이러한 JavaScript 및 PHP 이벤트를 사용하여 필요한 데이터를 교환하도록 API를 맞춤 설정할 수 있습니다.

JavaScript Hooks

다음은 프런트엔드 제어를 위해 활용할 수 있는 두 가지 주요 JavaScript 훅입니다

  • 심장 박동 전송: 각 요청 전에 사용자 지정 데이터를 첨부하세요.
  • 심장 박동 소리: 요청이 완료되면 수신된 데이터에 따라 조치를 취하십시오.

js

// 모든 하트비트 전송 이벤트에 추가 정보를 첨부합니다.
jQuery(document).on('heartbeat-send', function(e, data) {
data.customValue = jQuery('#my-field').val();
});

PHP 후크

서버 측에서 이러한 후크를 사용하면 하트비트 호출을 수정하거나 이에 반응할 수 있습니다

  • 심장 박동 전송: 서버가 반환하는 데이터를 수정합니다.
  • 심장 박동이 수신되었습니다: 서버가 틱을 수신하면 조치를 취하십시오.

php

add_filter('heartbeat_send', 'my_heartbeat_send', 10, 2);
function my_heartbeat_send($response, $screen_id) {
if ($screen_id === 'post') {
$response['server_time'] = time();
}
return $response;
}

WordPress Heartbeat API의 일반적인 사용 사례

Heartbeat의 실시간 기능은 WordPress의 다양한 일상 기능에 필수적인 요소입니다. 서버와 브라우저를 동기화하여 대시보드와 편집기가 수동 클릭이나 전체 새로 고침 없이 항상 최신 상태를 유지하도록 합니다.

  • 자동 저장 및 수정: Heartbeat는 게시물 편집기에서 원활하게 실행되어 15초마다 백업을 생성하므로 손실된 콘텐츠를 복구할 수 있습니다.
  • 실시간 판매 데이터: 전자상거래 플러그인 개발자는 Heartbeat를 사용하여 최신 판매 통계를 가져와 즉시 표시합니다.
  • 세션 만료 알림: 로그인 세션 만료 시간이 가까워지면 Heartbeat에서 "로그인 상태를 유지하려면 여기를 클릭하세요."라는 알림이 표시됩니다.
  • 공동 작업 알림: 여러 사용자가 있는 사이트에서 누가 어떤 게시물을 편집하고 있는지 확인할 수 있어 덮어쓰기 충돌을 방지할 수 있습니다.

성능 고려 사항 및 높은 CPU 사용량

실시간 업데이트에 필수적인 Heartbeat는 트래픽이 많은 사이트에서 CPU 사용량이 급증할 수 있습니다. admin-ajax.php에 대한 빈번한 AJAX 요청은 처리 시간과 메모리를 소모하므로 공유 호스팅 계정의 리소스 제한을 초과할 수 있습니다.

  • CPU 부하 증가: 빈번한 하트비트 API 호출은 특히 공유 호스팅 환경에서 서버의 CPU 사용량을 크게 증가시킬 수 있습니다. 각 호출마다 PHP가 AJAX 요청을 처리해야 하기 때문입니다.
  • 페이지 응답 속도 저하: 서버가 이러한 요청을 더 많이 처리함에 따라 프런트엔드 페이지 로드 및 관리자 대시보드 상호 작용 속도가 눈에 띄게 느려질 수 있습니다.
  • 자격 정지 위험: 볼륨이 관리자-ajax.php 요청량이 호스트의 CPU 사용량 제한을 초과하면 사용량이 허용 가능한 수준으로 돌아올 때까지 계정 속도가 제한되거나 정지될 수 있습니다.

심장 박동 트래픽을 모니터링하는 방법은 무엇입니까?

하트비트 활동을 관찰하면 성능 병목 현상을 조기에 진단하는 데 도움이 될 수 있습니다. 서버 로그와 클라이언트 측 도구를 사용하여 요청 빈도와 응답 시간을 추적하십시오.

  • 서버 로그 및 통계: cPanel 또는 호스팅 대시보드에서 CPU 사용량 급증 현상을 확인하고, 특히 다음 사항에 집중하세요: /wp-admin/admin-ajax.php 항목.
  • 브라우저 개발자 도구: Chrome 또는 Firefox 개발자 도구 → 네트워크 탭 → "admin-ajax.php" 필터 → 틱 빈도 및 응답 시간 확인
  • 플러그인 솔루션: 성능 플러그인(예: Query Monitor)을 설치하면 관리자 대시보드에서 하트비트 호출, 메모리 사용량 및 실행 시간을 직접 확인할 수 있습니다.

하트비트 API 제어 및 제한

Heartbeat의 기본 리듬이 서버에 과부하를 일으키는 경우, 선택적으로 속도를 늦추거나 비활성화할 수 있습니다. 이를 통해 실시간 기능과 최적의 성능 및 리소스 제어 사이의 균형을 유지할 수 있습니다.

  • 플러그인을 통해: Heartbeat Control을 설치하거나 WP Rocket 의 내장 설정을 사용하여 간격을 조정하거나 특정 화면에서 하트비트 기능을 끌 수 있습니다.
  • 코드에 의해

php

// 하트비트 빈도를 60초에 한 번으로 줄입니다.
add_filter('heartbeat_settings', function($settings) {
$settings['interval'] = 60;
return $settings;
});
// 프런트엔드에서 완전히 비활성화합니다.
add_action('init', function() {
if (!is_admin()) wp_deregister_script('heartbeat');
}, 1);

하트비트 API 비활성화의 위험성

하트비트 기능을 끄면 CPU 부하를 줄일 수 있지만, 몇 가지 핵심 기능을 사용할 수 없게 됩니다. 사이트 전체에서 하트비트 기능을 비활성화하기 전에 사용자 경험과 보안 측면에서 어떤 장단점이 있는지 충분히 이해해야 합니다.

  • 클래식 에디터에는 자동 저장 기능이 없으므로, 변경 사항마다 "임시 저장"을 수동으로 클릭해야 합니다.
  • 게시/업데이트 도중 인터넷 연결이 끊어지면 데이터 손실이 발생할 수 있습니다.
  • Heartbeat에 의존하는 대시보드 위젯과 플러그인이 작동을 멈추게 되어 실시간 보고서 및 기능이 저하됩니다.

모범 사례 및 문제 해결

하트비트 기능을 완전히 없애는 것보다는 동작을 세밀하게 조정하는 것이 더 현명합니다. 하트비트의 속도를 선택적으로 제한하거나 로그를 기록함으로써 서버 상태를 안정적으로 유지하면서 하트비트의 이점을 보존할 수 있습니다.

  • 완전히 끄지 말고, 작동을 제한하세요 : 완전히 끄는 대신, 작동 간격을 15초에서 30초 또는 60초로 늘리세요.
  • 스테이징 환경에서 테스트 : 먼저 스테이징 환경에서 간격 변경 또는 등록 해제를 적용하여 문제를 파악합니다.
  • 캐싱과 결합 : 객체 또는 페이지 캐싱을 활용하여 하트비트로 인한 서버 부하 증가를 상쇄하십시오.
  • 로깅 활성화: 연결하다 심장 박동이 수신되었습니다 틱을 기록하고 예기치 않은 동작을 디버깅합니다.

마지막으로

WordPress Heartbeat API는 사이트를 항상 최신 상태로 유지하고 동기화합니다. 임시 저장 기능을 제공하고, 실시간 데이터를 표시하며, 편집 충돌을 방지합니다. 하지만 요청이 너무 많으면 CPU 사용량이 증가할 수 있습니다. 필요에 따라 속도를 늦추거나 비활성화할 수 있습니다. 변경 사항은 먼저 스테이징 사이트에서 테스트해 보세요. 적절한 균형을 유지하면 Heartbeat는 성능 저하 없이 기능을 향상시킬 수 있습니다.

WordPress 용어 및 자세한 설명은 Seahawk Media 용어집을 .

관련 게시물

색조란 무엇인가요?

컬러 틴트란 무엇인가요?

색은 예술, 디자인, 그리고 일상생활에서 필수적인 역할을 합니다. 단순히 빨간색만을 의미하는 것이 아닙니다

워드프레스 에디터란 무엇인가요?

워드프레스 에디터란 무엇인가요?

워드프레스 편집기는 워드프레스 내에서 콘텐츠 제작 및 디자인을 위한 중심 허브입니다

워드프레스에서 기본 메뉴란 무엇인가요?

워드프레스에서 기본 메뉴란 무엇인가요?

워드프레스 사이트 구축을 막 시작했다면 "기본 메뉴"라는 용어를 접했을 가능성이 높습니다

Seahawk로 시작하세요

저희 앱에 가입하시면 가격 정보를 확인하고 할인 혜택을 받으실 수 있습니다.