Streaming Service Project 예상 시나리오 작성
Streaming Service Project 예상 시나리오 작성

Streaming Service Project 예상 시나리오 작성

Tags
Node.js
Web Dev
Projects
Published
January 29, 2024
Author
gozneokhan

Live Shopping Mall 시나리오 및 기술 구현

1. 사용자 로그인 및 등록

1.1 계정 생성 및 로그인

  • 사용자는 웹 애플리케이션에 개인 계정을 생성할 수 있습니다.
  • 계정 생성은 기존 계정 또는 소셜 미디어 계정을 활용한 로그인으로 이루어집니다.

1.2 계정 관리

  • 사용자는 계정 관리 페이지를 통해 개인 정보를 확인 및 수정할 수 있습니다.
  • 비밀번호 변경, 프로필 사진 업로드 등의 기능을 제공하여 사용자 편의성을 증진시킵니다.

2. 제품 업로드 및 관리

2.1 상품 정보 업로드

  • 판매자는 웹 애플리케이션을 통해 간편하게 상품 정보를 업로드할 수 있습니다.
  • 제품명, 가격, 수량, 상세 설명, 이미지 등의 정보를 입력하여 제품을 등록합니다.

2.2 라이브 스트리밍 설정

  • 판매자는 상품 업로드 시 라이브 스트리밍을 설정할 수 있습니다.
  • WebRTC를 활용하여 라이브로 제품을 소개하고, 상품의 특징을 실시간으로 고객에게 전달합니다.

3. 라이브 스트리밍 및 실시간 채팅

3.1 라이브 스트리밍 시청

  • 사용자는 판매자의 라이브 스트리밍을 웹 앱을 통해 시청할 수 있습니다.
  • 실시간으로 진행되는 라이브 소개 중에도 다양한 상품 정보를 확인할 수 있습니다.

3.2 실시간 채팅

  • 라이브 스트리밍 중 사용자는 채팅 기능을 통해 질문이나 의견을 소통할 수 있습니다.
  • Firebase를 활용하여 실시간으로 채팅 메시지를 전달하고 저장합니다.

4. 상품 검색 및 구매

4.1 편리한 검색 기능

  • 사용자는 편리한 검색 기능을 활용하여 빠르게 원하는 상품을 찾을 수 있습니다.
  • 상품명, 가격, 카테고리 등을 활용한 고급 검색 기능을 제공합니다.

4.2 신속한 구매 프로세스

  • 사용자는 라이브 스트리밍 중에도 상품을 장바구니에 담거나 즉시 구매할 수 있습니다.
  • IAMport를 통해 안전하고 신속한 결제 프로세스를 제공합니다.

5. 대용량 트래픽 관리

5.1 클라우드 기반 서버 아키텍처

  • AWS EC2 인스턴스를 사용하여 대용량 트래픽을 관리합니다.
  • Auto Scaling 그룹을 활용하여 트래픽 변동에 따라 자동으로 서버를 확장 또는 축소합니다.

5.2 전 세계 서비스 지원

  • Amazon CloudFront를 통해 전 세계 사용자에게 빠르고 안정적인 콘텐츠 전송을 제공합니다.
  • 지역별로 캐시된 콘텐츠를 효과적으로 제공하여 응답 속도를 최적화합니다.

6. CI/CD 구성

6.1 지속적 통합 (CI)

  • GitHub Actions를 활용하여 소스 코드 변경 시 자동으로 CI 파이프라인이 실행됩니다.
  • 단위 테스트, 빌드 및 코드 품질 검사를 포함한 CI 작업을 수행합니다.

6.2 지속적 배포 (CD)

  • CodeDeploy를 사용하여 신규 코드가 EC2 인스턴스에 안전하게 배포되도록 합니다.
  • 배포 전에는 스테이징 환경에서 테스트를 진행하여 안정성을 확인합니다.

7. 보안 강화

7.1 SSL/TLS 적용

  • 웹 애플리케이션과 사용자 간의 통신을 안전하게 보호하기 위해 SSL/TLS를 적용합니다.
  • 사용자의 개인 정보 및 결제 데이터를 암호화하여 보안성을 강화합니다.

7.2 데이터베이스 보안

  • MySQL 데이터베이스에 접근하는 권한을 최소한으로 제한하고, 안전한 접속을 보장하기 위해 SSL 연결을 활성화합니다.
  • 민감한 사용자 데이터는 암호화하여 저장하고, 데이터베이스 보안 정책을 수립하여 운영합니다.

7.3 웹 애플리케이션 방화벽

  • 웹 애플리케이션 방화벽을 도입하여 SQL Injection, XSS 등의 보안 취약점을 방어합니다.
  • 부정한 접근 및 공격 시도에 대비하여 로깅 및 감지 시스템을 구축하여 보안 이벤트를 모니터링합니다.

8. 사용자 경험 향상

8.1 모바일 반응성

  • 다양한 디바이스에서의 이용을 고려하여 웹 애플리케이션을 모바일에 최적화합니다.
  • 모바일 반응형 디자인을 채택하여 사용자가 어떠한 기기에서도 편리하게 이용할 수 있도록 합니다.

8.2 푸시 알림

  • 중요한 이벤트나 할인 정보 등을 사용자에게 실시간으로 알리기 위해 푸시 알림 기능을 도입합니다.
  • 사용자의 동의를 받아 푸시 알림을 사용자 정의에 맞게 구성합니다.

