Skip to main content

Core 요청 흐름

Django 일반 구조 다이어그램 Ruoom은 Django의 모델-뷰-템플릿 흐름을 따릅니다. Core는 프로젝트 설정과 최상위 URL 구성을 관리하고, 설치된 플러그인은 Django 앱, URL 네임스페이스, 템플릿, 정적 자산, 마이그레이션 및 선택적 통합 메타데이터를 제공합니다.

Core 애플리케이션

  • administration: 비즈니스, 도메인 매핑, 위치, 공간, 운영일, 동의서, 직원용 설정, 탐색 메뉴, 권한 및 도메인 초기화.
  • registration: 프로필, 로그인 및 회원가입, 개인정보 처리, 인증 미들웨어 및 플러그인이 제공하는 로그인 옵션.
  • customer: 고객 계정 및 프로필 페이지.
  • ruoom: 설정, 최상위 라우팅, 플러그인 검색 및 메타데이터, 이메일 기반 기능, 스토리지 백엔드, 상태 확인 및 UI 사용자 지정.
  • security: 키 및 암호화 지원.
Ruoom Core 모델

플러그인 수명 주기

  1. 릴리스 wheel이 공용 plugins Python 네임스페이스 아래에 패키지를 설치합니다.
  2. RUOOM_PLUGINS가 이 배포에서 사용할 플러그인 식별자와 순서를 지정합니다.
  3. Core는 식별자를 Django 앱 구성에 매핑하고 가져올 수 있는 패키지만 INSTALLED_APPS에 추가합니다.
  4. plugins.<name>.plugin.PLUGIN_METADATA는 URL 접두사와 네임스페이스를 선언하며, 선택적으로 탐색 메뉴, 설정 탭, 로그인 옵션, 권한 그룹, 공개/직원 URL 패턴, 미들웨어 및 의존성을 제공합니다.
  5. Core는 각 플러그인의 URL을 마운트하고 메타데이터를 공통 UI 및 인증 구성 요소에 전달합니다.
알 수 없는 식별자는 설정 초기화 중 오류를 발생시킵니다. 등록된 식별자라도 패키지가 설치되지 않으면 건너뛰므로, 모든 아티팩트를 먼저 설치한 뒤 RUOOM_PLUGINS를 설정하고 python manage.py check를 실행하는 것이 안전합니다.

Core 엔드포인트

  • /administration/: 직원용 대시보드 및 관리 흐름.
  • /customer/: 고객 계정 흐름.
  • /registration/: 비밀번호 인증 및 계정 생성.
  • /admin/: Django 관리자.
  • /health/, /health: 상태 확인.
  • /accounts/: Django 인증 URL.
플러그인 엔드포인트는 동적으로 마운트됩니다. 전체 경로는 메타데이터 접두사와 각 플러그인 아키텍처 페이지에 나열된 경로를 결합한 값입니다.

데이터 및 스토리지

Core는 기본적으로 SQLite를 사용합니다. sqlite:// 또는 postgresql:// 형식의 DATABASE_URL로 백엔드를 명시할 수 있습니다. 로컬 업로드는 파일 시스템에 저장됩니다. STORAGE=S3를 사용하면 비공개 업로드 미디어는 S3 호환 백엔드로 전환되고 공개 정적 자산은 WhiteNoise를 통해 동일 오리진에서 제공됩니다.