파이썬 주요 패키지

2024. 8. 30. 00:47시사 트래커

반응형
패키지 중에서는 NumPy나 Pandas와 같이 파이썬과는 약간 다른 방식으로 코드를 운용해야 하는 경우가 있다. 파이썬을 접하고 배우다가 이런 패키지들을 처음 활용하게 될 때에는 살짝 어색하거나 어려울 수 있지만 계속해서 사용하다 보면 곧 익숙해질 수 있다.
  • BeautifulSoup: XML, HTML 파싱을 쉽게 할 수 있는 라이브러리이다.
  • dateutil: 복잡한 날짜 및 시간 형식을 다루는 라이브러리이다. 표준 라이브러리에 포함된 datetime만으로 해결하기 어려운 날짜/시간 문자열 처리나 국제 시간에 관련된 기능을 제공한다.
  • 셀레니움(Selenium): 웹 페이지 조작과 크롤링
  • 필로우(Pillow): PIL은 개발이 예전에 중지되었고, PIL의 포크(fork)인 Pillow가 그 역할을 대신하고 있다. Pillow를 쓰자. PIL은 Python Imaging Library의 머릿글자로 간편한 이미지 처리를 위한 라이브러리이다.
  • PyYAML: YAML 형식의 파일을 읽고 쓰기 위해 사용하는 라이브러리이다.
  • requests: HTTP 요청을 보낼 때 사용하는 라이브러리이다. 표준 라이브러리에 내장된 urllib 모듈에 비해 사용이 편리하고 기능이 뛰어나다.
  • tossi: 야생의 땅: 듀랑고를 개발한 왓 스튜디오에서 개발한 한국어 조사 처리 라이브러리. 같은 인물이 만든 korean 모듈을 대체했다.
  • argparser 터미널에서 명령어 parser 지원
  • Pygame - Python으로 비디오 게임을 제작하기 위한 프레임워크이다.
  • 스크래피(Scrapy): 웹 스크래핑 및 크롤링을 쉽게 할 수 있도록 만들어진 패키지이다.

아래는 각 패키지의 설명과 사용 용도를 정리한 목록입니다.

### 수학, 공학 및 통계학 관련 패키지
1. **NumPy**:
   - **설명**: 수치 연산을 위한 패키지로, 고성능 다차원 배열 객체와 관련된 다양한 수학 함수를 제공합니다.
   - **용도**: 행렬 연산, 대규모 데이터 처리, 과학 계산.

2. **SciPy**:
   - **설명**: 과학 기술 계산을 위한 라이브러리로, 수치 해석과 통계 기능을 추가로 제공합니다.
   - **용도**: 선형 대수, 신호 처리, 통계 분석, 미분 방정식 풀이.

3. **SymPy**:
   - **설명**: 심볼릭 수학을 위한 패키지로, 수학 표현식을 기호 형태로 다룰 수 있습니다.
   - **용도**: 방정식 풀기, 미분 및 적분, 수학식 단순화.

4. **Pandas**:
   - **설명**: 데이터 분석을 위한 라이브러리로, 시리즈와 데이터프레임 구조를 제공하여 데이터를 효율적으로 조작할 수 있습니다.
   - **용도**: 데이터 정제, 변환, 분석, 시각화.

5. **Dask**:
   - **설명**: 대규모 데이터셋 처리를 위한 병렬 컴퓨팅 라이브러리로, Pandas와 유사한 API를 제공합니다.
   - **용도**: 대용량 데이터 분석, 분산 연산, 병렬 처리.

### 그래프 관련 패키지
1. **matplotlib**:
   - **설명**: 2D 그래프와 플롯을 그리기 위한 라이브러리로, 파이썬의 대표적인 시각화 도구입니다.
   - **용도**: 라인 플롯, 히스토그램, 산포도, 바 그래프 등.

2. **Seaborn**:
   - **설명**: matplotlib 기반의 고급 시각화 라이브러리로, 통계적 그래프를 그리는 데 유용합니다.
   - **용도**: 히트맵, 카테고리별 플롯, 페어 플롯, 분포 플롯.

3. **PyQtGraph**:
   - **설명**: PyQt를 기반으로 한 빠르고 상호작용적인 그래프와 플롯을 그릴 수 있는 라이브러리입니다.
   - **용도**: 실시간 데이터 시각화, 상호작용 가능한 그래프.

4. **Bokeh**:
   - **설명**: 웹 기반 대화형 시각화를 위한 라이브러리로, 브라우저에서 작동하는 동적인 플롯을 생성합니다.
   - **용도**: 대화형 대시보드, 웹 애플리케이션 그래프.

5. **Plotly**:
   - **설명**: 대화형 그래프와 플롯을 생성할 수 있는 라이브러리로, 2D 및 3D 그래프를 지원합니다.
   - **용도**: 대화형 데이터 분석, 웹 기반 시각화.

