본문 바로가기

개발 노트/기타10

GitHub Actions Android UI 테스트 실패 로그 빠르게 분석하는 방법 GitHub Actions에서 UI 테스트를 돌리다 보면 로그가 너무 길어서 어디서부터 손대야 할지 막막할 때가 많습니다. 특히 안드로이드 프로젝트는 Gradle 빌드, androidTest 컴파일, 에뮬레이터 구동, 실제 Assertion 실패가 한 로그 안에 뒤섞여 나오다 보니 눈이 침침해지곤 하죠.저의 경우도 매번 길고 긴 CI 로그 창을 무작정 내리다가 원인을 놓치고 한참 헤매는 경우가 많아서, 나중에 또 까먹지 않으려고 실무에서 유용한 로그 분석 순서를 정리해 둡니다.먼저 실패 유형부터 나눈다로그를 읽을 때 가장 먼저 할 일은 테스트가 실제로 실행되다가 깨진 건지, 아니면 테스트 단계까지 가지도 못하고 빌드나 환경 준비 단계에서 멈춘 건지 구분하는 것입니다.운영하다 보면 같은 UI 테스트 실패처.. 2026. 5. 21.
[Android] 멀티 앱 배포 실수 줄이기: Release Matrix 관리 방법 앱이 하나일 때는 배포 체크리스트가 비교적 단순합니다. 빌드가 정상적으로 되고, 서명 설정이 맞고, Play Store에 올릴 버전 정보만 확인하면 끝나는 경우가 많죠.그런데 운영하는 앱이 여러 개로 늘어나면 이야기가 전혀 달라집니다. packageName, applicationId, Firebase 설정, keystore 파일, 배포 트랙(Track), 릴리즈 노트까지 서로 뒤섞이기 딱 좋습니다. 이 상태에서 정신없이 급하게 배포하다 보면 다른 앱의 설정 파일을 잘못 넣거나, 내부 테스트용 빌드를 프로덕션에 올려버리는 대형 사고가 터지곤 합니다.이래저래 멀티 앱을 운영하다 보니, 배포 사고를 막아줄 확실한 기준표가 필요하겠다는 생각이 들었습니다. 그래서 저의 경우 release matrix(릴리즈 매트.. 2026. 5. 21.
[Android] 외부 앱 실행(Intent) 안전하게 구현하기 - 스킴 검증, resolveActivity, Fallback 처리 앱을 개발하고 운영하다 보면 외부 앱을 열어줘야 하는 경우가 정말 많습니다. 길찾기 버튼을 누르면 카카오맵이나 네이버지도를 열고, 고객센터 번호를 누르면 전화 앱을 띄우고, 외부 링크는 브라우저로 연결하는 식이죠.개발 기기에서는 필요한 앱들이 다 깔려있으니 대개 잘 돌아갑니다. 하지만 실제 사용자 기기 환경은 전혀 다릅니다. 특정 지도 앱이 없을 수도 있고, 브라우저가 비활성화되어 있거나, 플레이스토어가 없는 기기(원스토어 전용 단말 등)도 있습니다.예외 처리를 안 해두면 버튼을 눌렀을 때 앱이 그냥 죽어버리거나(Crash), 아무 반응이 없어서 사용자가 고장 난 줄 알게 됩니다. 저도 운영하면서 매번 놓치기 쉽고 헷갈리는 부분이라, 안전하게 외부 Intent를 실행하기 위한 기준과 예외 처리(Fallb.. 2026. 5. 21.
[Remote Config] 앱 긴급 공지 및 기능 차단 안전하게 처리하기 (실무 적용 시 주의할 점) 이래저래 앱을 운영하다 보면, 새 버전을 즉시 배포하기 어려울 때 원격으로 화면이나 기능을 제어해야 하는 상황이 꼭 생깁니다. 외부 API가 갑자기 터져서 특정 메뉴를 임시로 닫아야 하거나, 급하게 서버 점검 안내를 첫 화면에 띄워야 하는 경우처럼요.이럴 때 Firebase Remote Config(원격 구성) 같은 도구를 쓰면 스토어 심사 없이 값을 바꿀 수 있어서 참 편리합니다. 하지만 이것을 단순히 '실시간 값 변경 도구'로만 생각하고 막 쓰다가는 오히려 앱이 뻗거나 사용자가 고장 난 것으로 오해하는 대형 사고가 날 수 있습니다.실무에서 앱을 운영하면서 놓치기 쉬운 엣지 케이스와 안전하게 제어 기준을 잡는 방법을 자꾸 까먹어서 정리해 둡니다.Remote Config 도입 시 자주 마주치는 문제들정확.. 2026. 5. 21.