Python
무엇인가
Python은 고수준의 동적 타입 언어로, 가독성과 방대한 생태계로 높이 평가받는다. 어디서나 실행되고, 거의 의사코드처럼 읽히며, 데이터 과학, 머신러닝, 스크립팅, 백엔드 서비스의 사실상 공용어다.
강점
- 완만한 학습 곡선과 유명할 정도로 읽기 쉬운 문법.
- 거대한 라이브러리 생태계(PyPI) — numpy, pandas, requests, FastAPI, 그리고 거의 모든 AI/ML 프레임워크.
- 접착 코드, 자동화, 프로토타이핑, 데이터 작업에 탁월하다.
- 대화형 탐색을 위한 강력한 REPL과 노트북 문화.
트레이드오프
- 순수 CPU 바운드 작업에는 느리다. GIL이 진정한 멀티스레딩을 제한한다.
- 동적 타이핑은 타입 힌트와 mypy나 pyright 같은 검사기를 추가하지 않는 한 타입 오류를 런타임에만 잡는다.
- 의존성 및 환경 관리(pip, venv, poetry, uv)는 반복되는 마찰의 원천이다.
- 독립 실행 바이너리를 패키징하고 배포하기가 까다롭다.
언제 선택하는가
빠르게 움직이고 싶을 때 Python을 선택하라: 데이터 파이프라인, ML 모델 훈련 및 추론, 자동화 스크립트, 내부 도구, 그리고 순수 런타임 속도보다 개발자 속도가 더 중요한 웹 API. AI나 데이터에 인접한 모든 것에 가장 안전한 기본값이다.
바이브 코딩 적합성
AI 어시스턴트는 Python에서 유난히 강하다 — 학습 데이터에서 가장 많이 등장하는 언어이므로, 생성된 코드는 대개 관용적이고 실행 가능하다. AI를 잘 지시하려면 원하는 라이브러리와 버전을 정확히 지정하고(예: "FastAPI와 Pydantic v2를 사용하라"), 당신과 모델 모두 근거를 유지하도록 타입 힌트를 요청하며, 버전 표류를 피하기 위해 requirements.txt나 pyproject.toml을 먼저 요청하라. 어시스턴트에게 작은 테스트나 실행 가능한 if __name__ == "__main__" 블록을 추가하도록 해, 다음으로 넘어가기 전에 각 단계를 검증할 수 있게 하라.
from collections import Counter
def top_words(text: str, n: int = 3) -> list[tuple[str, int]]:
words = (w.lower() for w in text.split())
return Counter(words).most_common(n)
print(top_words("the cat the dog the bird")) # [('the', 3), ('cat', 1), ('dog', 1)]