처리중입니다. 잠시만 기다려주세요.
TTJ 코딩클래스
정규반 단과 자료실 테크 뉴스 코딩 퀴즈
테크 뉴스
Hacker News 2026.05.22 76

Python 3.15에서 조용히 들어온 진짜 알짜 기능들

Hacker News 원문 보기

헤드라인 너머의 변화들

Python 3.15가 곧 출시를 앞두고 있어요. 보통 새 버전 얘기 나오면 다들 "GIL이 어떻게 됐냐", "JIT은 들어왔냐" 같은 큰 떡밥에만 관심을 쏟잖아요. 그런데 한 개발자(blog.changs.co.uk)가 정리한 글을 보면, 헤드라인에 나오지 않은 자잘하지만 정말 유용한 기능들이 꽤 많아요. 오히려 실무에서는 이런 변화가 더 자주 쓰이게 될 가능성이 커요.

1. t-strings: 문자열 템플릿의 새로운 형태

가장 눈에 띄는 변화 중 하나는 t-strings(템플릿 문자열) 이에요. 우리가 익히 알고 있는 f-strings가 "즉시 평가되는 포맷 문자열"이었다면, t-strings는 "평가가 지연되는 템플릿"이에요.

이게 뭐냐면, 예를 들어 t"Hello, {name}" 이렇게 쓰면 그게 바로 문자열로 변환되는 게 아니라 Template 객체가 만들어져요. 그 객체를 나중에 처리해서, 이스케이프 처리를 다르게 한다든지, SQL 인젝션을 방지한다든지, HTML 안전하게 렌더링한다든지 같은 후처리를 할 수 있어요. PEP 750에서 도입된 기능이죠.

이게 왜 중요하냐면, SQL이나 HTML, Shell 명령어를 다룰 때 정말 유용하거든요. 지금까지는 f-string으로 SQL을 짜다가 인젝션 취약점을 만드는 실수가 많았어요. t-strings를 쓰면 "이건 사용자 입력이고, 이건 코드의 일부야"를 구분할 수 있어서 훨씬 안전한 코드를 쓸 수 있게 돼요.

2. except/except* 괄호 없이 쓰기

Python 3.14에서 도입돼서 3.15에서 더 다듬어진 기능인데, 여러 예외를 한꺼번에 잡을 때 괄호 없이 쓸 수 있게 됐어요.

예전에는 except (ValueError, TypeError): 이렇게 괄호로 묶어야 했어요. 이제는 except ValueError, TypeError: 처럼 그냥 쉼표로 나열할 수 있어요. 별 거 아닌 것 같지만, Python 2에서 3로 넘어올 때 일부러 금지됐던 문법이 다시 부활한 거예요. 사람들이 자꾸 except Exception, e: 같은 구문(이건 옛날 문법으로 변수 바인딩)과 헷갈렸기 때문이었거든요. 이제는 as로 변수 바인딩을 명확히 하니까 다시 허용하게 된 거죠.

3. asyncio의 점진적 개선

3.15에서는 비동기 프로그래밍 쪽에도 작은 개선들이 있어요. TaskGroup의 성능 개선에러 전파 방식의 정리가 대표적이에요.

TaskGroup이 뭐냐면, 여러 비동기 작업을 묶어서 관리하는 도구예요. Python 3.11에서 도입됐는데, 자식 작업 중 하나가 실패하면 다른 작업도 깔끔하게 취소하고 예외를 모아주는 기능이에요. 3.15에서는 이걸 더 빠르게 만들었고, 취소 처리 시의 미묘한 버그들도 잡았어요.

또 하나는 asyncio.timeout() 컨텍스트 매니저의 안정성 강화예요. "이 작업이 10초 안에 안 끝나면 취소해줘"를 깔끔하게 표현하는 도구인데, 중첩 사용 시 일부 케이스에서 문제가 있던 게 수정됐어요.

4. 타입 시스템의 진화

Python의 타입 힌트는 매년 조금씩 발전하고 있어요. 3.15에서는 TypeIsTypeGuard의 개선, 그리고 PEP 695 제네릭 문법의 완성도 향상이 핵심이에요.

TypeIs가 뭐냐면, "이 변수가 정말 이 타입이 맞는지 확인해주는 함수"를 만들 때 쓰는 거예요. 예를 들어 def is_string(x) -> TypeIs[str]: 이런 식으로 정의하면, 호출한 쪽에서 type narrowing이 더 정확하게 일어나요. 이건 mypy나 pyright 같은 타입 체커가 코드를 더 똑똑하게 이해하게 만들어줘요.

그리고 type 키워드로 제네릭 타입 별칭을 쉽게 만들 수 있게 된 게 3.12부터의 흐름인데, 3.15에서 더 다듬어졌어요. 예전엔 from typing import TypeVar, Generic 하고 복잡하게 쓰던 걸 이제는 type Vector[T] = list[T] 한 줄로 끝낼 수 있어요.

5. CPython 내부 최적화

눈에 보이진 않지만 성능에 큰 영향을 주는 변화들도 있어요. 인터프리터 루프 최적화, dict 구현 개선, 인스턴스 속성 접근 속도 향상 같은 것들이에요.

특히 3.13부터 시작된 Free-threaded Python(GIL 없는 모드) 의 안정화 작업이 3.15에서도 계속되고 있어요. GIL이 뭐냐면, 파이썬이 한 번에 하나의 스레드만 파이썬 바이트코드를 실행하게 강제하는 잠금장치예요. 이게 멀티코어 활용을 막는 큰 장벽이었는데, 이제 옵션으로 끌 수 있게 된 거죠. 다만 실험적인 기능이라 프로덕션에 쓰려면 라이브러리 호환성 같은 걸 꼼꼼히 확인해야 해요.

다른 언어와 비교해보면

Python의 최근 변화를 보면, JavaScript/TypeScript 진영의 경험을 흡수하는 느낌이 있어요. t-strings는 사실상 JavaScript의 tagged template literals와 매우 비슷한 아이디어예요. 타입 시스템도 TypeScript에서 검증된 패턴을 빌려오고 있고요.

반면 RubyGo 같은 언어들과 비교하면, Python은 "한 번에 큰 혁신"보다 "점진적 누적 개선" 전략을 택하고 있어요. Go 1.x가 거의 10년 동안 안정성을 유지한 것과는 다른 접근이에요. 이게 좋다 나쁘다는 평가가 갈리는데, 적어도 Python 사용자들에게는 매년 새로 배울 게 있다는 의미예요.

한국 개발자에게

실무에서 당장 도움이 되는 부분을 정리하면 이래요. 데이터 분석이나 백엔드 일을 하시는 분이라면 t-strings로 SQL 쿼리를 안전하게 짜는 패턴을 익혀두세요. 이게 정착되면 SQLAlchemy 같은 라이브러리들이 더 우아한 API를 제공하게 될 가능성이 커요.

비동기 서버 개발자라면 TaskGroup과 timeout 관련 변경을 꼭 챙겨두세요. FastAPI, aiohttp 같은 프레임워크를 쓸 때 직접 영향을 받는 부분이에요.

대규모 코드베이스를 관리하시는 분들에게는 새로운 타입 힌트 문법이 도움이 될 거예요. 코드 리뷰가 더 쉬워지고, IDE 자동완성이 더 똑똑해지거든요.

마무리

Python 3.15는 "혁명적 한 방"은 없지만, 실무 개발자의 일상을 한 단계씩 편하게 만들어주는 변화들로 가득해요. 헤드라인에 안 나온 기능들이 사실 매일 쓰는 코드의 품질을 좌우하는 경우가 많거든요.

여러분은 새 Python 버전이 나올 때 어떤 기능부터 살펴보세요? 그리고 t-strings 같은 새 문법, 실무에서 바로 도입할 의향이 있으세요?


🔗 출처: Hacker News

이 뉴스가 유용했나요?

이 기술을 직접 배워보세요

파이썬으로 자동화를 시작해보세요

파이썬 기초부터 자동화까지 실전 강의.

파이썬 강의 보기

"비전공 직장인인데 반년 만에 수익 파이프라인을 여러 개 만들었습니다"

실제 수강생 후기
  • 비전공자도 6개월이면 첫 수익
  • 20년 경력 개발자 직강
  • 자동화 프로그램 + 소스코드 제공

매일 AI·개발 뉴스를 받아보세요

주요 테크 뉴스를 매일 아침 이메일로 전해드립니다.

스팸 없이, 언제든 구독 취소 가능합니다.