[php] PHP에서 API 결과 캐싱하기

PHP 애플리케이션에서 중요한 외부 API 호출은 성능 저하의 원인이 될 수 있습니다. 이 문제를 해결하기 위해 API 호출 결과를 캐싱하여 서버 부하를 줄일 수 있습니다.

이 블로그 포스트에서는 PHP에서 외부 API 결과를 캐싱하는 방법을 살펴보겠습니다.

외부 API 호출

일반적으로 PHP에서 외부 API를 호출하는 방법은 curl을 사용하는 것이 일반적입니다.

<?php
// curl을 사용하여 API 호출
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.example.com/data');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($ch);
curl_close($ch);

결과 캐싱

API 호출 결과를 캐싱하여 중복 호출을 방지할 수 있습니다. PHP에서는 memcachedredis와 같은 메모리 기반 캐시 솔루션을 사용하여 이를 구현할 수 있습니다.

<?php
// memcached를 사용하여 결과 캐싱
$memcached = new Memcached();
$memcached->addServer('localhost', 11211);
$key = 'api_data';
$result = $memcached->get($key);

if (!$result) {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, 'https://api.example.com/data');
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $result = curl_exec($ch);
    $memcached->set($key, $result, 300); // 300 seconds
    curl_close($ch);
}

// API 호출 결과 사용
echo $result;

위의 예제에서는 먼저 캐시 키로 API 호출 결과를 메모리에 저장하고, 다음에 동일한 API 호출이 있을 때에는 캐시된 결과를 반환합니다.

결론

외부 API 호출은 애플리케이션 성능에 영향을 미칠 수 있으므로 적절한 결과 캐싱 전략을 사용하는 것이 중요합니다. PHP에서는 memcachedredis와 같은 메모리 기반 캐시 솔루션을 사용하여 API 호출 결과를 효율적으로 관리할 수 있습니다.

참고 자료