현재 위치: > 최신 기사 목록> Laravel에서 미들웨어를 사용하여 데이터베이스 쿼리 및 성능 모니터링을 구현하는 방법

Laravel에서 미들웨어를 사용하여 데이터베이스 쿼리 및 성능 모니터링을 구현하는 방법

M66 2025-06-19

Laravel에서 미들웨어를 사용하여 데이터베이스 쿼리 및 성능 모니터링을 구현하는 방법

웹 애플리케이션을 개발할 때 데이터베이스 쿼리 및 성능 모니터링이 매우 중요합니다. Laravel은 개발자가 요청과 응답 사이에 이러한 요구 사항을 처리 할 수 ​​있도록 강력한 미들웨어 메커니즘을 제공합니다. 요청이 컨트롤러에 도달하기 전에 또는 응답이 사용자에게 반환 된 후에 Middleware는 로직을 실행할 수 있습니다. 이 기사는 Laravel Middleware를 통해 데이터베이스 쿼리 로깅 및 성능 모니터링 기능을 구현하는 방법을 소개합니다.

1. 미들웨어를 만듭니다

먼저, 우리는 미들웨어를 만들어야합니다. 다음 명령을 실행하면 QueryLogMiddleware라는 미들웨어를 만들 수 있습니다.

 php artisan make:middleware QueryLogMiddleware

이 명령은`app/http/middleware` 디렉토리에서`querylogmiddleware.php` 파일을 생성합니다. 이제 해당 파일에 미들웨어 로직을 쓸 수 있습니다.

2. 데이터베이스 쿼리 로그 함수 구현

데이터베이스 쿼리 로그를 녹음하기 위해 미들웨어의 '핸들'메소드에서 Laravel의 DB Facade를 사용하여 모든 SQL 쿼리를 가져 와서 로그 파일에 로그인 할 수 있습니다. 다음은 샘플 코드입니다.

 <?php

namespace App\Http\Middleware;

use Closure;
use Illuminate\Support\Facades\DB;

class QueryLogMiddleware
{
    public function handle($request, Closure $next)
    {
        // 쿼리 로그를 활성화합니다
        DB::connection()->enableQueryLog();

        $response = $next($request);

        // 쿼리 로그를 가져옵니다
        $queries = DB::getQueryLog();

        foreach ($queries as $query) {
            // 할 것이다$query로그 파일에 쓰십시오
        }

        return $response;
    }
}

위의 코드에서`db :: connection ()-> enableQueryLog ()`쿼리 로깅을 활성화합니다. db :: getQueryLog () 메소드를 호출하면 모든 쿼리 로그를 가져오고 각 쿼리를 통과하고 기록 할 수 있습니다.

3. 성능 모니터링 기능을 추가하십시오

데이터베이스 쿼리 로그를 녹화하는 것 외에도 미들웨어를 사용하여 성능 모니터링 기능을 구현할 수도 있습니다. 예를 들어 Laravel의 디버그 바 확장을 사용하여 응용 프로그램의 응답 시간을 모니터링 할 수 있습니다. 다음은 샘플 코드입니다.

 <?php

namespace App\Http\Middleware;

use Closure;
use Barryvdh\Debugbar\Facade as Debugbar;

class PerformanceMiddleware
{
    public function handle($request, Closure $next)
    {
        $start = microtime(true);

        $response = $next($request);

        $end = microtime(true);
        $executionTime = $end - $start;

        // 성능 모니터링 데이터를 추가하십시오
        Debugbar::addMeasure('Execution Time', $start, $end);

        return $response;
    }
}

위의 코드에서 Debugbar의 외관을 사용하여 "실행 시간"이라는 성능 메트릭을 추가하고 요청의 실행 시간을 계산합니다. 또한 데이터베이스 쿼리 수, 메모리 사용량 등과 같은 기타 성능 모니터링 메트릭을 추가 할 수도 있습니다.

4. 미들웨어를 등록하십시오

다음 으로이 미들웨어를 응용 프로그램에 등록해야합니다. `app/http/kernel.php` 파일을 열고`$ middlewaregroups '속성에 다음 코드를 추가하십시오.

 protected $middlewareGroups = [
    'web' => [
        // 다른 미들웨어...
        \App\Http\Middleware\QueryLogMiddleware::class,
        \App\Http\Middleware\PerformanceMiddleware::class,
    ],
];

이로 인해 웹 미들웨어 그룹에 QueryLogMiddleware 및 PerformAncemiddleware가 추가되므로 각 웹 요청 중에 실행됩니다.

5. 미들웨어를 사용하십시오

이제 응용 프로그램의 라우팅 또는 컨트롤러 메소드에서 이러한 미들웨어를 사용할 수 있습니다. 예를 들어,`rounes/web.php` 파일에서는 다음을 사용할 수 있습니다.

 Route::middleware(['query.log', 'performance'])->group(function () {
    // 라우팅 정의...
});

이 예는 라우팅 그룹에 미들웨어를 적용하는 방법을 보여줍니다. 단일 경로 또는 컨트롤러 방법에 적용 할 수도 있습니다.

결론적으로

Laravel의 미들웨어를 사용하면 응용 프로그램에 데이터베이스 쿼리 및 성능 모니터링 기능을 쉽게 추가 할 수 있습니다. 데이터베이스 쿼리 로그를 녹음하고 'PerformAncemiddleware'를 통해 응용 프로그램의 성능을 모니터링하기 위해`QueryLogMiddleWare '를 만들었습니다. 이 중간 전위는 등록 및 사용이 매우 간단하지만 응용 프로그램의 모니터링 및 유지 관리 가능성을 크게 향상시킵니다.