Skip to content

Latest commit

 

History

History
43 lines (30 loc) · 3.52 KB

File metadata and controls

43 lines (30 loc) · 3.52 KB

Lymo: 가사 너머의 이야기와 감정을 읽는 음악 감상

Lymo는 사용자가 가져온 곡을 가사, 번역, 구절별 맥락, 문화적 배경, AI 해석을 통해 더 깊이 읽고 이해하도록 돕는 크로스플랫폼 음악 리더 앱이다.

핵심 약속은 곡을 Lymo로 가져온 뒤, 읽고 이해하는 것이다.

정보 신뢰 경계

  • 검증된 사실, 라이선스가 부여된 데이터 및 제공업체 데이터, 커뮤니티 기여, AI 추론을 데이터 모델과 사용자 경험에서 명확히 구분할 것.
  • AI 추론을 검증된 사실처럼 제시하지 않을 것.
  • 가사와 제공업체 데이터를 권리 및 정책에 민감한 정보로 취급할 것. 데이터 소스를 제품에 포함하기 전에 라이선스와 제공업체 약관을 검증할 것.

핵심 도메인 경계

다음 개념을 절대 혼동하지 않을 것.

  • TrackImport: 사용자가 Lymo로 가져온 곡을 식별하기 위한 요청.
  • CanonicalTrack: 제공업체에 종속되지 않도록 정규화된 곡 메타데이터.
  • PlaybackCapability / PlaybackClock: 재생 상태와 위치를 관찰할 수 있는 선택적 기능.
  • AnalysisJob: 가사, 번역 및 해석을 준비하는 비동기 작업.

곡을 가져오는 행위가 신뢰할 수 있는 재생 동기화를 보장한다고 간주하지 않을 것. 모든 리더 경험은 PlaybackCapability 없이도 완결되도록 구현할 것.

곡을 특정할 수 없는 입력에서 임의로 곡을 추측하지 않을 것. 추가 선택이 필요하면 사용자에게 명시적인 선택 절차를 제공할 것.

데이터, 안전 및 신뢰성

  • 외부 입력을 신뢰하지 않을 것. 허용된 제공업체 도메인과 정규화된 제공업체/리소스 ID만 수용하고, 공유된 URL을 임의로 가져오지 않을 것.
  • 비밀 정보, API 키 및 사용자 토큰을 소스 제어와 클라이언트 로그에 남기지 않을 것.
  • 서버 엔드포인트는 인증, 권한 부여, 입력 검증, 악용/요청 속도 제한, 멱등성을 고려해 설계할 것.
  • 오프라인 동작, 중복 요청, 프로세스 종료 및 재시도 가능한 실패를 명시적으로 모델링할 것.
  • 사용자가 시작한 가져오기 및 분석 작업은 일시적인 UI나 알림에만 의존하지 않고 나중에 복구할 수 있도록 설계할 것.
  • 플랫폼 또는 외부 서비스가 보장하지 않는 동작을 제품 기능으로 약속하지 않을 것. 신뢰할 수 없는 경우에도 사용할 수 있는 폴백을 제공할 것.

작업 문서

  • 이 파일은 Lymo의 장기 제품 정의, 신뢰·도메인 경계와 저장소 전체에 적용되는 최상위 원칙만 관리할 것.
  • 변경 가능한 기술 선택, 지원 범위, 검증 상태와 상세 설계는 각각의 정본 문서에서 관리할 것.
  • 모든 개발 작업에서 docs/DEVELOPMENT_CONVENTIONS.md를 따를 것.
  • 구현에 앞서 변경 가능성이 높은 기술 선택, 지원 범위, 검증 상태를 docs/PROJECT_CONTEXT.md에서 확인할 것.
  • 모든 문서는 사람이 빠르게 이해할 수 있도록 간결하게 작성하되, 결정과 구현에 필요한 내용은 생략하지 않을 것.
  • 이 파일과 다른 문서가 충돌할 경우 이 파일의 제품 불변 정의와 경계를 우선할 것.
  • 아키텍처, 지원 범위 또는 플랫폼 제약이 달라지면 이 파일에 한시적인 예외를 추가하지 말고 프로젝트 현황 문서나 ADR을 갱신할 것.