Files
asciinevrdie/analysis/fix-plan-2026-03-27.md
JiWoong Sul 916a50992c docs: CLAUDE.md 작업 프로토콜 추가 및 수정 계획 작성
- CLAUDE.md: Claude-Gemini 교차 토론 프로토콜 추가
- CLAUDE.md: 존재하지 않는 디렉토리 3개 제거
- analysis/fix-plan: 4 Phase 수정 계획 (Claude-Gemini 합의)
- .claude/agents/: dev 리뷰 에이전트 9개 복사
- .claude/skills/: 프로젝트 스킬 4개 복사
2026-03-27 16:52:52 +09:00

5.1 KiB

Askii Never Die — 수정 계획 (Fix Plan)

작성일: 2026-03-27 Claude-Gemini Cross-Debate 합의 완료 기준: full-audit-2026-03-27.md (Health Score: 49/100)


합의된 조정 사항

항목 Claude 초안 Gemini 의견 합의
Crashlytics 배치 Phase 4 Phase 1 전진 Phase 4 유지 (오프라인 정책 충돌, 로컬 로그 대안)
IAP 검증 로컬 RSA + Secure Storage 서버 검증 권고 로컬 RSA + Secure Storage (서버 인프라 없음)
Force Update 미포함 추가 권고 미포함 (오프라인 앱에서 구현 불가)
Code Obfuscation 미포함 추가 권고 Phase 1에 추가 (빌드 설정 확인)
공수 P1:2-3일, P3:1-2주 P1:4-5일, P3:2-3주 P1:5일, P3:3주

Phase 1: 보안 강화 + DevOps 기반 (5일)

# 작업 근거 검증 방법
1-1 CI 파이프라인 구축 DevOps 2/10 → 6/10 push 시 format+analyze+test 자동 실행
1-2 폰트 라이선스 파일 추가 Supply Chain: OFL 의무 assets/fonts/에 LICENSE 존재
1-3 IAP 로컬 영수증 RSA 검증 Security: Lucky Patcher 방어 검증 실패 시 구매 거부 테스트
1-4 구매 상태 flutter_secure_storage 전환 Security: 평문 저장 제거 기존 SharedPreferences 마이그레이션 테스트
1-5 세이브 파일 HMAC 체크섬 Security: 변조 감지 변조 세이브 로드 거부 테스트
1-6 난독화 설정 확인/적용 Security: APK 디컴파일 방어 --obfuscate + --split-debug-info 빌드 성공
1-7 중복 파일 제거 Code Quality: 100% 중복 features/arena/widgets/ascii_disintegrate_widget.dart 삭제
1-8 cupertino_icons 제거 Supply Chain: 미사용 ~280KB pubspec.yaml에서 삭제 + flutter pub get

Phase 2: 수익 보호 + 버전 업데이트 (5일)

# 작업 근거 검증 방법
2-1 AdMob 미디에이션 (AppLovin MAX) Idea Alignment: 수익 보호 AdMob 비활성 시 백업 네트워크 로드
2-2 google_mobile_ads 5.3→7.x Supply Chain: iOS Privacy Manifest App Store 심사 통과
2-3 freezed 2.x→3.x + build_runner 업데이트 Supply Chain: 중단된 전이 의존성 dart run build_runner build 성공
2-4 CHANGELOG + 버전 태그 체계 DevOps: 릴리즈 이력 git tag 존재
2-5 flutter_lints 5→6 업데이트 Code Quality: 최신 lint flutter analyze 통과

Phase 3: 아키텍처 개선 (3주, 점진적)

# 작업 근거 검증 방법
3-1 핵심 서비스 인터페이스 정의 Architecture: 인터페이스 0개 abstract class 6개 이상
3-2 DI 컨테이너 (GetIt) 도입 Architecture: 싱글톤 6개 제거 싱글톤 0개, GetIt 등록
3-3 ad/iap_service → core/infrastructure/ 이동 Architecture: 엔진 프레임워크 오염 core/engine/에 Flutter import 0개
3-4 setState → ValueNotifier 세분화 Performance: 50ms 전체 리빌드 프레임 드롭 측정 (before/after)
3-5 God Widget 분할 (arena_battle_screen) Code Quality: 759 LOC 400 LOC 이하
3-6 progress_service.dart 분할 Code Quality: 832 LOC 각 서비스 200 LOC 이하
3-7 저장 시스템 테스트 작성 Test Coverage: 0% save/load/delete 라운드트립 테스트
3-8 Model 직렬화 라운드트립 테스트 Test Coverage: 0% toJson→fromJson 동일성 검증

Phase 4: 콘텐츠/성장 (2주+)

# 작업 근거 검증 방법
4-1 Analytics 연동 (Firebase/PostHog) Idea Alignment: DAU/리텐션 이벤트 로깅 확인
4-2 크래시 리포팅 (로컬 로그 또는 Crashlytics) DevOps: 크래시 추적 에러 발생 시 로그 저장
4-3 피벗 후 시장 재분석 Idea Alignment: 22/100 idea-market-intel 리포트
4-4 README 전면 재작성 Docs Sync: 극빈약 6개 화면, 수익화, 다국어 반영
4-5 ARCHITECTURE.md 작성 Docs Sync: 없음 계층 구조, 데이터 흐름 문서화

예상 점수 변화

Phase 완료 Architecture Code Quality Security Performance Test Supply Chain Docs DevOps 예상 총점
현재 (0%) 5 6 5 7 5 6 5 2 49
Phase 1 5 6.5 7.5 7 5.5 7 5 5 59
Phase 2 5 7 7.5 7 5.5 8 5.5 6 64
Phase 3 8 8 7.5 8 7 8 6 6 76
Phase 4 8 8 7.5 8 7 8 8 7 80+

제외된 항목

항목 제외 사유
Force Update 오프라인 앱에서 네트워크 기반 버전 체크 불가
IAP 서버 검증 서버 인프라 없음. 로컬 RSA 검증으로 대체
Crashlytics Phase 1 오프라인 정책 충돌. Phase 4에서 로컬 로그 대안 검토

Claude-Gemini Cross-Debate 합의 완료 (2026-03-27)