기초

파이썬 버전 정리: Python 2와 3, 3.10–3.15의 새 기능, 어떤 버전을 설치할까

업데이트: · Skillaria.Top

현재 살아 있는 파이썬 계열은 Python 3이며, 최신 안정 버전은 2026년 10월 9일에 나온 Python 3.15입니다. Python 2는 2020년에 지원이 끝났습니다. 새 버전은 매년 10월에 나오고 약 5년간 수정을 받으므로, 새 프로젝트에는 최신 3.x를 설치하고 python3 --version 명령으로 현재 버전을 확인하세요.

현재 활발히 개발되는 파이썬은 Python 3 하나입니다. 최신 안정 버전은 2026년 10월 9일에 출시된 Python 3.15이고, Python 2는 이미 2020년에 공식 지원이 끝났습니다. 아래에서는 파이썬 버전 번호의 의미, Python 2와 3의 차이, 3.10부터 3.15까지 새로 추가된 기능, 어떤 버전을 설치해야 하는지, 그리고 내 컴퓨터에 설치된 버전을 확인하는 방법을 정리했습니다.

파이썬 버전 번호 읽는 법

버전 번호는 3.15.0처럼 세 개의 숫자로 이루어집니다. 첫 번째 숫자는 메이저 버전(언어의 큰 갈래)입니다. 두 번째 숫자는 마이너 버전으로, 새 기능이 여기에 추가됩니다. 세 번째 숫자는 패치 번호로, 버그 수정만 담깁니다. 파이썬 버전을 이야기할 때는 보통 3.10, 3.11, 3.12처럼 마이너 버전을 가리킵니다.

2019년부터 PEP 602에 따라 1년 주기가 적용됩니다. 새 마이너 버전은 매년 10월에 나옵니다. 출시 약 반년 전부터 알파, 베타, 릴리스 후보가 공개되고, 출시 후에는 3.15.1, 3.15.2처럼 패치가 나옵니다. 같은 마이너 버전 안에서 패치를 올리는 것은 안전합니다. 패치 버전에서는 언어의 동작이 바뀌지 않습니다.

검색에서 헷갈리는 부분도 여기서 나옵니다. 'python 311'과 'python 3.11'은 같은 버전 3.11을 뜻합니다. 버전 번호는 소수점 숫자가 아니므로, 3.10은 3.9보다 새 버전이고, 3.15는 3.2보다 새 버전입니다.

Python 2와 Python 3: 차이점

Python 3은 2008년에 나왔고, 예전 설계의 문제를 고치려고 하위 호환성을 의도적으로 깼습니다. 그래서 Python 2용 코드는 상당 부분 수정하지 않으면 Python 3에서 실행되지 않습니다. 두 번째 계열의 마지막 버전은 2.7이며, 지원은 2020년 1월 1일에 끝났고, 최종 릴리스 2.7.18은 2020년 4월에 나왔습니다.

항목Python 2Python 3
출력print "hi" — 문장(statement)print("hi") — 함수
문자열기본은 바이트, 유니코드는 u"..."str은 항상 유니코드, 바이트는 bytes
나눗셈7 / 2는 37 / 2는 3.5, 정수 나눗셈은 7 // 2
입력raw_input()input()
범위range는 리스트를 만들고, xrange는 지연 평가range가 지연 평가
지원2020년부터 없음매년 새 버전

튜토리얼이나 답변에서 print를 괄호 없이 쓰고 있다면 Python 2 기준의 오래된 자료입니다. 요즘은 Python 2를 배울 이유가 거의 없습니다. 새 시스템에는 설치되지 않고, 라이브러리도 지원을 중단했으며, 오래된 코드를 옮길 때만 필요합니다.

Python 3.10–3.15의 새 기능

아래는 각 버전에서 일상적인 코드를 바꾸는 주요 기능입니다. 전체 변경 목록은 공식 문서의 What's New 항목에 있습니다.

Python 3.10 (2021년 10월)

  • 패턴 매칭 match/case(PEP 634) — if/elif 연쇄 대신 자료 구조를 분해하며 검사합니다.
  • 세로선으로 타입 합치기: Optional[int] 대신 int | None(PEP 604).
  • 하나의 with에서 괄호로 묶은 여러 컨텍스트 매니저.
  • 문법 오류 메시지가 훨씬 이해하기 쉬워짐.
def describe(point):
    match point:
        case (0, 0):
            return "원점"
        case (x, 0):
            return f"X축 위: {x}"
        case _:
            return "그 밖의 곳"

print(describe((3, 0)))  # X축 위: 3

Python 3.11 (2022년 10월)

  • 속도: Faster CPython 프로젝트 덕분에 인터프리터가 평균 약 25% 빨라졌고, 일부 작업에서는 더 크게 빨라졌습니다.
  • 정확한 트레이스백 위치: ^^^^ 화살표가 줄에서 오류가 난 정확한 식을 가리킵니다(PEP 657).
  • 예외 그룹과 except*(PEP 654), add_note()로 예외에 메모 달기.
  • TOML 읽기 모듈 tomllib — 예를 들어 pyproject.toml을 읽을 때 사용합니다.

Python 3.12 (2023년 10월)

  • 제네릭의 새 문법: def first[T](items: list[T]) -> T와 타입 별칭용 type 문(PEP 695).
  • f-문자열이 정식 문법으로 정리됨(PEP 701): 안쪽에서도 같은 따옴표, 줄바꿈, 주석을 쓸 수 있습니다.
  • 표준 라이브러리에서 오래된 distutils 제거.
  • 오류 메시지 힌트가 더 자세해짐. 예를 들어 "모듈을 import하는 것을 잊으셨나요?"처럼 안내합니다.
type Pair = tuple[int, int]

def first[T](items: list[T]) -> T:
    return items[0]

songs = ["a", "b"]
print(f"첫 번째: {first(songs)!r}, 전체 {len(songs)}")
print(f"{"안쪽 따옴표"}")  # 3.12부터 동작

자주 나오는 질문인 'f-문자열은 몇 버전부터 쓸 수 있나요?'에 대해 말하자면, f-문자열 자체는 Python 3.6에서 도입되었고, 중괄호 안에서 따옴표와 줄바꿈을 자유롭게 쓰는 기능은 3.12에서 추가되었습니다.

Python 3.13 (2024년 10월)

  • 새로운 대화형 콘솔: 색상, 여러 줄 편집, 기록, 괄호 없는 exit와 help 명령.
  • 실험적인 GIL 없는 빌드(free-threaded, PEP 703)와 실험적인 JIT 컴파일러(PEP 744).
  • 사용되지 않는 표준 모듈 제거, 예를 들어 cgi와 telnetlib(PEP 594).
  • 새 버전의 버그 수정 지원 기간이 2년으로 늘어남.

Python 3.14 (2025년 10월)

  • 템플릿 문자열 t-string: t"Hello, {name}"은 완성된 문자열이 아니라 안전하게 처리할 수 있는 템플릿 객체를 반환합니다(PEP 750).
  • 어노테이션의 지연 평가(PEP 649) — 파일 아래쪽에 선언된 타입과 관련된 문제가 줄어듭니다.
  • GIL 없는 빌드가 실험 단계를 벗어나 공식 지원을 받음.
  • 모듈 compression.zstd, 콘솔의 구문 강조, 괄호 없는 except A, B:.

