2026/05 31

Android 17 호환성, 6월 Stable 출시 전 반드시 확인할 체크리스트 5가지

6월 둘째 주 월요일 오전, 슬랙(Slack) 채널에 빨간 불이 들어옵니다. "사진 선택창 UI가 깨졌어요", "푸시 알림이 안 와요". 안드로이드 17(Android 17) Stable 업데이트 사흘째—이 장면이 싫다면 지금부터 움직이셔야 해요. 5월 8일인 오늘을 기준으로, 안드로이드 17의 안정화 버전(Stable) 출시가 대략 한 달 남짓 다가왔습니다. 구글이 작년 안드로이드 16부터 메이저 출시 일정을 2분기로 앞당긴 만큼, 이제 6월 출시는 기정사실이 되었거든요. 메이저 버전 업그레이드 직후 호환성 이슈 발생률이 꽤 높다고 해요. 열 팀 중 두세 팀은 첫 주에 야근을 하게 된다는 얘기가 됩니다. 이번엔 Photo Picker 변경사항, 강화된 Private Space(비공개 공간), targe..

Jetpack Compose 업데이트, 진짜 '물건'은 따로 있었네요

폴더블 UI 테스트하려고 아직도 에뮬레이터를 껐다 켜고 계신가요? 이제 프리뷰 창 크기만 쭉 늘리면 10초 만에 끝나거든요. 이번 젯팩 컴포즈(Jetpack Compose) 업데이트, 진짜 핵심은 따로 있었습니다. 새 릴리즈 소식이 들리면 다들 그렇잖아요. 이것저것 신기한 기능부터 찾아보게 되죠. 저도 이번 업데이트 노트를 보면서 '오, AI 기능이 드디어?' 하면서 기대를 많이 했는데요. 막상 다 써보고 나니까, 진짜 제 퇴근 시간을 앞당겨줄 '물건'은 예상치 못한 곳에 숨어있더라구요. 화려한 기능 리스트보다는, 당장 제 개발 시간을 줄여준 실용적인 업데이트 3가지를 골라봤습니다. 1. 폴더블 UI 테스트, 에뮬레이터 없이 10초 만에이건 진짜 경험해보셔야 해요. 예전에는 폴더블 기기에서 화면이 접혔을..

더 안드로이드 쇼(The Android Show) I/O 2026, 안드로이드 개발자가 꼭 챙겨야 할 3가지

I/O를 전부 챙겨보는 건 오히려 손해일 수 있습니다. 120개 세션을 다 따라가다 보면 정작 올해 코드베이스를 바꿀 3가지를 그냥 지나치게 되거든요. 오는 5월 12일에 더 안드로이드 쇼(The Android Show) I/O 에디션이 먼저 열리고, 5월 19일부터 20일까지 양일간 구글 I/O(Google I/O) 본행사가 이어집니다. 올해부터 소비자·제품 발표는 더 안드로이드 쇼가, 개발자용 기술 세션은 구글 I/O 본행사가 맡는 구조로 분리됐다고 해요. 개발자 입장에서는 오히려 기술 세션 밀도가 높아진 셈이죠. 작년 I/O 이야기를 잠깐 하자면, 저는 당시 안드로이드 스튜디오(Android Studio) 북마크에 세션 링크를 18개나 저장해뒀는데 끝까지 본 건 4개였더라구요. 나머지는 탭이 그냥 ..

개발 일지 2026.05.09

안드로이드 Compose 테스트 컴파일 에러, Matcher 기반 마이그레이션 일지

월요일 아침이었어요. 평소처럼 안드로이드 스튜디오(Android Studio)를 켰는데, 수십 개의 테스트 파일이 온통 빨갛게 물들어 있더라구요. 별생각 없이 올린 컴포즈(Compose) 버전 하나가 원인이었습니다. 진짜 멘붕이 오더라구요. 잘 돌아가던 테스트가 한순간에 전부 컴파일 에러를 뱉어내니까요. 저처럼 갑작스럽게 빨간 테스트 코드 더미를 마주한 분들이 분명 계실 것 같아서, 해결 과정과 그 속에서 배운 점들을 정리해봤습니다. 기존 테스트 코드가 한계에 부딪힌 이유원인은 테스트 환경의 고도화와 관련이 있었어요. 사실 젯팩 컴포즈(Jetpack Compose) 최신 버전에서 onNodeWithText 같은 확장 함수 자체가 공식적으로 완전히 삭제된 건 아니에요. 하지만 테스트 요구사항이 복잡해지면서..

무작정 최신 API로 바꾸면 안 되는 이유 (feat. Compose FlowRow vs LazyVerticalGrid)

얼마 전 깃허브에 올라온 팀 후배 PR을 리뷰하다 멈칫했습니다. 상품 그리드 코드 전체가 FlowRow 기반의 커스텀 레이아웃으로 바뀌어 있었거든요. 커밋 메시지엔 "Compose 최신 API로 반응형 레이아웃 교체"라고만 달려 있더라구요. 코드를 잠깐 들여다보고는, 바로 'Request Changes(수정 요청)'를 남길 수밖에 없었네요. 최근 컴포즈(Compose)에서 FlowRow와 ContextualFlowRow의 기능이 대폭 강화되면서 "이제 복잡한 LazyVerticalGrid는 구식 API 아니냐, 덜 써도 되는 것 아니냐"는 분위기가 생긴 건 저도 느끼고 있었습니다. 다만 그 판단이 좀 성급하다고 봅니다. 각각의 API는 애초에 다른 문제를 풀기 위해 설계된 거거든요. LazyVertica..

