본문 바로가기
파이썬

비주얼스튜디오코드 파이썬 | VS Code에서 Python 개발환경을 완벽하게 구축하는 방법

by devcomet 2025. 10. 20.
728x90

VS Code에서 Python 개발환경을 구축하는 완벽한 가이드 - 설정부터 디버깅까지
비주얼스튜디오코드 파이썬 ❘ VS Code에서 Python 개발환경을 완벽하게 구축하는 방법

 

VS Code에서 Python 개발환경을 구축하는 방법을 Python interpreter 설정부터 가상환경 구성, 디버깅, 린팅까지 실무에 바로 적용 가능한 단계별 가이드로 제공합니다.


왜 VS Code가 Python 개발에 최적인가

비주얼스튜디오코드에서 파이썬 코드 에디터 하는 화면

 

Visual Studio Code는 가볍고 강력한 확장성으로 전 세계 개발자들이 선택하는 에디터입니다.

특히 비주얼스튜디오코드 파이썬 개발에 있어서 무료이면서도 PyCharm 못지않은 기능을 제공하며, 메모리 사용량이 훨씬 적어 효율적입니다.

Microsoft가 공식적으로 Python Extension을 지원하면서 코드 자동완성, 디버깅, 테스팅까지 통합 개발 환경으로서의 모든 기능을 갖추게 되었습니다.

2025년 현재 Stack Overflow 개발자 설문조사에 따르면 VS Code는 가장 많이 사용되는 개발 도구 1위를 차지했습니다.

Python 개발자라면 반드시 알아야 할 VS Code Python 설정 방법을 지금부터 상세히 알아보겠습니다.


VS Code 설치 및 기본 설정

VS Code 다운로드 및 설치

먼저 VS Code 공식 홈페이지에서 운영체제에 맞는 설치 파일을 다운로드합니다.

 

Visual Studio Code - Code Editing. Redefined

Visual Studio Code redefines AI-powered coding with GitHub Copilot for building and debugging modern web and cloud applications. Visual Studio Code is free and available on your favorite platform - Linux, macOS, and Windows.

code.visualstudio.com

 

Windows, macOS, Linux 모두 지원되며 설치 과정은 매우 간단합니다.

설치 시 "Add to PATH" 옵션을 체크하면 터미널에서 code 명령어로 VS Code를 실행할 수 있어 편리합니다.

Python 설치 확인

VS Code 파이썬 개발환경 구축을 위해서는 먼저 Python이 시스템에 설치되어 있어야 합니다.

터미널(또는 명령 프롬프트)을 열고 다음 명령어로 설치 여부를 확인하세요.

python --version
# 또는
python3 --version

Python이 설치되어 있지 않다면 Python 공식 홈페이지에서 최신 버전을 다운로드하여 설치합니다.

2025년 기준으로 Python 3.12 또는 3.11 버전을 권장합니다.


Python 확장(Extensions) 설치

Python 확장(Extensions) 설치 정리

필수 확장 설치

VS Code에서 Extensions에 python검색 후 install하는 화면

 

VS Code Python 확장 추천 목록 중 가장 먼저 설치해야 할 것은 Microsoft의 공식 Python 확장입니다.

VS Code 왼쪽 사이드바에서 Extensions 아이콘(네모 4개 모양)을 클릭하거나

Ctrl+Shift+X(macOS: Cmd+Shift+X)를 누릅니다.

검색창에 "Python"을 입력하고 Microsoft가 제공하는 Python 확장을 설치합니다.

이 확장은 IntelliSense, 린팅, 디버깅, 코드 탐색 등 핵심 기능을 모두 포함하고 있습니다.

추가 유용한 확장

Python 개발 효율을 높이는 추가 확장들도 함께 설치하면 좋습니다.

확장 이름 기능 추천 이유
Pylance 고급 IntelliSense 빠른 타입 체킹과 자동완성
Python Indent 자동 들여쓰기 Python 문법에 맞는 정확한 인덴트
autoDocstring 문서화 자동 생성 함수 docstring 자동 작성
Python Test Explorer 테스트 통합 pytest, unittest 시각화
GitLens Git 히스토리 코드 변경 이력 추적

 

