본문으로 건너뛰기
Advertisement

Ch 1.1 파이썬(Python) 개요

대상 버전: Python 3.12+ 공식 문서: Python 공식 문서 (한국어)

파이썬은 1991년 귀도 반 로섬(Guido van Rossum)이 발표한 고급 프로그래밍 언어입니다. 오늘날 AI/ML, 웹 개발, 데이터 분석, 자동화 등 사실상 모든 분야에서 활용되며, 전 세계에서 가장 인기 있는 언어 중 하나로 자리 잡았습니다.

1. 파이썬이란?

파이썬(Python)이라는 이름은 뱀에서 따온 것이 아닙니다. 귀도 반 로섬이 영국 BBC 코미디 프로그램 "Monty Python's Flying Circus" 의 팬이었기 때문에 붙여진 이름입니다. 짧고 기억하기 쉬우며, 재미있는 이름을 원했다고 합니다.

  • 창시자: 귀도 반 로섬 (Guido van Rossum), 네덜란드 출신 프로그래머
  • 최초 릴리스: 1991년 (Python 0.9.0)
  • 현재 관리: Python Software Foundation (PSF)
  • 라이선스: PSF License (오픈소스, 상업적 이용 가능)
# 파이썬의 철학을 보여주는 간단한 예제
# 읽기 쉽고, 간결하며, 명확한 코드
names = ["Alice", "Bob", "Charlie"]
for name in names:
print(f"안녕하세요, {name}님!")

2. 파이썬의 4가지 주요 특징

특징 1: 뛰어난 가독성과 들여쓰기 문법

파이썬은 중괄호({}) 대신 들여쓰기(indentation) 로 코드 블록을 구분합니다. 코드가 마치 영어 산문처럼 읽힙니다.

# Java나 C라면 중괄호가 필요하지만, 파이썬은 들여쓰기로 블록 표현
def greet(name: str) -> str:
if name:
return f"Hello, {name}!"
else:
return "Hello, stranger!"

print(greet("Python")) # Hello, Python!

특징 2: 인터프리터 언어

파이썬은 인터프리터(Interpreter) 언어입니다. 소스코드를 컴파일 없이 한 줄씩 즉시 실행할 수 있습니다.

  • 컴파일 단계 없이 코드 작성 즉시 실행 가능
  • REPL(Read-Eval-Print Loop) 환경에서 대화형 실행 지원
  • 빠른 프로토타이핑과 실험에 유리

특징 3: 멀티 패러다임 지원

파이썬은 여러 프로그래밍 패러다임을 지원합니다.

# 절차적 프로그래밍
def add(a, b):
return a + b

# 객체지향 프로그래밍
class Calculator:
def add(self, a, b):
return a + b

# 함수형 프로그래밍
from functools import reduce
result = reduce(lambda a, b: a + b, [1, 2, 3, 4, 5])
print(result) # 15

특징 4: 거대한 생태계 (PyPI)

PyPI(Python Package Index) 에는 50만 개 이상의 패키지가 등록되어 있습니다. pip install 명령 하나로 거의 모든 기능을 바로 사용할 수 있습니다.

3. Python 2 vs Python 3

Python 2는 2020년 1월 1일부로 공식 지원 종료(EOL, End of Life) 되었습니다. 현재는 Python 3.x가 유일한 표준입니다.

구분Python 2Python 3
printprint "hello" (문)print("hello") (함수)
정수 나눗셈5 / 2 = 25 / 2 = 2.5
문자열 기본ASCIIUnicode (UTF-8)
range()리스트 반환이터레이터 반환
EOL2020년 1월현재 지원 중
# Python 3에서의 올바른 사용법
print("Hello, World!") # 함수 형태
result = 5 / 2 # 2.5 (실수 나눗셈)
integer_div = 5 // 2 # 2 (정수 나눗셈)
text = "파이썬은 유니코드를 기본 지원합니다 🐍"
print(text)

4. 주요 버전 타임라인

