Skip to content

Latest commit

 

History

History
138 lines (124 loc) · 16.2 KB

File metadata and controls

138 lines (124 loc) · 16.2 KB

Adaptive Streaming Player의 시청 품질 프로파일링 서비스 Use Case 상세 기술서

Use Case 다이어그램

use case diagram

1. 사용자 로그인 유스케이스

ID Description
유스케이스명 사용자 로그인
액터명 사용자
개요 사용자가 시스템에 로그인을 통해 자신의 계정에 접근한다.
사전조건
  • 네트워크 연결이 정상적이어야 한다.
  • 시스템의 프론트엔드와 백엔드 간 연결이 정상적이어야 한다.
  • 데이터베이스 연결이 정상적이어야 한다.
  • 사후조건
  • 사용자가 인증에 성공하면 시스템에 로그인된다.
  • JWT 토큰이 로컬 스토리지에 저장된다.
  • 기본흐름
  • 사용자는 로그인 페이지에 접속한다.
  • 이메일과 비밀번호를 입력하고 로그인 버튼을 클릭한다.
  • 프론트엔드에서 입력 데이터를 백엔드로 전송한다.
  • 백엔드는 입력된 이메일과 비밀번호를 검증하고 JWT 토큰을 반환한다.
  • 프론트엔드는 JWT 토큰을 로컬 스토리지에 저장한다.
  • 사용자는 시스템에 로그인된다.
  • 대체흐름 1. 이메일 또는 비밀번호 입력이 없을 경우, "모든 필드를 입력하세요"라는 오류 메시지가 표시된다.
    2. 잘못된 이메일 형식일 경우, "유효한 이메일 주소를 입력하세요"라는 오류 메시지가 표시된다.
    3. 잘못된 이메일/비밀번호 조합일 경우, "계정 정보가 올바르지 않습니다"라는 오류 메시지가 표시된다.

    2. 회원가입 유스케이스

    ID Description
    유스케이스명 회원가입
    액터명 사용자
    개요 사용자가 시스템에 가입하여 계정을 생성한다.
    사전조건
  • 네트워크 연결이 정상적이어야 한다.
  • 프론트엔드와 백엔드 서버 간 연결이 정상적이어야 한다.
  • 데이터베이스 연결이 정상적이어야 한다.
  • 사후조건
  • 사용자의 계정 정보가 데이터베이스에 저장된다.
  • 회원가입 완료 후 로그인 화면으로 전환된다.
  • 기본흐름
  • 사용자는 "Sign Up" 버튼을 클릭하여 회원가입 페이지로 이동한다.
  • 이름, 이메일, 비밀번호를 입력하고 회원가입 버튼을 클릭한다.
  • 프론트엔드에서 입력 데이터를 백엔드로 전송한다.
  • 백엔드는 데이터베이스에 사용자의 정보를 저장한다.
  • 성공 메시지를 반환하고 로그인 화면으로 리다이렉션한다.
  • 대체흐름 1. 모든 필드가 입력되지 않았을 경우, "모든 필드를 채워주세요"라는 오류 메시지가 표시된다.
    2. 이미 존재하는 이메일일 경우, "해당 이메일로 가입된 계정이 이미 존재합니다"라는 오류 메시지가 표시된다.
    3. 서버 에러 발생 시, "회원가입 요청 실패" 메시지가 표시된다.

    3. 로그아웃 유스케이스

    ID Description
    유스케이스명 로그아웃
    액터명 사용자
    개요 사용자가 시스템에 가입하여 계정을 생성한다.
    사전조건
  • 네트워크 연결이 정상적이어야 한다.
  • 프론트엔드와 백엔드 서버 간 연결이 정상적이어야 한다.
  • 데이터베이스 연결이 정상적이어야 한다.
  • 사후조건
  • 사용자의 JWT 토큰이 로컬 스토리지에서 삭제된다.
  • 사용자가 시스템에서 로그아웃된다.
  • 메인 화면에서 로그인 화면으로 리다이렉트된다.
  • 기본흐름
  • 사용자는 상단 메뉴에서 "로그아웃" 버튼을 클릭한다.
  • 프론트엔드는 백엔드로 로그아웃 요청을 전송한다.
  • 백엔드는 사용자를 시스템에서 로그아웃하고 성공 메시지를 반환한다.
  • 프론트엔드는 요청이 성공하면 JWT 토큰을 로컬 스토리지에서 삭제하고, 로그인 화면으로 Panel을 전환한다.
  • 대체흐름 1. 로그아웃 API가 에러를 반환할 경우 "logout failed." 라는 에러 메시지가 표시된다.

    4. 마이페이지 보기 유스케이스

    ID Description
    유스케이스명 마이페이지 보기
    액터명 사용자
    개요 사용자가 마이페이지를 통해 자신의 계정 정보와 작성한 댓글, 업로드한 비디오를 확인한다.
    사전조건
  • 사용자가 로그인 상태여야 한다.
  • 네트워크 연결이 정상적이어야 한다.
  • 프론트엔드와 백엔드 서버 간 연결이 정상적이어야 한다.
  • 사후조건
  • 사용자는 자신의 계정 정보와 작성한 댓글을 조회한다.
  • 기본흐름
  • 사용자는 상단 메뉴에서 "내 정보 보기" 버튼을 클릭한다.
  • 프론트엔드는 사용자의 계정 정보를 백엔드로 요청한다.
  • 백엔드는 데이터베이스에서 사용자의 계정 정보를 조회하여 응답한다.
  • 프론트엔드는 계정 정보와 댓글 목록, 업로드한 비디오 목록을 마이페이지 화면에 표시한다.
  • 사용자는 자신의 정보와 댓글 목록, 업로드한 비디오 목록을 확인한다.
  • 대체흐름 1. 데이터 로드 실패 시, "데이터를 불러올 수 없습니다. 네트워크 상태를 확인하세요"라는 메시지가 표시된다.

    5. 랭킹 조회/승급 유스케이스

    ID Description
    유스케이스명 랭킹 조회/승급
    액터명 사용자
    개요 사용자가 Top 20 랭킹 페이지를 통해 랭킹을 조회하고, 상위 20인에 들 경우 백 요리사 등급으로 승급한다.
    사전조건
  • 사용자가 로그인 상태여야 한다.
  • 네트워크 연결이 정상적이어야 한다.
  • 프론트엔드와 백엔드 서버 간 연결이 정상적이어야 한다.
  • 사후조건
  • 사용자는 Top 20 사용자 목록을 확인한다.
  • 상위 20인에 든 사용자는 백 요리사 등급으로 승급한다.
  • 기본흐름
  • 사용자는 상단 메뉴에서 랭킹 아이콘을 클릭한다.
  • 프론트엔드는 오늘의 랭킹 상위 20인 정보를 백엔드에 요청한다.
  • 백엔드는 데이터베이스에 저장된 상위 20인의 정보를 반환한다.
  • 프론트엔드는 상위 20인 유저 목록을 화면에 표시한다.
  • 사용자는 랭킹 정보를 확인한다.
  • 백엔드에서 매일 자정 랭킹 정보는 업데이트되고, 상위 20 유저의 등급을 백 요리사 등급으로 바꾼다.
  • 대체흐름 1. 랭킹 데이터 로드 실패 시, "Error fetching rankings."라는 메시지가 표시된다.

    6. 동영상 재생 유스케이스

    ID Description
    유스케이스명 동영상 재생
    액터명 사용자
    개요 사용자가 시스템에서 동영상을 선택하여 시청한다.
    사전조건
  • 네트워크 연결이 정상적이어야 한다.
  • 사용자가 로그인 상태여야 한다.
  • 데이터베이스에 동영상 데이터가 존재해야 한다.
  • 사후조건
  • 동영상이 사용자 화면에 재생된다.
  • 사용자가 시청한 동영상 기록이 저장된다.
  • 기본흐름
  • 사용자는 메인 동영상 목록에서 동영상을 선택한다.
  • 프론트엔드는 선택된 동영상 ID를 백엔드로 전송한다.
  • 백엔드는 해당 동영상의 URL과 메타데이터를 반환한다.
  • 프론트엔드는 반환된 URL로 동영상을 재생한다.
  • 대체흐름 1. 선택한 동영상 데이터가 없을 경우, "동영상을 불러오지 못했습니다"라는 오류 메시지가 표시된다.
    2. 네트워크 불안정으로 동영상 로드 실패 시, "네트워크 오류가 발생했습니다"라는 메시지가 표시된다.

    7. 재생 목록 관리 유스케이스

    ID Description
    유스케이스명 재생 목록 관리
    액터명 사용자
    개요 사용자가 재생 목록을 생성, 삭제, 관리한다.
    사전조건
  • 사용자가 로그인 상태여야 한다.
  • 네트워크 연결이 정상적이어야 한다.
  • 사후조건
  • 재생 목록이 생성, 삭제 또는 업데이트된다.
  • 기본흐름
  • 사용자는 메뉴에서 "Playlist"를 클릭한다.
  • 사용자는 재생 목록 생성 버튼을 클릭한다.
  • 제목과 설명을 입력한 뒤, 생성 버튼을 클릭한다.
  • 프론트엔드에서 입력 데이터를 백엔드로 전송한다.
  • 백엔드는 새로운 재생 목록을 생성하고 데이터베이스에 저장한다.
  • 성공 메시지가 표시되고 재생 목록이 갱신된다.
  • 대체흐름 1. 제목 또는 설명이 비어있을 경우, "모든 필드를 입력하세요"라는 메시지가 표시된다.
    2. 재생 목록 생성 중 서버 오류가 발생하면 "재생 목록 생성 실패" 메시지가 표시된다.

    8. 재생 기록 보기 유스케이스

    ID Description
    유스케이스명 재생 기록 보기
    액터명 사용자
    개요 사용자가 자신이 재생했던 동영상 목록을 조회한다.
    사전조건
  • 사용자가 로그인 상태여야 한다.
  • 네트워크 연결이 정상적이어야 한다.
  • 데이터베이스에 사용자의 재생 기록이 저장되어 있어야 한다.
  • 사후조건
  • 사용자가 재생 기록 목록을 조회한다.
  • 기본흐름
  • 사용자는 메뉴에서 "History"를 클릭한다.
  • 프론트엔드는 재생 기록 데이터를 백엔드로 요청한다.
  • 백엔드는 데이터베이스에서 사용자의 재생 기록을 조회하여 응답한다.
  • 프론트엔드는 재생 기록 목록을 사용자에게 표시한다.
  • 사용자는 기록된 동영상을 클릭하여 다시 시청하거나 삭제할 수 있다.
  • 대체흐름 1. 기록된 재생 정보가 없을 경우, "재생 기록이 없습니다"라는 메시지가 표시된다.
    2. 백엔드 응답 실패 시, "재생 기록을 불러오는 데 실패했습니다"라는 메시지가 표시된다.

    9. AI 추천 태그/영상 조회 유스케이스

    ID Description
    유스케이스명 AI 추천 태그/영상 조회
    액터명 사용자
    개요 사용자가 AI를 활용한 개인화 추천 태그를 확인하고, 해당 태그의 동영상을 조회한다.
    사전조건
  • 사용자가 로그인 상태여야 한다.
  • 네트워크 연결이 정상적이어야 한다.
  • 프론트엔드와 백엔드 서버 간 연결이 정상적이어야 한다.
  • 백엔드 서버와 추천 서버(OpenAI API 요청)의 연결이 정상적이어야 한다.
  • API 키로 연결된 OpenAI 계정의 결제가 가능한 상태여야 한다.
  • 사용자의 재생 기록이 저장되어 있어야 한다.
  • 사후조건
  • 사용자는 자신이 시청했던 영상의 태그와 유사한 태그 3개를 추천받는다.
  • 사용자는 태그 버튼을 눌러 해당 태그의 영상을 조회한다.
  • 기본흐름
  • 사용자는 메뉴에서 "AI 추천" 버튼을 클릭한다.
  • 프론트엔드는 추천 요청을 전송한다.
  • 백엔드는 데이터베이스에서 사용자의 계정 정보를 조회하여 응답한다.
  • 프론트엔드는 계정 정보와 댓글 목록을 마이페이지 화면에 표시한다.
  • 사용자는 자신의 정보와 댓글 목록을 확인한다.
  • 대체흐름 1. 사용자의 시청 기록이 충분하지 않거나 영상 데이터가 충분하지 않아 추천에 실패할 경우, "추천할 태그가 없습니다. 영상을 조금 더 시청한 뒤 다시 시도해 주세요." 라는 메시지가 출력된다.

    10. 시스템 사용 현황 조회 유스케이스

    ID Description
    유스케이스명 시스템 사용 현황 조회
    액터명 사용자
    개요 사용자가 시스템 사용 현황 페이지를 통해 시스템 사용 현황 (메모리, CPU) 및 시스템 사양을 조회한다.
    사전조건
  • 사용자가 로그인 상태여야 한다.
  • 네트워크 연결이 정상적이어야 한다.
  • webOS TV의 LUNA API Service가 사용 가능한 상태여야 한다.
  • 사후조건
  • 사용자는 현재 사용 중인 webOS TV의 시스템 사양 (TV 모델명, SDK Version, UHD 지원 여부) 를 확인한다.
  • 사용자는 현재 사용 중인 webOS TV의 시스템 사용 현황 (CPU, Memory) 를 확인한다.
  • 기본흐름
  • 사용자는 메뉴에서 "Check Usage" 버튼을 클릭한다.
  • 프론트엔드는 LUNA API의 getProcStat, getUnitList API에 요청을 전송한다.
  • LUNA API가 시스템 사양과 시스템 사용 현황 데이터를 반환한다.
  • 프론트엔드는 시스템 사양과 시스템 사용 현황 데이터를 화면에 표시한다.
  • 대체흐름 1. 데이터 로드 실패 시, "No system information available." / "No CPU information available." / "No memory information available."라는 메시지가 표시된다.

    11. 동영상 업로드 유스케이스

    ID Description
    유스케이스명 동영상 업로드
    액터명 사용자
    개요 사용자가 업로드 페이지를 통해 서버에 동영상을 업로드한다.
    사전조건
  • 사용자가 로그인 상태여야 한다.
  • 네트워크 연결이 정상적이어야 한다.
  • 프론트엔드와 백엔드 서버 간 연결이 정상적이어야 한다.
  • 업로드용 웹 페이지로 연결되는 QR 코드가 정상적으로 생성되어야 한다.
  • 사용자는 별도의 PC/휴대폰으로 업로드용 웹 페이지에 접속할 수 있어야 한다.
  • 업로드용 웹 페이지와 업로드용 서버 간 연결이 정상적이어야 한다.
  • 사용자는 업로드할 동영상과 썸네일 파일을 별도의 PC/휴대폰에 저장하여야 한다.
  • 사후조건
  • 사용자는 자신이 원하는 영상과 썸네일을 업로드한다.
  • 제목, 설명, 태그, 북마크를 지정하여 영상을 업로드한다.
  • 기본흐름
  • 사용자는 메뉴에서 "Upload" 버튼을 클릭한다.
  • 사용자는 "QR 코드 생성하기" 버튼을 누른다.
  • 프론트엔드는 백엔드로 개인용 키 생성 요청을 보낸다.
  • 백엔드는 10분 간 인증 가능한 개인용 키를 생성한다.
  • 프론트엔드는 해당 키를 받아 queryString으로 키를 전달하여 업로드 페이지 링크를 생성한다.
  • 프론트엔드는 개인용 웹 페이지로 연결되는 QR 코드를 생성한다.
  • 사용자는 QR 코드를 카메라로 찍어 업로드용 웹 페이지로 접속한다.
  • 사용자는 웹 페이지에서 비디오와 썸네일을 업로드한다.
  • 백엔드는 비디오 파일을 파일 시스템에 업로드한다.
  • 사용자는 비디오 변환 상태를 확인할 수 있다.
  • 사용자는 비디오 변환이 완료되면 영상 제목, 설명, 태그, 북마크를 설정하여 commit한다.
  • 대체흐름 1. 개인용 키 생성에 실패하면 "Error generating key" 라는 에러 메시지가 표시된다.
    2. 비디오 공개가 실패하면 "영상 업로드 중 오류가 발생했습니다." 라는 에러 메시지가 표시된다.
    3. 영상 변환 상태 체크에 실패하면 "Error Checking Status" 라는 에러 메시지가 표시된다.