Pylance는 Microsoft가 개발한 차세대 Python language server로 공식 문서에서 더 자세한 정보를 확인할 수 있습니다.


Python Interpreter 선택 및 설정

Python Interpreter 선택 및 설정 정리

Interpreter 선택 방법

VS Code Python 튜토리얼에서 가장 중요한 단계가 바로 Python interpreter 선택입니다.

Ctrl+Shift+P(macOS: Cmd+Shift+P)를 눌러 Command Palette를 열고 "Python: Select Interpreter"를 입력합니다.

시스템에 설치된 모든 Python 버전과 가상환경이 목록으로 표시됩니다.

원하는 Python 버전을 선택하면 VS Code 하단 상태바에 선택된 interpreter가 표시됩니다.

글로벌 vs 로컬 Interpreter

프로젝트마다 다른 Python 버전이나 패키지를 사용하는 경우가 많기 때문에 가상환경 사용을 강력히 권장합니다.

글로벌 interpreter를 사용하면 패키지 버전 충돌이 발생할 수 있고, 프로젝트 의존성 관리가 어려워집니다.


가상환경(venv) 구성 및 관리

venv 생성하기

가상환경은 프로젝트별로 독립적인 Python 환경을 만들어 패키지 의존성을 격리시킵니다.

프로젝트 루트 디렉토리에서 터미널을 열고 다음 명령어를 실행합니다.

# Windows
python -m venv venv

# macOS/Linux
python3 -m venv venv

venv라는 이름의 폴더가 생성되며, 이 안에 독립적인 Python 환경이 구축됩니다.

가상환경 활성화

생성된 가상환경을 활성화해야 해당 환경에서 작업할 수 있습니다.

# Windows
venv\Scripts\activate

# macOS/Linux
source venv/bin/activate

 

활성화되면 터미널 프롬프트 앞에 (venv)가 표시됩니다.

VS Code는 가상환경을 자동으로 감지하여 interpreter 목록에 추가하므로, 앞서 설명한 방법으로 선택하면 됩니다.

패키지 설치 및 requirements.txt

가상환경이 활성화된 상태에서 필요한 패키지를 설치합니다.

pip install numpy pandas matplotlib

 

프로젝트 의존성을 문서화하려면 requirements.txt 파일을 생성합니다.

pip freeze > requirements.txt

 

다른 환경에서 동일한 패키지를 설치할 때는 다음 명령어를 사용합니다.

pip install -r requirements.txt

Python 가상환경 공식 문서에서 더 심화된 내용을 확인할 수 있습니다.

 

venv — Creation of virtual environments

Source code: Lib/venv/ The venv module supports creating lightweight “virtual environments”, each with their own independent set of Python packages installed in their site directories. A virtual en...

docs.python.org


코드 자동완성(IntelliSense) 설정

IntelliSense 작동 원리

IntelliSense는 코드 작성 중 자동으로 함수, 변수, 클래스를 제안하는 기능입니다.

Pylance를 설치했다면 기본적으로 강력한 IntelliSense가 활성화됩니다.

타입 힌트를 사용하면 IntelliSense의 정확도가 크게 향상됩니다.

def calculate_sum(a: int, b: int) -> int:
    return a + b

result = calculate_sum(10, 20)  # IntelliSense가 정확한 타입 제안

자동완성 최적화 설정

settings.json 파일을 열어 다음 설정을 추가하면 자동완성 성능을 개선할 수 있습니다.

Ctrl+,(macOS: Cmd+,)로 Settings를 열고 우측 상단의 파일 아이콘을 클릭하여 JSON 형식으로 편집합니다.

{
    "python.languageServer": "Pylance",
    "python.analysis.typeCheckingMode": "basic",
    "python.analysis.autoImportCompletions": true,
    "editor.quickSuggestions": {
        "other": true,
        "comments": false,
        "strings": false
    }
}

typeCheckingMode는 "off", "basic", "strict" 중 선택할 수 있으며, 프로젝트 규모에 따라 조정합니다.


