Skip to main content

FastAPI with Clean-Architecture

클린 아키텍처 구조를 적용한 FastAPI.

Clean Architecture 구조 및 역할

흐름

interfaces -> application -> domain -> infrastructure

설명

  • 클린 아키텍처의 핵심은 관심사의 분리로 유지보수와 확장성을 높일 수 있다.
Layer Description
Interface 사용자/외부 입력을 Application의 유즈케이스에 연결하는 레이어
Application 사용자 시나리오(usecase) 및 비즈니스 로직을 실행하는 레이어
Domain 핵심 비즈니스 규칙 및 엔티티를 정의하는 레이어
Infrastructure 외부 시스템(DB, API 등)과의 연동 및 구현을 담당하는 레이어

예시 by github copilot

  • Interface: 사용자가 회원가입 폼을 제출하면, API 엔드포인트에서 입력 데이터를 받아 Application 레이어로 전달합니다.
  • Application: 회원가입 유즈케이스를 실행하며, 입력값 검증, 비밀번호 암호화, 도메인 객체 생성, 트랜잭션 관리 등을 처리합니다.
  • Domain: User 엔티티와 회원가입 관련 비즈니스 규칙(예: 이메일 중복 체크, 비밀번호 정책 등)을 정의합니다.
  • Infrastructure: DB에 사용자 정보를 저장하고, 이메일 인증을 위해 외부 메일 서비스와 연동합니다.

기본 사용법

  • fastapi-setup 으로 프로젝트 초기화할 수 있습니다.
fastapi-setup
  • --help 를 통해 명령어를 확인할 수 있습니다.
python3 manage.py --help

커스텀 명령어 추가 방법

  • {PROJECT_DIR}/managements/commands/ 아래 Command 를 상속받아 명령어를 추가할 수 있습니다.
python3 manage.py {command_name}

Metadata

Release files for fastapi-clean-archi 0.7.8

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for fastapi-clean-archi 0.7.8
File Size Uploaded
fastapi_clean_archi-0.7.8.tar.gz 13.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for fastapi-clean-archi 0.7.8
File Interpreter ABI Platform
fastapi_clean_archi-0.7.8-py3-none-any.whl Python 3 none any Details

Total release size: 33.5 kB

Release files / fastapi_clean_archi-0.7.8.tar.gz

Download URL fastapi_clean_archi-0.7.8.tar.gz
Size 13.2 kB
Tags Source
SHA-256 checksum
How to use checksums
eae4fc8227d30ab464b77661affc6d93f477700d45f452ab595d147338cc667b
BLAKE2b-256 checksum
How to use checksums
c1b419df0535f165bc2b4f4a777d9eb8208937fa44289dbea7ca132486ff2eb0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.2

Release files / fastapi_clean_archi-0.7.8-py3-none-any.whl

Download URL fastapi_clean_archi-0.7.8-py3-none-any.whl
Size 20.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
54a942e00242b26dc15f3aae494c7514bb90e32222d47cbb20b641d0f95d0b66
BLAKE2b-256 checksum
How to use checksums
4c9cc47673f71f91fad513b7ef56a94fc273a8b43c4278648970c5352abc8f7e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.2
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page