티스토리 뷰
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.json의 post-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.json의illuminate/*제약 확인 - 이슈 대응 속도 — 이슈가 쌓여만 있으면 나중에 내가 떠안게 된다
- 대체 가능성 — 코드 50줄로 될 일에 패키지를 넣지 않는다
정리
- 필수급: Debugbar(또는 Telescope), IDE Helper, Pint
- SEO 필요하면: SEOTools, Sitemap
- 이미지 다루면: Intervention Image
- 큐 쓰면: Horizon
- 규모 커지면: Larastan으로 정적 분석 도입
- 패키지는 적을수록 좋다. 의존성은 곧 유지보수 비용이다
'개발 > Composer 추천' 카테고리의 다른 글
| Laravel에 Modern 하게 DTO 사용하기 (feat: 라라벨 스프링) (0) | 2022.12.14 |
|---|---|
| Laravel Swagger 쉽게 적용하기 (0) | 2022.09.02 |
| Laravel에서 이미지 처리하기, Intervention Image 실전 정리 (0) | 2018.09.04 |
| Laravel IDE Helper 설정하기, 자동완성이 안 될 때 (0) | 2018.09.04 |
| Laravel Debugbar로 중복 쿼리 잡기, 설치부터 실전 활용까지 (0) | 2018.08.31 |