린팅(Linting) 및 포맷팅(Formatting) 설정

린팅 도구 설정

린팅은 코드 품질을 유지하고 잠재적 버그를 사전에 발견하는 핵심 기능입니다.

VS Code에서 파이썬 디버깅을 시작하기 전에 린팅을 먼저 설정하면 많은 오류를 예방할 수 있습니다.

Pylint, Flake8, mypy 등 다양한 린터를 사용할 수 있습니다.

pip install pylint flake8 mypy

settings.json에 다음 설정을 추가합니다.

{
    "python.linting.enabled": true,
    "python.linting.pylintEnabled": true,
    "python.linting.flake8Enabled": false,
    "python.linting.lintOnSave": true
}

코드 포맷터 설정

일관된 코드 스타일을 유지하려면 자동 포맷터가 필수입니다.

Black, autopep8, yapf 등을 사용할 수 있으며, Black이 가장 널리 사용됩니다.

pip install black

settings.json에 포맷터 설정을 추가합니다.

{
    "python.formatting.provider": "black",
    "editor.formatOnSave": true,
    "python.formatting.blackArgs": ["--line-length", "88"]
}

저장할 때마다 자동으로 코드가 포맷팅되어 팀 협업 시 스타일 통일이 쉬워집니다.

Black 공식 문서에서 상세한 사용법을 확인하세요.


디버깅(Debugging) 완벽 가이드

디버그 설정 파일 생성

VS Code에서 파이썬 디버깅을 사용하려면 .vscode/launch.json 파일을 생성해야 합니다.

왼쪽 사이드바에서 Run and Debug 아이콘을 클릭하고 "create a launch.json file"을 선택합니다.

"Python File"을 선택하면 기본 설정이 자동으로 생성됩니다.

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: Current File",
            "type": "python",
            "request": "launch",
            "program": "${file}",
            "console": "integratedTerminal",
            "justMyCode": true
        }
    ]
}

중단점(Breakpoint) 사용법

vs code 중단점(Breakpoint) 사용법 정리

 

코드 왼쪽 줄 번호를 클릭하면 빨간 점이 표시되며 중단점이 설정됩니다.

F5 키를 눌러 디버깅을 시작하면 중단점에서 실행이 멈춥니다.

 

디버깅 도구바에서 다음 기능들을 사용할 수 있습니다.

  • Continue (F5): 다음 중단점까지 실행
  • Step Over (F10): 현재 줄 실행 후 다음 줄로
  • Step Into (F11): 함수 내부로 들어가기
  • Step Out (Shift+F11): 현재 함수에서 빠져나오기
  • Restart (Ctrl+Shift+F5): 디버깅 재시작
  • Stop (Shift+F5): 디버깅 중지

변수 및 Watch 기능

디버깅 중 왼쪽 패널의 Variables 섹션에서 모든 변수의 현재 값을 확인할 수 있습니다.

Watch 섹션에 특정 표현식을 추가하면 실시간으로 값의 변화를 추적할 수 있습니다.

Debug Console에서 Python 명령어를 직접 실행하여 변수를 검사하거나 수정할 수도 있습니다.

조건부 중단점

중단점을 우클릭하여 "Edit Breakpoint"를 선택하면 조건을 추가할 수 있습니다.

특정 조건이 참일 때만 중단점이 작동하도록 설정할 수 있어 복잡한 루프 디버깅에 유용합니다.

for i in range(100):
    process_data(i)  # 중단점 조건: i == 50

유닛테스트(Unit Testing) 통합

유닛테스트(Unit Testing) 통합 - pytest 사용 예시 정리

pytest 설정

pytest는 Python에서 가장 많이 사용되는 테스트 프레임워크입니다.

pip install pytest pytest-cov

 

프로젝트에 tests 디렉토리를 만들고 테스트 파일을 작성합니다.

# tests/test_calculator.py
def test_addition():
    assert 1 + 1 == 2

def test_subtraction():
    assert 5 - 3 == 2

settings.json에 pytest 설정을 추가합니다.