2026년 9월 안드로이드 개발자 인증 의무화, 1인 개발자는?

저는 요즘 혼자 집에서 개인 프로젝트를 진행 중입니다. 클로크 코드와 제미나이 덕분에 앱 개발에 걸리는 시간이 엄청 줄었거든요. 친구들한테 앱의 기능을 설명했더니 달라고 하길래 APK 파일로 말아서 카톡 단톡방에 뿌렸더니 '이거 악성앱 아니냐'고 묻더라구요. 당시엔 웃고 넘겼는데, 올해 9월부터 구글(Google)이 그 경고를 OS 레벨로 공식화합니다. 정확히는 2026년 9월, 브라질·인도네시아·싱가포르·태국에서 안드로이드 개발자 신원검증이 강제 시행되는데요. 한국은 공식 로드맵에 구체적 시기가 없어서 2027년 이후로 보는 시각이 많지만, 글로벌 확대 수순이라는 건 거의 확실한 흐름이에요. 배포 경로에 따라 영향이 전혀 다르게 적용되는 것이기 때문에, 미리 파악해두는 게 좋을 듯 합니다. 안드로이드 ..

개발 일지 2026.05.06

Gradle 빌드가 갑자기 느려졌을 때 가장 먼저 보는 곳

gradle clean을 치면 빌드가 빨라진다고 생각하신다면, 사실 그 습관이 다음 빌드를 가장 느리게 만들고 있는 거예요. clean을 실행하면 증분 빌드(Incremental Build) 캐시가 통째로 날아가거든요. 그다음 빌드는 모든 파일을 처음부터 다시 컴파일해야 합니다. 어제 3초였던 빌드가 오늘 45초로 튄다면, 무턱대고 clean을 치기 전에 진짜 원인부터 짚어야 해요. 증분 빌드 상태 꼬임이 빌드 느려짐의 첫 번째 원인빌드가 갑자기 느려졌을 때 제일 먼저 해볼 수 있는 건 프로젝트 로컬 캐시를 초기화하는 것입니다. 저장된 캐시가 손상되면 gradle은 모든 task를 처음부터 다시 실행하게 되거든요. 평소보다 빌드 시간이 2~5배 늘어나는 경우가 생겨요. 해결 순서는 이렇습니다.1. 프로젝..

코루틴 처음 만났을 때 가장 헷갈렸던 것들

코루틴은 스레드를 멈추지 않습니다. 근데 코드는 딱 멈춘 것처럼 실행돼요. 이 모순처럼 보이는 한 줄이 사실 코루틴의 전부거든요. 저도 처음 배울 때 suspend 키워드를 보고 "여기서 스레드가 멈추는 거구나"라고 생각했는데, 실제로는 전혀 그렇지 않더라구요. 그때부터 멘붕의 연속이었습니다. 코틀린(Kotlin) 코루틴은 개념 하나하나는 이해가 되는데, 동시에 여러 개를 이해해야 전체 그림이 잡히는 구조라서 특히 처음이 힘들거든요. 제가 가장 헷갈렸던 다섯 가지를 솔직하게 정리해봤습니다. 코루틴 suspend 함수가 스레드를 블로킹하지 않는 이유suspend라는 단어를 처음 보면 "일시정지"라고 자연스럽게 읽게 됩니다. 실제로 맞아요. 근데 핵심은 무엇이 일시정지되느냐거든요. 스레드가 멈추는 게 아닙니..

릴리즈 빌드 직후 앱이 죽었습니다 — 난독화 디버깅 일지

비공개 테스트에 버전 업데이트를 누른 지 세 시간 만에 크래시 리포트가 쏟아졌습니다. 디버그로는 단 한 번도 안 터졌던 화면이었어요. 로그엔 a.b.c.d 같은 암호만 가득했습니다. 처음엔 서버 문제인 줄 알았어요. 그런데 디버그용 폰에서 디버그 빌드를 켜면 멀쩡히 돌아가는거죠.뭐지 싶어서, 급하게 비공개 테스트 테스터로 제 자신을 등록하고 플레이스토어에서 앱을 받아 켰더니 켜지자마자 죽더군요. 딱 릴리즈 빌드만 죽는거였어요. 이 상황에서 유일한 실마리는 업데이트 전에 적용했던, isMinifyEnabled = true 부분이었어요. — 결국 난독화였던거죠. 디버그는 정상, 릴리즈만 충돌하는 진짜 이유R8과 ProGuard는 릴리즈 빌드 시 클래스명·메서드명을 a, b, c 같은 짧은 이름으로 바꿔버립..

안드로이드 스튜디오에서 클로드 코드가 진짜 도움 되는 순간 3가지

팀 동료 하나가 Gradle 충돌로 반나절을 날렸습니다. 어느 라이브러리가 문제인지 몰라서요. 그런데 너무 답답해서 고민하다가 클로드 코드한테 던졌더니 5분 만에 딱 짚어주더라구요. 그 모습 보고 저도 써봤는데, 생각보다 쓰임새가 굉장히 많더군요. 안드로이드 앱 개발 툴인 안드로이드 스튜디오(Android Studio)로 작업할 때 특히 효과가 크다고 경험한 순간이 3가지 있는데, 하나씩 짚어볼게요. 프로젝트 전체를 한 번에 읽어내는 분석력클로드 코드(Claude Code)는 이전 글에도 명시했지만, 한 번에 200K 분량을 받아주는 것으로 알려져 있어요. 200K 가 어느 정도냐면, A4 용지로 따지면 80~100장 분량을 통째로 넣을 수 있다는 얘기거든요. 일반적인 AI 코딩 도구가 파일 몇 개씩 쪼..