8.3 사용자 행동 분석

  • 사용자의 행동 패턴을 분석하여 개인 맞춤형 서비스를 제공합니다.
  • Google Analytics 등을 활용하여 사용자 행동과 관련된 데이터를 수집하고 분석합니다.
이러한 추가 부분을 통해 보안성을 강화하고 사용자 경험을 높일 수 있습니다.

Traffic 병목 지점 예상 및 대응 시나리오

목표

프로젝트의 트래픽 최적화 및 성능 대응을 위한 전략을 수립하고, 예상되는 상황에 따른 대응책을 마련합니다.

1. 라이브 스트리밍 서버 부하 대응

1.1 WebRTC SFU 활용

  • 목적: 라이브 스트리밍 서버의 부하 분산.
  • 방법: WebRTC SFU를 도입하여 동시 접속자를 효과적으로 처리.

1.2 CDN 활용

  • 목적: 지역별로 캐시된 라이브 스트리밍 콘텐츠 제공.
  • 방법: CDN을 활용하여 사용자에게 안정적이고 빠른 서비스 제공.

2. 데이터베이스 부하 대응

2.1 데이터베이스 샤딩 적용

  • 목적: 데이터베이스 부하 분산 및 성능 향상.
  • 방법: 제품 정보 및 주문 데이터를 여러 서버에 분할하여 저장.

2.2 캐싱 전략 활용

  • 목적: 빈번한 조회가 필요한 데이터의 캐싱을 통한 응답 속도 개선.
  • 방법: 데이터 캐싱을 활용하여 데이터베이스 부하 최소화.

3. 실시간 채팅 서버 부하 대응

3.1 확장 가능한 아키텍처 설계

  • 목적: 채팅 메시지 처리 서버의 확장성 향상.
  • 방법: 확장 가능한 아키텍처로 채팅 서버 설계 및 동적으로 인스턴스 조절.

3.2 Firebase 확장성 있는 프로덕션 플랜 활용

  • 목적: Firebase를 활용한 채팅 서버 부하 분산 및 안정적인 운영.
  • 방법: Firebase의 확장성 있는 프로덕션 플랜을 적용하여 운영.

4. 예상 시나리오 및 대응 시간대 표

  • 주말 오후 3시 - 5시: 대규모 라이브 스트리밍 접속
    • 대응 방법: WebRTC SFU 동적 확장, CDN 적극 활용
  • 월요일 오전 10시 - 11시: 프로모션 이벤트로 데이터베이스 부하 발생
    • 대응 방법: 데이터베이스 샤딩, 캐싱 전략 적용
  • 매일 저녁 8시 - 10시: 실시간 채팅 활발한 시간
    • 대응 방법: 확장 가능한 채팅 서버 아키텍처 구성, Firebase 프로덕션 플랜 활용

5. 상황별 테스트 및 시뮬레이션

5.1 라이브 스트리밍 부하 테스트:

  • 동시 접속자 1000명 이상의 라이브 스트리밍 시뮬레이션, SFU와 CDN의 대응 확인.

5.2 데이터베이스 부하 테스트:

  • 대량의 제품 정보 및 주문 데이터 생성, 데이터베이스 샤딩 및 캐싱 전략의 대응 확인.

5.3 실시간 채팅 부하 테스트:

  • 다수의 사용자가 동시에 실시간 채팅 시나리오 시뮬레이션, 채팅 서버의 확장성 및 Firebase 성능 확인.

6. 코드 및 설정 수정

6.1 라이브 스트리밍 서버 코드 수정:

  • WebRTC SFU 및 CDN 설정을 코드에 적용, 동적으로 스트리밍 서버 확장 코드 작성.

6.2 데이터베이스 코드 수정:

  • 데이터베이스 샤딩 및 캐싱 전략을 코드에 적용, 데이터베이스 부하 대응 코드 작성.

6.3 실시간 채팅 서버 코드 수정:

  • 채팅 서버 확장성 및 Firebase 프로덕션 플랜 적용 코드 작성.

7. 주요 성능 지표 모니터링

7.1 라이브 스트리밍 서버 성능 모니터링:

  • SFU의 사용률, 대역폭, 연결 수 등 모니터링하여 부하 상태 파악.

7.2 데이터베이스 성능 모니터링:

  • 데이터베이스의 쿼리 응답 시간, 연결 수, 트랜잭션 수 등 모니터링하여 부하 상태 파악.

7.3 실시간 채팅 서버 성능 모니터링:

  • 채팅 서버의 CPU 사용률, 메모리 사용률, 연결 수 등 모니터링하여 부하 상태 파악.

8. 운영 및 모니터링 자동화

8.1 모니터링 대시보드 구성:

  • Grafana 또는 CloudWatch 등을 활용하여 주요 성능 지표를 실시간으로 모니터링하는 대시보드 구성.

8.2 자동화된 운영 스크립트 작성:

  • 부하 상황에 따라 자동으로 스케일 업 또는 다양한 대응 조치를 취할 수 있는 운영 스크립트 작성.

9. 시나리오 별 예외 처리 및 대응

9.1 라이브 스트리밍 부하 대응:

  • SFU 오류 시 적절한 에러 핸들링 및 자동 재시도 로직 구현.

9.2 데이터베이스 부하 대응:

  • 데이터베이스 연결 오류 시 재연결 로직 구현, 임계치 초과 시 경고 및 로깅 수행.

9.3 실시간 채팅 부하 대응:

  • 채팅 메시지 처리 오류 시 롤백 및 사용자에게 적절한 안내를 제공하는 예외 처리 구현.

Reference