우리는 왜 파이썬을 쓰는가?
1. 인터프리터 언어 vs 컴파일 언어: 빠른 피드백 루프

- 컴파일 언어(C/C++/Java)
- 소스 → (전통적인) 기계어 → 실행
- 장점: 네이티브 성능, 최적화 가능
- 단점: 작성 → 컴파일 → 재실행 사이클이 길고, 수정할 때마다 전체 빌드해야 함

- 인터프리터 언어(Python, Ruby 등)
- 소스 → 바이트코드(.pyc) → 가상 머신에서 한 줄씩 실행
- 장점: 수정 즉시 실행 가능, REPL로 실험하기 편함
- 단점: 네이티브 대비 실행 속도 느림, GIL 등 동시성 제약
- 파이썬은 절충안
- 바이트코드 컴파일 + 인터프리팅 구조로, 매번 전체 구문 분석(parse)을 하지 않아도 됨.
- 덕분에 “컴파일 언어처럼 빠른 시작”과 “인터프리터처럼 짧은 피드백 루프”의 장점을 동시에 취할 수 있음

1.1 파이썬 인터프리터 사용법 (튜토리얼 챕터 2 요약 보강)
- 실행 및 호출 방식(REPL: “읽기(Read) → 평가(Eval) → 출력(Print) → 반복(Loop)”)
- 인터랙티브 모드: 터미널에서
python3.13만 입력하면 즉시 REPL 환경이 시작되고, 한 줄씩 코드를 실행하며 즉각적인 결과를 확인할 수 있음 - 스크립트 모드:
python script.py로 파일을 일괄 실행하며, 모든 입력이 한 번에 파싱·실행된 뒤 종료됨 - 인라인 실행:
python -c "command"옵션을 사용해 짧은 코드 조각을 즉시 실행할 수 있음 - 모듈 실행:
python -m module_name으로 모듈을__main__으로 실행하고, 모듈 경로를 스크립트처럼 처리함.
2. 개발자 관점의 생산성 vs 성능 트레이드오프
- “빠른 개발”이 곧 빠른 실험
- 머신러닝 모델 프로토타입 짤 때, 몇 줄의 스크립트로 데이터 전처리 → 학습 → 평가까지 한 번에 돌려볼 수 있음.
- C/C++로 전처리 로직 짜고, 빌드하고, 디버깅하는 시간과 비교 불가임.
- 고수준 자료구조 & 풍부한 표준/서드파티 라이브러리
- 리스트, 딕셔너리, 튜플 같은 내장 컨테이너만으로도 복잡한 데이터 조작이 한 줄에 해결됨.
- numpy, pandas, scikit-learn, TensorFlow/PyTorch 같은 생태계가 이미 잘 정립돼 있어서, 포맷 변환·수치 계산·모델 학습까지 토막 코드처럼 붙여 쓰면 됨.
- 단점은 보완 가능
- 속도가 느리다면 핵심 병목만 Cython/C 확장 모듈로 빼거나, PyPy JIT을 써서 보완할 수 있고,
- 멀티쓰레드 병렬 처리가 필요하면 프로세스 풀이나 외부 분산 시스템(Ray, Dask 등)을 활용하면 됨. MPI 파이썬 병렬처리
3. AI 공부할 때 최고
- 즉시성(Instant Gratification)
- REPL 환경에서 데이터프레임 출력해보고, 시각화도 바로바로 확인.
- 디버깅 용도로도 ipdb나 pdb 바로 띄워서 스텝 바이 스텝 실행.
- 튜토리얼·예제·커뮤니티
- 공식 튜토리얼, Stack Overflow, GitHub에 깔린 수만 개의 Jupyter 노트북.
- “이 코드를 돌려보니 결과가 이렇게 나오더라”를 그대로 가져다 써도 되고, 파생해서 실험하기 좋음.
- 플랫폼 독립성
- Windows/macOS/Linux 어디서나 똑같이 설치해서 실행 가능.
- 바이트코드(.pyc)와 PVM 구조로 하드웨어 디펜던시 최소화
4. 파이썬은 성능보다는 생산성을 우선시하는 언어다!
- 빠른 개발 피드백 루프, 고수준 자료구조, 방대한 라이브러리, 이식성, 커뮤니티 문화가 한데 어우러져
- 머신러닝·딥러닝 모델 실험부터, 배포 스크립트 작성, 데이터 시각화, 리포트 자동 생성까지 빠르게 빌드해볼 수 있기 때문에 우리는 파이썬을 공부할 필요성이 있다.