본문 바로가기

공공데이터3

[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.