[Python] lint: pylint
pylint๋ ํ์ด์ฌ ํ๊ฒฝ์ ๋ํ์ ์ธ ์ฝ๋ ํ์ง ๊ด๋ฆฌ ๋๊ตฌ, lint ์ค ํ๋๋ค.
์ด๊ฒ VSCode ๊ธฐ๋ณธ ์ถ์ฒ ๋๊ตฌ์ด๊ธด ํ๋ฐ, ๋ฑํ ํ์ค์ ์๋๊ณ , ๋์์ ๋ง๋ค.
๋ฆฐํธ ์ต์ ์ด ๋ค์ํ ํธ์ ์๋๊ณ , ํฌ๋งคํฐ์์ ํตํฉ์ด ์๋...? ์๋๊ฑฐ๊ฐ๋ค.
python ๋ฆฐํธ ํ๊ฒฝ ์ค์์ ๊ฐ์ฅ ๋๋ฆฐ ์๋๋ฅผ ์๋ํ๋ค.
์ด๊ฒ ๋ง์ด ์ฐ์ด๋ ์ด์ ๊ฐ ๋ฑํ ์์ฑ๋๊ฐ ์ข์์๋ ์๋๊ฑฐ๊ฐ๋ค.
์ค์น ์์ฒด๋ ๊ฐ๋จํ๋ค.
# pip
pip install pylint
# uv
uv pip install pylint

๊ธฐ๋ณธ ์ฌ์ฉ๋ฒ (CLI)
์ด๋ฐ ์ฝ๋๊ฐ ์๋ค๊ณ ํ๋ฉด
def GetFibonacciNumber(n):
if n <= 0:
return 0
elif n == 1:
return 1
else:
return GetFibonacciNumber(n-1) + GetFibonacciNumber(n-2)
# Example usage
if __name__ == "__main__":
num = 10
print(f"Fibonacci number at position {num} is {GetFibonacciNumber(num)}")
pylint๋ฅผ ์คํํ ๋, ๋ฆฐํธ๋ฅผ ๋๋ฆด ํ์ผ ๊ฒฝ๋ก๋ฅผ ๋๊ฒจ์ฃผ๋ฉด ๋๋ค.
uv run -m pylint ./main.py
๊ทธ๋ฌ๋ฉด ์ด๋ฐ์ ๋ฐ ์์๋ฆฌ์ ํจ๊ป ์ ์๋ฅผ ๋งค๊ฒจ์ ๋ณด์ฌ์ค๋ค.
์์๋ฆฌ๋๋ก ๋ง์ถฐ์ฃผ๋ฉด ์ด๋ ๊ฒ ๋ค์ ์งค ์ ์๊ณ
๋ง์ ์ด ๋ ๊ฒ์ด๋ค.
ํ์ผ ๊ฒฝ๋ก์๋ ์์ผ๋์นด๋๋ ์ ์ฉ ๊ฐ๋ฅํ๋ค.
์ด๋ฌ๋ฉด ํ์ฌ ๊ฒฝ๋ก์ ๋ชจ๋ ํ์ด์ฌ ์ฝ๋๋ฅผ ์ฐพ์์ ๋ฆฐํธ๋ฅผ ๋๋ฆฌ๊ณ
์ด๋ฌ๋ฉด ํ์ฌ ๊ฒฝ๋ก์ ํ์ ๊ฒฝ๋ก์ ๋ชจ๋ ํ์ด์ฌ ์ฝ๋๋ฅผ ์ฐพ์์ ๋๋ฆฐ๋ค.
๋ฆฐํธ ๊ท์น ๊ด๋ฆฌ (pylintrc)
์ด๊ฒ๋ ๊ธฐ๋ณธ ๊ท์น์ ๊ทธ๋๋ก ์ธ ์๋ ์๊ณ , ๊ท์น์ ์ง์ ์ ์ํด์ ์ธ ์๋ ์๋ค.
ํ๋ก์ ํธ ๋ฃจํธ ๊ฒฝ๋ก์ pylintrc๋ผ๋ ํ์ผ์ ๋ง๋ค๊ณ , ๊ฑฐ๊ธฐ์ ์ ๋นํ ์ํ๋ ๊ท์น์ ์ธํ
ํ๋ฉด ๋๋ค.

๊ทธ๋ผ ์คํํ ๋ ํ์ฌ ๊ฒฝ๋ก์ rc ํ์ผ์ ์๋์ผ๋ก ์ธ์ํด์ ๋ถ์์ ํด์ค๋ค.
๊ท์น ์ค์ ๊ฐ ํ
ํ๋ฆฟ์ ์ฌ๊ธฐ์
https://github.com/pylint-dev/pylint/blob/main/examples/pylintrc
๊ฐ ์ค์ ์ ๋ํ ์๋ฏธ๋ ์๋ ๋ฌธ์์์ ํ์ธํ ์ ์๋ค.
https://pylint.readthedocs.io/en/stable/user_guide/configuration/all-options.html
์๋ํฐ ์ ์ฉ: VSCode
VScode์์๋ ํ์ฅ์ ํตํด ์ ์ฉํ ์ ์๋ค.

๊ทธ๋ผ ์์์ ์ ํ์ํด์ค ๊ฒ์ด๋ค.