단순한 스크립트 언어를 넘어선 최신 PHP 생태계에서는 엄격한 코드 품질 관리가 필수입니다. 코드를 실행하지 않고도 타입 에러와 버그를 짚어내는 정적 분석(PHPStan, Psalm) 도구와, 직관적이고 아름다운 테스트 코드를 작성할 수 있게 해주는 Pest 프레임워크를 통해 견고한 애플리케이션을 구축하는 방법을 알아봅니다.
👉 13. Static Analysis
실행 전 버그 찾기
PHP는 인터프리터 언어이지만, PHPStan이나 Psalm 같은 정적 분석(Static Analysis) 도구를 통해 컴파일 언어 수준의 타입 안정성을 확보할 수 있습니다.
코드를 실행하지 않고도 타입 불일치, 정의되지 않은 메서드 호출, 논리적 오류 등을 사전에 탐지하여 프로젝트의 품질을 비약적으로 높여줍니다.
👉 14. Pest Testing Framework
아름답고 직관적인 테스팅
기존의 PHPUnit이 클래스 기반의 다소 무거운 구조였다면, Pest는 현대적이고 서술적인(fluent) 함수형 인터페이스를 제공하는 테스팅 프레임워크입니다.
마치 JavaScript의 Jest처럼 직관적으로 코드를 작성할 수 있어, 개발자들이 테스트 작성에 느끼는 진입 장벽을 크게 낮춰줍니다.
정적 분석 (Static Analysis - PHPStan)
tests/UserTest.php
<?php
// Pest 프레임워크를 이용한 직관적인 테스트 코드 작성 예시
test('it checks if the user is active', function () {
$user = new User(['status' => 'active']);
expect($user->isActive())->toBeTrue();
});
Terminal
$ ./vendor/bin/pest PASS Tests\Unit\UserTest✓it checks if the user is active✓it creates a new user successfully PASS Tests\Feature\AuthTest✓it can authenticate a userTests: 3 passed
Time: 0.12s