반응형
소개
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 설정은 개발 생산성과 코드 품질을 크게 향상시킬 수 있습니다. 자신의 개발 스타일과 프로젝트 요구사항에 맞게 적절히 조정하여 사용하시기 바랍니다.
'파이썬' 카테고리의 다른 글
[Web API] URL 파라미터 데이터 전송 (1) | 2025.01.23 |
---|---|
데이터 클래스 비교: dataclass vs Pydantic BaseModel (0) | 2024.12.08 |
[Python 프로파일링] py-spy와 yappi로 파이썬 코드 성능 분석하기 (0) | 2024.12.02 |
SQLAlchemy: 데이터베이스 툴킷 (3) | 2024.11.13 |
ChatGPT API의 function_call (1) | 2024.02.11 |