전체 글525 [Android] 카메라 없이 운동을 테스트하다 — exercise-replay-robolectric 설계기 (with..Claude) 운동 판정 로직에 버그가 생겼다는 걸 알게 되는 순간은 늘 최악이다. QA 디바이스를 들고 스쿼트를 열 번 했더니 여덟 번이 잡힌다.다시 해도 여덟 번. 코드를 고쳤다.다시 스쿼트를 열 번 한다. 이번엔 아홉 번. 이 과정을 우리는 너무 오래 반복했다. 이 글은 그 사이클을 끊기 위해 설계한 Robolectric 기반 운동 리플레이 테스트 인프라의 전 과정을 기록한다. 물론.. 클로드 형님께서 대부분 작업하셨지만, 어쨋든 지시한 것은 나니까배경 — 이미 한 번 실패했다 이 에픽 이전에도 비슷한 시도가 있었다. 이름은 auto-test. 목표는 순수 JUnit으로 운동 로직을 돌리는 것이었고,방법은 android.os.Handler를 ExerciseScheduler 인터페이스로 추상화하는 것이었다. .. 2026. 6. 26. git-push > AI 리뷰 2탄 1탄 https://marlboroyw.tistory.com/623 AI 코드리뷰 도입기" data-og-description="배경팀 프로젝트를 진행하면서 PR 코드리뷰에 드는 시간이 점점 부담이 됐다.사람이 직접 리뷰하기 전에, 아키텍처 패턴 위반이나 명백한 버그 같은 것들을 먼저 걸러줄 수 있다면 리뷰 품질이 " data-og-host="marlboroyw.tistory.com" data-og-source-url="https://marlboroyw.tistory.com/623" data-og-url="https://marlboroyw.tistory.com/623" data-og-image="https://scrap.kakaocdn.net/dn/dBSwUM/dJMb83SmSbA/f9v4MgvdA6v.. 2026. 5. 6. git-push > AI 코드리뷰 도입기 배경팀 프로젝트를 진행하면서 PR 코드리뷰에 드는 시간이 점점 부담이 됐다.사람이 직접 리뷰하기 전에, 아키텍처 패턴 위반이나 명백한 버그 같은 것들을 먼저 걸러줄 수 있다면 리뷰 품질이 올라가지 않을까 하는 생각이 들었다. 그래서 git push 하는 순간 AI가 자동으로 코드를 분석하고 Slack으로 리뷰를 보내주는 환경을 만들었다.고려했던 방법들처음에는 PR이 올라오면 GitHub Actions에서 자동으로 리뷰가 달리는 걸 원했다. 방법을 찾아보니 크게 세 가지였다 1. Option A. GitHub Actions + Claude API 직접 호출PR 오픈 시 Action이 트리거 → git diff 추출 → Claude API 호출 → PR에 리뷰 코멘트 게시가장 깔끔한 자동화지만, Anthr.. 2026. 5. 6. AAB로도 해결 안 됐던 문제 — audio-asset-pack 도입기 들어가며 METREX(KneeFresh)는 AI 카메라로 무릎 재활 운동 자세를 분석하고, 포즈 상태에 따라 음성 피드백을 실시간으로 제공하는 앱이다. "무릎을 구부리세요", "내려가세요" 같은 가이드가 운동 내내 재생된다.앱은 처음부터 AAB(Android App Bundle)로 배포하고 있었다. 그래서 "APK 크기 문제"는 이미 해결된 줄 알았다.그런데 영어 음성이 한벌 더 추가되면서 예상하지 못한 문제가 드러났다. "AAB니까 괜찮지 않나?"여기서 흔히 하는 오해가 있다.AAB는 Google Play가 기기별 최적화된 APK를 생성하는 형식이다.해상도, ABI, 언어에 맞춰 불필요한 리소스를 제거한다. 하지만 이 최적화는 res/ 디렉토리의 리소스에만 적용된다.assets/ 폴더에 넣은 raw .. 2026. 4. 13. Android) strings.xml 을 Dev(Debug), Staging, Release 로 따로 설정하는 방법 문제 상황앱 이름을 빌드 타입마다 다르게 하고 싶다. 추가로, 언어별로 다른 앱 이름을 가져가고 싶다. 예시 상황보통의 앱 이름DebugStagingRelease내앱_DEV내앱_STG내앱 이 경우, build.gradle 에서 buildType 별로 resValue 를 설정하면 됨. debug { resValue("string", "app_name", "내앱 DEV") } 하지만, 아래 케이스가 필요한 경우는 어떻게 될까 ?? DebugStagingReleaseko내앱_DEV내앱_STG내앱en (Default)MyApp_DEVMyApp_STGMyApp 해결: buildType 소스셋Android의 src/ 에는 main 말고도 buildType 이름과 동일한 폴더를 생성할 수 있.. 2026. 4. 1. [Android] ADB MCP + Claude Code 로 qa 자동화 하기 1. Mobile MCP 설치 Step 1. 사전 준비물 확인 Node.js 설치 여부 확인 # Node.js 설치 여부 확인 node --version # v16 이상이 나와야 함. 없으면 https://nodejs.org 에서 설치 ADB 설치 여부 확인adb --version# Android Studio 설치되어 있으면 보통 있음. 없으면 아래 명령어로 설치:brew install android-platform-tools ADB가 기기를 인식하는지 확인adb devices# 에뮬레이터 실행 중이거나 실기기 USB 연결 시 목록에 표시되어야 함 Step 2. ANDROID_HOME 환경변수 설정 # 현재 설정 확인echo $ANDROID_HOME# 아무것도 안 나오면 설정 .. 2026. 2. 27. 이전 1 2 3 4 ··· 88 다음