86 lines
1.9 KiB
Markdown
86 lines
1.9 KiB
Markdown
# DB 사용법
|
|
|
|
## 구조
|
|
```
|
|
MMOServer (실행 프로젝트 Test파일들은 임시용)
|
|
├── RDB/
|
|
├──── Handlers/
|
|
│ └──── TestHandler.cs
|
|
├──── Models/
|
|
│ └──── TestM.cs
|
|
├──── Repositories/
|
|
│ └──── TestRepository.cs
|
|
└──── Services/
|
|
└──── TestService.cs
|
|
|
|
ServerLib (DLL)
|
|
├── RDB/
|
|
├──── Database/
|
|
│ └── DbConnectionFactory.cs
|
|
├──── Handlers/
|
|
│ ├── HandlerHelper.cs
|
|
│ └── Response.cs
|
|
└──── Repositories/
|
|
└── ARepository.cs
|
|
```
|
|
|
|
---
|
|
|
|
## 데이터 흐름
|
|
|
|
```
|
|
호출부 (Packet 등)
|
|
↓ 파라미터 전달
|
|
Handler → Service 호출 + 응답 포맷팅 (string, HelperHander 사용)
|
|
↓
|
|
Service → 비즈니스 로직, 유효성 검사, 예외 throw
|
|
↓
|
|
Repository → DB 접근 (Class? / bool / long 반환)
|
|
↓
|
|
MySQL
|
|
```
|
|
|
|
---
|
|
|
|
## 반환 타입 정리
|
|
|
|
| 레이어 | 반환 타입 |
|
|
|--------|---------------------------------------------------|
|
|
| Repository | `class?` / `IEnumerable<class>` / `long` / `bool` |
|
|
| Service | 동일 (그대로 올림) |
|
|
| Handler | `string` (JSON 포장) |
|
|
|
|
---
|
|
|
|
## 새 테이블 추가 시
|
|
|
|
1. `MMOServer/RDB/Models/` 에 Model 추가
|
|
2. `MMOServer/RDB/Repositories/` 에 Repository 추가 (ARepository 상속)
|
|
3. `MMOServer/RDB/Services/` 에 Service 추가
|
|
4. `MMOServer/RDB/Handlers/` 에 Handler 추가
|
|
|
|
**ServerLib (DLL) 은 건드릴 필요 없음.**
|
|
|
|
---
|
|
|
|
## Connection Pool 설정(MMOServer/config.json)
|
|
|
|
```
|
|
{
|
|
"Database": {
|
|
"Host": "localhost",
|
|
"Port": "0000",
|
|
"Name": "XXXX",
|
|
"User": "root",
|
|
"Password": "11212121",
|
|
"Pooling": {
|
|
"MinimumPoolSize": "5",
|
|
"MaximumPoolSize": "100",
|
|
"ConnectionTimeout": "30",
|
|
"ConnectionIdleTimeout": "180"
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|