본문 바로가기

개발 노트/기타10

[UI Test] GitHub Actions UI 테스트 실패 로그를 읽고 원인을 좁히는 순서 GitHub Actions에서 UI 테스트가 실패하면 로그가 너무 길어서 어디부터 봐야 할지 막막할 수 있습니다. 특히 Android 프로젝트에서는 Gradle 빌드 실패, androidTest 컴파일 실패, 에뮬레이터 실행 실패, 실제 테스트 assertion 실패가 한 로그 안에 섞여 보일 수 있습니다.이럴 때는 로그를 처음부터 끝까지 모두 읽기보다 실패 유형을 먼저 나누는 편이 좋습니다. 테스트가 실제로 실행된 뒤 실패한 것인지, 아니면 테스트까지 가지 못하고 빌드나 환경 준비 단계에서 멈춘 것인지 구분해야 합니다.막상 CI 로그를 정리해보면 마지막 줄보다 첫 번째 의미 있는 에러가 더 중요한 경우가 많습니다. 이 글에서는 GitHub Actions에서 Android UI 테스트 실패 로그를 볼 때.. 2026. 5. 21.
[Android Release] 여러 개의 Android 앱을 Play Store에 관리할 때 필요한 release matrix Android 앱이 하나일 때는 배포 체크리스트가 비교적 단순합니다. 빌드가 정상적으로 되고, 서명 설정이 맞고, Play Store에 올릴 버전 정보만 확인하면 되는 경우가 많습니다.그런데 앱이 여러 개로 늘어나면 이야기가 조금 달라집니다. packageName, applicationId, Firebase 설정, keystore, 배포 track, release note, Data Safety 항목이 서로 뒤섞이기 쉽습니다. 이런 상태에서 급하게 배포하면 다른 앱의 설정 파일을 넣거나, 잘못된 track에 업로드하는 실수가 생길 수 있습니다.release matrix는 앱별 배포 정보를 한 표로 관리하는 방식입니다. 단순 문서처럼 보이지만, 여러 앱을 운영할 때는 배포 사고를 줄이는 기준표가 됩니다.운.. 2026. 5. 21.
[Android Intent] 외부 앱 실행 실패 시 Play Store로 보내는 fallback 설계 Android 앱에서 지도앱, 전화앱, 브라우저, Play Store 같은 외부 앱을 실행해야 하는 경우가 있습니다. 길찾기 버튼을 누르면 지도앱을 열고, 고객센터 번호를 누르면 전화앱을 열고, 외부 링크는 브라우저로 연결하는 식입니다.이때 해당 앱이 설치되어 있다는 가정을 하면 안 됩니다. 사용자의 기기에는 카카오맵이 없을 수도 있고, 특정 브라우저가 비활성화되어 있을 수도 있습니다. Play Store 앱이 없는 환경도 있을 수 있습니다.그래서 외부 Intent를 실행하기 전에는 처리 가능한 앱이 있는지 확인하고, 실패했을 때 어떤 fallback을 보여줄지 정해야 합니다. 외부 앱 연동은 버튼 하나처럼 보이지만, 실제로는 설치 여부, 스킴 검증, 사용자 안내까지 함께 설계해야 하는 기능입니다.이 글.. 2026. 5. 21.
[앱 운영] Remote Config를 앱 긴급 공지와 기능 차단 장치로 쓰는 방법 앱을 운영하다 보면 새 버전을 바로 배포하지 않고도 공지 문구를 바꾸거나 특정 기능을 잠시 숨겨야 하는 상황이 생길 수 있습니다. 예를 들어 외부 API 장애가 발생했을 때 해당 메뉴를 임시로 숨기거나, 점검 안내 화면을 앱 첫 화면에 보여줘야 할 수 있습니다.이때 Remote Config를 사용하면 서버 배포나 앱 심사 없이 앱의 일부 동작을 조정할 수 있습니다. 공지 노출 여부, 안내 문구, 기능 차단 목록처럼 자주 바뀌는 값을 원격에서 관리할 수 있기 때문입니다.다만 Remote Config를 단순히 원격에서 값을 바꾸는 기능으로만 보면 위험합니다. 기본값이 없거나, fetch 실패 시 fallback이 없거나, 기능 차단 문구가 애매하면 사용자는 앱이 고장났다고 느낄 수 있습니다.기능을 켜고 끄는.. 2026. 5. 21.