서론
본 포스팅은 인프런에서 제공하는 '실전! FastAPI 입문' 강의를 수강후에 정리 및 복습을 위해 작성하는 글입니다.
필자는 Mac ARM 기반 운영체제에서 진행했습니다.
사용된 패키지
1. fastapi
- 설명: 현대적이고 빠른 Python 웹 프레임워크로, RESTful API 개발에 최적화되어 있으며 자동화된 문서화와 타입 기반 데이터 검증 제공.
- 주요 용도: API 개발 및 배포.
2. uvicorn
- 설명: ASGI 서버로, FastAPI 및 Starlette와 같은 비동기 프레임워크의 실행을 지원.
- 주요 용도: FastAPI 애플리케이션 실행.
3. bcrypt
- 설명: 비밀번호를 해싱하는 데 사용되는 강력한 암호화 라이브러리로, 안전한 비밀번호 저장을 위해 설계되었습니다.
- 주요 용도: 비밀번호 해싱 및 검증.
4. cryptography
- 설명: 대칭 암호화, 공개 키 암호화, 디지털 서명, 인증서 생성 등을 지원하는 광범위한 암호화 라이브러리.
- 주요 용도: 보안 프로토콜 구현 및 암호화 관련 작업.
5. httpx
- 설명: 비동기 및 동기 방식의 HTTP 요청을 지원하는 Python 클라이언트 라이브러리.
- 주요 용도: HTTP 요청 처리, API 통신.
6. pydantic
- 설명: 데이터 검증 및 직렬화를 위한 라이브러리로, Python의 타입 힌트를 활용하여 데이터 유효성을 검사.
- 주요 용도: 입력 데이터 검증 및 처리.
7. pytest
- 설명: Python용 강력하고 유연한 테스트 프레임워크로, 간단한 문법과 다양한 확장 가능.
- 주요 용도: 단위 테스트 및 통합 테스트 작성.
8. pytest-mock
- 설명: pytest와 mock을 쉽게 통합하여 테스트 코드에서 의존성을 모킹(mocking)할 수 있게 지원.
- 주요 용도: 모킹을 활용한 테스트 작성.
9. python-jose
- 설명: JSON Web Token(JWT) 생성 및 검증을 지원하는 JOSE(JSON Object Signing and Encryption) 구현 라이브러리.
- 주요 용도: 토큰 기반 인증 및 암호화.
10. redis
- 설명: Python에서 Redis(인메모리 데이터베이스)와 상호작용하기 위한 클라이언트 라이브러리.
- 주요 용도: 캐싱, 세션 관리, 실시간 데이터 저장.
11. SQLAlchemy
- 설명: 강력한 데이터베이스 ORM(Object-Relational Mapping) 라이브러리로, SQL을 추상화하여 Python 코드로 데이터베이스 작업 수행 가능.
- 주요 용도: 데이터베이스와의 상호작용 및 ORM 처리.
12. starlette
- 설명: FastAPI의 기반이 되는 ASGI 프레임워크로, 고성능 비동기 서비스 구현에 최적화됨.
- 주요 용도: 비동기 웹 서버 및 미들웨어 구현.
13. pymysql
- 설명: MySQL 데이터베이스와 Python 간의 연결을 지원하는 라이브러리.
- 주요 용도: MySQL 데이터베이스 작업.
'공부 > FastAPI' 카테고리의 다른 글
[FastAPI] 프로젝트 구조 (0) | 2025.01.17 |
---|---|
[FastAPI] FastAPI란? (1) | 2025.01.16 |
[FastAPI] API Status Code 정리 (0) | 2024.12.26 |