74 lines
1.8 KiB
Markdown
74 lines
1.8 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)
|
|
↓
|
|
Service → 비즈니스 로직, 유효성 검사, 예외 throw
|
|
↓
|
|
Repository → DB 접근 (TestM? / 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 설정(아직 구성 안됨)
|
|
|
|
```
|
|
Server=localhost;Database=mydb;User=root;Password=1234;
|
|
Pooling=true;MinimumPoolSize=5;MaximumPoolSize=100;
|
|
ConnectionTimeout=30;ConnectionIdleTimeout=180;
|
|
```
|
|
|