라라벨 6, 이그니션 free

2019-09-16

그동안 1일 1식 라라벨을 통해서 라라벨의 새 에러 페이지인 이그니션을 간략히 소개드린바 있습니다. 라라캐스트에서 Ignition is Laravel’s Amazing New Error Page 를 시청했는데요, 얼핏 살펴봤을 때 보다 더 대단한 물건이네요. 오늘은 이그니션에 대해 더 알게 된 것들을 공유하도록 하겠습니다.


해결책 제시


이그니션은 에러에 대한 정보 뿐만 아니라 해결책도 제시해줍니다. 물론 모든 상황에 대한 해결책을 제시해주는 것은 아닙니다.(만약 이게 가능하다면 개발자들이 더 이상 필요 없겠죠..) 이그니션 패키지의 솔루션 프로바이더 목록을 보면 대략 어떤 상황들에 대한 솔루션을 제공하는지 감을 잡을 수 있을 겁니다. 



솔루션 프로바이더 이름으로 몇가지 솔루션을 유추해 볼 수 있습니다.



  • 유효하지 않은 라우트 액션

  • 라우트가 정의되지 않았음

  • App Key가 없음

  • 컬럼이 없음

  • 임포트가 되지 않았음

  • 테이블을 찾을 수 없음

  • 뷰를 찾을 수 없음


흔히 저지르는 실수들에 대한 것들이 대부분입니다. 하지만 초보시절에 한참 걸려 찾아낸 문제의 원인이 오타 한글자 때문이었던 기억을 떠올려보면 꽤나 도움이 되는 기능이 아닐까 싶습니다.


예를 들어, 라라벨을 설치하고 다음과 같이 welcome을 welcmoe으로 오타를 내보겠습니다.


 new ignition-sample
cd ignition-sample

// routes/web.php

Route::get('/', function () {
return view('welcmoe');
});

우선은 에러를 직접적으로 발생시킨 원인을 보여줍니다. 동시에 솔루션은 2개를 제시하는데요,









첫번째는 ‘데이터베이스명이 잘못 설정된 것 같습니다. 데이터베이스명을 laravel이라고 했는데 그런 이름의 데이터베이스가 없습니다. .env에서 DB_DATABASE 키를 수정하세요. Database: Getting Started docs를 더 읽어보세요.’ 라고 제시합니다.






두번째 솔루션은 “welcome인데 오타낸거 아닌가요?”라고 친절히 물어봐줍니다.


솔루션은 누구나 추가해서 쓸 수 있는 구조로 만들어져있어서 앞으로 더 다양한 상황을 커버해줄거라 기대됩니다.


한글로 안내가 나오면 더 좋을텐데 그건 좀 아쉽네요. :)


전보다 더 풍부한 정보 제공


이그니션 이전의 라라벨 기본 에러페이지였던 Whoops도 환경 변수나 리퀘스트 데이터를 보여주긴 했었습니다. 이그니션은 훨씬 다양한 정보를 제공합니다.






App 탭에서는 라우팅과 뷰 정보를 제공하고, User 탭에서는 현재 로그인한 사용자의 데이터와 클라이언트 데이터를 보여줍니다. Debug 탭은 DB 쿼리, dump(), 로그, glow(디버깅을 위해 삽입하는 데이터)를 보여줍니다. 별도의 디버거를 사용하지 않더라도 dd()로 디버깅하는 대신 dump()와 glow()로 디버깅을 좀 더 편하게 할 수 있습니다. 이제 dd()는 잊으세요!


에러 페이지 공유


에러 페이지에서 Share 탭을 누르면 flare.io를 통해 현재 보고 있는 에러 페이지를 공유할 수 있습니다.






원격으로 도움을 받아야 할 경우 꽤 유용하게 쓰일 수 있을 것 같아요. 커뮤니티에 질문 올릴 때도 좋겠네요.


확장


이그니션이 정말 끝내준다고 생각한 부분이 여기인데요, 이그니션에 익스텐션을 설치해서 기능을 추가할 수 있습니다. 현재는 이그니션 제작자가 제공하는 익스텐션 3종과 제3자가 제공하고 있는 익스텐션 3종이 있습니다.


이그니션 제작자 제공 익스텐션


이그니션 팅커 탭


에러페이지에서 팅커를 실행할 수 있습니다. 전에 소개해드린 라라벨 웹 팅커가 여기에 쓰려고 만들었던건가 보네요.



이그니션 코드 에디터


스택트레이스 자체가 코드 에디터로 변해서 에러페이지에서 바로 코드를 수정할 수 있습니다.



이그니션 자가 진단


1일 1식 라라벨 37호에 소개했던 자가 진단 기능을 에러페이지에 붙일 수 있습니다.



제3자 제공 익스텐션


이그니션 스택오버플로우


에러와 관련된 스택오버플로우 질문을 보여줍니다. 진짜 편하겠네요.



이그니션 마이그레이션


마이그레이션 목록과 실행여부를 한 눈에 파악하고, 에러페이지에서 바로 실행할 수 있습니다.



이그니션 라라캐스트 탭


이그니션 스택오버플로우와 비슷하게 라라캐스트에서 관련 내용을 검색해서 보여줍니다.



마치며


이그니션에 대해 조사하는 내내 감탄을 했습니다. 이그니션은 라라벨 6에 기본으로 포함되어있고, 라라벨 5.5이상이면 쓸 수 있습니다. 사정상 지금 당장 라라벨 6로 업그레이드 하지 못하더라도 이그니션은 꼭 설치해서 쓰세요!


1일 1식 라라벨 53호

2019년 9월 16일


이현석

메쉬 코리아 개발자. 바쁜 팀장님 대신 알려주는 신입 PHP 개발자 안내서를 쓰고, 클린 아키텍처 인 PHP를 번역했습니다. 2020년에 출간될 Laravel Up & Running 2nd Edition을 번역하고 있습니다.