Skip to main content

왜 Python인가

학습 목표

  • Python의 핵심 설계 철학과 특징을 설명할 수 있다
  • AI/ML 생태계에서 Python이 표준 언어가 된 이유를 이해한다
  • Python과 다른 프로그래밍 언어의 차이점을 비교할 수 있다

Python이란

Python은 1991년 귀도 반 로섬(Guido van Rossum)이 만든 범용 프로그래밍 언어(General-purpose Programming Language)입니다. “읽기 쉬운 코드”를 최우선 가치로 설계되었으며, 이 철학은 import this로 확인할 수 있는 The Zen of Python에 담겨 있습니다.
import this
# Beautiful is better than ugly.
# Explicit is better than implicit.
# Simple is better than complex.
# Readability counts.
# ...

핵심 특징

1. 가독성 중심 설계

Python은 들여쓰기(Indentation)로 코드 블록을 구분합니다. 중괄호({})가 아닌 공백으로 구조를 표현하므로, 누가 작성하든 일관된 형태의 코드가 됩니다.
# Python - 들여쓰기로 블록 구분
def greet(name):
    if name:
        print(f"안녕하세요, {name}님!")
    else:
        print("이름을 입력해주세요.")

2. 동적 타이핑(Dynamic Typing)

변수 선언 시 타입을 명시하지 않습니다. 실행 시점에 타입이 결정되므로 빠른 프로토타이핑에 유리합니다.
x = 42          # 정수(int)
x = "hello"     # 같은 변수에 문자열(str) 할당 가능
x = [1, 2, 3]   # 리스트(list)도 가능
동적 타이핑은 편리하지만, 대규모 프로젝트에서는 타입 관련 버그가 발생할 수 있습니다. 이를 보완하기 위해 타입 힌트를 사용합니다.

3. 인터프리터 언어

Python은 소스 코드를 한 줄씩 해석하여 실행합니다. 컴파일 단계가 없어 코드 수정과 실행 사이클이 빠릅니다.
# 터미널에서 바로 실행
# $ python script.py

# 또는 REPL(대화형 인터프리터)에서 한 줄씩 실행
# >>> 2 + 3
# 5

4. 멀티 패러다임

절차적, 객체지향, 함수형 프로그래밍 스타일을 모두 지원합니다.
# 절차적 스타일
total = 0
for i in range(10):
    total += i

# 함수형 스타일
total = sum(range(10))

# 객체지향 스타일
class Calculator:
    def __init__(self):
        self.total = 0

    def add(self, value):
        self.total += value
        return self

5. 배터리 포함(Batteries Included)

표준 라이브러리(Standard Library)만으로도 파일 처리, 네트워크, 데이터 직렬화 등 대부분의 작업을 수행할 수 있습니다.
import json        # JSON 처리
import pathlib     # 파일 경로 관리
import datetime    # 날짜/시간
import re          # 정규표현식
import csv         # CSV 파일 처리

다른 언어와의 비교

특성PythonJavaC++JavaScript
타이핑동적정적정적동적
실행 방식인터프리터JVM 컴파일네이티브 컴파일인터프리터/JIT
학습 난이도낮음중간높음중간
실행 속도느림빠름매우 빠름중간
ML/DL 생태계최고제한적백엔드제한적
주요 용도AI/ML, 자동화, 웹엔터프라이즈시스템, 게임웹 프론트엔드

AI/ML 생태계에서의 위치

Python이 AI/ML의 사실상 표준(de facto standard)이 된 이유는 크게 세 가지입니다.

1. 압도적인 라이브러리 생태계

2. 글루 언어(Glue Language)로서의 역할

Python의 실행 속도는 C/C++보다 느리지만, 핵심 연산은 C/C++/CUDA로 작성된 라이브러리가 처리합니다. Python은 이들을 연결하는 “접착제” 역할을 합니다.
import numpy as np

# Python 코드이지만, 실제 연산은 C로 작성된 NumPy가 처리
# 1000만 개 요소의 행렬 곱셈도 밀리초 단위로 완료
a = np.random.randn(1000, 1000)
b = np.random.randn(1000, 1000)
c = a @ b  # 내부적으로 BLAS 라이브러리(C/Fortran) 호출

3. 연구와 산업의 공통 언어

학계의 논문 구현 코드가 대부분 Python이며, 산업계의 ML 파이프라인도 Python 기반입니다. 연구 결과를 실무에 적용하는 과정에서 언어 전환이 필요 없습니다.

Python 버전과 현재 상태

버전주요 특징상태
3.10match-case 구문, 향상된 에러 메시지유지보수
3.1110-60% 성능 향상, 예외 그룹유지보수
3.12타입 힌트 개선, f-string 중첩현재 안정
3.13GIL 해제 실험(Free-threaded), JIT 컴파일러최신
이 교육 과정은 Python 3.10 이상을 기준으로 작성되었습니다. match-case 등 3.10+ 문법을 활용합니다.
Python 2는 2020년 1월 1일부로 공식 지원이 종료(EOL)되었습니다. 보안 패치도 더 이상 제공되지 않으므로, 모든 새 프로젝트는 Python 3을 사용해야 합니다.
Python 자체는 느리지만, NumPy/PyTorch 등의 핵심 연산은 C/C++/CUDA로 구현되어 있어 성능 문제가 없습니다. Python은 이들을 호출하고 조합하는 역할만 합니다.
VS Code + Python 확장이 가장 범용적입니다. Jupyter Notebook/Lab은 데이터 분석과 실험에, PyCharm은 대규모 프로젝트에 적합합니다.

체크리스트

  • Python의 핵심 설계 철학(가독성, 동적 타이핑, 멀티 패러다임)을 설명할 수 있다
  • Python이 AI/ML 생태계의 표준 언어인 이유를 세 가지 이상 설명할 수 있다
  • Python과 다른 언어의 장단점을 비교할 수 있다

다음 문서