6. **Pygal**:
   - **설명**: SVG 기반의 대화형 차트 라이브러리로, 웹에서 보기 위한 그래프를 생성합니다.
   - **용도**: 동적인 차트 생성, 웹 프론트엔드 통합.

### 자동화 관련 패키지
1. **엑셀 자동화, 파일 처리 자동화, 웹 크롤링/스크래핑 등 자동화 프로그램**:
   - **용도**: 엑셀 파일 관리, PDF 조작, 웹 페이지 데이터 수집 등 다양한 자동화 작업을 수행하는 프로그램에 사용됩니다.

### 동기형(WSGI) 웹 프레임워크
1. **Django**:
   - **설명**: 강력한 기능을 제공하는 풀스택 웹 프레임워크로, 많은 구성 요소를 갖춘 일체형 솔루션입니다.
   - **용도**: 웹 애플리케이션 개발, 관리 인터페이스, 데이터베이스 관리.

2. **Flask**:
   - **설명**: 경량의 마이크로 웹 프레임워크로, 단순하고 빠른 웹 애플리케이션 개발을 지향합니다.
   - **용도**: RESTful API, 웹 애플리케이션, 프로토타이핑.

3. **Bottlepy**:
   - **설명**: 최소한의 의존성으로 작성된 매우 작은 웹 프레임워크입니다.
   - **용도**: 간단한 웹 서비스, 임베디드 시스템에서의 웹 서버.

### 비동기형(ASGI) 웹 프레임워크
1. **Uvicorn**:
   - **설명**: Python용 초고속 ASGI 서버로, 비동기 웹 애플리케이션을 지원합니다.
   - **용도**: 비동기 웹 서버, 고성능 웹 애플리케이션 실행.

2. **Starlette**:
   - **설명**: 경량의 비동기 웹 프레임워크로, 빠르고 확장 가능한 ASGI 애플리케이션을 개발하는 데 유용합니다.
   - **용도**: 비동기 웹 애플리케이션, API 서버.

3. **FastAPI**:
   - **설명**: 최신 Python 타입 힌트를 활용한 비동기 웹 프레임워크로, 매우 빠른 속도와 직관적인 코드 작성을 지원합니다.
   - **용도**: 고성능 API, 비동기 웹 서비스.

### 머신 러닝/딥러닝 관련 패키지
1. **scikit-learn**:
   - **설명**: 머신러닝 라이브러리로, 다양한 지도/비지도 학습 알고리즘을 제공합니다.
   - **용도**: 데이터 전처리, 모델 학습 및 평가, 예측.

2. **TensorFlow**:
   - **설명**: 구글에서 개발한 오픈 소스 딥러닝 라이브러리로, 신경망을 쉽게 구현하고 훈련할 수 있게 합니다.
   - **용도**: 심층 신경망, 자연어 처리, 컴퓨터 비전.

3. **파이토치(PyTorch)**:
   - **설명**: 페이스북에서 개발한 오픈 소스 딥러닝 라이브러리로, 동적 계산 그래프를 지원합니다.
   - **용도**: 연구 및 실험, 심층 신경망, 강화 학습.

4. **Keras**:
   - **설명**: TensorFlow에 통합된 고수준의 신경망 API로, 간단하고 직관적인 딥러닝 모델 구축을 지원합니다.
   - **용도**: 모델 프로토타이핑, 신경망 설계.

5. **JAX**:
   - **설명**: 고성능 머신러닝 라이브러리로, 자동 미분 및 GPU/TPU 가속을 지원합니다.
   - **용도**: 수학적 함수 최적화, 딥러닝, 연구.

### 컴퓨터 비전 관련 패키지
1. **OpenCV**:
   - **설명**: 컴퓨터 비전과 이미지 처리 라이브러리로, 다양한 기능을 지원합니다.
   - **용도**: 객체 인식, 영상 처리, 얼굴 인식.

### 프론트엔드/GUI 관련 패키지
1. **tkinter**:
   - **설명**: Python 표준 라이브러리에 포함된 GUI 라이브러리로, 간단한 데스크톱 애플리케이션 개발에 사용됩니다.
   - **용도**: 간단한 GUI 애플리케이션.

2. **PyQt**:
   - **설명**: Qt 프레임워크를 사용하는 Python 바인딩으로, 복잡한 GUI 애플리케이션을 개발할 수 있습니다.
   - **용도**: 데스크톱 애플리케이션, 상업용 소프트웨어.

3. **PySide**:
   - **설명**: PyQt와 유사한 Qt의 공식 Python 바인딩으로, 자유롭게 사용할 수 있습니다.
   - **용도**: GUI 개발, 데스크톱 애플리케이션.

