Skip to main content

3. Specific Requirements

3.1 Functional Requirements

3.1.1 사용자 관리

  • 사용자는 이메일, Google, 또는 Apple ID를 사용하여 계정을 생성하고 로그인할 수 있다.
  • 사용자는 프로필 정보를 설정하고 수정할 수 있다.
  • 사용자는 비밀번호를 재설정하거나 계정을 삭제할 수 있다.

3.1.2 플레이리스트 기능

  • 사용자는 개인 플레이리스트를 생성하고 관리할 수 있다.
  • 각 플레이리스트에는 제목, 설명, 태그, 공개/비공개 여부를 지정할 수 있다.
  • 사용자는 다른 사용자의 공개 플레이리스트를 즐겨찾기에 추가할 수 있다.

3.1.3 협업 플레이리스트

  • 사용자는 협업 플레이리스트의 주제를 설정하고, 다른 사용자들을 초대할 수 있다.
  • 모든 참여자는 곡을 추천하고, 다른 사용자가 추천한 곡에 투표할 수 있다.
  • 최종적으로 투표 수에 따라 플레이리스트의 순서가 결정된다.

3.1.4 피드 및 소셜 기능

  • 사용자는 다른 사용자의 플레이리스트에 댓글을 작성하고 좋아요를 남길 수 있다.
  • 사용자는 피드를 통해 새로운 플레이리스트와 음악을 탐색할 수 있다.

3.2 Non-Functional Requirements

3.2.1 성능 요구사항

  • 페이지 로딩 시간: 주요 화면은 2초 이내에 로드되어야 한다.
  • 서버 응답 시간: API 요청에 대한 응답은 1초 이내에 이루어져야 한다.

3.2.2 보안 요구사항

  • 모든 데이터 전송은 HTTPS를 통해 암호화되어야 한다.
  • 사용자 인증 및 세션 관리는 JWT(JSON Web Token) 기반으로 수행된다.

3.2.3 확장성

  • 시스템은 사용자가 급증할 경우(예: 동시 사용자 10,000명 이상)에도 안정적으로 작동해야 한다.
  • 새로운 음악 스트리밍 서비스가 추가될 경우, 쉽게 연동할 수 있도록 API 구조가 유연해야 한다.