Pylint를 이용한 Python 코딩 규칙 검사 시스템

A Coding Rule Checking System for Python Using Pylint

  • 김영훈 (부산대학교 정보컴퓨터공학부) ;
  • 우균 (부산대학교 정보컴퓨터공학부)
  • Yeonghun Kim (Dept. of Information Convergence Engineering, Pusan National University) ;
  • Gyun Woo (Dept. of Information Convergence Engineering, Pusan National University)
  • 발행 : 2024.05.23

초록

코딩 규칙 준수는 대규모 프로젝트에서 프로그램의 버그를 줄이기 위해, 또 효과적인 유지보수를 위해 필수적이나 코딩 규칙을 학습하기 위한 초보자용 도구는 거의 없는 실정이다. 본 논문에서는 Python 프로그래밍 수업에서 코딩 규칙을 학습할 수 있도록 도와주는 시스템을 제안한다. 제안된 시스템은 학습자를 위해 별도의 설치 없이 Python 코딩 규칙 검사 결과를 영어와 한글을 병행하여 출력하는 규칙 검사 뷰어를 통해 학습자의 편의성을 제공한다. 또한, 품질 점수를 계산하여 학습자의 코딩 규칙 학습의 동기를 부여한다. 제안 시스템의 성능을 평가하기 위해 SonarQube와 검출 기능을 비교하였다. 2023년도 1학기 Python 프로그래밍 수업의 제출 코드를 검사한 결과, 제안 시스템이 SonarQube보다 247% 더 많은 종류의 규칙을, 또 235% 더 많은 개수의 규칙을 검사하는 것으로 나타났다. 이러한 비교 연구 결과를 고려할 때, 제안 시스템은 학습자에게 더 나은 코딩 규칙 학습 기회를 제공할 수 있을 것으로 기대된다.

키워드

참고문헌

  1. Y. Prokop, O. Trofymenko, and O. Zadereyko, "Developing students' code style skills," in 2023 IEEE 18th International Conference on Computer Science and Information Technologies (CSIT), Lviv, 2023, pp.1-4.
  2. GV. Rossum, B. Warsaw, and A. Coghlan, "PEP 8 - Style Guide for Python Code," [Internet], https://peps.python.org/pep-0008/, 2013, last visited on April 9.
  3. P. Sassoulas, "What is Pylint?," [Internet], https://pylint.readthedocs.io/en/stable/index.html#what-is-pylint, 2023, last visited on April 9.
  4. C. Vassallo, S. Panichella, F. Palomba, S. Proksch, HC. Gall and A. Zaidman, "How developers engage with static analysis tools in different contexts," in Empirical Software Engineering, Vol.25, Issue.2, pp.1419-1457, 2020.
  5. J. Cheon, Y. Kim, X. Liu, I. Wang, S. Byun, and G. Woo, "neoESPA I/O Data Generating System Using QuickCheck," in 한국정보과학회 학술발표논문집, Jeju, 2021, pp.1565-1567.