Laravel Pint
업데이트됨번역일: 2026년 8월 3일
이 페이지는 원문이 업데이트되어 번역이 갱신되었습니다.
- 원문 수정
- 2026년 8월 3일
- 번역 갱신
- 2026년 8월 3일
Laravel Pint
소개
Laravel Pint는 미니멀리스트를 위한 PHP 코드 스타일 자동 교정 도구입니다. PHP CS Fixer를 기반으로 만들어졌으며, 별도의 복잡한 설정 없이도 코드 스타일을 깔끔하고 일관되게 유지할 수 있습니다.
Pint는 새로 생성된 모든 Laravel 애플리케이션에 기본으로 포함되어 있으므로 바로 사용할 수 있습니다. 기본 설정으로도 Laravel의 코딩 스타일 규칙에 따라 코드를 자동으로 교정해 줍니다.
설치
Pint는 최근 Laravel 프레임워크 릴리즈에 기본 포함되어 있으므로 별도 설치가 필요하지 않습니다. 다만, 오래된 프로젝트라면 Composer로 설치할 수 있습니다.
composer require laravel/pint --devPint 실행
프로젝트의 vendor/bin 디렉터리에 있는 pint 바이너리를 실행하면 코드 스타일 문제를 자동으로 교정합니다.
./vendor/bin/pint성능 향상을 위해 병렬 모드(실험적)로 실행하려면 --parallel 옵션을 사용합니다.
./vendor/bin/pint --parallel병렬 모드에서는 --max-processes 옵션으로 최대 프로세스 수를 지정할 수 있습니다. 이 옵션을 생략하면 Pint가 머신의 모든 가용 코어를 사용합니다.
./vendor/bin/pint --parallel --max-processes=4특정 파일이나 디렉터리만 대상으로 실행할 수도 있습니다.
./vendor/bin/pint app/Models./vendor/bin/pint app/Models/User.php기본적으로 Pint는 Blade 템플릿을 포맷하지 않습니다. .blade.php 파일도 함께 포맷하려면 --blade 옵션을 사용하세요. 이 옵션은 pint.json 파일을 수정하지 않고 현재 실행에만 Pint/laravel_blade 규칙을 적용합니다.
./vendor/bin/pint --bladePint는 실행 후 수정된 파일 목록을 출력합니다. 변경 내역을 더 자세히 보려면 -v 옵션을 추가하세요.
./vendor/bin/pint -v실제 파일을 수정하지 않고 코드 스타일 오류만 검사하려면 --test 옵션을 사용합니다. 스타일 오류가 발견되면 0이 아닌 종료 코드를 반환합니다.
./vendor/bin/pint --testGit에서 지정한 브랜치와 비교해 변경된 파일만 검사·수정하려면 --diff=[branch] 옵션을 사용합니다. CI 환경(예: GitHub Actions)에서 변경된 파일만 검사해 시간을 절약할 때 유용합니다.
./vendor/bin/pint --diff=main커밋되지 않은 변경 파일만 대상으로 실행하려면 --dirty 옵션을 사용합니다.
./vendor/bin/pint --dirty스타일 오류를 교정하되, 교정이 발생한 경우 0이 아닌 종료 코드를 반환하게 하려면 --repair 옵션을 사용합니다.
./vendor/bin/pint --repairPint 설정
앞서 언급했듯이, Pint는 별도의 설정 없이도 바로 사용할 수 있습니다. 그러나 프리셋, 규칙, 검사 대상 폴더 등을 커스터마이징하고 싶다면 프로젝트 루트에 pint.json 파일을 생성하면 됩니다.
{
"preset": "laravel"
}특정 디렉터리의 pint.json을 사용하려면 --config 옵션으로 경로를 직접 지정할 수 있습니다.
./vendor/bin/pint --config vendor/my-company/coding-style/pint.json프리셋
프리셋은 코드 스타일 교정에 사용할 규칙 묶음입니다. 기본값은 Laravel의 코딩 스타일을 따르는 laravel 프리셋입니다. 다른 프리셋을 사용하려면 --preset 옵션을 지정하거나, pint.json에 설정하세요.
./vendor/bin/pint --preset psr12{
"preset": "psr12"
}현재 지원하는 프리셋은 laravel, per, psr12, symfony, empty입니다.
규칙
규칙은 Pint가 코드 스타일을 교정할 때 따르는 개별 스타일 지침입니다. 프리셋은 대부분의 PHP 프로젝트에 적합한 규칙들의 미리 정의된 모음이므로, 일반적으로는 개별 규칙을 신경 쓸 필요가 없습니다.
그러나 특정 규칙을 켜거나 끄고 싶다면 pint.json 파일에서 설정할 수 있습니다. empty 프리셋을 기반으로 규칙을 처음부터 정의하는 것도 가능합니다.
{
"preset": "laravel",
"rules": {
"simplified_null_return": true,
"array_indentation": false,
"new_with_parentheses": {
"anonymous_class": true,
"named_class": true
}
}
}Pint는 PHP CS Fixer 기반이므로, PHP CS Fixer가 제공하는 모든 규칙을 사용할 수 있습니다. 사용 가능한 규칙 목록은 PHP CS Fixer Configurator에서 확인하세요.
커스텀 규칙
PHP CS Fixer 규칙 외에도, Pint는 Pint/ 접두사가 붙은 자체 규칙을 제공합니다. 이 규칙들은 기본적으로 비활성화되어 있으며, pint.json에서 명시적으로 활성화해야 합니다.
`Pint/laravel_blade`
이 규칙은 Blade 템플릿을 포맷합니다. .blade.php 파일의 들여쓰기, 간격, 속성 형식을 일관되게 정리합니다. 기본적으로 Pint는 Blade 파일을 포맷하지 않으므로, 이 규칙을 명시적으로 활성화해야 합니다.
{
"preset": "laravel",
"rules": {
"Pint/laravel_blade": true
}
}활성화 후에는 Pint 실행 시 PHP 파일과 함께 Blade 템플릿도 자동으로 포맷됩니다.
./vendor/bin/pintpint.json을 수정하지 않고 한 번만 적용하려면 --blade 옵션을 사용하세요.
./vendor/bin/pint --blade이 규칙은 내부적으로 Prettier와 prettier-plugin-blade, prettier-plugin-tailwindcss 플러그인을 사용하므로, 머신에 Node.js가 설치되어 있어야 합니다. 이 규칙이 활성화된 상태로 처음 실행하면, Pint가 누락된 Prettier 의존성을 감지하고 설치 여부를 묻는 메시지를 표시합니다.
NOTE
이 규칙은 Laravel Boost 가이드라인을 따르는 파일이나 resources/views/emails, resources/views/mail 디렉터리에 있는 이메일 뷰 파일처럼 자체 포맷 규칙을 따르는 파일은 자동으로 건너뜁니다.
`Pint/phpdoc_type_annotations_only`
이 규칙은 코드에서 일반 주석과 docblock 본문을 제거하고, @param, @return, @var, @phpstan-type 등 @ 어노테이션이 포함된 줄만 남깁니다.
/** * 사용자의 게시글을 가져옵니다. * * @return HasMany<Post, $this> */public function posts(): HasMany@ 어노테이션이 없는 한 줄 주석이나 블록 주석은 완전히 제거됩니다. 특정 주석을 유지하려면 @note, @warning, @todo 접두사를 붙이세요.
// @note 이 주석은 유지됩니다.이 규칙을 활성화하려면 pint.json에 추가하세요.
{
"preset": "laravel",
"rules": {
"Pint/phpdoc_type_annotations_only": true
}
}NOTE
이 규칙은 config 디렉터리의 파일을 자동으로 건너뜁니다. 설정 파일은 주석을 문서화 용도로 사용하는 경우가 많기 때문입니다.
파일 / 폴더 제외
기본적으로 Pint는 vendor 디렉터리를 제외한 프로젝트의 모든 .php 파일을 검사합니다. 추가로 제외할 폴더가 있다면 exclude 옵션을 사용하세요.
{
"exclude": [
"my-specific/folder"
]
}특정 이름 패턴에 해당하는 파일을 제외하려면 notName 옵션을 사용하세요.
{
"notName": [
"*-my-file.php"
]
}정확한 파일 경로로 특정 파일을 제외하려면 notPath 옵션을 사용하세요.
{
"notPath": [
"path/to/excluded-file.php"
]
}지속적 통합(CI)
GitHub Actions
Laravel Pint를 GitHub Actions와 연동하면 코드가 푸시될 때마다 자동으로 코드 스타일을 교정할 수 있습니다. 먼저 GitHub 저장소의 Settings > Actions > General > Workflow permissions에서 "Read and write permissions"를 허용하세요. 그런 다음 .github/workflows/lint.yml 파일을 아래 내용으로 생성합니다.
name: Fix Code Style
on: [push]
jobs:
lint:
runs-on: ubuntu-latest
strategy:
fail-fast: true
matrix:
php: [8.4]
steps:
- name: Checkout code
uses: actions/checkout@v5
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
tools: pint
- name: Run Pint
run: pint
- name: Commit linted files
uses: stefanzweifel/git-auto-commit-action@v6이 워크플로우는 코드가 푸시될 때마다 Pint를 실행하고, 스타일이 교정된 파일이 있으면 자동으로 커밋까지 수행합니다.