파이썬 3.9의 중요한 새로운 기능은 다음과 같다.
파이썬 릴리스 주기, 연간으로 전환
지금까지 파이썬은 18개월 단위로 개발, 출시됐다. PEP 602는 파이썬 개발 팀에 연간 릴리스 주기를 도입할 것을 제안했는데 이 제안이 채택됐다.릴리스 주기가 연간으로 전환한 것은 릴리스당 기능의 수가 더 적어짐을 의미하지만 동시에 기능 테스트에 대한 피드백이 더 빨라지고 각 릴리스의 단절적 변화(breaking change)가 더 줄어들어 사용자와 리눅스 배포판 관리자 관점에서 파이썬을 더 자주 업그레이드할 인센티브가 높아진다는 것을 의미하기도 한다. 또한 개발 주기의 후반부에 제안된 새 기능이 새 릴리스에 적용되는 기간도 단축될 것이다.
새 타임라인에 따라 파이썬 3.9는 2020년 10월에 공식 출시된다. 파이썬 3.10은 2020년 5월 19일부터 공식 프리 알파 개발 단계를 시작했고, 파이썬 3.9가 공식 출시될 때 알파 개발 단계로 진입해 2021년 10월에 출시된다. 미래의 파이썬 릴리스도 이와 동일한 패턴에 따른다.
빨라진 기본 속도
지난 버전에서도 파이썬은 리비전이 나올 때마다 성능이 개선됐다. 파이썬 3.9에서는 기존 코드를 변경할 필요 없이 성능을 높여주는 두 가지 큰 개선이 이뤄졌다.첫 번째 개선은 파이썬 3.8에 도입된 vectorcall 프로토콜의 사용 확대다. vectorcall은 호출에 의해 생성되는 임시 객체를 최소화하거나 없애는 방법으로 일반적인 여러 함수의 호출 속도를 높여준다. 파이썬 3.9에서는 여러 파이썬 빌트인 함수(range, tuple,set, frozenset, list, dict)가 내부적으로 vectorcall을 사용해 실행 속도를 높인다.
두 번째 큰 성능 향상은 더 효율적인 파이썬 소스코드 파싱이다. C파이썬(CPython) 런타임용 새로운 파서의 설계 목적은 성능 문제 해결보다는 기존 파서의 내부적인 비일관성을 해결하는 데 있지만 부가적인 혜택으로 특히 볼륨이 큰 코드에서 파싱 속도가 더 빨라졌다.
더 많은 파이썬 문자열과 사전 함수
파이썬은 일반적인 데이터 형식을 쉽게 조작할 수 있게 해준다. 파이썬 3.9는 문자열과 사전을 위한 새로운 기능으로 이 편의성을 더욱 높였다. 문자열의 경우 프리픽스(prefixes)와 서픽스(suffixes)를 제거하기 위한 새로운 메소드가 있다. 지금까지 오랫동안 많은 수작업이 필요했던 부분이다. 사전의 경우 이제 유니온 연산자(union operators)가 있다. 하나는 두 개의 사전을 새로운 사전 하나로 병합하기 위한 연산자, 다른 하나는 한 사전의 내용을 다른 사전으로 업데이트하는 연산자다.
데코레이터, 일부 제약 제거
데코레이터(Decorators)는 파이썬 함수를 래핑해 프로그램 방식으로 함수의 동작을 변경할 수 있게 해준다. 이전까지 데코레이터는 @ 기호, 이름(예: func) 또는 점으로 연결한 이름(func.method), 그리고 선택적 요소인 단일 호출(func.method(arg1, arg2))로만 구성이 가능했다. 파이썬 3.9에서 데코레이터는 이제 유효한 모든 식으로 구성이 가능하다.이 제한을 피하는 전통적인 방법 가운데 하나는 데코레이터로 사용될 때 더 복잡한 식을 대신하는 함수 또는 람다 식(lambda expression)을 만드는 것이었다. 이제는 데코레이터로 기능할 수 있는 무언가를 산출하기만 한다면 어떤 식이든 가능하다.
새로운 파이썬 형식 연산
파이썬은 지난 몇 버전에 걸쳐 형식 힌트(type hinting) 지원을 확장해왔다. 주로 린터와 코드 검사기를 위한 것이다. C파이썬에서 런타임에 형식이 강제되지 않고, 파이썬이 정적 형식 지정 언어가 될 계획도 없다. 그러나 형식 힌트는 큰 코드베이스에서 일관성을 보장하는 데 유용한 툴이므로 파이썬 코드에서도 형식 힌트가 분명 도움이 된다.파이썬 3.9에는 형식 힌트와 형식 주석(type annotations)을 위한 두 가지 새로운 기능이 도입됐다. 하나는 컬렉션 콘텐츠(예: 목록과 사전)용 형식 힌트로, 이제 파이썬에서 네이티브로 사용 가능하다. 따라서 예를 들어 목록을 typing 라이브러리 없이 list[int], 즉 정수 목록으로 기술할 수 있다.
파이썬 형식 메커니즘에 두 번째로 추가된 기능은 유연한 함수 및 변수 주석이다. 이를 통해 Annotated 형식을 사용해 사전에(린팅 툴(linting tools) 사용) 또는 런타임에 검사가 가능한 메타데이터를 사용해 형식을 기술할 수 있다.
파이썬 내부 구조 개선
파이썬의 내부 구조를 정리하고 개선하고 현대화하는 것은 파이썬 개발진이 지속적으로 추구하는 부분이고, 파이썬 3.9에도 이와 관련해 몇 가지 변경된 점이 있다.첫째, 모듈이 가져오기 메커니즘과 상호작용하는 방식이 재설계됐다. C로 작성된 파이썬 확장 모듈은 이제 새로운 로딩 메커니즘을 사용할 수 있다. 이렇게 하면 가져올 때 일반 파이썬 모듈과 더 비슷하게 작동하게 된다. 파이썬 표준 라이브러리의 여러 모듈이 이 동작을 새롭게 지원한다(_abc, audioop, _bz2, _codecs, _contextvars, _crypt, _functools, _json, _locale, operator, resource, time, _weakref). 새로운 로딩 메커니즘은 파이썬에서 확장 모듈을 더 유연하게 다룰 수 있게 해줄 뿐만 아니라 고급 후킹 동작과 같은 새로운 기능도 실현한다.
내부 정비와 관련한 두 번째 변화는 파이썬 3의 수명주기 종료시까지 지속이 보장되는, C파이썬을 위한 안정적 내부 ABI다. 지금까지는 파이썬의 각 메이저 리비전의 ABI는 이전 버전과 호환되지 않았기 때문에 새로운 버전마다 확장 모듈을 다시 컴파일해야 했다. 이제부터는 안정적 ABI를 사용하는 확장 모듈은 파이썬 버전이 바뀌어도 계속 작동한다. 파이썬 3.9의 표준 라이브러리에서 안정적 ABI를 사용하는 모듈은 audioop, ast, grp, _hashlib, pwd, _posixsubprocess, random, select, struct, termios, zlib이다.
파이썬 3.9의 기타 변경 사항
- 파이썬 표준 라이브러리에서 이제 IANA 타임존 데이터베이스(IANA Time Zone Database)를 지원한다. 이 데이터베이스는 충실히 유지관리되고 광범위하게 사용되며, 파이썬 datetime 라이브러리에서 이 데이터베이스를 직접 사용할 수 있게 된 것은 시간 절약 측면에서 매우 반가운 소식이다.
- 새로운 문자열 메소드로 프리픽스와 서픽스를 쉽게 제거할 수 있다. 프리픽스와 서픽스 제거는 흔한 시나리오지만 지금까지는 필요 이상의 번잡한 작업이 필요했다. 새로운 .removeprefix() 및 removesuffix() 메서드는 문자열에 프리픽스와 서픽스가 존재할 경우 이 둘을 뺀 수정된 사본을 반환한다. editor@itworld.co.kr
함께 보면 좋은 콘텐츠
Sponsored
Surfshark
“유료 VPN, 분명한 가치 있다” VPN 선택 가이드
ⓒ Surfshark VPN(가상 사설 네트워크, Virtual Private Network)은 인터넷 사용자에게 개인 정보 보호와 보안을 제공하는 중요한 도구로 널리 인정받고 있다. VPN은 공공 와이파이 환경에서도 데이터를 안전하게 전송할 수 있고, 개인 정보를 보호하는 데 도움을 준다. VPN 서비스의 수요가 증가하는 것도 같은 이유에서다. 동시에 유료와 무료 중 어떤 VPN을 선택해야 할지 많은 관심을 가지고 살펴보는 사용자가 많다. 가장 먼저 사용자의 관심을 끄는 것은 별도의 예산 부담이 없는 무료 VPN이지만, 그만큼의 한계도 있다. 무료 VPN, 정말 괜찮을까? 무료 VPN 서비스는 편리하고 경제적 부담도 없지만 고려할 점이 아예 없는 것은 아니다. 보안 우려 대부분의 무료 VPN 서비스는 유료 서비스에 비해 보안 수준이 낮을 수 있다. 일부 무료 VPN은 사용자 데이터를 수집해 광고주나 서드파티 업체에 판매하는 경우도 있다. 이러한 상황에서 개인 정보가 유출될 우려가 있다. 속도와 대역폭 제한 무료 VPN 서비스는 종종 속도와 대역폭에 제한을 생긴다. 따라서 사용자는 느린 인터넷 속도를 경험할 수 있으며, 높은 대역폭이 필요한 작업을 수행하는 데 제약을 받을 수 있다. 서비스 제한 무료 VPN 서비스는 종종 서버 위치가 적거나 특정 서비스 또는 웹사이트에 액세스하지 못하는 경우가 생긴다. 또한 사용자 수가 늘어나 서버 부하가 증가하면 서비스의 안정성이 저하될 수 있다. 광고 및 추적 위험 일부 무료 VPN은 광고를 삽입하거나 사용자의 온라인 활동을 추적하여 광고주에게 판매할 수 있다. 이 경우 사용자가 광고를 보아야 하거나 개인 정보를 노출해야 할 수도 있다. 제한된 기능 무료 VPN은 유료 버전에 비해 기능이 제한될 수 있다. 예를 들어, 특정 프로토콜이나 고급 보안 기능을 지원하지 않는 경우가 그렇다. 유료 VPN의 필요성 최근 유행하는 로맨스 스캠은 인터넷 사기의 일종으로, 온라인 데이트나 소셜 미디어를 통해 가짜 프로필을 만들어 상대를 속이는 행위다. 이러한 상황에서 VPN은 사용자가 안전한 연결을 유지하고 사기 행위를 방지하는 데 도움이 된다. VPN을 통해 사용자는 상대방의 신원을 확인하고 의심스러운 활동을 감지할 수 있다. 서프샤크 VPN은 구독 요금제 가입 후 7일간의 무료 체험을 제공하고 있다. ⓒ Surfshark 그 외에도 유료 VPN만의 강점을 적극 이용해야 하는 이유는 다음 3가지로 요약할 수 있다. 보안 강화 해외 여행객이 증가함에 따라 공공 와이파이를 사용하는 경우가 늘어나고 있다. 그러나 공공 와이파이는 보안이 취약해 개인 정보를 노출할 위험이 있다. 따라서 VPN을 사용하여 데이터를 암호화하고 개인 정보를 보호하는 것이 중요하다. 서프샤크 VPN은 사용자의 개인 정보를 안전하게 유지하고 해킹을 방지하는 데 유용하다. 개인정보 보호 인터넷 사용자의 검색 기록과 콘텐츠 소비 패턴은 플랫폼에 의해 추적될 수 있다. VPN을 사용하면 사용자의 IP 주소와 로그를 숨길 수 있으며, 개인 정보를 보호할 수 있다. 또한 VPN은 사용자의 위치를 숨기고 인터넷 활동을 익명으로 유지하는 데 도움이 된다. 지역 제한 해제 해외 여행 중에도 한국에서 송금이 필요한 경우가 생길 수 있다. 그러나 IP가 해외 주소이므로 은행 앱에 접근하는 것이 제한될 수 있다. VPN을 사용하면 지역 제한을 해제해 해외에서도 한국 인터넷 서비스를 이용할 수 있다. 따라서 해외에서도 안전하고 편리하게 인터넷을 이용할 수 있다. 빠르고 안전한 유료 VPN, 서프샤크 VPN ⓒ Surfshark 뛰어난 보안 서프샤크 VPN은 강력한 암호화 기술을 사용하여 사용자의 인터넷 연결을 안전하게 보호한다. 이는 사용자의 개인 정보와 데이터를 보호하고 외부 공격으로부터 사용자를 보호하는 데 도움이 된다. 다양한 서버 위치 서프샤크 VPN은 전 세계 곳곳에 여러 서버가 위치하고 있어, 사용자가 지역 제한된 콘텐츠에 액세스할 수 있다. 해외에서도 로컬 콘텐츠에 손쉽게 접근할 수 있음은 물론이다. 속도와 대역폭 서프샤크 VPN은 빠른 속도와 무제한 대역폭을 제공하여 사용자가 원활한 인터넷 경험을 누릴 수 있도록 지원한다. 온라인 게임, 스트리밍, 다운로드 등 대역폭이 필요한 활동에 이상적이다. 다양한 플랫폼 지원 서프샤크 VPN은 다양한 플랫폼 및 디바이스에서 사용할 수 있다. 윈도우, 맥OS, iOS, 안드로이드 등 다양한 운영체제 및 디바이스에서 호환되어 사용자가 어디서나 안전한 인터넷을 즐길 수 있다. 디바이스 무제한 연결 서프샤크 VPN은 무제한 연결을 제공하여 사용자가 필요할 때 언제든지 디바이스의 갯수에 상관없이 VPN을 사용할 수 있다.