개발자

모든 파이썬 프로그래머를 위한 20가지 실용적인 파이썬 라이브러리

Serdar Yegulalp | InfoWorld 2019.03.15

인보크(Invoke)

인보크의 기능 : “파이썬형 원격 실행”, 즉 파이썬 라이브러리를 사용해서 관리 작업을 수행한다.

인보크를 사용하는 이유 : 파이썬을 일반 셸스크립팅 작업 대용으로 사용하는 데는 큰 이점이 따른다. 인보크는 셸 명령을 실행하고 명령줄 작업을 파이썬 함수처럼 관리하기 위한 고수준 API를 제공, 이런 작업을 코드에 내장하거나 매끄럽게 쌓아 올릴 수 있게 해준다.
누이트카(Nuitka)
누이트카의 기능 : 파이선을 독립적인 C 실행 파일로 컴파일한다.

누이트카를 사용하는 이유 : 사이썬(Cython)과 마찬가지로 누이트카는 파이썬을 C로 컴파일한다. 단, 사이썬은 최선의 결과를 위해 자체 맞춤형 구문이 필요하고 주로 수학 및 통계 애플리케이션에 초점을 두는 반면, 누이트카는 모든 파이썬 프로그램을 있는 그대로 C로 컴파일하고 단일 실행 파일을 생성하며 이 과정에서 가능한 경우 최적화를 적용한다. 누이트카는 개발 초기 단계이며 계획된 최적화 기능의 상당수가 아직 구현되지 않았다. 그러나 파이썬 스크립트를 빠른 명령줄 앱으로 변환할 때 편리하게 사용할 수 있다.
 

눔바(Numba)

눔바의 기능: 연산 집약적인 함수의 속도를 선별적으로 높인다.

눔바를 사용하는 이유 : 파이썬 세계에는 수학 연산 속도를 높이기 위한 패키지 하위 문화가 존재한다. 예를 들어 넘파이(NumPy)는 고속 C 라이브러리를 파이썬 인터페이스로 래핑하며 사이썬은 성능 가속을 위한 선택적 형식 지정을 적용해 파이썬을 C로 컴파일한다. 그러나 눔바는 데코레이터 하나로 파이썬 함수를 선별적으로 가속화할 수 있으므로 단연 가장 편리한 방법이다. 속도를 더 높이려면 일반적인 파이썬 관용구를 사용해서 워크로드를 병렬화하거나 SIMD 또는 GPU 명령어를 사용하면 된다. 넘파이와 눔바를 함께 사용할 수 있지만 많은 경우 눔바의 성능이 넘파이보다 몇 배 앞선다.
 

피위(Peewee)

피위의 기능 : 작은 ORM(Object-Relational Mapper, 객체-관계 매퍼)로, SQLite, 마이SQL, 포스트그레SQL을 지원하며 확장 기능이 풍부하다.

피위를 사용하는 이유 : 모두가 ORM을 좋아하는 것은 아니다. 스키마 모델링을 데이터베이스 측에 두는 편을 선호하는 사람도 있다. 그러나 데이터베이스에 손대고 싶지 않은 개발자에게 잘 만들어진 간소한 ORM은 반가운 선물이다. 또한 SQL 알케미(Alchemy)와 같은 무거운 ORM을 원하지 않는 개발자에게는 피위가 적합하다.

피위 모델은 구성, 연결, 조작이 쉽다. 또한 pagination 함수와 같은 일반적인 쿼리 조작 함수의 상당수가 내장돼 있다. 다른 데이터베이스와 테스트 툴, 스키마 마이그레이션 시스템을 위한 확장 기능을 비롯한 애드온 형태로 더 많은 기능을 사용할 수 있다. ORM을 좋아하지 않는 사람이라도 반할 수밖에 없는 기능이다. 참고로 피위 3.x 분기(권장 에디션)는 이전 피위 버전과 완벽한 하위 호환성을 제공하지는 않는다.
 

필로우(Pillow)

필로우의 기능 : 손쉬운 이미지 처리

