- 최고관리자(Supervisor) 전용 2중 보안 잠금 시스템 및 인증 UI 적용 - 데이터베이스 인프라 및 암호화 마스터 키 자가 관리 기능 구축 - 권한 계층(Supervisor > Admin > User) 기반의 메뉴 노출 및 접근 제어 로직 강화 - 시스템 버전 정보 페이지 신규 추가 및 패키지 버전 자동 연동 (v0.2.5) - 사용자 관리 UI 디자인 개선 및 폰트/스타일 일원화
3.4 KiB
3.4 KiB
SmartIMS 프로젝트 디렉토리 구조 (Directory Structure)
본 문서는 SmartIMS 플랫폼의 전체 프로젝트 구조와 각 디렉토리의 역할을 설명합니다.
1. 전체 구조 개요
smartims/
├── docs/ # 설계서, 가이드, 매뉴얼 등 프로젝트 관련 문서
├── public/ # 파비콘, 로고 등 정적 자원
├── server/ # Node.js (Express) 기반 백엔드 서버
├── src/ # React (Vite) 기반 프론트엔드 어플리케이션
├── tools/ # 개발 및 관리에 필요한 유틸리티 도구
├── package.json # 프론트엔드 의존성 및 스크립트
├── tailwind.config.js # Tailwind CSS 설정
└── vite.config.ts # Vite 빌드 설정
2. 프론트엔드 구조 (src/)
프론트엔드는 모듈형 아키텍처를 따르며, 플랫폼 엔진과 독립적인 비즈니스 모듈로 구성됩니다.
2.1 Core & Infrastructure
src/core/: 플랫폼의 핵심 인터페이스 및 공통 타입 정의 (types.ts).src/platform/: 시스템의 뼈대 구현.App.tsx: 메인 엔트리 및 전체 레이아웃 구성.ModuleLoader.tsx: 등록된 모듈을 동적으로 로드하고 라우팅을 구성.styles/: 전역 스타일 및 디자인 토큰(global.css) 관리.
src/app/: Context Provider(인증, 시스템 설정 등)와 같은 전역 상태 관리.
2.2 Functional Components
src/modules/: 독립적인 비즈니스 영역. 각 폴더는 하나의 서비스 모듈을 의미함.- 예:
asset/,cctv/,license/등. - 각 모듈은
module.tsx(또는index.tsx)를 진입점으로 가짐.
- 예:
src/widgets/: 여러 페이지에서 재사용되는 복합 UI 블록 (예:MainLayout,Sidebar).src/shared/: 프로젝트 전역에서 사용되는 공통 UI 컴포넌트, 유틸리티, API 클라이언트.
3. 백엔드 구조 (server/)
백엔드는 RESTful API 제공 및 데이터베이스 관리를 담당합니다.
server/index.js: 서버 엔트리 포인트. 환경 설정, 미들웨어 등록, 라우트 연결 총괄.server/routes/: API 엔드포인트 정의. (예:auth.js,system.js,asset.js).server/middleware/: 요청 처리 과정에서 동작하는 공통 로직 (인증 필터, 에러 핸들러).server/configs/: 데이터베이스 연결 (db.js) 및 외부 서비스 설정.server/utils/: 서버 측 공통 유틸리티 (로그 관리, 파일 업로드 등).server/schema.sql: 데이터베이스 테이블 명세 및 초기 데이터.
4. 기타 주요 디렉토리
docs/:MODULAR_ARCHITECTURE_GUIDE.md: 모듈화 상세 설계 원칙.DEPLOYMENT_GUIDE.md: 서버 배포 방법.
tools/:- 라이선스 관리 도구, 데이터 마이그레이션 스크립트 등 개발 보조 도구 포함.
5. 아키텍처 원칙 요약
- 느슨한 결합 (Loose Coupling): 플랫폼은 모듈 내부 로직을 모르며, 모듈은 정의된 인터페이스를 통해 플랫폼과 통신합니다.
- 높은 응집도 (High Cohesion): 특정 기능(예: 자산 관리)에 필요한 코드는 해당 모듈 폴더(
src/modules/asset/) 내에 모여 있어야 합니다. - 디자인 시스템 준수: 모든 스타일은 플랫폼이 제공하는 CSS Variables를 사용하여 일관성을 유지합니다.