프로젝트 소개

## 프로젝트 포지셔닝 맹아(Mengya) 모자 건강 및 육아 콘텐츠 플랫폼의 로컬 전통 직접 배포 엔지니어링으로, 개발자 로컬 디버깅, 소스 핫 리로드 개발 및 Docker 환경이 없는 경량 호스트 배포를 대상으로 합니다. 저장소는 동시에 Docker 버전 자매 프로젝트를 제공합니다. ## 아키텍처 특징 - **단일 일체형 호스팅**: 프론트엔드 프로덕션 빌드 산출물을 Django의 templates 및 static 디렉토리에 병합하여, 단일 Python 프로세스가 SPA 페이지, 정적 리소스 및 백엔드 API를 통합 호스팅하며, 실행 환경에 Node.js 상주 서비스가 필요하지 않습니다. - **데이터 저장**: 로컬 SQLite3(backend/db.sqlite3), 자동 마이그레이션 지원. - **기술 스택**: Python 3.10+, Django + DRF, React + Vite(프론트엔드 2차 개발 시에만 Node.js 18+ 필요). - **보안 격리**: 프론트엔드와 백엔드가 루프백 주소에 바인딩되며, 외부 접근은 Nginx 리버스 프록시를 경유합니다. SNI를 통해 443 포트에서 호스트의 다른 HTTPS 사이트와 공존 지원, SAN 확장을 포함한 자체 서명 인증서 자동 생성, 80에서 443으로의 리다이렉트 내장. ## 운영 스크립트 run.sh start / restart / stop / status / add_nginx / init_data / help 등의 명령을 제공하며, 명령줄 인자로 포트, 관리자 계정 비밀번호 닉네임, SNI 도메인을 사용자 정의할 수 있고 자동으로 .env에 기록합니다. 시작 전 캐시와 .git 중복 객체를 자동 정리하며, .env가 없으면 템플릿에서 자가 복구 초기화합니다. ## 기능 모듈 - **관리자 계정 관리**: 시작 시 ensure_admin을 실행하여 단일 관리자 수명 주기를 보장하고, 과거 관리자 계정을 자동 정리하며, 일반 등록 사용자 데이터는 보존합니다. - **로그인 보안 리스크 관리**: 비밀번호 및 보안 질문 오류 카운트, 잠금 카운트다운, 그래픽 인증 코드, 비밀번호 찾기 시도 횟수 제한; 관리자 계정은 동결되지 않고 대기와 인증 코드만 트리거됩니다. - **권한 관리 매트릭스**: 6대 모듈 총 31개 세분화된 권한(페이지 메뉴 및 CRUD 작업)을 커버하며, 전역 기본값과 개별 사용자 맞춤 설정 지원, 부모-자식 권한 재귀 연동, 관리자는 비활성화 불가능한 최고 권한을 보유합니다. - **콘텐츠 및 비즈니스**: 임신 주간 달력, 태교 이야기, 임신 레시피, 유아 백과, 출산 준비 목록, 상품 라이브러리 및 브랜드, 상품 즐겨찾기, 구매 채널 링크. - **AI 어시스턴트**: 개인 또는 관리자 상속 API Key 설정 및 연결성 테스트 지원, 다중 엔진 인터넷 검색 장애 조치(DuckDuckGo, Google, Bing, 360, Sogou, Baidu, Yahoo), 타임아웃 시 로컬 지식 베이스로 폴백, 답변에 정보 출처 표기. - **아기 프로필**: 미출생(출산 예정일, 태명)과 출생(생일, 체중) 두 가지 모드 지원, 임신 단계와 양방향 동기화, 큰 아기의 월령은 "X세 X개월"로 표시. - **감사 로그**: 인증, 사용자 관리, 단계 변경, 상품, 즐겨찾기, 건강, 출산 준비 목록, AI 질의응답 등의 행위를 커버하며, 필터링 및 CSV 내보내기 지원. ## 디렉토리 구조 backend(Django 프로젝트, apps, config, db.sqlite3, requirements.txt), frontend(Vite + React 소스), logs(로그 및 PID), .env, run.sh. ## 적용 시나리오 단일 머신 또는 경량 서버에서 최소 의존성으로 모자 콘텐츠 플랫폼을 운영하고자 하며, 세분화된 권한과 보안 리스크 관리 기능이 필요한 배포자에게 적합합니다.