venv를 직접 관리하는 대신 Poetry나 UV 같은 도구를 사용하세요. 프로젝트 관리를 훨씬 쉽게 만들어줍니다.
추천 이유
🚀 효율적이다 – 반복 작업을 자동화하여 시간을 절약할 수 있습니다. 🔒 안정적이다 – 전역 종속성 충돌을 방지할 수 있습니다. ⚡ 빠르다 – 특히 UV는 엄청나게 빠릅니다.
3. 타입 힌트(Type Hints)를 사용하세요
타입 힌트를 사용하면 코드 가독성이 향상되고, ruff나 mypy 같은 도구가 버그를 미리 잡을 수 있습니다.
예시
❌ 타입 힌트 없는 코드:
def check_scores(scores):
total = 0
for score in scores:
total += score
return total / len(scores)
✅ 타입 힌트를 추가한 코드:
from typing import List
def check_scores(scores: List[float]) -> float:
"""학생 점수 리스트의 평균을 계산합니다."""
return sum(scores) / len(scores)
4. 함수 독스트링에 Raises 섹션을 추가하세요
예외를 문서화하면 유지보수가 훨씬 쉬워집니다.
예시
import csv
from typing import List
def read_csv_data(file_path: str) -> List[str]:
"""CSV 파일에서 첫 번째 열 데이터를 읽습니다.
Args:
file_path (str): CSV 파일 경로
Raises:
FileNotFoundError: 파일이 없을 경우
csv.Error: CSV 형식이 맞지 않을 경우
Returns:
List[str]: 첫 번째 열 데이터 리스트
"""
with open(file_path, 'r') as f:
reader = csv.reader(f)
return [row[0] for row in reader]
5. Pydantic 모델로 데이터를 전달하세요
딕셔너리 대신 Pydantic 모델을 사용하면 코드가 깔끔해지고 데이터 유효성 검사를 자동으로 수행할 수 있습니다.
예시
from pydantic import BaseModel
class UserSettings(BaseModel):
username: str
email: str
active: bool
def update_user(settings: UserSettings):
pass # 사용자 설정 업데이트 로직
6. Ruff 같은 린터와 포맷터를 사용하세요
파이썬에서 코드 스타일을 깔끔하게 유지하려면 ruff를 추천합니다. 속도가 빠르고, Black 스타일을 따르며, 사소한 실수도 잘 잡아줍니다.
def multiply(a, b):
return a * b
def test_multiply():
assert multiply(2, 3) == 6
assert multiply(0, 5) == 0
터미널에서 pytest test_file.py를 실행하면 테스트가 시작됩니다.
8. 프로젝트에 몰래 넣을 수 있는 "핫 테이크"
🔥 orjson – 기본 json보다 훨씬 빠릅니다. ✨ f-strings – f"안녕 {name}"처럼 간결하게 작성하세요. 📂 pathlib – os.path 대신 사용하세요. 🖱 click – CLI 프로그램을 쉽게 만들 수 있습니다. 🚀 파이썬 3.8+ – 최신 버전으로 업그레이드하세요!