{
    "python.testing.pytestEnabled": true,
    "python.testing.unittestEnabled": false,
    "python.testing.pytestArgs": ["tests"]
}

테스트 실행 및 디버깅

VS Code 왼쪽 사이드바의 Testing 아이콘을 클릭하면 모든 테스트가 트리 구조로 표시됩니다.

개별 테스트 옆의 재생 버튼을 클릭하여 실행하거나, 상단의 버튼으로 모든 테스트를 한 번에 실행할 수 있습니다.

테스트 실패 시 에러 메시지가 명확하게 표시되며, 테스트에도 중단점을 설정하여 디버깅할 수 있습니다.

커버리지 리포트를 보려면 터미널에서 다음 명령어를 실행합니다.

pytest --cov=src tests/

pytest 공식 문서에서 고급 테스트 기법을 학습할 수 있습니다.


VS Code 설정(settings.json) 최적화

워크스페이스 vs 사용자 설정

VS Code는 두 가지 레벨의 설정을 제공합니다.

사용자 설정(User Settings)은 모든 프로젝트에 전역으로 적용되며,

워크스페이스 설정(Workspace Settings)은 현재 프로젝트에만 적용됩니다.

워크스페이스 설정은 .vscode/settings.json 파일에 저장되며 프로젝트와 함께 Git으로 공유할 수 있습니다.

추천 settings.json 구성

다음은 Python 개발자 VS Code 팁으로 가장 많이 추천되는 설정 조합입니다.

{
    // Python 기본 설정
    "python.defaultInterpreterPath": "./venv/bin/python",
    "python.languageServer": "Pylance",

    // 린팅
    "python.linting.enabled": true,
    "python.linting.pylintEnabled": true,
    "python.linting.lintOnSave": true,

    // 포맷팅
    "python.formatting.provider": "black",
    "editor.formatOnSave": true,
    "editor.formatOnPaste": false,

    // IntelliSense
    "python.analysis.typeCheckingMode": "basic",
    "python.analysis.autoImportCompletions": true,
    "python.analysis.completeFunctionParens": true,

    // 테스트
    "python.testing.pytestEnabled": true,
    "python.testing.unittestEnabled": false,

    // 편집기 일반
    "editor.rulers": [88],
    "editor.tabSize": 4,
    "files.trimTrailingWhitespace": true,
    "files.insertFinalNewline": true,

    // Git
    "git.enableSmartCommit": true,
    "git.autofetch": true
}

프로젝트별 Python 경로 설정

여러 Python 버전이나 가상환경을 사용하는 경우 pythonPath 설정이 중요합니다.

워크스페이스 설정에서 프로젝트별로 다른 interpreter를 지정할 수 있습니다.

{
    "python.defaultInterpreterPath": "${workspaceFolder}/venv/bin/python"
}

${workspaceFolder} 변수를 사용하면 프로젝트 위치가 바뀌어도 설정이 유지됩니다.


워크스페이스(Workspace) 구성 전략

멀티루트 워크스페이스

대규모 프로젝트에서는 여러 폴더를 하나의 워크스페이스에 포함시킬 수 있습니다.

File > Save Workspace As...를 선택하여 .code-workspace 파일을 생성합니다.

{
    "folders": [
        {
            "path": "backend",
            "name": "Backend API"
        },
        {
            "path": "frontend",
            "name": "Frontend App"
        }
    ],
    "settings": {
        "python.linting.enabled": true
    }
}

 

각 폴더는 독립적인 가상환경과 설정을 가질 수 있습니다.

권장 프로젝트 구조

VS Code 파이썬 개발환경 구축 시 다음과 같은 디렉토리 구조를 권장합니다.

project/
├── .vscode/
│   ├── settings.json
│   ├── launch.json
│   └── extensions.json
├── src/
│   ├── __init__.py
│   └── main.py
├── tests/
│   └── test_main.py
├── venv/
├── .gitignore
├── requirements.txt
└── README.md

.vscode/extensions.json 파일에 권장 확장을 명시하면 팀원들이 동일한 환경을 구축하기 쉽습니다.

