3.0 KiB
3.0 KiB
20260330 라이브 캡쳐/녹화 가능여부 반영
구현 체크리스트
- 라이브 정보 응답 모델(
GetRoomInfoResponse)에isCaptureRecordingAvailable필드를 추가한다.- QA:
GetRoomInfoResponse역직렬화 시 필드가 누락되어도 기본값으로 동작한다.
- QA:
LiveRoomActivity의 캡쳐/녹화 정책을isCaptureRecordingAvailable || isHost || isStaff기준으로 적용한다.- QA: 정책 함수와
FLAG_SECURE/녹화 콜백/강제 음소거 계산이 동일 기준으로 동작한다.
- QA: 정책 함수와
- 라이브 생성 경로(
LiveRoomCreateActivity,LiveRoomCreateViewModel,CreateLiveRoomRequest)에 설정 UI/상태/요청 필드를 추가한다.- QA: 생성 화면 선택값이
CreateLiveRoomRequest.isCaptureRecordingAvailable로 전송된다.
- QA: 생성 화면 선택값이
- 라이브 수정 경로에서는 해당 설정을 변경하지 않도록 유지한다(생성 시에만 설정).
- QA:
LiveRoomInfoEditDialog/EditLiveRoomInfoRequest에 신규 항목을 추가하지 않는다.
- QA:
- 변경 파일에 대해 정적 진단/테스트/빌드를 수행하고 결과를 기록한다.
- QA:
lsp_diagnostics오류 0, 관련 테스트 및 빌드 명령 성공.
- QA:
검증 기록
lsp_diagnostics(.kt)- 무엇/왜/어떻게: 수정한 Kotlin 파일 정적 진단을 도구로 확인해 타입/문법 오류를 사전 점검했다.
- 실행 명령:
lsp_diagnostics(filePath=<modified .kt>, severity="all") - 결과: 현재 실행 환경에 Kotlin LSP가 없어(
No LSP server configured for extension: .kt) 도구 기반 진단을 수행할 수 없었다.
- Ktlint + 테스트 + 빌드 1차
- 무엇/왜/어떻게: 코드 스타일/단위 테스트/디버그 빌드를 한 번에 검증해 회귀 가능성을 확인했다.
- 실행 명령:
./gradlew :app:ktlintCheck :app:testDebugUnitTest :app:assembleDebug - 결과:
:app:ktlintMainSourceSetCheck실패. 기존LiveRoomActivity.kt전역 스타일 위반(다수 라인)과 기존LiveRoomCreateViewModel.ktunused import 경고로 실패했고, 이번 변경 기능 자체 컴파일/테스트 실패는 아님.
- 테스트 + 빌드 2차
- 무엇/왜/어떻게: 스타일 태스크 제외 후 기능 반영 코드가 실제로 컴파일/테스트를 통과하는지 재검증했다.
- 실행 명령:
./gradlew :app:testDebugUnitTest :app:assembleDebug - 결과:
BUILD SUCCESSFUL.
- 수동 기능 검증(정책 반영 범위 확인)
- 무엇/왜/어떻게: 생성 전용 제약과 라이브룸 정책 반영 범위를 텍스트 검색으로 직접 확인했다.
- 실행 명령:
grep("isCaptureRecordingAvailable", app/src/main/java/**/*.kt)grep("isCaptureRecordingAvailable", app/src/main/java/.../live/room/update/*.kt)
- 결과: 신규 필드는
GetRoomInfoResponse,CreateLiveRoomRequest,LiveRoomCreateViewModel,LiveRoomCreateActivity,LiveRoomActivity에만 존재하며, 수정 경로(live/room/update)에는 미추가로 확인됨.