Python 3.15 (2026년 10월 9일)

  • 지연 import lazy import(PEP 810): 모듈이 시작할 때가 아니라 처음 사용할 때 로드됩니다. 강의에서 측정한 결과, lazy import pandas를 쓴 스크립트는 280ms 대신 14ms에 시작했습니다.
  • 내장 변경 불가 딕셔너리 frozendict(PEP 814).
  • 제너레이터 목록에서의 언패킹: [*g for g in groups](PEP 798).
  • 표준 라이브러리의 샘플링 프로파일러 Tachyon(PEP 799).
  • 파일을 다룰 때 기본 인코딩 UTF-8(PEP 686) — Windows에서 인코딩 때문에 생기던 문제가 줄어듭니다.
  • 오류 메시지의 새로운 'Did you mean' 제안.
lazy import json                    # PEP 810
cfg = frozendict(limit=500)         # PEP 814
flat = [*g for g in [[1, 2], [3]]]  # PEP 798 -> [1, 2, 3]
print(flat, cfg["limit"])
# python -m profiling.sampling run app.py   # PEP 799, Tachyon

이 코드는 3.15에서만 실행됩니다. 더 오래된 버전에서는 lazy import와 컴프리헨션의 언패킹이 SyntaxError를 내고, frozendict는 NameError를 냅니다.

파이썬 버전별 지원 기간

각 버전은 약 5년 동안 지원됩니다. 처음에는 일반 버그 수정과 정기 패치를 받고(3.13부터는 2년), 그 후 지원 기간이 끝날 때까지 보안 수정만 받습니다. 그 뒤에는 EOL(end-of-life) 상태가 되어 취약점이 더 이상 수정되지 않습니다.

버전출시지원 종료2026년 10월 기준 상태
2.72010년2020년 1월지원되지 않음
3.92020년 10월2025년 10월지원되지 않음
3.102021년 10월2026년 10월지원 종료 임박
3.112022년 10월2027년 10월보안 수정만
3.122023년 10월2028년 10월보안 수정만
3.132024년 10월2029년 10월버그 수정 중
3.142025년 10월2030년 10월버그 수정 중
3.152026년 10월2031년 10월최신 버전

각 버전의 현재 상태는 Python Developer's Guide의 Status of Python versions 페이지에 공개됩니다. 오래 유지할 프로젝트의 버전을 고르기 전에 이 페이지를 확인하세요.

어떤 파이썬 버전을 설치할까

학습이나 새 프로젝트라면 최신 안정 버전, 지금은 Python 3.15를 설치하세요. '검증된 3.10을 쓰겠다'는 선택은 권장하지 않습니다. 3.10은 2026년 10월부터 보안 수정도 받지 않으며, 곧 끝나는 버전으로 배우면 나중에 다시 배워야 합니다. Python 3 안에서는 호환성이 좋습니다. 옛 버전용 코드는 거의 항상 새 버전에서도 동작하지만, 반대는 성립하지 않습니다.

예외도 있습니다. 필요한 라이브러리가 새 버전용 휠을 아직 내놓지 않았다면(C 확장을 가진 패키지에서 10월 출시 직후 몇 주 동안 자주 생깁니다) 이전 버전인 3.14를 쓰세요. 오래 유지되는 서버에서는 배포판의 저장소 버전이나 uv로 설치한 특정 버전을 기준으로 삼으세요. 핵심 원칙은 지원 종료까지 1년 미만 남은 버전을 고르지 않는 것입니다.

상황설치할 버전
처음부터 배우는 중최신 안정 버전(3.15)
새 프로젝트최신 또는 바로 이전 마이너 버전
라이브러리가 최신 버전을 지원하지 않음이전 마이너 버전
3.10 이하로 된 오래된 프로젝트지원되는 버전으로 이전 계획 세우기
Python 2 코드Python 3으로 옮기기

내 컴퓨터의 파이썬 버전 확인하는 법

터미널에서 명령 한 줄이면 됩니다. macOS와 Linux에서는 보통 python3을 쓰고, Windows에서는 python 또는 런처 py를 씁니다.

$ python3 --version
Python 3.12.3        # 오래된 버전 — 업데이트할 때

$ python3 -V
Python 3.15.0

Windows에서는 런처가 설치된 모든 버전을 한꺼번에 보여 주고, uv는 자신이 찾았거나 설치할 수 있는 버전을 보여 줍니다.

py --list
uv python list

프로그램 안에서 버전을 얻으려면 sys 모듈을 씁니다. sys.version_info 튜플을 비교하면, 스크립트가 스스로 인터프리터가 맞는지 확인하게 할 수 있습니다.

import sys

print(sys.version)            # 빌드 날짜가 포함된 전체 문자열
print(sys.version_info[:3])   # 예: (3, 15, 0)

if sys.version_info < (3, 10):
    raise SystemExit("Python 3.10 이상이 필요합니다")

설치한 버전과 python3 --version 결과가 다르다면, PATH에서 먼저 찾히는 다른 인터프리터가 있는 것입니다. macOS와 Linux에서는 which python3, Windows에서는 where python으로 실제 경로를 확인할 수 있습니다.

한 컴퓨터에 여러 버전 설치하기

3.13과 3.15를 함께 두는 것은 흔한 일입니다. 각 버전은 자기 폴더에 설치됩니다. 여러 버전을 관리하기에는 uv가 편합니다. uv python install 3.15는 버전을 내려받고, uv python pin 3.15는 .python-version 파일로 프로젝트에 버전을 고정합니다. Linux의 시스템 파이썬은 직접 바꾸거나 업데이트하지 않는 것이 좋습니다. 운영체제의 도구들이 그 버전에 의존하기 때문입니다.

프로젝트가 요구하는 최소 버전은 pyproject.toml의 requires-python 항목에 적습니다. 그러면 패키지 설치 도구가 맞지 않는 인터프리터에 프로젝트를 설치하지 않습니다.

[project]
name = "expenses"
version = "0.1.0"
requires-python = ">=3.15"

정리

현재 사용되는 파이썬 버전은 3 계열입니다. 그중 최신은 3.15이며, 지연 import, frozendict, 기본 UTF-8이 특징입니다. Python 2는 2020년에 끝났고, 3.10은 2026년 10월에 지원이 끝나므로 배우기와 새 프로젝트는 최신 버전에서 시작하는 것이 좋습니다. 내 버전은 python3 --version으로 확인하세요. 강의의 각 주제는 '3.10–3.15의 새 기능' 블록으로 끝나므로, 버전별 변화도 실습으로 함께 익히게 됩니다.

자주 묻는 질문

IDLE Python 3.10 64-bit가 시작 메뉴에 보이는데, 이게 무슨 뜻인가요?

파이썬 설치 프로그램이 함께 설치한 기본 개발 환경(IDLE)이라는 뜻이며, 이름에 인터프리터 버전과 비트 수가 적혀 있습니다. 3.10이라면 지원이 끝나 가는 버전이므로 최신 버전을 설치하는 편이 좋습니다.

Python 3.12를 3.15로 덮어쓰면서 업데이트할 수 있나요?

마이너 버전은 덮어쓰지 않고 나란히 설치됩니다. 3.15를 설치해도 이전 버전은 남아 있으며, 필요 없으면 따로 삭제하면 됩니다. 라이브러리는 새 버전에 다시 설치하거나 가상 환경을 새로 만들어야 합니다.

64비트와 32비트 버전은 무엇이 다른가요?

64비트 버전은 더 많은 메모리를 사용할 수 있고 요즘의 모든 컴퓨터에 적합합니다. 32비트 버전은 매우 오래된 시스템에서만 씁니다.

알파 버전과 베타 버전은 무엇인가요?

다음 버전을 미리 테스트하기 위한 예비 빌드입니다. 학습과 업무에는 정식 릴리스만 사용하세요.

영상으로 이 주제 배우기

이 주제는 “Python 3.15: от новичка до профи” 강의에서 실습과 함께 자세히 다룹니다.

강의로 이동