이 가이드는 Jack Fields와 그의 에서 Python 개발을 위한 VS Code 설정에 대한 내용에서 많은 영감을 받았습니다. 더 자세한 내용은 그의 글을 확인해 주세요.

사전 요구사항

시작하기 전에 다음 사항들이 준비되어 있는지 확인하세요:
  • Python 설치 (3.8 이상 권장)
  • 버전 관리를 위한 Git
  • Cursor 설치 및 최신 버전으로 업데이트

필수 확장 프로그램

다음 확장 프로그램들은 Python 개발을 위해 Cursor를 완전한 기능으로 설정합니다. 이들은 구문 강조, 린팅, 디버깅 및 단위 테스트를 제공합니다.

고급 Python 도구

위의 확장 프로그램들이 이전에 Cursor에서 Python 개발을 위한 가장 인기 있는 확장 프로그램이었지만, Python 개발을 최대한 활용할 수 있도록 도와주는 몇 가지 추가 확장 프로그램도 추가했습니다.

uv - Python 환경 관리자

uv는 가상 환경을 생성하고 관리하는 데 사용할 수 있는 현대적인 Python 패키지 관리자이며, pip를 기본 패키지 관리자로 대체할 수도 있습니다. uv를 설치하려면 터미널에서 다음 명령을 실행하세요:
pip install uv

ruff - Python 린터 및 포매터

Ruff는 프로그래밍 오류를 확인하고, 코딩 표준을 강제하며, 리팩토링을 제안할 수 있는 현대적인 Python 린터 및 포매터입니다. 코드 포매팅을 위해 Black과 함께 사용할 수 있습니다. Ruff를 설치하려면 터미널에서 다음 명령을 실행하세요:
pip install ruff

Cursor 설정

1. Python 인터프리터

Cursor에서 Python 인터프리터를 설정하세요:
  1. 명령 팔레트 열기 (Cmd/Ctrl + Shift + P)
  2. “Python: Select Interpreter” 검색
  3. Python 인터프리터 선택 (가상 환경을 사용하는 경우 해당 환경 선택)

2. 코드 포맷팅

Black을 사용하여 자동 코드 포맷팅을 설정하세요:
Black은 일관된 스타일을 따르도록 코드를 자동으로 포맷팅하는 코드 포매터입니다. 설정이 전혀 필요하지 않으며 Python 커뮤니티에서 널리 채택되고 있습니다.
Black을 설치하려면 터미널에서 다음 명령을 실행하세요:
pip install black
그런 다음 settings.json 파일에 다음을 추가하여 Cursor가 코드 포맷팅에 Black을 사용하도록 설정하세요:
{
  "python.formatting.provider": "black",
  "editor.formatOnSave": true,
  "python.formatting.blackArgs": ["--line-length", "88"]
}

3. 린팅

PyLint를 사용하여 프로그래밍 오류를 확인하고, 코딩 표준을 강제하며, 리팩토링을 제안할 수 있습니다. PyLint를 설치하려면 터미널에서 다음 명령을 실행하세요:
pip install pylint
{
  "python.linting.enabled": true,
  "python.linting.pylintEnabled": true,
  "python.linting.lintOnSave": true
}

4. 타입 검사

린팅 외에도 MyPy를 사용하여 타입 오류를 확인할 수 있습니다. MyPy를 설치하려면 터미널에서 다음 명령을 실행하세요:
pip install mypy
{
  "python.linting.mypyEnabled": true
}

디버깅

Cursor는 Python을 위한 강력한 디버깅 기능을 제공합니다:
  1. 거터를 클릭하여 중단점 설정
  2. Debug 패널 사용 (Cmd/Ctrl + Shift + D)
  3. 사용자 정의 디버그 구성을 위한 launch.json 설정

추천 기능

프레임워크 지원

Cursor는 인기 있는 Python 프레임워크와 원활하게 작동합니다:
  • 웹 프레임워크: Django, Flask, FastAPI
  • 데이터 사이언스: Jupyter, NumPy, Pandas
  • 머신 러닝: TensorFlow, PyTorch, scikit-learn
  • 테스팅: pytest, unittest
  • API: requests, aiohttp
  • 데이터베이스: SQLAlchemy, psycopg2