Files
Aislo/.agent/test/01_Architecture_and_Structure.md
T

3.8 KiB

document_type, priority
document_type priority
architecture HIGH

프로젝트 구조 및 아키텍처 명세

1. 아키텍처 기본 원칙

  • 수직 통합: 백엔드 로직과 프론트엔드 코드는 페이지 폴더(A01_, B01_ 등)별로 격리. 거대 단일 모듈을 금지하고 기능별로 파일을 분할한다.
  • 루트 main.py: FastAPI 진입점으로, 라우터 등록(include_router)만 수행. 비즈니스 로직 작성 금지.
  • 명명 규칙:
    • 백엔드: [폴더명]_Router.py, [폴더명]_Engine.py, [폴더명]_Schema.py, [폴더명]_Repository.py
    • 프론트엔드: [폴더명]_UI_Page.ts, [폴더명]_UI_Style.css, [폴더명]_Api_Fetch.ts
    • 로그인 전은 A01_, 로그인 후는 B01_, 워크플로우는 B04_wf1_ 형태 적용.
    • 공통 유틸 코드는 common_util_[기능].확장자

2. 전체 디렉토리 트리 상세

my-project/
├── A00_Common/                      # 프론트엔드 공통 인프라
│   ├── main.ts                     # 앱 진입점
│   ├── router.ts                   # 해시 기반 SPA 라우터
│   └── app_shell.ts                # 공통 헤더/푸터
├── common_util/                     # 공통 유틸리티
│   ├── common_util_validate.ts     # 프론트 유효성 검사
│   ├── common_util_storage.py      # 저장 경로 로직
│   └── common_util_workflow.py     # 상태 동기화 로직
├── config/                          # 환경 설정
│   ├── config_system.py             # 시스템 파라미터 (제어 변수 중앙화)
│   └── config_db.py                 # DB 설정
├── db_management/                   # 스키마 및 마이그레이션
├── resources/                       # 정적 리소스 (에셋)
├── storage/                         # 물리 파일 영구 저장소 (DB와 매핑)
├── templates/                       # 보고서/도면 양식
├── ui_template/                     # 공통 UI 컴포넌트, 테마, 다국어
│   ├── ui_template_theme.css       
│   ├── ui_template_locale.ts       
│   └── ui_template_elements.ts     

# --- 로그인 전 페이지 (A 그룹) ---
├── A01_Home/                        # 홈 (소개, 소식)
├── A02_ProgDetail/                  # 프로그램 상세 (6단계 워크플로우 설명)
├── A03_CompDetail/                  # 회사 상세 (미션 등)
├── A04_NewsHistory/                 # 최신소식 및 개선 이력
├── A05_EduDetail/                   # 교육 상세
├── A06_Login/                       # 로그인 (이메일/비밀번호)
├── A07_Register/                    # 회원가입
├── A08_Support/                     # 기술지원 요청

# --- 로그인 후 페이지 (B 그룹) ---
├── B01_AccountDetail/               # 계정 관리
├── B02_ProjRegister/                # 신규 프로젝트 등록
├── B03_FileInput/                   # [WF0] 원본 파일 입력 (다중 파일 업로드)
├── B04_wf1_Surface/                 # [WF1] 지표면 모델 분석 (LAS 처리)
├── B05_wf2_Route/                   # [WF2] 경로 설계 (최적 경로 계산)
├── B06_wf3_ProfileCross/            # [WF3] 종횡단 생성 (단면 추출)
├── B07_wf4_DesignDetail/            # [WF4] 상세 설계 (구조물 배치)
├── B08_wf5_Quantity/                # [WF5] 수량 산출 (물량 집계)
├── B09_wf6_Estimation/              # [WF6] 견적/최종 산출물 생성
├── B10_Payment/                     # 결제 관리
└── B11_Status/                      # 상태 출력 페이지

├── main.py                          # FastAPI 루트
└── package.json, requirements.txt 등