본문 바로가기

개발 노트/기타10

[Android] 안드로이드 오픈소스 라이선스 고지 화면 구성 및 릴리스 체크리스트 안드로이드 앱 개발하다 보면 Retrofit, OkHttp, Glide, Gson, 코루틴 같은 오픈소스 라이브러리를 거의 숨 쉬듯 쓰게 됩니다. 저의 경우도 기능 구현에만 매몰되다 보면, 오픈소스 라이선스 고지 작업은 맨 뒤로 미뤄두는 귀찮은 부가 작업처럼 느껴지곤 했습니다.하지만 앱을 구글 플레이 스토어에 배포하거나 외주 프로젝트를 납품할 계획이 있다면, 라이선스 관리는 처음부터 따로 정리를 해두는 편이 정신 건강에 좋습니다. 오픈소스가 무료라곤 하지만, 라이선스 조건까지 없는 것은 아니기 때문입니다.출시 직전에 급하게 챙기다가 누락되거나 꼬여서 고생하는 경우가 많습니다. 제가 앱을 운영하면서 정리한 라이선스 화면의 필요성과 관리 기준을 공유합니다. 자꾸 까먹어서 기록해 두는 목적도 있습니다.오픈소스.. 2026. 5. 22.
Android 스플래시(Splash) 화면 비대화 해결 및 무거운 초기화 구조 분리하기 Android 앱을 개발하고 운영하다 보면, 첫 화면인 스플래시(Splash) 화면에 이것저것 자꾸 살을 붙이게 되는 경우가 많습니다. 초기 설정 로딩, 공지사항 확인, 필수 권한 요청, 로그인 세션 체크에 메인 화면 이동 분기까지... 저의 경우도 처음에는 한 화면에서 다 처리하면 구조가 단순해 보여서 그렇게 밀어 넣었던 적이 있습니다.하지만 앱을 출시하고 운영하다 보면 꼭 문제가 터집니다. 네트워크가 불안정한 환경에서 사용자가 스플래시 화면에 마냥 멈춰 있거나, 초기화 도중 에러가 났을 때 정확히 어디서 막혔는지 로그를 봐도 한눈에 파악하기 어렵더군요.나중에 고생하지 않으려면 스플래시 화면의 역할을 최소한의 진입 판단으로만 줄여야 합니다. 장기적인 유지보수와 안정적인 운영을 위해 제가 실무에서 잡은 .. 2026. 5. 22.
[Android] 외부 검색 API와 내부 관리자 API 구조 분리하기 (Retrofit, DTO, 보안) 앱 서비스를 개발하고 운영하다 보면 외부 플랫폼 API(지도, 장소 검색, 주소 조회 등)와 내부에서 관리하는 관리자 API(공지사항, 카테고리 설정, 지역별 상태 등)를 함께 연동해야 하는 상황이 자주 생깁니다.처음에는 진척도를 빨리 내려고 하나의 Retrofit Client에 주소를 대충 섞어 넣고, 응답 모델(DTO)을 화면(UI)까지 바로 꽂아서 쓰곤 합니다. 당장은 잘 돌아가는 것처럼 보이지만, 서비스 규모가 조금만 커져도 유지보수할 때 지옥을 맛보게 됩니다. 외부 API 응답 필드 하나 바뀌었다고 화면 전체가 깨지거나, 어떤 데이터가 외부에서 온 거고 어떤 게 내부 운영 데이터인지 분간이 안 가기 시작하거든요.나중에 고생하지 않고 장애 범위를 최소화하기 위해, 외부 API와 내부 API의 경계.. 2026. 5. 22.
안드로이드 앱 검색 결과 없음(Empty State) 화면 예외 처리 및 UI 상태 설계 안드로이드 앱에서 검색 기능을 구현할 때, 결과가 잘 나올 때는 리스트만 뿌려주면 되니 크게 고민할 게 없습니다. 항목 누르면 상세 화면으로 보내면 끝이니까요.하지만 진짜 개발하면서 손이 많이 가고 헷갈리는 부분은 검색 결과가 없을 때(Empty State)입니다.저의 경우도 공공데이터나 지역 기반 서비스를 만지다 보면, 데이터가 없는 이유가 제각각이라 그냥 통으로 "결과가 없습니다"라고만 띄우면 사용자들이 앱이 고장 난 줄 알거나 뭘 해야 할지 몰라 헤매는 경우가 많았습니다. 나중에 제가 다시 보려고 운영하면서 겪은 예외 처리 기준과 UI 상태 설계 방식을 정리해 둡니다.화면 상태(UI State) 분리부터 시작하기이래저래 코드를 짜다 보면 화면 상태를 명확하게 쪼개는 것부터 시작해야 나중에 예외 처리.. 2026. 5. 22.
[Android] 대형폐기물 정보 앱 화면 분리 및 데이터 구조 설계 기준 정리 이래저래 앱을 직접 개발하고 운영하다 보면, 지자체 행정 데이터나 공공 정보를 연동하는 유틸리티 서비스를 기획하게 될 때가 있습니다. 최근에 대형폐기물 수수료 안내 및 신고 절차를 다루는 서비스 구조를 고민해 볼 기회가 있었는데요.이런 앱은 처음 만들 때 구현이 간단해 보인다는 이유로 품목 검색 결과 화면에 수수료, 배출 방법, 신고 버튼까지 한 번에 다 몰아넣기 쉽습니다. 하지만 운영을 하다 보면 지자체마다 데이터 차이가 커지고 안내 문구도 수시로 바뀌기 때문에, 한 화면에 다 때려 박은 구조는 나중에 유지보수할 때 그야말로 헬(Hell)이 됩니다.자꾸 까먹기도 하고, 나중에 다시 참고하기 위해 Android 기반 대형폐기물 정보 앱을 기준으로 화면 책임 분리와 데이터 구조 설계 기준을 깔끔하게 정리해.. 2026. 5. 22.
[App/UI] 모바일 앱 화면 깨짐 방지를 위한 반응형 최적화 체크리스트 정리 앱 개발을 진행하다 보면, 정작 제 개발 기기 한 대에서는 기가 막히게 잘 보이는데 사용자들이 쓰는 기기에서는 화면이 밀리거나 깨진다는 리포트를 받을 때가 있습니다.작은 폰, 큰 폰, 태블릿, 그리고 생각지도 못한 가로 모드(Landscape)까지 대응하다 보면 어떤 기기에서 무엇을 확인했는지 금방 헷갈리기 일쑤입니다. 버튼이 화면 밖으로 밀리거나, 리스트 높이가 부족해서 스크롤이 안 되거나, 지도와 상세 영역이 겹치는 등 운영하다 보면 참 다양한 UI 이슈를 마주하게 됩니다.저도 자꾸 까먹고 놓치는 부분이 생겨서, 나중에 다시 검증할 때 기준이 흔들리지 않도록 실무에서 화면 최적화할 때 사용하는 문서화 방법과 체크리스트 기준을 정리해 둡니다.왜 화면 체크리스트가 필요한가 (내가 겪은 상황)반응형 UI .. 2026. 5. 21.