PHP 실무에서 쓸 수 있는 PHP 성능 최적화 체크리스트
페이지 정보

영삼이
본문
✅ 실무에서 쓸 수 있는 PHP 성능 최적화 체크리스트
PHP 프로젝트의 성능은 코드 품질뿐 아니라 설정, 아키텍처, 실행 방식에 따라 크게 달라집니다. 이 글에서는 실무에서 바로 적용할 수 있는 PHP 성능 최적화 항목을 정리합니다.
🧠 1. OPcache 활성화
[code]
; php.ini 설정
opcache.enable=1
opcache.enable_cli=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.validate_timestamps=0
[/code]
-
코드 캐싱을 통해 실행 속도 획기적으로 향상
-
프로덕션에서는
validate_timestamps=0
필수
⚙️ 2. 불필요한 반복 로직 제거
[code=php]
// 나쁜 예
for ($i = 0; $i < count($arr); $i++) {
...
}
// 좋은 예
$length = count($arr);
for ($i = 0; $i < $length; $i++) {
...
}
[/code]
-
count()
는 루프마다 호출되므로 변수에 캐싱 -
큰 배열에서 효과 큼
🚀 3. DB 쿼리 최적화
-
불필요한 N+1 쿼리 제거
-
LIMIT
,INDEX
,WHERE
조건 철저하게 사용 -
결과 캐싱(파일/Redis 등) 적극 활용
[code=php]
// 비효율적인 N+1
foreach ($posts as $post) {
$author = $db->getAuthor($post->author_id);
}
[/code]
---
### 📦 4. Composer 오토로딩 최적화
```bash
composer dump-autoload -o
-
PSR-4 오토로딩을 클래스 맵 방식으로 변경
-
프로덕션 환경 필수
🔁 5. 로직 캐싱
[code=php]
$cacheKey = 'user_list';
if ($cache->has($cacheKey)) {
$users = $cache->get($cacheKey);
} else {
$users = $db->getAllUsers();
$cache->set($cacheKey, $users, 300); // 5분 캐시
}
[/code]
-
API 응답, 뷰 데이터, DB 결과 등 캐싱 고려
-
APCu, Redis, 파일 등 다양한 스토리지 활용 가능
🧹 6. 불필요한 include/require 제거
-
클래스 자동 로딩을 쓰면서
require
남발은 낭비 -
필요하면 Composer
classmap
등록
⏱ 7. 함수 성능 고려
-
echo
vsprint
:echo
가 약간 더 빠름 -
isset()
vsarray_key_exists()
:isset()
이 빠르지만 null 체크에는 주의
📊 8. 성능 측정 도구 사용
-
Xdebug + Webgrind
-
Blackfire, Tideways
-
microtime(true)
으로 구간 측정
[code=php]
$start = microtime(true);
// 실행 코드
echo round(microtime(true) - $start, 4) . " sec";
[/code]
✅ 최종 체크리스트 요약
-
OPcache 활성화
-
쿼리 최적화 + 캐싱
-
오토로딩 최적화
-
루프 내부 연산 최소화
-
응답 캐싱 전략 구축
-
측정 → 병목 확인 → 개선 반복
- 이전글PHP에서 커스텀 예외 처리 체계 설계하기 25.03.28
- 다음글PHPUnit으로 테스트 가능한 코드 구조 만들기 25.03.28
댓글목록
등록된 댓글이 없습니다.