58 lines
2.1 KiB
Markdown
58 lines
2.1 KiB
Markdown
# 파일 분리 구조 (File Separation Structure)
|
|
|
|
> Auth·Home·Member·MemberLog 기준. 컨트롤러/모델/설정 역할별 분리 규칙.
|
|
|
|
## 1. 컨트롤러 (Controllers)
|
|
|
|
- **위치**: `app/Controllers/`
|
|
- **네임스페이스**: `App\Controllers` 또는 서브(예: `App\Controllers\Admin`).
|
|
- **기준**: `Auth.php` — 로그인/로그아웃/회원가입 등 한 도메인당 한 컨트롤러.
|
|
- **상속**: `extends BaseController`.
|
|
- **역할**: 요청 수신 → 유효성 → Model 호출 → view() 또는 redirect(). 비즈니스 로직은 Model·별도 클래스로 분리.
|
|
|
|
```
|
|
app/Controllers/
|
|
├── BaseController.php # 공통 상속
|
|
├── Auth.php # 로그인/로그아웃/회원가입
|
|
├── Home.php # 홈/대시보드
|
|
└── Admin/ # 관리자단(선택)
|
|
├── Dashboard.php
|
|
├── User.php
|
|
└── ...
|
|
```
|
|
|
|
## 2. 모델 (Models)
|
|
|
|
- **위치**: `app/Models/`
|
|
- **네임스페이스**: `App\Models`
|
|
- **기준**: `MemberModel.php`, `MemberLogModel.php` — 테이블 1:1, `$table`, `$primaryKey`, `$allowedFields` 정의.
|
|
- **역할**: DB 접근·조회/추가/수정/삭제. 컨트롤러는 Model 메서드만 호출.
|
|
|
|
```
|
|
app/Models/
|
|
├── MemberModel.php # member 테이블
|
|
└── MemberLogModel.php # member_log 테이블
|
|
```
|
|
|
|
## 3. 설정 (Config)
|
|
|
|
- **위치**: `app/Config/`
|
|
- **기준**: `Routes.php`, `Roles.php` — 라우트·역할 등 앱 전역 설정.
|
|
- **역할**: URL 라우팅, 역할 코드·한글명 매핑 등. 비즈니스 로직은 넣지 않는다.
|
|
|
|
```
|
|
app/Config/
|
|
├── Routes.php # 라우트 정의
|
|
├── Roles.php # mb_level 상수·levelNames
|
|
├── App.php
|
|
├── Database.php
|
|
└── ...
|
|
```
|
|
|
|
## 4. 라우트 규칙
|
|
|
|
- **GET** = 폼/목록, **POST** = 처리. 같은 URI를 GET/POST로 나누는 패턴 사용(예: `get('login')`, `post('login')`).
|
|
- 그룹 필요 시 `$routes->group('admin', ['filter' => 'adminAuth'], function ($routes) { ... });` 형태.
|
|
|
|
새 기능 추가 시 위 구조에 맞춰 Controller/Model/Config를 분리하고, Auth·Member와 동일한 패턴을 따른다.
|