Litestar
Litestar(이전 명칭: Starlite)는 파이썬(Python) 기반의 고성능 ASGI(Asynchronous Server Gateway Interface) 웹 프레임워크이다. 주로 RESTful API 및 GraphQL 서비스 구축에 설계되었으며, 엄격한 타입 힌팅(Type hinting)과 객체 지향적인 아키텍처를 제공하도록 구성되어 있다.
Litestar는 초기부터 대규모 엔터프라이즈 환경에서의 사용을 염두에 두고 설계되었다. 따라서 의존성 주입(Dependency Injection), 클래스 기반 컨트롤러(Class-based controllers), 그리고 플러그인 아키텍처 등 구조화된 코드 작성을 돕는 패턴들을 프레임워크 코어에 내장하고 있다. 특히 데이터 직렬화(Serialization) 및 역직렬화 과정에서 고속 라이브러리인 msgspec을 적극 활용하여 높은 I/O 처리 성능을 보장한다.
파이썬 생태계에서 동일하게 비동기 API 구축 용도로 널리 사용되는 대표적인 프레임워크인 FastAPI와 Litestar의 구조적 차이는 다음과 같다.
| 특징 | Litestar | FastAPI |
|---|---|---|
| 라우팅 아키텍처 | 객체 지향적인 클래스 기반 컨트롤러(Controller) 형식을 기본으로 권장함 | 함수 기반 데코레이터(@app.get)를 활용한 라우팅이 주된 방식임 |
| 데이터 검증 및 직렬화 | msgspec, attrs, Dataclasses, Pydantic 등 다양한 데이터 검증 라이브러리를 다중 지원함 | 프레임워크 내부부터 Pydantic에 매우 강하게 결합되어 의존함 |
| 의존성 주입(DI) | 애플리케이션, 라우터, 컨트롤러 등 사전 정의된 계층(Layer) 수준에서 명시적이고 분리된 형태의 주입을 지원함 | 라우트 함수의 매개변수 내에 Depends()를 호출하여 인라인으로 주입함 |
| 생태계 및 통합 | SQLAlchemy, 피코(Piccolo), Vite 등의 외부 기술 적용을 위한 공식 플러그인 인터페이스를 제공함 | 코어 기능에 집중하며 필요시 개발자가 자유롭게 서드파티 라이브러리를 결합하도록 방치함 |
출처 (Sources):
- Litestar Framework, “Litestar Official Documentation”. Available at: https://docs.litestar.dev/
- Litestar GitHub Repository, “Litestar - Effortlessly build performant APIs”. Available at: https://github.com/litestar-org/litestar
- Python Package Index (PyPI), “litestar”. Available at: https://pypi.org/project/litestar/