파이썬 정적 코드 분석 툴로는 flake8과 pylint가 있다. 그런데 보통 pylint를 많이 쓰는 모양이다. 나 또한 flake8은 그냥 듣기만 했을 뿐 pylint만 사용해 왔다.
코드를 분석하는 방법으로는 정적 분석과 동적 분석이 있는데 정적 분석은 코드를 실행하지 않은 상태에서 분석하는 것을 말한다. pylint는 정적 분석이다. 보통 우리가 하는 디버깅이나 유닛테스트는 동적 분석이다.(코드를 실행한 상태에서 분석)
그러면 pylint를 사용하려면 어떻게 하면 될까? 각 개발 툴 마다 사용방법이 다양할 것이다. 하지만 기본 분석툴의 선택은 대략 비슷하다. 파이썬 뿐만아니라 다른 언어들 역시 비슷한 맥락으로 흘러간다. 여기서는 pylint를 VSCode에서 사용하는 방법을 간단히 소개한다. 우선 pip으로 pylint를 설치해 주자.
pip install pylint
설치를 했다면 VScode를 실행한 후에 두가지 확장을 설치해준다.
이렇게만 해 두어도 충분하다. 하지만 다음과 같은 녹색 줄로 자잘한 경고들이 표시된다.
이 경고들은 코드 스타일(띄어쓰기나 긴 라인 경고 등)와 같은 실제로 실행하는데 문제없는 요소들 까지 지적해 주기 때문에 코드가 길어지면 피곤하다. 다음과 같이 해당 경고 위에 마우스 커서를 올리면 자세한 내용이 표시된다.
C0111는 함수에 대한 doc(문서)가 없다는 내용이다. 해당 경고(C0111)를 없애보자.
▲ (위 그림 참고) 파일->기본설정->설정(S)를 선택하면 다음과 같이 settings.json파일이 열린다.
사용자 설정에 위 내용을 추가해준다.
"--disable=C0111"
여기서는 C0111에 대한 메세지만 껐다. 추가적으로 끄고 싶은 메세지가 C0301이라면 다음과 같이 추가해 준다.
"--disable=C0111, C0301"
제대로 설정했다면 해당 메세지에 대한 경고는 뜨지 않는다.
만약 정적 분석이 제대로 동작하지 않는다면 윈도우의 경우 자신의 홈디렉토리에 .pylint.d 폴더가 생겼는지 확인해 보자. 만약 생기지 않았다면 pylint설치부터 다시 해본다. 만약 해당 폴더가 있다면 폴더 안의 파일을 전부 지운 후에 다시 설정을 해보도록 하자.