docs: add project docs and test updates

This commit is contained in:
taekyoungc
2026-04-08 00:23:55 +09:00
parent 06fedc866a
commit 06aa401048
238 changed files with 8373 additions and 148 deletions

View File

@@ -0,0 +1,53 @@
# 전체 구조 (Overall Project Structure)
> 종량제 쓰레기봉투 물류시스템(CodeIgniter 4) 프로젝트 전체 구조. AI 생성 시 이 구조를 유지한다.
## 1. 프로젝트 루트
```
jongryangje/
├── app/
│ ├── Config/ # 설정 (Routes, Roles, App, Database 등)
│ ├── Controllers/ # 컨트롤러 (Auth, Home, Admin/* 등)
│ ├── Models/ # 모델 (MemberModel, MemberLogModel 등)
│ ├── Views/ # 뷰 (auth/, home/, bag/, admin/ 등)
│ ├── Database/ # 마이그레이션·시더(선택)
│ └── ...
├── public/ # DOCROOT (index.php, .htaccess)
├── writable/ # 로그, 캐시, 세션
├── docs/ # 문서 (개발 규칙, ai용 개발계획 등)
├── tests/이름의 첫글자, 마지막 글자를 제외한 나머지는 * 로가림
- 개인 휴대전화 번호의 중간 번호는 *로 가림
└── vendor/
```
## 2. app 디렉터리 역할
| 디렉터리 | 역할 | 기준 예시 |
|----------|------|-----------|
| **Config** | 라우트·역할·DB·앱 전역 설정 | Routes.php, Roles.php |
| **Controllers** | 요청 처리·유효성·Model 호출·view/redirect | Auth.php, Home.php |
| **Models** | 테이블 접근·CRUD·조회 메서드 | MemberModel, MemberLogModel |
| **Views** | HTML·폼·플래시 메시지·base_url/csrf_field/esc/old | auth/login.php, bag/daily_inventory.php |
## 3. 요청 흐름 (전체)
1. **진입**: `public/index.php` → Boot → Routes.
2. **라우트**: `Routes.php`에서 URI → `Controller::method` 매핑.
3. **컨트롤러**: BaseController 상속, `validate` → Model → `view()` 또는 `redirect()`.
4. **뷰**: `Views/폴더/파일.php` 렌더, `esc()`, `base_url()`, `csrf_field()`, 플래시 표시.
5. **모델**: DB 접근, 컨트롤러에서 `model(XxxModel::class)` 호출.
## 4. 참조 구현 요약
- **인증**: `Auth::showLoginForm`, `Auth::login`, `Auth::logout`, `auth/login.php`, `auth/register.php`, `MemberModel`, `MemberLogModel`.
- **홈**: `Home::index` → 로그인 시 `bag/daily_inventory`, 비로그인 시 `welcome_message`.
- **설정**: `Roles.php` — mb_level 상수·levelNames. `Routes.php` — GET/POST 라우트.
## 5. 문서·규칙 위치
- **개발 규칙**: `docs/개발 규칙/` (00~07 번호 부여).
- **AI용 개발계획**: `docs/ai용 개발계획/` (관리자단 설계 등).
- **기본 개발계획**: `docs/기본 개발계획/`.
새 기능·새 화면 추가 시 위 전체 구조와 `docs/개발 규칙/` 내 규칙을 함께 참고해 Auth와 동일한 스타일로 구현한다.