~/VibeHandbook
무료 PDF

언어

python.org

Python

무엇인가

내용물을 말하지 않고 상자를 건네받았다고 상상해 보라. 열어 보기 전에는 안에 무엇이 들었는지 모른다. Python은 데이터를 그렇게 다룬다. 변수에 무엇을 담을지 미리 선언하게 하지 않고, 프로그램이 실행되는 동안 어떤 종류의 값인지 알아낸다. 이것이 "동적 타입"이라는 말의 뜻이다. Python은 고수준의 동적 타입 언어로, 가독성과 방대한 생태계로 높이 평가받는다. 어디서나 실행되고, 거의 의사코드처럼 읽히며, 데이터 과학, 머신러닝, 스크립팅, 백엔드 서비스의 사실상 공용어다.

강점

  • 완만한 학습 곡선과 유명할 정도로 읽기 쉬운 문법.
  • 거대한 라이브러리 생태계(PyPI, Python의 패키지 저장소) — numpy, pandas, requests, FastAPI, 그리고 거의 모든 AI/ML 프레임워크.
  • 접착 코드, 자동화, 프로토타이핑, 데이터 작업에 탁월하다.
  • 대화형 탐색을 위한 강력한 REPL(즉석에서 입력하고 결과를 보는 대화형 프롬프트)과 노트북 문화.

트레이드오프

  • 순수 CPU 바운드 작업에는 느리다. GIL(한 번에 스레드 하나만 허용하는 잠금장치)이 진정한 멀티스레딩을 제한한다.
  • 아무도 검사하지 않는 양식의 오타를 떠올려 보라. 양식을 실제로 제출하기 전까지는 아무도 알아채지 못한다. Python도 비슷하다. 타입 오류(예: 숫자를 문자로 다루는 것)를 보통 그 코드 줄이 실제로 실행될 때에야 알아챈다. 즉 이런 오류를 런타임에 잡는다. 단, 타입 힌트와 mypy나 pyright 같은 검사기를 추가하면 달라진다.
  • 의존성 및 환경 관리(pip, venv, poetry, uv)는 반복되는 마찰의 원천이다.
  • 독립 실행 바이너리를 패키징하고 배포하기가 까다롭다.

언제 선택하는가

빠르게 움직이고 싶을 때 Python을 선택하라: 데이터 파이프라인, ML 모델 훈련 및 추론, 자동화 스크립트, 내부 도구, 그리고 순수 런타임 속도보다 개발자 속도가 더 중요한 웹 (응용 프로그램 인터페이스). AI나 데이터에 인접한 모든 것에 가장 안전한 기본값이다.

바이브 코딩 적합성

AI 어시스턴트는 Python에서 유난히 강하다 — 학습 데이터에서 가장 많이 등장하는 언어이므로, 생성된 코드는 대개 관용적이고 실행 가능하다. AI를 잘 지시하려면 원하는 라이브러리와 버전을 정확히 지정하고(예: "FastAPI와 Pydantic v2를 사용하라"), 당신과 모델 모두 근거를 유지하도록 타입 힌트를 요청하며, 버전 표류를 피하기 위해 requirements.txtpyproject.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)]