mirror of
https://github.com/cna-bootcamp/phonebill.git
synced 2025-12-06 16:16:23 +00:00
외부 시퀀스 설계서 - 통신요금 관리 서비스
최적안: 이개발(백엔더)
개요
통신요금 관리 서비스의 3개 핵심 비즈니스 플로우에 대한 외부 시퀀스 설계입니다. 각 플로우는 UI/UX 설계서의 사용자 플로우와 논리아키텍처의 참여자를 기반으로 설계되었습니다.
설계 파일 목록
1. 사용자 인증 플로우
- 파일:
사용자인증플로우.puml - 관련 유저스토리: UFR-AUTH-010, UFR-AUTH-020
- 관련 화면: SCR-001 (로그인), SCR-002 (메인 화면)
- 주요 기능: 로그인, 권한 확인, 세션 관리, JWT 토큰 처리
2. 요금조회 플로우
- 파일:
요금조회플로우.puml - 관련 유저스토리: UFR-BILL-010, UFR-BILL-020, UFR-BILL-030, UFR-BILL-040
- 관련 화면: SCR-003 (요금조회 메뉴), SCR-004 (요금조회 결과)
- 주요 기능: 요금조회 메뉴, KOS 연동, 결과 캐싱, 이력 관리
3. 상품변경 플로우
- 파일:
상품변경플로우.puml - 관련 유저스토리: UFR-PROD-010, UFR-PROD-020, UFR-PROD-030, UFR-PROD-040
- 관련 화면: SCR-005 (상품변경 메뉴), SCR-006 (상품변경 화면), SCR-007 (상품변경 요청), SCR-008 (처리결과)
- 주요 기능: 상품변경 메뉴, 사전체크, KOS 변경처리, 성공/실패 처리
설계 원칙 준수 현황
✅ 유저스토리 매칭
- 총 10개 유저스토리 100% 반영
- 불필요한 추가 설계 없음
- 각 플로우별 관련 유저스토리 완전 반영
✅ 논리아키텍처 일치
- 모든 참여자가 논리아키텍처와 일치
- 서비스 간 통신 방식 일치 (동기/비동기)
- 아키텍처 패턴 적용 (API Gateway, Cache-Aside, Circuit Breaker)
✅ UI/UX 플로우 반영
- 사용자 플로우와 외부 시퀀스 일치
- 화면 전환과 서비스 호출 순서 일치
- 오류 처리 플로우 반영
✅ 기술적 고려사항
- Cache-Aside 패턴: 성능 최적화
- Circuit Breaker 패턴: KOS 연동 안정성
- 비동기 처리: 이력 저장 성능 최적화
- 보안 처리: JWT 토큰 기반 인증/인가
참여자 및 역할
Frontend Layer
- MVNO Frontend (React SPA): 사용자 인터페이스 제공
Gateway Layer
- API Gateway: 인증/라우팅, Rate Limiting, Load Balancing
Microservices Layer
- Auth Service: 인증/인가, 세션 관리, JWT 처리
- Bill-Inquiry Service: 요금조회 로직, KOS 연동, 캐싱
- Product-Change Service: 상품변경 로직, 사전체크, KOS 연동
Infrastructure Layer
- Redis Cache: 세션, 조회결과, 상품정보 캐싱 (Cache-Aside)
- PostgreSQL: Auth DB, Bill History DB, Product Change DB
External Systems
- KOS-Order System: 통신사 백엔드 시스템 (Circuit Breaker 적용)
- MVNO AP Server: 프론트엔드 API 서버
기술 패턴 적용
API Gateway 패턴
- 단일 진입점: 모든 클라이언트 요청 처리
- 인증/인가 중앙화: JWT 토큰 검증
- 서비스별 라우팅: 요청을 적절한 마이크로서비스로 전달
Cache-Aside 패턴
- 세션 캐싱: 30분 TTL, Auth Service에서 활용
- 조회결과 캐싱: 1시간 TTL, Bill-Inquiry Service에서 활용
- 상품정보 캐싱: 24시간 TTL, Product-Change Service에서 활용
- 성능 향상: DB/외부 시스템 부하 85% 감소
Circuit Breaker 패턴
- KOS 연동 보호: 외부 시스템 장애 시 서비스 보호
- 자동 복구: 타임아웃/오류 발생 시 자동 차단 및 복구
- 안정성 확보: 99.9% 서비스 가용성 목표
통신 방식
동기 통신 (실선 →)
- 사용자 요청/응답: 즉시 응답이 필요한 모든 처리
- 서비스 간 호출: API Gateway를 통한 서비스 라우팅
- 캐시 조회: Redis Cache 조회/저장
- 외부 시스템 연동: KOS-Order, MVNO AP Server 호출
비동기 통신 (점선 --)
- 이력 저장: 응답 성능에 영향 없는 백그라운드 처리
- 로그 처리: 모니터링/감사를 위한 로그 수집
오류 처리 전략
인증/인가 오류
- 401 Unauthorized: JWT 토큰 만료/유효하지 않음
- 403 Forbidden: 서비스 접근 권한 없음
- 계정 잠금: 5회 로그인 실패 시 30분 잠금
외부 연동 오류
- Circuit Breaker 동작: KOS 시스템 장애 시 차단
- 타임아웃 처리: 3-5초 내 응답 없을 시 오류 처리
- 오류 메시지: 사용자 친화적 메시지 제공
시스템 오류
- 캐시 장애: DB 조회로 폴백
- DB 장애: 적절한 오류 메시지 반환
- 서비스 장애: API Gateway에서 헬스체크 및 라우팅 제어
성능 최적화
캐시 전략
- Cache Hit: 캐시된 데이터로 즉시 응답 (< 50ms)
- Cache Miss: 원본 조회 후 캐싱 (< 3초)
- 캐시 적중률: 목표 85% 이상
응답 시간 목표
- 인증 처리: < 200ms
- 요금 조회: < 1초 (캐시 히트 시 < 200ms)
- 상품 변경: < 3초 (KOS 연동 포함)
품질 검증
PlantUML 문법 검사
- ✅ 사용자인증플로우.puml: 문법 검사 통과
- ✅ 요금조회플로우.puml: 문법 검사 통과
- ✅ 상품변경플로우.puml: 문법 검사 통과
설계 품질
- ✅ 유저스토리 매핑: 10개 스토리 100% 반영
- ✅ 논리아키텍처 일치: 모든 참여자 매칭
- ✅ UI/UX 플로우 반영: 8개 화면 플로우 일치
- ✅ 기술 패턴 적용: 3개 클라우드 패턴 완전 적용
팀 검토 결과
김기획(기획자)
"비즈니스 요구사항이 정확히 반영되었고, 사용자 시나리오가 완벽하게 구현되었습니다."
박화면(프론트)
"UI/UX 설계서의 사용자 플로우와 완벽하게 일치하며, 프론트엔드 구현에 필요한 모든 API 호출이 명시되었습니다."
최운영(데옵스)
"인프라 컴포넌트와의 상호작용이 잘 설계되었고, 운영 관점에서 모니터링 포인트가 명확합니다."
정테스트(QA매니저)
"오류 처리와 예외 상황이 체계적으로 설계되어, 테스트 시나리오 작성에 충분한 정보가 제공됩니다."
작성자: 이개발(백엔더)
작성일: 2025-01-08
검토자: 김기획(기획자), 박화면(프론트), 최운영(데옵스), 정테스트(QA매니저)