"매일 아침 어제 주문 현황 엑셀로 뽑아주세요."
매일 똑같은 작업 반복 중입니다. 작은 자동화로 큰 차이를 만듭니다.
레거시 시스템에는 "자동 리포트" 기능이 없는 경우가 많습니다. 담당자가 매일 phpMyAdmin에 들어가서 쿼리 복사 => 실행 => 결과 복사 => 엑셀에 붙여넣기를 반복합니다. 하루 10분씩 소모, 1년이면 60시간입니다.
간단 PHP 스크립트로 자동화
예제 1: 매일 주문 현황 CSV 생성
daily_report.php
<?php
$conn = mysqli_connect('localhost', 'user', 'pass', 'dbname');
mysqli_set_charset($conn, 'utf8mb4');
$yesterday = date('Y-m-d', strtotime('-1 day'));
$query = "SELECT order_id, customer_name, product, price, order_date
FROM orders
WHERE DATE(order_date) = '$yesterday'";
$result = mysqli_query($conn, $query);
$filename = "orders_" . $yesterday . ".csv";
$fp = fopen($filename, 'w');
// CSV 헤더
fputcsv($fp, ['주문번호', '고객명', '상품', '금액', '주문일시']);
while ($row = mysqli_fetch_assoc($result)) {
fputcsv($fp, $row);
}
fclose($fp);
echo "CSV 생성 완료: $filename\n";
?>
cron으로 매일 실행
0 9 * * * /usr/bin/php /path/to/daily_report.php
매일 오전 9시에 자동 실행되며 CSV 파일 생성
예제 2: 이메일로 자동 발송
<?php
// 위 스크립트에 이메일 발송 추가
mail('manager@company.com',
'어제 주문 현황',
'첨부 파일 확인하세요.',
'From: system@company.com',
['-f첨부파일' => $filename]);
?>
예제 3: 엑셀 파일 생성 (PHPExcel)
require 'PHPExcel.php';
$excel = new PHPExcel();
$sheet = $excel->getActiveSheet();
$row = 1;
$sheet->setCellValue('A'.$row, '주문번호');
$sheet->setCellValue('B'.$row, '고객명');
while ($data = mysqli_fetch_assoc($result)) {
$row++;
$sheet->setCellValue('A'.$row, $data['order_id']);
$sheet->setCellValue('B'.$row, $data['customer_name']);
}
$writer = PHPExcel_IOFactory::createWriter($excel, 'Excel2007');
$writer->save('report.xlsx');
Windows 작업 스케줄러 (cron 없을 때)
제어판 => 작업 스케줄러 => 작업 만들기:
프로그램: C:\php\php.exe
인수: C:\www\daily_report.php
트리거: 매일 오전 9시
웹 기반 간단 대시보드
dashboard.php
<h1>오늘 통계</h1>
<?php
$conn = mysqli_connect(...);
$today_orders = mysqli_fetch_assoc(mysqli_query($conn, "SELECT COUNT(*) as cnt FROM orders WHERE DATE(order_date) = CURDATE()"))['cnt'];
$today_revenue = mysqli_fetch_assoc(mysqli_query($conn, "SELECT SUM(price) as sum FROM orders WHERE DATE(order_date) = CURDATE()"))['sum'];
?>
<p>오늘 주문: <?= $today_orders ?>건</p>
<p>오늘 매출: <?= number_format($today_revenue) ?>원</p>
담당자가 브라우저에서 dashboard.php 접속하면 바로 확인
Google Sheets 연동
Google Sheets API로 자동으로 스프레드시트 업데이트도 가능. 담당자는 구글 시트만 열면 최신 데이터 확인.
실전 팁
- 스크립트 실행 결과를 로그로 남기기
- 에러 발생 시 알림 (메일, 슬랙)
- 민감 정보(DB 비밀번호)는 별도 config 파일로 분리
작은 자동화로 큰 차이를 만듭니다. 매일 10분 아끼면 1년에 60시간, 한 달 치 인건비입니다. 자동화는 곧 시간 절약입니다.
'PHP 실무' 카테고리의 다른 글
| Auto increment 꼬임 해결 (0) | 2026.10.30 |
|---|---|
| DB 직접 수정 전 필수 백업 팁 (0) | 2026.10.16 |
| 사소한 수정이 시스템 전체에 미친 파장 (0) | 2026.10.09 |
| MySQL → MariaDB 전환 이슈 (0) | 2026.10.02 |
| .htaccess 접근 제한 팁 (0) | 2026.09.25 |