2.6 KiB
2.6 KiB
전체 구조 (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. 요청 흐름 (전체)
- 진입:
public/index.php→ Boot → Routes. - 라우트:
Routes.php에서 URI →Controller::method매핑. - 컨트롤러: BaseController 상속,
validate→ Model →view()또는redirect(). - 뷰:
Views/폴더/파일.php렌더,esc(),base_url(),csrf_field(), 플래시 표시. - 모델: 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와 동일한 스타일로 구현한다.