docs: add project docs and test updates
This commit is contained in:
57
docs/개발 규칙/03-파일분리구조.md
Normal file
57
docs/개발 규칙/03-파일분리구조.md
Normal file
@@ -0,0 +1,57 @@
|
||||
# 파일 분리 구조 (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와 동일한 패턴을 따른다.
|
||||
Reference in New Issue
Block a user