파이썬

파이썬 개발을 위한 VSCode 셋팅 가이드

코샵 2025. 1. 3. 11:01
반응형

소개

VSCode에서 Python 개발을 할 때, 적절한 settings.json 설정은 개발 경험을 크게 향상시킬 수 있습니다. 오늘은 각 설정의 의미와 효과를 자세히 알아보겠습니다.

Type Hint 관련 설정

인레이 힌트 설정

{
    "python.analysis.inlayHints.variableTypes": true,
    "python.analysis.inlayHints.functionReturnTypes": true
}

이 설정들은 코드 에디터에 타입 정보를 직접 표시해줍니다.

 

예시:

# 설정 전
name = "John"
def get_age():
    return 25

# 설정 후
name: str = "John"
def get_age() -> int:
    return 25

자동 저장 및 포매팅 설정

{
    "files.trimTrailingWhitespace": true,
    "files.insertFinalNewline": true
}
설정 설명 효과
trimTrailingWhitespace 줄 끝의 불필요한 공백 제거 코드 정리
insertFinalNewline 파일 끝에 빈 줄 추가 Git 사용시 유용

타입 검사 및 진단 설정

{
    "python.analysis.diagnosticMode": "workspace",
    "python.analysis.diagnosticSeverityOverrides": {
        "reportGeneralTypeIssues": "warning",
        "reportMissingTypeStubs": "warning",
        "reportMissingTypeArgument": "none",
        "reportUnknownArgumentType": "none"
    }
}

diagnosticMode 설정

  • workspace: 전체 작업공간 분석
  • openFilesOnly: 열린 파일만 분석

diagnosticSeverityOverrides 상세 설명

1.reportGeneralTypeIssues

# 경고 예시
def greet(name: str) -> str:
    return name + 123  # 타입 불일치 경고

 

2. reportMissingTypeStubs

# 경고 예시
import some_third_party_library  # 타입 스텁 없음 경고

 

3. reportMissingTypeArgument

# 경고 비활성화 예시
from typing import List
numbers = List  # 타입 인자 누락 경고 없음

실전 설정 예시

기본 개발 설정

저자는 Black Formatter를 사용하므로, 해당 포메터가 설치되지 않았다면 확장프로그램 Black Formatter를 설치해주세요

{
    // Python 파일에 대한 기본 포매터 설정
    "[python]": {
        "editor.defaultFormatter": "ms-python.black-formatter",  // Black을 기본 포매터로 사용
        "editor.formatOnSave": true,  // 저장 시 자동 포매팅
        "editor.codeActionsOnSave": {
            "source.organizeImports": "explicit"  // 저장 시 import 정리
        }
    },

    // Pylance를 언어 서버로 사용
    "python.languageServer": "Pylance",

    // 자동 import 완성 활성화
    "python.analysis.autoImportCompletions": true,

    // Python 경로 자동 검색
    "python.analysis.autoSearchPaths": true,

    // 함수 호출 시 괄호 자동 완성
    "python.analysis.completeFunctionParens": true,

    // 전체 작업 공간 분석
    "python.analysis.diagnosticMode": "workspace",

    // import 문 형식 (relative/absolute)
    "python.analysis.importFormat": "relative"
}

고급 개발 설정

{
    // 타입 체킹 모드 설정
    "python.analysis.typeCheckingMode": "basic",  // off, basic, strict 중 선택

    // 라이브러리 코드를 타입 추론에 사용
    "python.analysis.useLibraryCodeForTypes": true,
    
    // 진단 심각도 설정
    "python.analysis.diagnosticSeverityOverrides": {
        // 정의되지 않은 변수 사용 시 에러로 표시
        "reportUnboundVariable": "error",

        // 암시적 문자열 연결 경고
        "reportImplicitStringConcatenation": "warning",

        // import 누락 에러
        "reportMissingImports": "error",

        // 모듈 소스 누락 경고
        "reportMissingModuleSource": "warning",

        // 타입 스텁 누락 경고
        "reportMissingTypeStubs": "warning",

        // 속성 타입 불일치 경고
        "reportPropertyTypeMismatch": "warning",

        // 사용하지 않는 import 정보
        "reportUnusedImport": "information",

        // 라이브러리에서 와일드카드 import 사용 시 경고
        "reportWildcardImportFromLibrary": "warning"
    }
    
    // 테스트 설정
    "python.testing.pytestEnabled": true,
    "python.testing.unittestEnabled": false,

    // 디버깅 설정
    "python.debugger.debugJustMyCode": false,

    // 환경 설정
    "python.defaultInterpreterPath": "${workspaceFolder}/.venv/bin/python",

    // 임포트 정렬
    "python.sortImports.args": [
        "--profile",
        "black"
    ]
}

프로젝트별 설정

프로젝트 루트의 .vscode/settings.json에 설정을 추가하면 프로젝트별로 다른 설정을 사용할 수 있습니다.

{
    // 프로젝트 특정 설정
    "python.analysis.extraPaths": [
        "./src",
        "./libs"
    ],
    "python.envFile": "${workspaceFolder}/.env",
    "python.testing.pytestArgs": [
        "tests"
    ]
}

마치며

VSCode의 settings.json 설정은 개발 생산성과 코드 품질을 크게 향상시킬 수 있습니다. 자신의 개발 스타일과 프로젝트 요구사항에 맞게 적절히 조정하여 사용하시기 바랍니다.