mirror of
https://github.com/cna-bootcamp/phonebill.git
synced 2025-12-06 16:16:23 +00:00
165 lines
3.8 KiB
Markdown
165 lines
3.8 KiB
Markdown
# KOS Mock Service
|
|
|
|
KT 통신사 시스템(KOS-Order)을 모방한 Mock 서비스입니다.
|
|
|
|
## 개요
|
|
|
|
KOS Mock Service는 통신요금 관리 서비스의 다른 마이크로서비스들이 외부 시스템과의 연동을 테스트할 수 있도록 하는 내부 Mock 서비스입니다.
|
|
|
|
## 주요 기능
|
|
|
|
### 1. 요금 조회 Mock API
|
|
- 고객의 통신요금 정보 조회
|
|
- 회선번호 기반 요금 데이터 제공
|
|
- 다양한 오류 상황 시뮬레이션
|
|
|
|
### 2. 상품 변경 Mock API
|
|
- 고객의 통신상품 변경 처리
|
|
- 상품 변경 가능성 검증
|
|
- KOS 주문 번호 생성
|
|
|
|
### 3. Mock 데이터 관리
|
|
- 테스트용 고객 데이터 제공
|
|
- 요금제별 Mock 상품 데이터
|
|
- 청구월별 요금 이력 데이터
|
|
|
|
## 기술 스택
|
|
|
|
- **Framework**: Spring Boot 3.2
|
|
- **Language**: Java 17
|
|
- **Documentation**: Swagger/OpenAPI 3.0
|
|
- **Cache**: Redis (선택적)
|
|
- **Test**: JUnit 5, MockMvc
|
|
|
|
## API 엔드포인트
|
|
|
|
### 기본 정보
|
|
- **Base URL**: `http://localhost:8080/kos-mock`
|
|
- **API Version**: v1
|
|
- **Content-Type**: `application/json`
|
|
|
|
### 주요 API
|
|
|
|
#### 1. 요금 조회 API
|
|
```http
|
|
POST /api/v1/kos/bill/inquiry
|
|
```
|
|
|
|
**요청 예시:**
|
|
```json
|
|
{
|
|
"lineNumber": "01012345678",
|
|
"billingMonth": "202501",
|
|
"requestId": "REQ_20250108_001",
|
|
"requestorId": "BILL_SERVICE"
|
|
}
|
|
```
|
|
|
|
#### 2. 상품 변경 API
|
|
```http
|
|
POST /api/v1/kos/product/change
|
|
```
|
|
|
|
**요청 예시:**
|
|
```json
|
|
{
|
|
"lineNumber": "01012345678",
|
|
"currentProductCode": "LTE-BASIC-001",
|
|
"targetProductCode": "5G-PREMIUM-001",
|
|
"requestId": "REQ_20250108_002",
|
|
"requestorId": "PRODUCT_SERVICE",
|
|
"changeReason": "고객 요청에 의한 상품 변경"
|
|
}
|
|
```
|
|
|
|
#### 3. 서비스 상태 체크 API
|
|
```http
|
|
GET /api/v1/kos/health
|
|
```
|
|
|
|
## Mock 데이터
|
|
|
|
### 테스트용 회선번호
|
|
- `01012345678` - 김테스트 (5G 프리미엄)
|
|
- `01087654321` - 이샘플 (5G 스탠다드)
|
|
- `01055554444` - 박데모 (LTE 프리미엄)
|
|
- `01099998888` - 최모의 (LTE 베이직)
|
|
- `01000000000` - 비활성사용자 (정지 상태)
|
|
|
|
### 상품 코드
|
|
- `5G-PREMIUM-001` - 5G 프리미엄 플랜 (89,000원)
|
|
- `5G-STANDARD-001` - 5G 스탠다드 플랜 (69,000원)
|
|
- `LTE-PREMIUM-001` - LTE 프리미엄 플랜 (59,000원)
|
|
- `LTE-BASIC-001` - LTE 베이직 플랜 (39,000원)
|
|
- `3G-OLD-001` - 3G 레거시 플랜 (판매 중단)
|
|
|
|
## 실행 방법
|
|
|
|
### 1. 개발 환경에서 실행
|
|
```bash
|
|
./gradlew bootRun
|
|
```
|
|
|
|
### 2. JAR 파일로 실행
|
|
```bash
|
|
./gradlew build
|
|
java -jar build/libs/kos-mock-service-1.0.0.jar
|
|
```
|
|
|
|
### 3. 특정 프로파일로 실행
|
|
```bash
|
|
java -jar kos-mock-service-1.0.0.jar --spring.profiles.active=prod
|
|
```
|
|
|
|
## 설정
|
|
|
|
### Mock 응답 지연 설정
|
|
```yaml
|
|
kos:
|
|
mock:
|
|
response-delay: 1000 # 밀리초
|
|
failure-rate: 0.05 # 5% 실패율
|
|
```
|
|
|
|
### Redis 설정 (선택적)
|
|
```yaml
|
|
spring:
|
|
data:
|
|
redis:
|
|
host: localhost
|
|
port: 6379
|
|
```
|
|
|
|
## 테스트
|
|
|
|
### 단위 테스트 실행
|
|
```bash
|
|
./gradlew test
|
|
```
|
|
|
|
### API 테스트
|
|
Swagger UI를 통해 API를 직접 테스트할 수 있습니다:
|
|
- URL: http://localhost:8080/kos-mock/swagger-ui.html
|
|
|
|
## 모니터링
|
|
|
|
### Health Check
|
|
- URL: http://localhost:8080/kos-mock/actuator/health
|
|
|
|
### Metrics
|
|
- URL: http://localhost:8080/kos-mock/actuator/metrics
|
|
|
|
## 주의사항
|
|
|
|
1. **내부 시스템 전용**: 이 서비스는 내부 테스트 목적으로만 사용하세요.
|
|
2. **보안 설정 간소화**: Mock 서비스이므로 보안 설정이 간소화되어 있습니다.
|
|
3. **데이터 지속성**: Mock 데이터는 메모리에만 저장되며, 재시작 시 초기화됩니다.
|
|
4. **성능 제한**: 실제 부하 테스트 용도로는 적합하지 않습니다.
|
|
|
|
## 문의
|
|
|
|
KOS Mock Service 관련 문의사항이 있으시면 개발팀으로 연락해 주세요.
|
|
|
|
- 개발팀: dev@phonebill.com
|
|
- 문서 버전: v1.0.0
|
|
- 최종 업데이트: 2025-01-08 |