버전출시 연도주요 기능
Python 3.82019Walrus 연산자(:=), f-string 디버깅(f"{x=}")
Python 3.92020list[int] 직접 타입 힌트, 딕셔너리 병합(|)
Python 3.102021match-case 구문 (패턴 매칭), int | str 유니온 타입
Python 3.112022최대 60% 성능 향상, 향상된 오류 메시지
Python 3.122023타입 시스템 개선, f-string 완전 개편, @override 데코레이터
Python 3.132024인터프리터 개선, REPL 업그레이드, JIT 컴파일러(실험적)
# Python 3.10+ match-case (구조적 패턴 매칭)
def http_status(status: int) -> str:
match status:
case 200:
return "OK"
case 404:
return "Not Found"
case 500:
return "Internal Server Error"
case _:
return "Unknown"

print(http_status(404)) # Not Found

5. 활용 분야 6가지

1) AI / 머신러닝 (ML)

TensorFlow, PyTorch, scikit-learn 등 세계 최고 수준의 AI 라이브러리가 파이썬 기반입니다.

2) 웹 백엔드 개발

Django, FastAPI, Flask 등의 웹 프레임워크로 Instagram, Pinterest, Dropbox 등이 파이썬으로 구축되었습니다.

3) 데이터 분석 / 과학

Pandas, NumPy, Matplotlib, Jupyter Notebook을 활용한 데이터 처리와 시각화.

4) 자동화 / 스크립팅

파일 처리, 웹 크롤링, 업무 자동화, 테스트 자동화(Selenium, Playwright).

5) 교육

전 세계 대학과 교육 기관에서 프로그래밍 입문 언어로 가장 많이 채택됩니다.

6) DevOps / 인프라

Ansible, Fabric, AWS Lambda, GCP Cloud Functions 등 인프라 자동화에 폭넓게 사용.

6. 파이썬의 철학 — The Zen of Python

파이썬 인터프리터에서 import this를 실행하면 팀 피터스(Tim Peters)가 작성한 "파이썬의 선(禪)" 19가지 격언이 출력됩니다.

import this

주요 격언과 의미:

원문의미
Beautiful is better than ugly.아름다운 코드가 추한 코드보다 낫다.
Explicit is better than implicit.명시적인 것이 암묵적인 것보다 낫다.
Simple is better than complex.단순한 것이 복잡한 것보다 낫다.
Readability counts.가독성은 중요하다.
There should be one obvious way to do it.명확한 한 가지 방법이 있어야 한다.
If the implementation is hard to explain, it's a bad idea.설명하기 어려운 구현은 나쁜 아이디어다.
# Zen of Python 정신을 담은 코드 예시
# 나쁜 예: 지나치게 영리한(clever) 코드
result = (lambda f: (lambda x: f(lambda v: x(x)(v)))(lambda x: f(lambda v: x(x)(v))))(lambda f: lambda n: 1 if n == 0 else n * f(n-1))(5)

# 좋은 예: 명확하고 읽기 쉬운 코드
def factorial(n: int) -> int:
"""n의 팩토리얼을 계산합니다."""
if n == 0:
return 1
return n * factorial(n - 1)

print(factorial(5)) # 120

고수 팁: 파이썬 커뮤니티와 PEP

PEP(Python Enhancement Proposal) 는 파이썬의 새로운 기능, 문법, 가이드라인을 제안하는 공식 문서입니다.

  • PEP 8: 파이썬 코드 스타일 가이드 (필독!)
  • PEP 20: The Zen of Python (import this)
  • PEP 484: 타입 힌트 도입
  • PEP 572: Walrus 연산자 (:=) 도입
  • PEP 634: 구조적 패턴 매칭 (match-case)
# PEP 8 스타일 가이드 핵심
# 좋은 예
user_name = "alice" # snake_case 변수명
MAX_RETRIES = 3 # UPPER_CASE 상수
class UserProfile: # PascalCase 클래스명
pass

# 나쁜 예
userName = "alice" # camelCase (자바 스타일 — 파이썬에서 비권장)
maxretries = 3 # 구분 없는 소문자
class user_profile: # snake_case 클래스명 (비권장)
pass

커뮤니티 참여 방법:


파이썬의 기본 개념을 이해했다면, 다음 단계는 실제 개발 환경을 구축하는 것입니다. 다음 챕터에서 파이썬 설치부터 가상환경 설정까지 단계별로 살펴보겠습니다.

Advertisement