4. **wxPython**:
   - **설명**: C++로 작성된 wxWidgets 라이브러리의 Python 래퍼로, 크로스 플랫폼 GUI 애플리케이션 개발에 사용됩니다.
   - **용도**: 데스크톱 소프트웨어 개발.

5. **PyGTK**:
   - **설명**: GTK를 사용하여 Linux 및 기타 유닉스 계열 운영체제에서 실행되는 GUI 애플리케이션 개발에 사용됩니다.
   - **용도**: Linux용 GUI 애플리케이션.

### 게임 개발 관련 패키지
1. **Pygame**:
   - **설명**: Python으로 비디오 게임을 제작하기 위한 프레임워크로, 2D 게임 개발에 사용됩니다.
   - **용도**: 게임 개발, 멀티미디어 응용 프로그램.

2. **렌파이(Ren'Py)**:
   - **설명**: 비주얼 노벨 게임 제작을 위한 Python 기반 엔진입니다.
   - **용도**: 비주얼 노벨 게임 제작.

### 기타 툴 및 패키지
1. **크로스 플랫폼 앱 관련 패키지**:
   - **Kivy**:
     - **설명**: 크로스 플랫폼 애플리케이션 개발을 위한 프레임워크로, 터치스크린 지원과 강력한 그래픽 처리를 제공합니다.
     - **용도**: 모바일 및 데스크톱 앱 개발.

   - **Beeware**:
     - **설명**: 다양한 플랫폼을 위한 Python 앱을 개발할 수 있는 툴킷입니다.
     - **용도**: 크로스 플랫폼 GUI 애플리케이션.

2. **데이터베이스와 SQL 관련 패키지**:
   - **sqlite**:
     - **설명**: 가벼운 관계형 데이터베이스 관리 시스템으로, Python 표준 라이브러리에 포함되어 있습니다.
     - **용도**: 내장형 데이터베이스, 데이터 저장 및 관리.

   - **pymongo**:
     - **설명**: MongoDB 데이터베이스와 상호작용하는 Python 클라이언트 라이브러리입니다.
     - **용도**: NoSQL 데이터베이스와의 통합.

   - **SQLAlchemy**:
     - **설명**: SQL 데이터베이스를 위한 Python ORM(Object Relational Mapper) 라이브러리입니다.
     - **용도**: 데이터베이스 매핑 및 관리.

3. **파이썬 고속/병렬화/컴파일 지원 관련 패키지**:
   - **Numba**:
     - **설명**: Python 코드에 대한 즉시 컴파일러로, 수치 계산을 빠르게 수행할 수 있도록 지원합니다.
     - **용도**: 고속 수치 연산, 병렬 처리.

4. **BeautifulSoup**:
   - **설명**: XML, HTML 파싱을 쉽게 할 수 있는 라이브러리입니다.
   - **용도**: 웹 스크래핑, 데이터 추출.

5. **dateutil**:
   - **설명**: 복잡한 날짜 및 시간 형식을 다루는 라이브러리입니다.
   - **용도**: 날짜/시간 처리, 국제 시간 관리.

6. **셀레니움(Selenium)**:
   - **설명**: 웹 페이지 조작과 크롤링을 위한 자동화 도구입니다.
   - **용도**: 웹 테스트 자동화, 크롤링.

7. **필로우(Pillow)**:
   - **설명**: Python Imaging Library(PIL)의 포크로, 이미지 처리를 위한 라이브러리입니다.
   - **용도**: 이미지 처리, 변환, 조작.

8. **PyYAML**:
   - **설명**: YAML 형식의 파일을 읽고 쓰기 위한 라이브러리입니다.
   - **용도**: 설정 파일 읽기 및 쓰기, 데이터 직렬화.

9. **requests**:
   - **설명**: HTTP 요청을 쉽게 보낼 수 있는 라이브러리입니다.
   - **용도**: 웹 API 호출, 웹 페이지 데이터 수집.

10. **tossi**:
    - **설명**: 한국어 조사 처리를 위한 라이브러리입니다.
    - **용도**: 텍스트 처리, 자연어 처리(NLP).

11. **argparser**:
    - **설명**: 터미널에서 명령어 인자 파싱을 지원하는 표준 라이브러리입니다.
    - **용도**: 명령줄 인터페이스(CLI) 개발.

12. **스크래피(Scrapy)**:
    - **설명**: 웹 스크래핑 및 크롤링을 쉽게 할 수 있도록 만들어진 패키지입니다.
    - **용도**: 웹 데이터 수집, 크롤링.

이 목록은 각 패키지의 기본적인 기능과 용도를 설명한 것입니다. 필요에 따라 특정 패키지의 문서를 참조하여 더 깊이 있는 학습이 가능합니다.

반응형