4.4 KiB
4.4 KiB
20260330 라이브 캡쳐/녹화 가능 여부 설정 추가
작업 체크리스트
- 라이브 정보 응답 모델에
isCaptureRecordingAvailable필드 추가 및 매핑 확인 LiveRoomViewV2캡쳐/녹화 보호 조건에 라이브 설정값 반영- 캡쳐/녹화 불가 라이브에서 방장/스탭 예외 허용 유지
- 라이브 생성 경로에만 설정값 전송되도록 반영
- 라이브 수정(편집) 경로에서 해당 설정 변경 불가 상태 유지 확인
- 진단/빌드/테스트/수동 QA 수행
수용 기준 (Acceptance Criteria)
GetRoomInfoResponse(또는 동등 라이브 정보 모델)에isCaptureRecordingAvailable가 존재한다.- 라이브 설정값이
true면 일반 참여자도 캡쳐/녹화 보호가 비활성화된다. - 라이브 설정값이
false면 일반 참여자는 기존 캡쳐/녹화 보호가 유지된다. - 라이브 설정값이
false여도 방장/스탭은 캡쳐/녹화 보호 대상이 아니다. - 설정값은 라이브 생성 요청에서만 설정 가능하고, 라이브 수정 요청에서는 변경되지 않는다.
- 변경 파일
lsp_diagnostics를 수행했고SodaLive/SodaLive-devDebug build가 성공한다.
검증 기록
1차 검증 (2026-03-30)
- 무엇/왜/어떻게:
- 무엇: 라이브 정보/생성 요청에
isCaptureRecordingAvailable를 추가하고,LiveRoomViewV2의 캡쳐 보호 조건을 라이브 설정값 + 방장/스탭 예외로 갱신. - 왜: 캡쳐/녹화 가능 여부를 라이브 생성 시점에만 제어하면서, 비허용 라이브에서도 운영 권한(방장/스탭) 예외를 유지하기 위해.
- 어떻게: 모델(
GetRoomInfoResponse,CreateLiveRoomRequest,GetRecentRoomInfoResponse), 생성 UI/ViewModel(LiveRoomCreateView,LiveRoomCreateViewModel), 보호 로직(LiveRoomViewV2)을 최소 수정으로 연결.
- 무엇: 라이브 정보/생성 요청에
- 실행 명령:
lsp_diagnostics(filePath: SodaLive/Sources/Live/Room/V2/LiveRoomViewV2.swift, severity: all)lsp_diagnostics(filePath: SodaLive/Sources/Live/Room/GetRoomInfoResponse.swift, severity: all)lsp_diagnostics(filePath: SodaLive/Sources/Live/Room/Create/CreateLiveRoomRequest.swift, severity: all)lsp_diagnostics(filePath: SodaLive/Sources/Live/Room/Create/GetRecentRoomInfoResponse.swift, severity: all)lsp_diagnostics(filePath: SodaLive/Sources/Live/Room/Create/LiveRoomCreateViewModel.swift, severity: all)lsp_diagnostics(filePath: SodaLive/Sources/Live/Room/Create/LiveRoomCreateView.swift, severity: all)lsp_diagnostics(filePath: SodaLive/Sources/I18n/I18n.swift, severity: all)xcodebuild -workspace "SodaLive.xcworkspace" -scheme "SodaLive" -configuration Debug build && xcodebuild -workspace "SodaLive.xcworkspace" -scheme "SodaLive-dev" -configuration Debug buildxcodebuild -workspace "SodaLive.xcworkspace" -scheme "SodaLive" test; xcodebuild -workspace "SodaLive.xcworkspace" -scheme "SodaLive-dev" testgrep("isCaptureRecordingAvailable", include: *.swift, path: SodaLive/Sources/Live/Room)grep("captureRecordingSetting|captureRecordingAllowed|captureRecordingNotAllowed", include: *.swift, path: SodaLive/Sources)grep("isCaptureRecordingAvailable", include: *.swift, path: SodaLive/Sources/Live/Room/Edit)
- 결과:
lsp_diagnostics:LiveRoomViewV2.swift,GetRecentRoomInfoResponse.swift,I18n.swift는No diagnostics found- 일부 파일(
CreateLiveRoomRequest.swift,LiveRoomCreateViewModel.swift,LiveRoomCreateView.swift,GetRoomInfoResponse.swift)은 SourceKit 모듈/심볼 해석 한계(No such module,Cannot find type ... in scope)가 보고됨
- 빌드:
SodaLive,SodaLive-dev모두** BUILD SUCCEEDED ** - 테스트:
Scheme SodaLive is not currently configured for the test action.,Scheme SodaLive-dev is not currently configured for the test action. - 수동 QA(코드 경로):
- 생성 UI에 캡쳐/녹화 허용 토글 추가 확인 (
LiveRoomCreateView) - 생성 요청에만
isCaptureRecordingAvailable전송 확인 (CreateLiveRoomRequest,LiveRoomCreateViewModel) - 편집 경로에 해당 필드 미존재 확인 (
Live/Room/Editgrep 결과 없음) - 라이브룸 보호 분기 확인:
isCaptureRecordingAvailable == true면 보호 비활성화,false면 방장/스탭 예외 외 참여자 보호 유지 (LiveRoomViewV2)
- 생성 UI에 캡쳐/녹화 허용 토글 추가 확인 (