Files
jongryangje/docs/개발 규칙/07-전체구조.md
2026-04-08 00:23:55 +09:00

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. 요청 흐름 (전체)

  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와 동일한 스타일로 구현한다.