
장고닌자란?
장고 닌자 – https://github.com/vitalik/django-ninja
GitHub – vitalik/django-ninja: API 구축을 위한 빠르고, 비동기 인식, openapi, 유형 힌트 기반 프레임워크
API 구축을 위한 빠른 비동기식 openapi 기반 프레임워크 – GitHub – vitalik/django-ninja: API 구축을 위한 빠른 비동기식 openapi 기반 프레임워크
github.com
Python의 FastAPI 프레임워크의 영향을 받아 개발된 Django 기반 웹 프레임워크로 최근까지 지속적으로 업데이트되어 Python 3.6+ 이상의 환경에서 Pydantic 및 비동기식을 지원합니다.
장고 닌자의 장단점
Django의 장단점은 다음과 같습니다.
- 쉽게 만들 수 있습니다(Django의 기본 구성을 일부 따르지만 Flask 또는 Fast API와 유사한 구조를 가짐).
- Pydantic 패키징 스키마를 지원하여 데이터 검증의 이점(기존 DRF의 느린 검증을 보완)
- 유형 힌트가 지원되어 보다 안정적인 코드를 작성할 수 있습니다.
- API Docs 문서 자동 생성(OpenAPI 형식을 따르며, Docs는 FastAPI처럼 자동 지원되어 편리한 API 테스트 가능)
- Django의 ORM을 그대로 사용하기 쉬움(FastAPI는 SqlAlchemy를 ORM으로 사용해야 함)
- 비동기가 지원됩니다. (현재 장고는 wsgi 기반으로 sync_to_async 등을 통한 비동기 처리가 가능한 수준이다. 지름길)
장고 닌자 상용구
경험적으로 작성된 상용구는 다음과 같습니다.
소스 코드: 지름길
├── project/ // project 폴터
│ ├── __init__.py
│ ├── asgi.py
│ ├── settings.py
│ ├── urls.py // 최초 url 진입점
│ └── wsgi.py
├── app1/
│ ├── __init__.py
│ ├── apps.py
│ ├── router/ // router
│ │ ├── user_api.py
│ │ └── profile_api.py
│ ├── service/ // service (business logic)
│ │ ├── user_service.py
│ │ └── profile_service.py
│ ├── schema/ // schema
│ │ ├── user_Schema.py
│ │ └── profile_Schema.py
│ ├── test/ // test code
│ │ ├── test_user.py
│ │ └── test_profile.py
│ └── models.py // models ORM
├── _utils/ // util 함수 폴더
│ ├── aws_service.py
│ └── decorator.py
├── manage.py
├── Dockerfile
└── requirements.txt