# 통신요금 관리 서비스 - 유저스토리 - [통신요금 관리 서비스 - 유저스토리](#통신요금-관리-서비스---유저스토리) - [마이크로서비스 구성](#마이크로서비스-구성) - [유저스토리](#유저스토리) --- ## 마이크로서비스 구성 1. **Auth** - 사용자 인증 및 인가 관리 2. **Bill-Inquiry** - 요금 조회 서비스 3. **Product-Change** - 상품 변경 서비스 --- ## 유저스토리 ``` 1. Auth 서비스 1) 사용자 인증 및 인가 UFR-AUTH-010: [사용자 로그인] MVNO 고객으로서 | 나는 통신요금을 관리하기 위해 | 안전하게 로그인하고 싶다. - 시나리오: 고객 로그인 MVNO 서비스에 접근한 상황에서 | ID와 Password를 입력하여 로그인 요청을 하면 | 인증이 완료되고 메인 화면이 표시된다. [입력 요구사항] - 인증 정보 ID: 고객 식별자 입력 - Password: 계정 비밀번호 입력 - 자동 로그인: 선택 옵션 제공 [인증 처리] - 성공: 메인 서비스 화면으로 이동 - 실패: "ID 또는 비밀번호를 확인해주세요" 메시지 - 5회 연속 실패: 30분간 계정 잠금 안내 [검증 요구사항] - 계정이 있어야 함 - 인증 정보의 정확성 검증 - 세션 보안 처리 - M/5 --- UFR-AUTH-020: [사용자 인가] 인증된 고객으로서 | 나는 서비스별 접근 권한을 확인받기 위해 | 화면에 대한 접근권한이 부여되기를 원한다. - 시나리오: 서비스 접근 권한 확인 로그인 완료 후 특정 서비스 화면에 접근한 상황에서 | 해당 서비스 이용 권한을 확인하면 | 권한이 있는 경우 서비스 화면이 표시된다. [접근 권한 확인] - 요금 조회 서비스 접근권한 확인 - 상품 변경 서비스 접근권한 확인 - 권한별 메뉴 표시/숨김 처리 [권한 검증] - 성공: 해당 서비스 화면 제공 - 실패: "서비스 이용 권한이 없습니다" 메시지 표시 - 접근 권한이 부여되어 있어야 함 - M/3 --- 2. Bill-Inquiry 서비스 1) 요금 조회 UFR-BILL-010: [요금조회 메뉴 접근] MVNO 고객으로서 | 나는 내 통신요금을 확인하기 위해 | 요금 조회 메뉴를 요청하고 싶다. - 시나리오: 요금조회 메뉴 표시 인증된 상태에서 | 요금 조회 메뉴를 요청하면 | 요금조회 메뉴가 화면에 표시된다. [메뉴 표시 요구사항] - 요금 조회 메뉴 화면 제공 - 고객 회선번호 표시 - 조회월 선택 옵션 제공 - 요금 조회 신청 버튼 활성화 [접근 권한] - 요금 조회에 대한 접근권한이 부여되어 있어야 함 - mvno AP server를 통한 화면 제공 [오류 처리] - 메뉴 로딩 실패 시: "요금 조회 메뉴 로딩에 실패하였습니다" 메시지 - M/5 --- UFR-BILL-020: [요금조회 신청] MVNO 고객으로서 | 나는 특정 월의 통신요금을 확인하기 위해 | 조회월을 선택하여 요금 조회를 신청하고 싶다. - 시나리오 1: 조회월 미선택 (기본 조회) 요금조회 메뉴에서 | 조회월을 입력하지 않고 조회를 신청하면 | 조회시점 기준 당월 청구요금이 조회된다. [기본 조회 처리] - 입력 데이터: 회선번호 - 조회 대상: 현재 월 청구요금 - 결과 확인: 조회시점 기준 당월 청구요금을 확인했다 - 시나리오 2: 조회월 선택 조회 요금조회 메뉴에서 | 특정 조회월을 선택하고 조회를 신청하면 | 해당 조회월의 청구요금이 조회된다. [선택 조회 처리] - 입력 데이터: 회선번호, 조회월 - 조회 대상: 선택한 월의 청구요금 - 결과 확인: 조회월의 청구요금을 확인했다 [조회 선택 옵션] - 조회월을 선택한다: 특정 월 선택하여 조회 - 조회월을 선택하지 않는다: 당월 기준으로 조회 [처리 결과] - 성공: 요금 조회가 신청되었다 - 실패: "요금 조회 신청에 실패하였습니다" 메시지 - M/8 --- UFR-BILL-030: [KOS 요금조회 서비스 연동] 시스템으로서 | 나는 정확한 요금 정보를 제공하기 위해 | KOS의 요금 조회 서비스를 호출하고 응답을 처리하고 싶다. - 시나리오: KOS 요금조회 API 호출 요금 조회 요청을 받은 상황에서 | 요금 조회 API를 호출하면 | KOS 요금 조회 서비스의 응답을 받아 처리한다. [API 호출 요구사항] - 입력 데이터: 회선번호, 조회월 (선택) - 호출 대상: KOS-Order 시스템 - 호출 규격: KOS 요금조회 서비스가 요구하는 규격에 맞게 호출 - 응답 처리: KOS 요금 조회 서비스의 응답을 받았다 [응답 데이터] - 요금조회 결과 정보 - 상품명: 현재 이용 중인 요금제 - 약정정보: 계약 약정 조건 - 청구월: 요금 청구 월 - 요금: 청구 요금 금액 - 할인정보: 적용된 할인 내역 - 사용량: 통화, 데이터 사용량 - 예상해지비용: 중도 해지 시 비용 - 단말기할부금: 단말기 할부 잔액 - 청구/납부정보: 요금 청구 및 납부 상태 [처리 결과] - 성공: 요금 조회 API 호출에 성공하였다 - 실패: 요금 조회 API 호출에 실패하였다 - M/13 --- UFR-BILL-040: [요금조회 결과 전송] 시스템으로서 | 나는 조회된 요금 정보를 고객에게 제공하기 위해 | MVNO AP로 조회 결과를 전송하고 연동 이력을 저장하고 싶다. - 시나리오: 요금조회 결과 화면 출력 KOS에서 요금조회 결과를 받은 상황에서 | MVNO AP로 결과를 전송하면 | 요금조회 결과가 화면에 출력되고 전송 이력이 기록된다. [결과 전송 처리] - 전송 대상: mvno AP server - 전송 데이터: 요금조회 결과 정보 (상품명, 청구월, 요금 등 전체) - 화면 출력: 요금조회 결과를 화면에 출력한다 - 이력 기록: 요금 조회 결과를 전송하고, 전송이력을 기록했다 [처리 이력 관리] - 요금 조회 요청 이력: MVNO → MP - 요청일시, 회선번호, 조회월 - 요금 조회 처리 이력: MP → KOS - 조회요청일시, 조회처리일시, 처리결과 - 요청한 회선번호와 조회월 정보 - M/8 --- 3. Product-Change 서비스 1) 상품 변경 UFR-PROD-010: [상품변경 메뉴 접근] MVNO 고객으로서 | 나는 내 요금제를 변경하기 위해 | 상품 변경 요청 메뉴를 요청하고 싶다. - 시나리오: 상품변경 메뉴 표시 인증된 상태에서 | 상품 변경 요청 메뉴를 요청하면 | 상품변경 메뉴가 화면에 표시된다. [메뉴 표시 요구사항] - 상품 변경 요청 메뉴 화면 제공 - 고객 정보 표시 (회선번호, 고객ID) - 현재 상품 정보 표시 - 변경 가능한 상품 목록 제공 [접근 권한] - 화면에 대한 접근권한이 부여되어 있어야 함 - mvno AP server를 통한 화면 제공 [오류 처리] - 메뉴 로딩 실패 시: "상품 변경 요청 메뉴 로딩에 실패하였습니다" 메시지 - M/5 --- UFR-PROD-020: [상품변경 화면 접근] MVNO 고객으로서 | 나는 상품을 선택하고 변경하기 위해 | 상품 변경 화면을 요청하고 싶다. - 시나리오: 상품변경 화면 표시 상품변경 메뉴에서 | 상품 변경 화면을 요청하면 | 상품 선택 및 변경 요청이 가능한 화면이 표시된다. [화면 표시 요구사항] - 고객정보 및 상품정보 조회 및 표시 - 현재 이용 상품 정보 표시 - 변경 가능한 상품 목록 제공 - 상품 선택 및 변경 요청 기능 [데이터 조회] - 고객정보 요청: KOS-Order 시스템에서 고객 정보 조회 - 상품정보 요청: KOS-Order 시스템에서 상품 정보 조회 - 조회 결과: 고객정보가 취득되었다, 상품 정보가 취득되었다 [처리 결과] - 성공: 상품 변경 화면이 보였다 - 실패: "상품 변경 화면 접속에 실패하였습니다" 메시지 - M/8 --- UFR-PROD-030: [상품변경 요청] MVNO 고객으로서 | 나는 더 나은 요금제로 변경하기 위해 | 원하는 상품을 선택하여 변경을 요청하고 싶다. - 시나리오: 상품 선택 및 변경 요청 상품변경 화면에서 | 상품(요금제)을 선택 후 상품 변경 요청을 하면 | 변경 요청이 접수되고 사전 체크가 진행된다. [변경 요청 입력] - 회선번호: 고객 회선 식별자 - 변경 전 상품코드: 현재 이용 중인 상품 - 변경 후 상품코드: 변경하려는 상품 - 생성일시: 요청 일시 [상품 변경 사전 체크] - 사전 체크 조건 - 현재 판매중인 상품이어야 함 - 변경 요청한 사업자에서 판매중인 상품이어야 함 - 변경 요청 회선은 사용 중인 상태여야 함 (정지 상태가 아니어야 함) - 사전체크 결과에서 정상(변경가능)으로 응답처리 되어야 함 [처리 결과] - 성공: 상품 변경이 진행되었다, 상품 사전 체크에 성공하였다 - 실패: 상품 사전 체크에 실패하였다 - M/13 --- UFR-PROD-040: [상품변경 처리] 시스템으로서 | 나는 승인된 상품 변경 요청을 완료하기 위해 | KOS 시스템과 연동하여 상품 변경을 처리하고 싶다. - 시나리오 1: 상품 변경 성공 처리 사전 체크가 통과된 상황에서 | KOS에 상품 변경 처리를 요청하면 | 상품 변경이 완료되고 완료 결과가 전송된다. [성공 처리] - 상품 변경 완료: 상품 변경이 완료되었다 - 처리 결과 전송: 변경 후 상품 코드, 상품 변경 처리 결과(정상), 메시지 - 화면 출력: 상품 변경 완료 문구를 화면에 출력한다 - 이력 기록: 상품 변경 처리하고 연동 이력을 기록한다 - 시나리오 2: 상품 변경 실패 처리 사전 체크는 통과했으나 실제 변경 처리 중 문제가 발생한 상황에서 | 변경 처리가 실패하면 | 실패 사유에 따른 안내 메시지가 표시된다. [실패 처리] - 변경 실패: 상품 변경이 실패했다, 상품 변경 요청을 실패하였다 - 처리 결과 전송: 변경 후 상품 코드, 상품 변경 처리 결과(실패), 실패 메시지 - 화면 출력: 상품 변경에 실패하여 실패 사유에 따라 문구를 화면에 출력한다 - 이력 기록: 상품 변경 실패 처리하고 실패 이력을 기록한다 [처리 이력 관리] - 상품 변경 요청 이력: MVNO → MP - 회선번호, 변경 전 상품코드, 변경 후 상품코드, 생성일시 - 상품 변경 처리 이력: MP → KOS - 회선번호, 변경 전/후 상품코드, 처리 결과, 처리 메시지 - M/21 --- ``` ## 데이터 관계 ``` 고객 (1) : (N) 요금조회 고객 (1) : (N) 상품변경 고객정보 - 고객ID, 회선번호, 상품정보 상품정보 - 상품코드, 상품명, 가격 정보 요청이력 - 요청일시, 처리일시, 처리결과 처리이력 - 연동 시스템, 요청/응답 데이터, 처리결과 ``` ## 주요 기술 고려사항 ### 외부 시스템 연동 - **KOS-Order 시스템**: 실제 통신사 백엔드 시스템과의 안정적 연동 필요 - **MVNO AP Server**: 프론트엔드 시스템과의 실시간 통신 처리 - **Circuit Breaker**: 외부 시스템 장애 시 서비스 가용성 확보 ### 보안 및 인증 - **인증/인가**: 고객 정보 보호를 위한 강력한 인증 체계 - **데이터 암호화**: 민감한 고객 정보 및 요금 정보 암호화 - **세션 관리**: 안전한 세션 처리 및 타임아웃 관리 ### 성능 및 안정성 - **응답 시간**: KOS 연동 API의 안정적 응답 시간 확보 - **이력 관리**: 모든 요청/처리 이력의 정확한 기록 및 추적 - **오류 처리**: 각 단계별 명확한 오류 메시지 및 복구 방안 ### 데이터 일관성 - **트랜잭션 처리**: 상품 변경 시 데이터 일관성 보장 - **이력 동기화**: 요청/처리 이력의 정확한 동기화 - **상태 관리**: 각 요청의 상태 추적 및 관리