Skip to content

⚙️[기능추가][Debug] 테스트 빌드 전용 앱 내 디버그 오버레이 구현 #715

@Cassiiopeia

Description

@Cassiiopeia

📝 현재 문제점

  • 테스트 APK/TestFlight 빌드에서 앱 로그를 확인하려면 시뮬레이터 콘솔이나 별도 디버깅 환경이 필요함
  • 실기기에서 테스트할 때 로그를 실시간으로 볼 수 없어 문제 파악이 어려움
  • HTTP 요청/응답, 에러 로그 등을 확인하기 위해 매번 PC에 연결해야 하는 불편함

🛠️ 해결 방안 / 제안 기능

  • .envTEST_BUILD=true 플래그를 추가하여 테스트 빌드에서만 디버그 도구 활성화
  • 앱 내 드래그 가능한 플로팅 디버그 버튼 제공
  • 플로팅 버튼 탭 시 메뉴 표시 (로그 뷰어 + 향후 확장 메뉴)
  • 리사이즈/이동 가능한 로그 뷰어 패널에서 실시간 로그 확인

⚙️ 작업 내용

1. 디버그 플래그 시스템

  • .env에서 TEST_BUILD 값을 읽어 디버그 모드 활성화 여부 결정
  • 프로덕션 빌드에는 일절 영향 없음

2. CI 워크플로우 변경

  • ROMROM-ANDROID-TEST-APK 워크플로우: .env 생성 시 TEST_BUILD=true 추가
  • ROMROM-IOS-TEST-TESTFLIGHT 워크플로우: .env 생성 시 TEST_BUILD=true 추가
  • 프로덕션 워크플로우(ROMROM-IOS-TESTFLIGHT)는 변경 없음

3. 로그 캡처 시스템

  • 기존 Logger.root.onRecord 구독하여 앱 전체 로그 캡처
  • 링버퍼(최근 1000개)로 메모리 보호
  • Stream broadcast로 실시간 전달

4. 플로팅 디버그 버튼

  • 화면 위에 떠있는 원형 버튼
  • 드래그하여 자유롭게 위치 이동 가능
  • 탭하면 디버그 메뉴 표시

5. 디버그 메뉴

  • 로그 뷰어 (1차 구현)
  • 자동 로그인 (추후 구현, 비활성 표시)
  • 서버 로그 (추후 구현, 비활성 표시)

6. 로그 뷰어 패널

  • 리사이즈/드래그 가능한 플로팅 패널
  • 실시간 로그 스트리밍 (자동 스크롤)
  • 카테고리별 필터 (체크박스)
  • 로그 레벨 필터 (INFO/WARNING/SEVERE)
  • 텍스트 검색
  • 로그 클리어
  • 클립보드 복사

📋 참고 자료

  • 설계 문서: docs/superpowers/specs/2026-03-27-debug-overlay-design.md

🙋‍♂️ 담당자

  • 백엔드: @Cassiiopeia
  • 프론트엔드: 이름
  • 디자인: 이름

Metadata

Metadata

Assignees

Labels

담당자확인담당자 확인 필요, 대기중 상태 (확인 후 '작업완료' or '피드백')

Type

No type

Projects

Status

담당자확인

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions