티스토리 뷰

Laravel 개발 시 설치하면 개발 능률이 올라가는 composer 리스트다. 원래 정리해뒀던 목록에 현재 기준 설명과 대안을 덧붙인다.

디버깅

Laravel Debugbar

SQL, route, session 등등을 확인할 수 있다. 실행된 쿼리 수가 화면 하단에 표시돼서 N+1을 잡을 때 가장 유용하다.

composer require barryvdh/laravel-debugbar --dev

--dev를 반드시 붙인다. 운영에 켜져 있으면 쿼리와 환경 변수가 그대로 노출된다.

요즘은 Laravel Telescope도 같이 볼 만하다. Debugbar가 현재 요청을 화면에 띄운다면, Telescope는 요청·잡·예외·메일을 별도 대시보드에 기록해서 나중에 조회할 수 있다. API 서버라면 Telescope가 더 맞는다.

Laravel IDE Helper

IDE에서 자동완성과 goto 기능을 지원해준다. 파사드와 Eloquent 매직 메서드를 IDE가 인식하게 만들어준다.

composer require barryvdh/laravel-ide-helper --dev

php artisan ide-helper:generate   # 파사드
php artisan ide-helper:models     # 모델 속성
php artisan ide-helper:meta       # 컨테이너 바인딩

composer.jsonpost-update-cmd에 등록해두면 패키지 업데이트 때마다 자동 갱신된다.

UI / 알림

Sweet Alert

SweetAlert를 Laravel에서 쉽게 사용하는 패키지다.

composer require uxweb/sweet-alert

참고로 프런트를 Vue나 React로 분리했다면 굳이 서버 사이드 패키지를 쓸 필요가 없다. 블레이드 기반 프로젝트에 적합하다.

SEO

SEOTools

복잡한 SEO 메타 태그를 한 번에 처리한다. OpenGraph, Twitter Card, JSON-LD까지 커버한다.

composer require artesaos/seotools
SEOMeta::setTitle('글 제목');
SEOMeta::setDescription('요약');
OpenGraph::addImage($post->thumbnail);
JsonLd::setType('Article');

Sitemap & Feed

composer require laravelium/sitemap
composer require laravelium/feed

사이트맵을 자동 생성해서 Search Console에 제출하면 색인이 훨씬 빨라진다. 글 수가 많으면 sitemap index 방식으로 나눠야 한다는 점만 유의하면 된다.

이미지

Intervention Image

회전, 편집, 자르기, 리사이즈, 워터마크 등 이미지 관련 처리를 담당한다.

composer require intervention/image

업로드 파이프라인에는 EXIF 회전 보정을 꼭 넣어야 한다. 안 그러면 아이폰으로 세로로 찍은 사진이 웹에서 눕는다.

기타

Naver Blog XMLRPC

네이버 블로그를 XML-RPC로 다루는 패키지다. 직접 만들어 공개했다.

composer require lovizu/naver-blog-xmlrpc

여기에 더해 요즘 같이 쓰는 것들

원래 목록 이후에 표준처럼 자리 잡은 것들도 정리해둔다.

Laravel Pint — 코드 스타일

# Laravel 9+ 는 기본 포함
./vendor/bin/pint

PHP-CS-Fixer 기반 포매터다. 설정 없이 바로 쓸 수 있고 Laravel 코드 스타일이 기본값이다. PR에서 스타일 지적이 사라진다.

PHPStan / Larastan — 정적 분석

composer require --dev larastan/larastan
./vendor/bin/phpstan analyse

실행하기 전에 타입 오류와 존재하지 않는 메서드 호출을 잡아준다. 레벨 0부터 시작해서 점진적으로 올리는 방식을 권한다. 처음부터 레벨 9로 켜면 에러가 수천 개 나와서 포기하게 된다.

Laravel Horizon — 큐 모니터링

composer require laravel/horizon

Redis 큐를 쓴다면 사실상 필수다. 실패한 잡을 대시보드에서 확인하고 재시도할 수 있다.

Spatie 패키지들

  • spatie/laravel-permission — 역할·권한 관리
  • spatie/laravel-medialibrary — 파일 업로드와 변환을 모델에 연결
  • spatie/laravel-backup — DB·파일 백업 자동화
  • spatie/laravel-activitylog — 모델 변경 이력 기록
  • spatie/laravel-query-builder — API 필터·정렬·인클루드 처리

Spatie 패키지는 문서가 잘 돼 있고 유지보수가 꾸준하다는 게 장점이다. 다만 다 넣으면 프로젝트가 무거워지니 실제로 필요한 것만 고르는 게 좋다.

패키지를 고를 때 보는 것

패키지가 많다고 좋은 건 아니다. 의존성이 늘수록 업그레이드가 어려워진다. 내가 보는 기준은 이렇다.

  • 최근 커밋 시점 — 1년 이상 방치됐으면 피한다
  • Laravel 최신 버전 지원 여부composer.jsonilluminate/* 제약 확인
  • 이슈 대응 속도 — 이슈가 쌓여만 있으면 나중에 내가 떠안게 된다
  • 대체 가능성 — 코드 50줄로 될 일에 패키지를 넣지 않는다

정리

  • 필수급: Debugbar(또는 Telescope), IDE Helper, Pint
  • SEO 필요하면: SEOTools, Sitemap
  • 이미지 다루면: Intervention Image
  • 큐 쓰면: Horizon
  • 규모 커지면: Larastan으로 정적 분석 도입
  • 패키지는 적을수록 좋다. 의존성은 곧 유지보수 비용이다
댓글


최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday