본문 바로가기
조그만 기술로 세상을 이롭게/미세먼지어때

미세먼지어때 앱 개편 - SQLite 제거 후 CSV 방식으로

by eplus 2026. 5. 23.

오늘날씨, 10일 예보, 큰 글씨 화면 대응까지

미세먼지어때 앱을 새롭게 개선했습니다.

기존에는 미세먼지와 측정소 정보를 중심으로 구성되어 있었지만, 이번 개편에서는 사용자가 일상에서 더 자주 확인하는 오늘날씨, 시간대별 날씨, 10일 일기예보 기능을 강화했습니다.

특히 기상청 API를 활용해 현재 위치 기준의 날씨 정보를 제공하고, 앱 화면도 큰 글씨 설정을 사용하는 스마트폰에서도 더 잘 보이도록 개선했습니다.


1. 개편 방향

이번 개편의 핵심은 단순합니다.

미세먼지 + 현재날씨 + 10일 예보를 한 앱에서 보기 쉽게 제공
 

사용자가 앱을 열었을 때 다음 정보를 빠르게 확인할 수 있도록 구성했습니다.

현재 위치 기준 미세먼지 정보
가까운 측정소 정보
오늘의 기온, 습도, 바람, 강수 정보
시간대별 날씨
10일 일기예보
 

기존에는 날씨 정보가 다소 보조적인 기능에 가까웠다면, 이번 개편에서는 날씨 기능을 앱의 주요 기능 중 하나로 강화했습니다.


2. 오늘날씨 화면 개선

오늘날씨 화면은 현재 위치 기준으로 기상청 단기예보 정보를 조회해 보여줍니다.

주요 표시 항목은 다음과 같습니다.

오전 날씨
오후 날씨
최고/최저기온
강수확률
강수량
시간대별 날씨
습도
풍속
 

기존보다 정보를 더 깔끔하게 배치하고, 시간대별 날씨도 한눈에 보기 쉽게 정리했습니다.

특히 큰 글씨 설정을 사용하는 스마트폰에서는 가로 배치가 쉽게 깨질 수 있기 때문에, 일부 항목은 세로형 구조로 바꾸었습니다.

예를 들어 시간대별 날씨는 다음과 같이 구성했습니다.

시간
날씨
기온
강수 정보
습도
바람
 

이렇게 구성하면 글자가 커져도 내용이 잘리지 않고 자연스럽게 표시됩니다.


3. 일기예보 10일 예보 기능 추가

이번 개편에서 가장 큰 변화는 10일 일기예보 기능입니다.

기상청 API는 단기예보와 중기예보가 서로 다른 방식으로 제공됩니다.

단기예보는 현재 위치의 위도/경도를 기상청 격자 좌표로 변환해서 조회합니다.

현재 위치
↓
위도/경도
↓
기상청 격자 nx, ny
↓
단기예보 조회
 

반면 중기예보는 위도/경도가 아니라 예보구역코드를 사용합니다.

현재 위치
↓
가까운 중기예보 지역코드 선택
↓
중기육상예보 조회
↓
중기기온예보 조회
 

따라서 10일 예보를 만들기 위해 단기예보와 중기예보를 함께 사용했습니다.


4. 단기예보와 중기예보 병합 방식

10일 예보는 다음 기준으로 구성했습니다.

오늘 포함 4일차까지 : 단기예보
5일차부터 10일차까지 : 중기예보
 

처음에는 단기예보를 5일차까지 사용하는 방식도 검토했지만, 단기예보 끝부분에서는 최고/최저기온 정보가 부족하거나 온도가 동일하게 표시되는 경우가 있었습니다.

그래서 안정적인 표시를 위해 5일차부터는 중기예보를 우선 사용하도록 조정했습니다.

결과적으로 예보 구성은 다음과 같습니다.

오늘 : 단기예보
내일 : 단기예보
3일차 : 단기예보
4일차 : 단기예보
5~10일차 : 중기예보
 

이 방식이 현재 위치 기반 정확도와 장기 예보 범위를 함께 만족시키는 구조입니다.


5. SQLite 제거 후 CSV 방식으로 변경

초기에는 중기예보 지역코드를 SQLite에 저장해서 관리했습니다.

하지만 Google Play 출시 과정에서 Android 16KB 메모리 페이지 크기 지원과 관련된 문제가 발생할 수 있어, SQLite 의존성을 제거하고 CSV 방식으로 변경했습니다.

변경 전 구조는 다음과 같았습니다.

SQLite DB
↓
중기예보 지역코드 조회
↓
예보 조회
 

변경 후 구조는 다음과 같습니다.

Resources/Raw/kma_mid_region.csv
↓
앱 내부 CSV 파일 읽기
↓
가장 가까운 중기예보 지역 선택
↓
예보 조회
 

이 방식의 장점은 다음과 같습니다.

별도 DB 초기화 불필요
SQLite native 라이브러리 의존성 제거
앱 구조 단순화
출시 안정성 향상
지역코드 관리가 쉬움
 

현재 CSV에는 주요 지역의 중기예보 코드가 들어 있으며, 필요하면 계속 확장할 수 있습니다.


6. 기상청 API 요청 제한 대응

기상청 API를 사용할 때 주의해야 할 점 중 하나는 호출 제한입니다.

짧은 시간에 API를 너무 많이 호출하면 다음 오류가 발생할 수 있습니다.

429 Too Many Requests
 

이번 개편에서는 이 문제를 줄이기 위해 캐시 처리를 추가했습니다.

적용한 방식은 다음과 같습니다.

오늘날씨 : 5분 캐시
일기예보 : 10분 캐시
30초 이내 반복 조회 시 기존 데이터 우선 사용
동시 중복 호출 방지
429 발생 시 사용자용 안내문 표시
 

기존에는 오류 메시지가 그대로 표시될 수 있었습니다.

Response status code does not indicate success: 429
 

개편 후에는 사용자가 이해하기 쉬운 안내문으로 표시되도록 개선했습니다.

기상청 API 요청이 일시적으로 많습니다.
잠시 후 다시 조회해 주세요.
 

7. 재조회 버튼 위치 통일

기존에는 화면 안쪽에 조회 버튼이 있거나, 화면을 당겨서 조회하는 방식이 섞여 있었습니다.

이번 개편에서는 사용 방식을 단순하게 통일했습니다.

오늘날씨 : 타이틀 오른쪽 재조회 버튼
일기예보 : 타이틀 오른쪽 재조회 버튼
미세먼지 메인 : 타이틀 오른쪽 재조회 버튼
 

화면 안쪽의 불필요한 조회 버튼은 제거하고, 재조회 기능을 상단 타이틀 영역으로 모았습니다.

이렇게 하면 사용자가 어느 화면에서든 같은 위치에서 재조회할 수 있습니다.


8. 큰 글씨 설정 폰 대응

실제 스마트폰에서는 사용자가 Android 글자 크기를 크게 설정해 사용하는 경우가 많습니다.

앱 개발 시 기본 글자 크기에서는 잘 보이던 화면도, 큰 글씨 설정에서는 다음 문제가 발생할 수 있습니다.

글자 잘림
버튼 겹침
카드 높이 부족
가로 배치 깨짐
일부 내용 미표시
 

이번 개편에서는 큰 글씨 설정에서도 잘 보이도록 화면 구성을 조정했습니다.

주요 개선 내용은 다음과 같습니다.

고정 높이 최소화
줄바꿈 허용
카드 내부 여백 조정
시간대별 날씨 세로형 배치
일기예보 카드 구조 단순화
버튼 크기 확보
큰 이미지 크기 축소
 

특히 오늘날씨와 일기예보 화면은 글자가 커져도 내용이 잘리지 않도록 세로 흐름 중심으로 다시 정리했습니다.


9. 측정소 화면 개선

미세먼지어때의 핵심 기능인 측정소 조회 화면도 함께 개선했습니다.

현재 위치 또는 입력한 지역을 기준으로 가까운 측정소를 조회하고, 지도에서 확인할 수 있도록 구성했습니다.

주요 기능은 다음과 같습니다.

현재 위치 기준 측정소 조회
입력 지역 기준 측정소 조회
지도에 현재 위치와 측정소 표시
측정소 선택 시 홈 화면에 반영
 

입력 영역과 버튼도 큰 글씨 설정에서 잘 보이도록 정리했습니다.


10. Google Play 출시 안정성 개선

이번 개편에서는 기능 개선뿐 아니라 출시 안정성도 함께 고려했습니다.

특히 Android 앱 출시 과정에서 문제가 될 수 있는 부분을 줄이기 위해 SQLite 의존성을 제거했습니다.

개선 내용은 다음과 같습니다.

SQLite 제거
CSV 기반 지역코드 관리
native 라이브러리 의존성 축소
16KB 메모리 페이지 크기 대응 가능성 개선
앱 초기화 구조 단순화
 

이렇게 하면 앱 업데이트와 출시 과정에서 발생할 수 있는 호환성 문제를 줄일 수 있습니다.


11. 이번 개편 요약

이번 미세먼지어때 앱 개편 내용은 다음과 같습니다.

오늘날씨 화면 개선
시간대별 날씨 표시 개선
10일 일기예보 기능 추가
기상청 단기/중기예보 연동
SQLite 제거 후 CSV 방식 적용
기상청 API 요청 제한 대응
재조회 버튼 위치 통일
큰 글씨 설정 폰 대응
측정소 화면 개선
Google Play 출시 안정성 개선
 

12. 앞으로의 개선 방향

앞으로는 다음 기능도 추가해볼 수 있습니다.

관심 지역 저장
자주 보는 측정소 즐겨찾기
날씨 알림 기능
미세먼지 나쁨 알림
강수 예보 알림
위젯 기능
지역별 예보 코드 확대
전국 주요 도시 예보 지원
 

특히 미세먼지와 날씨는 사용자가 매일 확인하는 정보이기 때문에, 앱을 더 편하게 사용할 수 있도록 계속 개선할 계획입니다.


마무리

이번 개편을 통해 미세먼지어때는 단순히 미세먼지만 확인하는 앱이 아니라, 현재 위치 기준의 미세먼지 + 오늘날씨 + 10일 예보를 함께 확인할 수 있는 생활형 날씨 앱으로 개선되었습니다.

기상청 API를 활용해 공공데이터 기반으로 정보를 제공하고, 화면 구성도 실제 스마트폰 사용 환경에 맞게 다듬었습니다.

앞으로도 사용자가 더 쉽고 편하게 날씨와 대기질 정보를 확인할 수 있도록 계속 개선해 나갈 예정입니다.

728x90
반응형