필로우를 사용하는 이유 : 이미지 처리 경험이 있는 파이썬 개발자는 대부분 PIL(Python Imaging Library, 파이썬 이미지 라이브러리)에 익숙하겠지만, PIL은 단점과 제한이 많고 업데이트도 자주 되지 않는다. 필로우의 목적은 최소한의 변경으로 더 쉬운 사용과 PIL과의 코드 호환성, 두 가지 모두를 달성하는 데 있다. 네이티브 윈도우 이미징 기능과 파이썬의 Tcl/Tk 기반 Tkinter GUI 패키지를 조작하기 위한 확장 기능이 포함되어 있다. 필로우는 깃허브 또는 PyPI 리포지토리를 통해 제공된다.
 

파이파일시스템(PyFilesystem)

파이파일시스템의 기능 : 모든 파일 시스템에 대한 파이썬 방식의 인터페이스

파이파일시스템을 사용하는 이유: 파이파일시스템의 기본 개념은 지극히 단순하다. 파이썬의 file 객체가 하나의 파일을 추상화하듯이 파이파일시스템의 FS 객체는 전체 파일 시스템을 추상화한다. 디스크 파일 시스템뿐만 아니라 FTP 디렉토리, 메모리 내 파일 시스템, OS에 의해 정의된 위치의 파일 시스템(사용자 디렉토리 등), 그리고 상기한 항목을 서로 겹친 조합까지 지원한다.

파일을 조작하는 크로스 플랫폼 코드를 더 쉽게 작성할 수 있다는 것 외에도 파이파일시스템은 표준 라이브러리(주로 os와 io)의 개별 부분에서 가져온 스크립트를 엮지 않아도 된다. 또한 콘솔에 적합한 파일 시스템의 트리 뷰를 인쇄하기 위한 툴과 같은 유틸리티도 제공하므로 일일이 새로 만들 필요가 없다.
 

파이게임(Pygame)

파이게임의 기능 : 파이썬으로 비디오 게임 또는 게임급의 프론트엔드를 만든다.

파이게임을 사용하는 이유 : 게임 개발 분야를 벗어나면 이런 프레임워크를 사용할 사람은 없다. 파이게임은 GUI 기반의 다양한 동작을 간편히 처리할 수 있게 해준다. 덕분에 그림 캔버스와 스프라이트 그래픽, 멀티채널 사운드 작업, 창 및 클릭 이벤트 처리, 충돌 감지 등 많은 고난도 작업을 피할 수 있다. 물론 파이게임을 사용해 구축하는 방법이 별 효과가 없는 앱도 있지만(GUI 앱의 경우도 마찬가지), 파이게임이 제공하는 기능은 분명 관심을 가질 만하다. 생각한 이상일 수도 있다!
 

파이글릿(Pyglet)

파이글릿의 기능 : 순수 파이썬을 사용한 크로스 플랫폼 멀티미디어 및 창 그래픽

파이글릿을 사용하는 이유: 파이글릿은 창 기능, OpenGL 그래픽, 오디오 및 비디오 재생, 키보드 및 마우스 처리, 이미지 파일 작업 등 GUI 애플리케이션을 위해 일일이 구현하기 지루한 항목에 액세스할 수 있는 편리한 방법을 제공한다. 단, 파이글릿은 버튼, 툴바, 메뉴와 같은 UI 위젯을 제공하지 않는다.

모두 윈도우, OS X 또는 리눅스의 네이티브 플랫폼 기능을 통해 구현되므로 바이너리 종속성이 없다. 파이글릿은 순수 파이썬이다. 또한 BSD 라이선스로 배포되므로 모든 상용 또는 오픈소스 프로젝트에 포함할 수 있다.
 

회사명 : 한국IDG | 제호: ITWorld | 주소 : 서울시 중구 세종대로 23, 4층 우)04512
| 등록번호 : 서울 아00743 등록발행일자 : 2009년 01월 19일

발행인 : 박형미 | 편집인 : 박재곤 | 청소년보호책임자 : 한정규
| 사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2024 International Data Group. All rights reserved.