Laravel Stats 2.0 출시 free

2019-09-20

Laravel Stats가 2.0.0 으로 메이저 업데이트를 했다고 합니다.


Laravel Stats는 코드 수를 기반으로 프로젝트를 분석하는 툴입니다. 레일즈의 rake stats를 라라벨 버전으로 구현한 것이라고 하네요.


주요 용도는 코드의 크기가 얼마나 큰지, 테스트코드의 비율이 얼마나 되는지 등을 한눈에 파악하는 것인 듯 합니다. 다음은 xly.kr 의 Laravel Stats 실행 결과입니다.


xly의 laravel stats 실행 결과


레일즈 제작자인 데이비드 하이네마이어 한슨은 사람들이 컨트롤러를 너무 적게 쓴다고 지적해서 많은 개발자들에게 영감을 주었는데요, 이때 실제로 자신의 프로젝트인 베이스캠프에 컨트롤러 비중이 얼마나 높은지를 보여주는데 rake stats를 활용했습니다.


실행 결과에 나타나는 LOC는 라인수, LLOC는 논리적 라인수 입니다. LLOC/Method는 매서드당 논리적 라인수라고 볼 수 있겠죠. 클린 코드 같은 책을 보면 메소드의 크기는 작을 수록 좋다고 하죠. LLOC/Method를 참고해서 매서드가 적절한 크기를 갖고 있는지 참고하기 좋을 것 같습니다.


Code/Test Ratio는 테스트 코드의 비율입니다. xly는 안타깝게도 0.2 밖에 안되네요 ㅠ 급히 오픈하느라 ㅠㅠ 조금 오래된 글이지만 Simple Test Metrics in Your Rails App, and What They Mean 이라는 글에서는 테스트 코드 비율이 1:1 미만이면 테스트 코드가 너무 적은 것이고, 1:2 이상이면 이 역시 이상신호이니 왜 이렇게 높은 수치가 나온건지 검토해보라고 하네요. 글에서는 1:3.8 이 나왔는데, 그 이유로 '시간이 너무 없어서 테스트 코드를 리팩토링 하지 못했다', '개발 속도를 향상시키기 위해 사용한 매크로가 테스트 코드로 인식되었다', '복잡한 네임드 스코프를 여럿 가지고 있었다'는 식으로 분석을 할 수 있었다고 하네요.


Laravel Stats는 이번에 버전 2로 업데이트하면서 '애플리케이션 코드와 테스트 코드를 더 적절히 구분하고', '더 상세한 데이터를 볼 수 있고(Verbose 모드)', '특정 컴포넌트의 수치만 빼서 볼 수 있도록' 개선했다고 합니다. 아래는 Verbose 모드로 실행한 결과의 일부를 캡쳐한 것입니다.


laravel stats verbose 모드 실행 결과


실행 결과를 JSON으로 출력할 수도 있는데, 이따금씩 커맨드로 확인하는 것도 좋지만, JSON으로 출력하는 기능을 활용해서 모니터링 기능을 만들어 활용하는 것도 괜찮을 것 같아요.


혹시 좋은 활용 방안이 있다면 공유 부탁드려요!


1일 1식 라라벨 57호

2019년 9월 20일


이현석

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