{
    "recommendations": [
        "ms-python.python",
        "ms-python.vscode-pylance",
        "ms-python.black-formatter"
    ]
}

생산성을 높이는 고급 기능

Code Snippets 활용

자주 사용하는 코드 패턴을 스니펫으로 저장하면 시간을 크게 절약할 수 있습니다.

File > Preferences > User Snippets에서 Python 스니펫을 생성합니다.

{
    "Class Definition": {
        "prefix": "class",
        "body": [
            "class ${1:ClassName}:",
            "    \"\"\"${2:Class description}\"\"\"",
            "    ",
            "    def __init__(self):",
            "        ${3:pass}",
            "$0"
        ]
    }
}

class를 입력하고 Tab을 누르면 전체 템플릿이 자동으로 삽입됩니다.

Git 통합 활용

VS Code의 Source Control 기능으로 Git을 GUI에서 편리하게 사용할 수 있습니다.

Ctrl+Shift+G로 Source Control 패널을 열고 변경사항을 확인하고 커밋합니다.

GitLens 확장을 설치하면 코드 각 줄의 마지막 수정자와 시간을 바로 확인할 수 있습니다.

터미널 커스터마이징

통합 터미널을 효율적으로 사용하면 별도 터미널 앱이 필요 없습니다.

Ctrl+백틱`(백틱 키)으로 터미널을 열고, 여러 터미널을 탭으로 관리할 수 있습니다.

{
    "terminal.integrated.defaultProfile.windows": "PowerShell",
    "terminal.integrated.fontSize": 14,
    "terminal.integrated.cursorStyle": "line"
}

성능 최적화 및 문제 해결

VS Code 속도 향상 팁

대규모 프로젝트에서 VS Code가 느려질 때 다음 설정을 조정합니다.

{
    "files.watcherExclude": {
        "**/.git/objects/**": true,
        "**/node_modules/**": true,
        "**/venv/**": true
    },
    "search.exclude": {
        "**/venv/**": true,
        "**/.vscode/**": true
    }
}

가상환경 폴더를 watch와 search에서 제외하면 파일 시스템 부하가 줄어듭니다.

일반적인 문제 해결

Interpreter를 찾을 수 없는 경우

Command Palette에서 "Python: Select Interpreter"를 실행하고 수동으로 Python 경로를 입력합니다.

Windows: C:\Python312\python.exe
macOS/Linux: /usr/local/bin/python3

 

Import 오류가 발생하는 경우

올바른 가상환경이 선택되었는지 확인하고, PYTHONPATH 설정을 추가합니다.

{
    "terminal.integrated.env.windows": {
        "PYTHONPATH": "${workspaceFolder}/src"
    }
}

 

린터가 작동하지 않는 경우

가상환경 내에 린터가 설치되어 있는지 확인합니다.

pip list | grep pylint

설치되어 있지 않다면 다시 설치합니다.

VS Code Python 트러블슈팅 가이드에서 더 많은 해결책을 찾을 수 있습니다.


실전 프로젝트 예시

Flask 웹 애플리케이션 설정

Flask 프로젝트를 위한 완벽한 VS Code 설정 예시입니다.

# 가상환경 생성 및 활성화
python -m venv venv
source venv/bin/activate  # Windows: venv\Scripts\activate

# Flask 및 개발 도구 설치
pip install flask python-dotenv
pip install --dev black pylint pytest

launch.json에 Flask 디버그 설정을 추가합니다.

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: Flask",
            "type": "python",
            "request": "launch",
            "module": "flask",
            "env": {
                "FLASK_APP": "app.py",
                "FLASK_ENV": "development"
            },
            "args": [
                "run",
                "--no-debugger",
                "--no-reload"
            ],
            "jinja": true
        }
    ]
}

이제 F5를 누르면 Flask 앱이 디버그 모드로 실행되고 중단점을 사용할 수 있습니다.

데이터 과학 프로젝트 설정

Jupyter Notebook 통합을 포함한 데이터 과학 환경 구성입니다.

pip install jupyter pandas numpy matplotlib scikit-learn

VS Code에서 .ipynb 파일을 생성하면 자동으로 Jupyter 환경이 활성화됩니다.

셀 단위로 코드를 실행하고 결과를 바로 확인할 수 있으며, 변수 탐색기로 DataFrame을 시각적으로 검사할 수 있습니다.

Jupyter Notebooks in VS Code에서 상세한 사용법을 확인하세요.


팀 협업을 위한 설정 공유

.vscode 폴더 관리

프로젝트 팀원들이 동일한 개발 환경을 유지하려면 .vscode 폴더를 Git에 포함시킵니다.

.gitignore에 다음과 같이 설정합니다.

# .gitignore
venv/
__pycache__/
*.pyc
.env

# .vscode 폴더는 포함 (주석 처리하거나 제외하지 않음)
# !.vscode/

settings.json, launch.json, extensions.json을 공유하면 팀 전체가 일관된 환경에서 작업할 수 있습니다.

devcontainer 활용

더 나아가 Docker를 사용한 완전한 개발 환경 재현도 가능합니다.

.devcontainer/devcontainer.json 파일을 생성하면 컨테이너 기반 개발 환경을 구축할 수 있습니다.

{
    "name": "Python 3",
    "image": "mcr.microsoft.com/devcontainers/python:3.12",
    "customizations": {
        "vscode": {
            "extensions": [
                "ms-python.python",
                "ms-python.vscode-pylance"
            ]
        }
    },
    "postCreateCommand": "pip install -r requirements.txt"
}

Remote - Containers 확장을 설치하고 "Reopen in Container"를 선택하면 격리된 환경에서 개발할 수 있습니다.


VS Code Python 단축키 모음

필수 단축키

효율적인 코딩을 위해 반드시 알아야 할 단축키입니다.

기능 Windows/Linux macOS
Command Palette Ctrl+Shift+P Cmd+Shift+P
빠른 파일 열기 Ctrl+P Cmd+P
터미널 열기/닫기 Ctrl+` Cmd+`
사이드바 토글 Ctrl+B Cmd+B
파일 저장 Ctrl+S Cmd+S
전체 저장 Ctrl+K S Cmd+K S
정의로 이동 F12 F12
참조 찾기 Shift+F12 Shift+F12
이름 바꾸기 F2 F2
포맷 문서 Shift+Alt+F Shift+Option+F

디버깅 단축키

기능 단축키
디버깅 시작/계속 F5
Step Over F10
Step Into F11
Step Out Shift+F11
중단점 토글 F9
디버깅 중지 Shift+F5

편집 단축키

기능 Windows/Linux macOS
줄 복사 Shift+Alt+Down Shift+Option+Down
줄 이동 Alt+Up/Down Option+Up/Down
줄 삭제 Ctrl+Shift+K Cmd+Shift+K
주석 토글 Ctrl+/ Cmd+/
다중 커서 추가 Ctrl+Alt+Up/Down Cmd+Option+Up/Down
같은 단어 선택 Ctrl+D Cmd+D

 

이러한 단축키를 익히면 마우스 사용을 최소화하고 코딩 속도를 2배 이상 높일 수 있습니다.


최신 Python 개발 트렌드와 VS Code

Type Hints와 정적 타입 검사

Python 3.5 이후 도입된 타입 힌트는 2025년 현재 표준으로 자리잡았습니다.

VS Code의 Pylance는 타입 힌트를 활용하여 코드 작성 중 오류를 미리 감지합니다.

from typing import List, Dict, Optional

def process_users(users: List[Dict[str, str]]) -> Optional[str]:
    """사용자 목록을 처리하고 결과를 반환합니다."""
    if not users:
        return None

    return f"Processed {len(users)} users"

 

mypy를 사용하면 더 엄격한 타입 검사가 가능합니다.

pip install mypy
mypy src/

비동기 프로그래밍 지원

asyncio를 사용한 비동기 코드도 VS Code에서 완벽하게 디버깅할 수 있습니다.

import asyncio

async def fetch_data(url: str) -> str:
    # 비동기 작업 시뮬레이션
    await asyncio.sleep(1)
    return f"Data from {url}"

async def main():
    tasks = [fetch_data(f"https://api.example.com/{i}") for i in range(5)]
    results = await asyncio.gather(*tasks)
    print(results)

if __name__ == "__main__":
    asyncio.run(main())

 

디버깅 시 각 코루틴의 상태를 추적하고 await 포인트에서 중단점을 설정할 수 있습니다.

VS Code에서 Python 사용 기대효과 수치정리

AI 코딩 어시스턴트 통합

2025년 현재 GitHub Copilot, Tabnine 등 AI 기반 코드 완성 도구가 VS Code와 완벽하게 통합됩니다.

GitHub Copilot을 설치하면 자연어 주석으로 코드를 생성할 수 있습니다.

# CSV 파일을 읽어서 pandas DataFrame으로 변환하고 결측치를 제거하는 함수
# (Copilot이 자동으로 함수 구현을 제안합니다)

보안 및 코드 품질 관리

보안 취약점 스캔

Bandit을 사용하여 Python 코드의 보안 이슈를 자동으로 검사할 수 있습니다.

pip install bandit
bandit -r src/

settings.json에 추가하여 저장 시 자동 검사하도록 설정합니다.

{
    "python.linting.banditEnabled": true,
    "python.linting.banditArgs": ["-ll"]
}

코드 복잡도 분석

Radon을 사용하면 함수와 클래스의 복잡도를 측정할 수 있습니다.

pip install radon
radon cc src/ -a

McCabe 복잡도가 10을 넘는 함수는 리팩토링을 고려해야 합니다.

Pre-commit Hooks

Git commit 전에 자동으로 코드 품질을 검사하도록 설정할 수 있습니다.

pip install pre-commit

.pre-commit-config.yaml 파일을 생성합니다.

repos:
  - repo: https://github.com/psf/black
    rev: 24.1.1
    hooks:
      - id: black
  - repo: https://github.com/pycqa/flake8
    rev: 7.0.0
    hooks:
      - id: flake8
  - repo: https://github.com/pre-commit/mirrors-mypy
    rev: v1.8.0
    hooks:
      - id: mypy

 

설치 후 다음 명령어를 실행합니다.

pre-commit install

이제 commit할 때마다 자동으로 Black, Flake8, mypy가 실행됩니다.


대규모 프로젝트 관리 팁

모노레포 전략

여러 Python 패키지를 하나의 저장소에서 관리하는 모노레포 구조에서도 VS Code를 효과적으로 사용할 수 있습니다.

monorepo/
├── packages/
│   ├── core/
│   │   ├── src/
│   │   ├── tests/
│   │   └── pyproject.toml
│   ├── api/
│   │   ├── src/
│   │   ├── tests/
│   │   └── pyproject.toml
│   └── cli/
│       ├── src/
│       ├── tests/
│       └── pyproject.toml
└── .vscode/
    └── settings.json

각 패키지는 독립적인 가상환경을 가지며, 멀티루트 워크스페이스로 관리합니다.

문서화 자동화

Sphinx를 사용하여 코드 문서를 자동 생성할 수 있습니다.

pip install sphinx sphinx-rtd-theme
sphinx-quickstart docs

 

docstring에서 자동으로 API 문서를 생성하며, VS Code에서 바로 미리보기할 수 있습니다.

Sphinx 공식 문서에서 상세한 사용법을 확인하세요.

성능 프로파일링

Python 코드의 성능 병목을 찾기 위해 프로파일러를 사용합니다.

pip install line_profiler memory_profiler

 

함수 단위로 실행 시간을 측정합니다.

@profile
def slow_function():
    # 성능 측정 대상 코드
    result = [i**2 for i in range(1000000)]
    return result
kernprof -l -v script.py

VS Code 터미널에서 결과를 바로 확인하고 최적화할 부분을 식별할 수 있습니다.

최적화된 VS Code와 python 설정으로 기대효과 수치정리


원격 개발 환경 구축

SSH를 통한 원격 개발

Remote - SSH 확장을 설치하면 원격 서버에서 직접 개발할 수 있습니다.

# SSH 연결 설정
ssh-keygen -t rsa -b 4096
ssh-copy-id user@remote-server

Command Palette에서 "Remote-SSH: Connect to Host"를 선택하고 서버 주소를 입력합니다.

연결되면 원격 서버의 파일 시스템이 로컬처럼 표시되며, 터미널도 원격 서버에서 실행됩니다.

WSL 통합 (Windows)

Windows 사용자는 WSL(Windows Subsystem for Linux)과 통합하여 Linux 환경에서 개발할 수 있습니다.

Remote - WSL 확장을 설치하고 "WSL: New Window"를 선택합니다.

VS Code가 WSL 내부에서 실행되며 Linux용 Python 환경을 그대로 사용할 수 있습니다.

# WSL 내부에서
sudo apt update
sudo apt install python3.12 python3-pip

VS Code Remote Development 문서에서 더 많은 정보를 확인할 수 있습니다.


마치며

지금까지 VS Code에서 Python 개발환경을 완벽하게 구축하는 방법을 단계별로 살펴보았습니다.

Python interpreter 선택부터 가상환경 구성, 코드 자동완성, 린팅, 포맷팅, 디버깅, 유닛테스트, settings.json 최적화, 워크스페이스 구성까지 실무에서 바로 활용할 수 있는 모든 내용을 다루었습니다.

VS Code Python 설정은 한 번 제대로 구축해두면 장기적으로 개발 생산성을 크게 향상시킵니다.

이 가이드의 설정들을 프로젝트에 적용하고, 팀원들과 공유하여 일관된 개발 환경을 유지하시기 바랍니다.

추가로 궁금한 점이 있다면 VS Code 공식 Python 튜토리얼Python.org 커뮤니티를 참고하세요.

지속적으로 새로운 확장과 기능을 탐색하며 자신만의 최적화된 개발 환경을 만들어가시기 바랍니다.


참고 자료


같이 보면 좋은 글

 

Yappi란? 파이썬 코드 성능 분석을 위한 Yappi 프로파일러 사용법과 예제

Yappi는 파이썬 멀티스레드 애플리케이션의 성능 분석과 프로파일링을 위한 강력한 도구로, 기존 cProfile의 한계를 극복하고 실시간 성능 최적화를 가능하게 합니다.파이썬 개발자라면 누구나 한

notavoid.tistory.com

 

Pandas란? 데이터 분석을 위한 파이썬 라이브러리 완벽 가이드

Pandas Python 라이브러리 설치부터 데이터프레임, 시리즈 활용법까지 데이터 분석 완벽 가이드 - 실무 예제와 함께 배우는 판다스 사용법Pandas 소개와 기본 개념 Pandas는 파이썬에서 가장 널리 사용

notavoid.tistory.com

 

FastAPI로 고성능 REST API 만들기 - Flask 대안 탐색

FastAPI는 파이썬 웹 프레임워크 생태계에서 혁신적인 변화를 가져온 모던 프레임워크입니다.Flask보다 더 빠르고 직관적인 개발 경험을 제공하는 FastAPI는 REST API 개발에 최적화된 특징들을 갖추고

notavoid.tistory.com

 

Python asyncio로 동시성 프로그래밍 마스터하기

현대 웹 개발과 데이터 처리에서 성능 최적화는 필수불가결한 요소입니다.특히 파이썬 asyncio 비동기 프로그래밍은 I/O 집약적인 작업을 효율적으로 처리하는 핵심 기술로 자리잡았습니다.이 글

notavoid.tistory.com

 

루아 입문 시리즈 #16: 루아 메타프로그래밍

루아 메타프로그래밍의 메타테이블 고급 기법부터 DSL 구축, 코드 생성까지 실전 예제로 배우는 완벽 가이드입니다.메타프로그래밍의 세계로 떠나는 여행메타프로그래밍은 프로그램이 자기 자

notavoid.tistory.com

728x90
home 기피말고깊이 tnals1569@gmail.com