본문 바로가기

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 --dev

Pint 실행

프로젝트의 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 --blade

Pint는 실행 후 수정된 파일 목록을 출력합니다. 변경 내역을 더 자세히 보려면 -v 옵션을 추가하세요.

./vendor/bin/pint -v

실제 파일을 수정하지 않고 코드 스타일 오류만 검사하려면 --test 옵션을 사용합니다. 스타일 오류가 발견되면 0이 아닌 종료 코드를 반환합니다.

./vendor/bin/pint --test

Git에서 지정한 브랜치와 비교해 변경된 파일만 검사·수정하려면 --diff=[branch] 옵션을 사용합니다. CI 환경(예: GitHub Actions)에서 변경된 파일만 검사해 시간을 절약할 때 유용합니다.

./vendor/bin/pint --diff=main

커밋되지 않은 변경 파일만 대상으로 실행하려면 --dirty 옵션을 사용합니다.

./vendor/bin/pint --dirty

스타일 오류를 교정하되, 교정이 발생한 경우 0이 아닌 종료 코드를 반환하게 하려면 --repair 옵션을 사용합니다.

./vendor/bin/pint --repair

Pint 설정

앞서 언급했듯이, 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/pint

pint.json을 수정하지 않고 한 번만 적용하려면 --blade 옵션을 사용하세요.

./vendor/bin/pint --blade

이 규칙은 내부적으로 Prettierprettier-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를 실행하고, 스타일이 교정된 파일이 있으면 자동으로 커밋까지 수행합니다.

이 문서는 Laravel 공식 문서(MIT)를 한국 개발자를 위해 번역·재구성한 것입니다.

번역일: 2026년 8월 3일