여러분의 코드 품질은 어떤가요? free

2019-08-27

‘나는 지금 잘하고 있는걸까?’


전공자도 아니고 거의 대부분을 사수없이 독학으로 개발을 해오고 있는 터, 항상 머리속에 맴도는 질문입니다. Algolia 소속 개발자이자 벨 제로, 스탄을 만든 누노 마두로(Nuno Maduro)가 코드 품질을 확인해볼 수 있는 패키지인 PHP Insights를 선보였습니다.


PHP Insights 는 크게 애플리케이션을 코드, 아키텍처, 복잡도, 스타 네 개의 영역으로 나누어 점수를 매겨주고, 개선점을 알려줍니다.


개인용으로 사용하고 있는 두 개의 사이트와 현재 개발중인 사이트 하나를 PHP Insights로 검사해봤습니다. 시험보는 것 같고 살짝 두근두근했네요 ㅎㅎㅎ


스크린샷 2019-08-27 오후 7.12.31.png


현재 제작중인 1 1 벨용 웹사이트를 PHP Insights로 점검한 결과입니다. 다행히 네 영역 모두 녹색불이 들어와있네요. (사실 아직 작성한 코드가 얼마 안되서…)


다음은 최근에 친구들과 취미 프로젝트로 진행 중인 Watched 입니다. 스타에 문제가 좀 있네요.


스크린샷 2019-08-27 오후 7.14.39.png


마지막으로 공공 내부 관리를 위해 사용중인 애플리케이션입니다. 혼자 쓸거 대충 만들어서 그런가 복잡도 점수가 꽝이네요. 테스트를 나름 열심히 작성한 Watched 와 확연히 차이가 나네요. 신기합니다.


스크린샷 2019-08-27 오후 7.14.31.png


앞서 언급했듯이 PHP Insights의 장점은 개선 방법을 알려준다는 것입니다. 부를 캡쳐해서 어떤 으로 안내해주는지 살짝 보여드리겠습니다.


스크린샷 2019-08-27 오후 7.20.00.png


위의 캡쳐한 화면에 나타난 지적 사항은 아래와 같습니다.



  • 퍼블릭 프로퍼티를 사용하지 말고 매서드로 접근해.

  • 사용하지 않는 변수가 있다.

  • 3 단계 함유(nesting) 가 발견되었다. 함유 단계는 2단계 까지만.

  • 불필요한 매서드 오버이딩

  • 인정되지 않는 empty()를 사용하고 있다.

  • 같은 네임스페이스.


코드를 수정할 수 있도록 각각의 항목에 대해 최대 세 개 까지 파명과 줄 수를 알려줍니다. 이제 귀차니즘을 이겨내고 수정을 하는 만 남았네요!


내용적으로 훌륭한 코드인지 여부는 사실 기계로는 검사하기가 어려울 겁니다. 도메인 지반화하기 어렵고 상황에 따 어떤 때에는 최고인 코드가 어떤 때에는 어울리지 않을 수도 있죠. 하지만 형적인 것들은 이와 같은 도구를 이용해서 ‘객곽적으로’ 더 나은 코드로 개선할 수 있을 것 같아요.


다행히 저의 세 개의 프로젝트에서는 검출되지 않았지만, 보안 이슈도 체크 해주니 형 뿐 아니 잘 알려진 보안에 안좋은 코드를 잡아내는 용도로도 좋을 것 같습니다. 이런 도구를 이용해서 보안 이슈를 하나도 잡아내면 정말 땡큐죠.


[MISC] 84.4 pts on coding style and 0 security issues encountered

여러분의 코드 품질은 어떤가요?


maxresdefault (1).jpg


그 검은 상자를 PHP Insights로 한 번 열어보시겠어요? :)


1 1 벨 41호
2019년 8월 27



이현석

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