182 lines
5.1 KiB
Markdown
182 lines
5.1 KiB
Markdown
# 2026-01-31 (금요일)
|
|
|
|
## 고스톱 앱 QA 자동화 작업
|
|
|
|
### Patrol iOS 설정 (약 1시간 삽질)
|
|
|
|
**완료된 것:**
|
|
- RunnerUITests 타겟 Xcode 프로젝트에 추가
|
|
- Podfile에 `target 'RunnerUITests' do inherit! :complete end` 추가
|
|
- Runner.xcscheme에 RunnerUITests TestableReference 추가
|
|
- RunnerUITests.swift, Info.plist 생성
|
|
- xcodeproj gem 설치 (`/opt/homebrew/opt/ruby/bin/gem install xcodeproj`)
|
|
- patrol build/run 성공
|
|
|
|
**미완료 (다음 세션):**
|
|
- 테스트 탐지 문제 — Total: 0으로 나옴
|
|
- patrol CLI 경로 버그 — `--no-generate-bundle` 사용 필요
|
|
- test_bundle.dart 경로 자동 수정 스크립트 작성
|
|
|
|
**핵심 명령어:**
|
|
```bash
|
|
# 경로 수정 (매번 필요)
|
|
sed -i '' "s|import 'Users/ramsbaby/projects/gostop_app/integration_test/patrol_app_test.dart' as Users__ramsbaby__projects__gostop_app__integration_test__patrol_app_test;|import '../integration_test/patrol_app_test.dart' as patrol_app_test;|g" patrol_test/test_bundle.dart
|
|
|
|
# 테스트 실행
|
|
~/.pub-cache/bin/patrol test --target integration_test/patrol_app_test.dart --device "iPhone 17 Pro" --no-generate-bundle
|
|
```
|
|
|
|
---
|
|
|
|
## 정우님 피드백
|
|
|
|
"버튼으로 물어보는거 너무 편리하다"
|
|
→ AGENTS.md에 "버튼 필수 정책" 추가함
|
|
|
|
---
|
|
|
|
---
|
|
|
|
## 고스톱 앱 수동 QA (18:00~)
|
|
|
|
### idb (Facebook iOS Development Bridge) 사용
|
|
- 시뮬레이터 자동 탭 가능
|
|
- 경로: `~/Library/Python/3.9/bin/idb`
|
|
- UDID: `7B179E53-4750-4382-8562-FD24ED564027`
|
|
|
|
### 확인된 화면들
|
|
1. **홈 화면** ✅
|
|
- 메뉴 버튼 5개 정상
|
|
- AI 코치 프리미엄 배너
|
|
- Lv.1 뱃지
|
|
|
|
2. **도장깨기** ✅
|
|
- 6개 지역 (서울, 강원도, 충청도, 경상도, 전라도, 제주도)
|
|
- 제주도만 활성화, 나머지 잠금
|
|
- 0/6 클리어 표시
|
|
|
|
3. **게임 화면** ✅
|
|
- 카드 렌더링 정상
|
|
- 턴 전환 (내 차례 ↔ AI)
|
|
- 점수 계산 (피/띠/열끗/광)
|
|
- AI 플레이어 동작
|
|
- "나의 먹은 패" 팝업
|
|
- 고도리 힌트 표시
|
|
- AI 승률 예측 (🔥 36% 등)
|
|
- 코칭 버튼
|
|
|
|
### 미확인 항목
|
|
- 고/스톱 선택 팝업
|
|
- 게임 종료/정산 화면
|
|
- 상점, 전적, 설정 화면
|
|
|
|
### 발견된 이슈
|
|
- 없음 (정상 동작)
|
|
|
|
---
|
|
|
|
## 저녁 설정 작업 (20:00~)
|
|
|
|
### Gemini → OpenAI 임베딩 변경
|
|
**문제:**
|
|
- Gemini API rate limit 초과로 게이트웨이 불안정
|
|
- 643회 RESOURCE_EXHAUSTED 에러 발생
|
|
|
|
**해결:**
|
|
- `memorySearch.provider`: gemini → openai
|
|
- `memorySearch.model`: gemini-embedding-001 → text-embedding-3-small
|
|
- OpenAI는 rate limit 여유롭고, 정우님 이미 API 키 보유
|
|
|
|
### 야간 종합 점검 크론 강화
|
|
게이트웨이 로그 분석 기능 추가:
|
|
- 에러 유형별 카운트 (Rate Limit, 네트워크, 크래시)
|
|
- 재시작 횟수 추적
|
|
- 위험 수준별 자동 판단
|
|
- 개선 권고사항 자동 생성
|
|
|
|
---
|
|
|
|
## 세션 종료
|
|
- 컨텍스트: 120k/200k (60%)
|
|
- Compactions: 26회
|
|
|
|
## 20:35 시스템 상태 추이 기록 구현
|
|
|
|
**신규 스크립트**
|
|
- `scripts/record-system-status.sh` — 매일 상태 기록 (CPU, MEM, Disk, Gateway, 재시작)
|
|
- `scripts/analyze-system-trend.sh` — 주간 추이 분석 (이번주 vs 지난주, 트렌드 ↑↓→)
|
|
|
|
**히스토리 파일**
|
|
- `memory/system-history.json` — 최근 30일 보관
|
|
|
|
**크론 업데이트**
|
|
- 야간 종합 점검 (23:50) — 매일 상태 기록 추가
|
|
- 주간 리뷰 (일요일 21:00) — 추이 분석 섹션 추가
|
|
|
|
**첫 기록 (2026-01-31)**
|
|
- CPU: 27% | MEM: 1970MB (60%) | Disk: 11Gi (9%)
|
|
- 재시작: 98회 (🟡 주의)
|
|
|
|
**목적**
|
|
- 디스크 증가량 추적 ("이번 주 20GB 늘었네요")
|
|
- 메모리/CPU 트렌드 파악
|
|
- 외장하드 준비 등 선제 권고
|
|
|
|
## 21:00 목욕탕 일정 확정
|
|
|
|
- **날짜:** 2026-02-01 (토) 오전 8시
|
|
- **장소:** 포방터시장 목욕탕
|
|
- **참석:** 장인어른, 장모님, 와이프님, 정우님
|
|
|
|
---
|
|
|
|
## Maestro QA 테스트 성공! (21:44)
|
|
|
|
**Patrol 포기 → Maestro 채택**
|
|
- Patrol: 테스트 탐지 안 됨, Total: 0 지속
|
|
- Maestro: 설치 후 바로 작동
|
|
|
|
**첫 테스트 통과:**
|
|
```bash
|
|
maestro test maestro/01_app_launch.yaml
|
|
```
|
|
|
|
**확인된 메뉴:**
|
|
• 게임 시작 ✅
|
|
• 도장깨기 ✅
|
|
• 전적 보기 ✅
|
|
• 상점 ✅
|
|
• 설정 ✅
|
|
|
|
**테스트 파일 위치:**
|
|
~/projects/gostop_app/maestro/
|
|
|
|
**다음 작업:**
|
|
- 게임 시작 테스트
|
|
- 도장깨기 모드 테스트
|
|
- 크론 연동 (새벽 자동 QA)
|
|
|
|
---
|
|
|
|
## 고스톱 QA 현황 정리 (22:30)
|
|
|
|
**기존 Unit Test**
|
|
- domain/game/ — 180개 테스트 전체 통과 ✅
|
|
- 점수계산, 특수규칙, 턴매니저, 게임엔진 커버
|
|
|
|
**QA_CHECKLIST.md 작성**
|
|
- ~/projects/gostop_app/QA_CHECKLIST.md
|
|
- 100개+ 테스트 항목 리스트업
|
|
- P0~P3 우선순위 분류
|
|
- 카드매칭, 특수규칙, 점수계산, AI, UI 전체 포함
|
|
|
|
**다음 단계 (PM 마인드로):**
|
|
1. 커버리지 분석 — 테스트 안 된 케이스 찾기
|
|
2. 엣지케이스 테스트 보강
|
|
3. Maestro 자동화 (크론 연동)
|
|
4. 수동 QA로 잡아야 할 것 정리
|
|
|
|
**Gateway 타임아웃**
|
|
- 21시경 크론 조회 중 타임아웃 발생
|
|
- 22:38 확인 → 정상 동작 (일시적 현상)
|