파이썬 3.10 추가된 기능 네 가지

파이썬 3.10에서 추가된 기능 네 가지에 대해 메모해둔다.

‘파이썬’의 새롭고 강력한 기능을 모두 활용하는 코드를 작성하고 싶은가? 여기 살펴봐야 할 4가지 기능이 있다.

파이썬(Python)은 작년에 30주년을 맞이했다. 하지만 폭발적인 성장을 기록한 지는 몇 년이 채 되지 않았다. 파이썬의 많은 기능은 처음 그대로 유지되고 있지만 해가 거듭될 때마다 그리고 새로운 버전이 나올 때마다 새로운 작업 방식과 이러한 개선사항을 활용하는 새로운 라이브러리가 제공된다. 

그래서 파이썬에는 기존 방식과 새로운 방식이 있다. 당연히 가장 최신의 편리한 기능을 사용하여 파이썬으로 작업하는 방법을 배우는 게 좋다. 여기에서는 최신 파이썬을 작성하기 위해 알아야 하는 핵심 개념을 소개한다. 
 


타입 힌팅(Type Hinting)
최근에 도입된 ‘타입 힌팅’ 구문을 사용하면 린터 및 서드파티 코드 품질 도구를 통해 런타임 전에 코드를 분석하고 발생 가능한 오류를 감지할 수 있다. 다른 사람들과 공유할 파이썬 코드를 많이 만들수록 타입 힌트의 이점을 더 많이 누릴 수 있다. 파이썬이 개선될 때마다 더 정교하고 강력한 타입 주석이 제공된다. 단기간에 타입 주석 사용법을 익히는 습관을 들이면 새로운 타입 힌팅 기능이 도입될 때마다 훨씬 더 잘 활용할 수 있을 것이다. 

단, 타입 힌트는 ‘필수’가 아니라 ‘선택’이라는 점을 인지해야 한다. 이는 모든 프로젝트에 필요하진 않다. 타입 힌트를 사용하여 대규모 프로젝트를 쉽게 이해할 수 있지만 50줄짜리 간단한 스크립트에서는 얼마든지 생략할 수 있다. 아울러 타입 힌트는 런타임에 적용되지 않지만 ‘파이단틱(Pydantic)’을 사용하여 이를 가능하게 할 수 있다. 패스트API(FastAPI) 등의 널리 사용되는 많은 파이썬 프로젝트는 파이단틱을 광범위하게 사용한다.

파이썬 가상 환경 및 패키지 관리
간단한 프로젝트와 개발 작업에서는 파이썬에 내장된 venv 도구만 사용하여 프로젝트와 요구 사항을 분리할 수 있다. 최근에는 더 많은 옵션이 제공된다.

 Pyenv: 다양한 프로젝트 요구 사항을 충족하기 위해 여러 버전의 파이썬 버전(3.8, 3.9, 3.10)을 설치해야 하는 경우 Pyenv를 사용하면 프로젝트별로 전환할 수 있다. 프로젝트별 가상 환경 컨텍스트 외부의 명령줄에서 다른 파이썬 버전으로 많은 작업을 수행할 때 유용하다. 공식적인 윈도우 지원은 없지만 비공식적인 윈도우 포트가 존재한다.

 Pipenv: ‘사용자를 위한 파이썬 개발 워크플로우(Python dev workflow for humans)’라고 말하는 Pipenv의 목적은 가상 환경과 프로젝트의 모든 종속성을 관리하는 것이다. 또한 원하는 특정 버전을 얻고, 요청한 조합으로 작동하는 등 종속성이 결정적임을 보장한다. 하지만 Pipenv는 어떤 형태로든 패키징과 통신하지 않기 때문에 PyPI로 업로드하거나 다른 사람들과 공유하는 프로젝트에는 적합하지 않다.

 Poetry: Pipenv의 도구 세트를 확장한 Poetry를 사용하면 프로젝트 및 요구 사항을 관리할 뿐만 아니라 프로젝트를 PyPI에 쉽게 배포할 수 있다. 아울러 프로젝트 디렉토리와 별도로 가상 환경을 관리할 수 있다.

 PDM: PDM(Python Development Master)은 가장 최신 프로젝트다. Poetry 및 Pipenv와 마찬가지로 PDM은 프로젝트 설정, 종속성 관리, 배포 아티팩트 구축을 위한 단일 인터페이스를 제공한다. 또 PDM은 PEP 582 표준을 사용하여 패키지를 프로젝트에 로컬로 저장하기 때문에 프로젝트별 가상 환경을 생성할 필요가 없다. 하지만 이 도구는 비교적 최근 출시됐기 때문에 프로덕션 환경에 도입하기 앞서 임시로 사용해 봐야 한다. 

새로운 파이썬 문법
파이썬의 최신 버전에는 더욱 강력하고 간결한 프로그래밍을 지원하는 유용한 구문 구조가 추가됐다. 최근 추가된 사항은 다음과 같다. 

1. 패턴 매칭
파이썬 버전 3.10에 도입된 구조적 패턴 매칭은 단순히 ‘파이썬을 위한 switch/case’가 아니다. 이를 사용하면 콘텐츠 또는 객체 구조에 따라 컨트롤 플로우를 결정할 수 있다.

2. ‘바다코끼리 연산자(walrus operator)’
파이썬 3.8에 추가된 바다코끼리 연산자(:=이 바다코끼리를 닮았다고 해서 붙여진 이름이다)는 변수에 값을 할당한 다음, (변수에) 한 번에 테스트를 적용하는 방법인 할당 표현식을 제공한다. 이를 사용하면 결과를 보존하면서 함수의 반환 값을 확인하는 등 여러 상황에서 코드가 덜 장황해진다.

3. 위치 전용 매개변수
최근에 도입된 사소하지만 유용한 기능인 위치 전용 매개변수를 사용하면 키워드 인수가 아닌 위치 매개변수로 지정해야 하는 함수 매개변수를 확인할 수 있다. 이를 통해 코드베이스 명확성을 개선하고, 향후 개발을 용이하게 할 수 있다. 파이썬의 다른 많은 새로운 기능도 이 목표에 초점을 맞추고 있다.

파이썬 테스트
코드베이스 테스트 작성은 매일 치실을 하는 것과 같다. 모든 사람이 좋은 일이라는 데 동의하지만 실제로 하는 사람은 드물고 제대로 하는 사람은 더 없다. 최신 파이썬 코드베이스는 테스트 스위트가 필요하며, 현재 테스트 도구로 테스트 스위트를 생성하기가 훨씬 쉬워졌다.

파이썬에는 자체 테스트 프레임워크 유닛테스트(Unittest)가 내장돼 있는데, 기본적으로 나쁘진 않지만 디자인 및 동작이 구식이다. 파이테스트(Pytest) 프레임워크가 대체재로 인기를 얻고 있다. 이는 더 유연하며(하위 집합뿐만 아니라 코드의 모든 부분에서 테스트를 선언할 수 있다), 더 적은 상용구를 작성할 수 있다. 또 파이테스트는 기능을 확장하는 많은 추가 기능을 지원한다(예: 비동기 코드 테스트용).

테스트의 또 다른 중요한 요소는 코드 커버리지로, 이는 테스트가 실제로 커버하는 코드베이스의 양을 결정한다. 여기서 커버리지 모듈이 유용하며, 파이테스트는 이를 위한 플러그인을 제공한다

사람의 생각을 대신해 주는 서비스는 언제 나올까?

    이미지 맵

    Engineering/파이썬 다른 글

    댓글 0

    *

    *

    이전 글

    다음 글