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

지도어때 개발 방법 및 사용 기술 정리

by eplus 2026. 6. 17.

이번 글에서는 제가 개발한 생활 편의 앱 중 하나인 지도어때의 개발 방법과 사용한 기술을 정리해 보려고 합니다.

지도어때는 사용자가 현재 위치 또는 필요한 위치를 지도에서 확인할 수 있도록 만든 앱입니다. 복잡한 기능보다는 가볍고 빠르게 위치를 확인할 수 있는 지도 기반 앱을 목표로 개발했습니다.

특히 기존에 개발했던 고속도로어때, 국도어때, 미세먼지어때, 버스정류소어때 등의 앱에서 사용한 위치 기반 처리 경험을 바탕으로, 지도 표시와 위치 확인 기능을 좀 더 단순하고 직관적으로 구성하는 데 중점을 두었습니다.


1. 지도어때 개발 목적

지도어때는 일상에서 간단히 지도를 확인하고 현재 위치를 파악할 수 있도록 만든 앱입니다.

개발 목적은 다음과 같습니다.

  • 현재 위치 기반 지도 확인
  • 사용자가 입력한 위치 또는 선택한 위치 확인
  • 지도 중심의 단순한 화면 구성
  • 복잡한 메뉴 없이 빠르게 사용할 수 있는 앱 제작
  • 광고 없이 편하게 사용할 수 있는 생활 편의 앱 제공
  • 다른 위치 기반 앱 개발에 활용 가능한 공통 구조 확보

지도 앱은 이미 대형 서비스가 많지만, 지도어때는 거창한 서비스보다는 필요한 기능만 가볍게 제공하는 앱이라는 방향으로 개발했습니다.


2. 개발 환경

지도어때는 C# 기반 .NET MAUI로 개발했습니다.

.NET MAUI는 하나의 코드 기반으로 Android, iOS, Windows 등 여러 플랫폼 앱을 만들 수 있는 크로스 플랫폼 프레임워크입니다. 현재 지도어때는 Android 앱 출시를 중심으로 개발했습니다.

주요 개발 환경은 다음과 같습니다.

  • 개발 언어: C#
  • 개발 프레임워크: .NET MAUI
  • 화면 구성: XAML
  • 로직 처리: C# Code-behind
  • 개발 도구: Visual Studio 2022
  • 대상 플랫폼: Android
  • 배포 방식: Google Play Console
  • 빌드 형식: Android App Bundle
  • 주요 기능: 지도 표시, 위치 권한, 현재 위치 조회, 외부 지도 연동

.NET MAUI를 사용한 이유는 기존 생활 편의 앱들과 동일한 구조로 유지보수하기 쉽고, C# 기반으로 화면과 로직을 빠르게 구성할 수 있기 때문입니다.


3. 전체 앱 구조

지도어때의 전체 구조는 비교적 단순하게 구성했습니다.

기본적인 흐름은 다음과 같습니다.

  1. 앱 실행
  2. 위치 권한 확인
  3. 현재 위치 조회
  4. 지도 화면 표시
  5. 위치 정보 반영
  6. 사용자가 필요한 위치 확인
  7. 필요 시 외부 지도 또는 추가 기능 실행

앱 구조를 복잡하게 만들기보다는, 사용자가 앱을 열었을 때 바로 지도를 확인할 수 있는 흐름을 우선했습니다.


4. .NET MAUI 사용

지도어때의 기본 화면과 앱 구조는 .NET MAUI로 구성했습니다.

.NET MAUI에서는 XAML을 이용해 화면을 만들고, C# 코드에서 버튼 클릭, 위치 조회, 지도 갱신 등의 기능을 처리합니다.

지도어때에서 .NET MAUI를 사용한 주요 부분은 다음과 같습니다.

  • 메인 페이지 구성
  • 버튼 및 입력 필드 배치
  • 위치 조회 이벤트 처리
  • 권한 확인 로직 처리
  • 지도 표시 화면 구성
  • 오류 발생 시 안내 메시지 표시
  • Android 앱 빌드 및 배포

MAUI는 모바일 앱의 화면과 로직을 C# 기반으로 함께 관리할 수 있어, 기존 WinForms나 C# 개발 경험을 활용하기 좋았습니다.


5. XAML 화면 구성

앱 화면은 XAML을 사용해 구성했습니다.

XAML은 버튼, 라벨, 입력 필드, 이미지, 레이아웃 등을 선언형으로 배치할 수 있습니다. 지도어때에서는 사용자가 복잡하게 느끼지 않도록 화면 구성을 최대한 단순하게 만들었습니다.

주요 화면 구성 요소는 다음과 같습니다.

  • 상단 타이틀 영역
  • 현재 위치 확인 버튼
  • 위치 입력 또는 검색 영역
  • 지도 표시 영역
  • 안내 메시지 영역
  • 오류 또는 알림 팝업

모바일 화면에서는 글자 크기와 버튼 높이가 중요합니다. 실제 스마트폰에서 글자가 잘리거나 버튼이 너무 작게 보이면 사용성이 떨어지기 때문에, 화면 간격과 버튼 크기를 반복적으로 조정했습니다.


6. 위치 권한 처리

지도 기반 앱에서 가장 중요한 부분 중 하나는 위치 권한 처리입니다.

사용자의 현재 위치를 확인하려면 Android에서 위치 권한이 필요합니다. 앱 실행 시 권한이 없으면 권한 요청을 진행하고, 사용자가 권한을 허용한 경우에만 현재 위치를 조회하도록 구성했습니다.

주요 처리 항목은 다음과 같습니다.

  • 위치 권한 보유 여부 확인
  • 위치 권한 요청
  • 권한 거부 시 안내 메시지 표시
  • 권한 허용 후 현재 위치 조회
  • 위치 정보 조회 실패 시 예외 처리

위치 권한은 사용자의 개인정보와 관련된 기능이기 때문에, 앱에서 왜 위치 권한이 필요한지 사용자가 이해할 수 있도록 안내하는 것도 중요합니다.


7. 현재 위치 조회

지도어때는 사용자의 현재 위치를 기준으로 지도를 표시할 수 있도록 구성했습니다.

현재 위치 조회 시에는 GPS 또는 네트워크 기반 위치 정보를 활용합니다. 위치 정보가 정상적으로 조회되면 위도와 경도 값을 기준으로 지도 화면에 반영합니다.

기본 흐름은 다음과 같습니다.

  1. 위치 권한 확인
  2. 현재 위치 요청
  3. 위도, 경도 정보 수신
  4. 지도 중심 위치 이동
  5. 위치 정보 표시

현재 위치 조회가 실패할 수 있는 경우도 고려했습니다.

예를 들어 GPS가 꺼져 있거나, 위치 권한이 없거나, 실내에서 위치 정보가 부정확할 수 있습니다. 이런 경우 앱이 종료되지 않도록 예외 처리를 하고, 사용자에게 안내 메시지를 표시하도록 구성했습니다.


8. 지도 표시 방식

지도어때의 핵심 기능은 지도 표시입니다.

지도 표시 방식은 앱 내부에서 지도 화면을 구성하거나, WebView 또는 외부 지도 서비스를 연동하는 방식으로 구현할 수 있습니다.

지도어때에서는 모바일 환경에서 사용자가 빠르게 위치를 확인할 수 있도록 지도 표시 영역을 중심으로 화면을 구성했습니다.

지도 표시 시 고려한 내용은 다음과 같습니다.

  • 현재 위치 기준 지도 표시
  • 특정 위치 기준 지도 이동
  • 지도 확대 및 축소
  • 위치 정보 표시
  • 지도 로딩 실패 시 안내 처리
  • 외부 지도 앱 또는 브라우저 연동 가능성

지도 기능은 네트워크 상태나 지도 서비스 응답 상태에 영향을 받을 수 있으므로, 네트워크 예외 처리도 함께 고려해야 합니다.


9. WebView 활용

지도 화면을 구현할 때 WebView를 활용하면 지도 서비스의 웹 기반 화면을 앱 내부에서 표시할 수 있습니다.

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

  • 웹 지도 서비스를 앱 안에서 표시 가능
  • 위도, 경도 값을 이용해 지도 위치 이동 가능
  • HTML 또는 JavaScript 기반 지도 기능 연동 가능
  • 앱 화면 안에서 지도 기능을 자연스럽게 표시 가능

다만 WebView 방식은 네트워크 상태, 지도 API 응답, JavaScript 오류 등에 영향을 받을 수 있기 때문에 안정적인 예외 처리가 필요합니다.

지도어때 개발에서도 지도 표시가 되지 않는 경우를 대비해 사용자 안내와 예외 처리를 중요하게 보완했습니다.


10. 외부 지도 연동

앱 내부 지도 표시만으로 부족한 경우 외부 지도 앱 또는 브라우저를 실행해 위치를 확인할 수 있도록 구성할 수 있습니다.

외부 지도 연동은 다음과 같은 상황에서 유용합니다.

  • 앱 내부 지도 로딩이 느린 경우
  • 사용자가 더 자세한 경로 탐색을 원하는 경우
  • 기존 지도 앱에서 길찾기를 하고 싶은 경우
  • 지도 서비스의 상세 기능을 활용하고 싶은 경우

지도어때는 단순 지도 확인 앱이지만, 향후에는 외부 지도 앱과 연동하여 경로 안내나 위치 공유 기능으로 확장할 수도 있습니다.


11. 오류 처리와 안정성 보완

지도 앱은 위치 권한, 네트워크, 지도 API, 디바이스 상태 등 여러 외부 요인에 영향을 받습니다.

따라서 기능 구현만큼 중요한 것이 오류 처리입니다.

지도어때 개발 과정에서는 다음과 같은 상황을 고려했습니다.

  • 위치 권한이 없는 경우
  • 사용자가 권한을 거부한 경우
  • GPS가 꺼져 있는 경우
  • 위치 정보를 가져오지 못하는 경우
  • 네트워크 연결이 불안정한 경우
  • 지도 화면이 정상 표시되지 않는 경우
  • 외부 지도 서비스 응답이 지연되는 경우
  • 앱 실행 중 예외가 발생하는 경우

이런 상황에서 앱이 바로 종료되지 않고, 사용자가 이해할 수 있는 안내 메시지를 보여 주도록 보완하는 것이 중요했습니다.


12. 팝업 메시지 개선

앱 사용 중 안내가 필요한 경우 기본 시스템 메시지만 표시하면 다소 딱딱하게 느껴질 수 있습니다.

그래서 지도어때에서는 오류나 안내 상황에서 사용자에게 조금 더 보기 좋은 형태의 팝업 메시지를 제공하는 방향으로 개선했습니다.

팝업 개선 방향은 다음과 같습니다.

  • 단순한 오류 코드 대신 이해하기 쉬운 문구 표시
  • 안내 제목과 내용을 구분
  • 색상과 여백을 적용해 가독성 개선
  • 확인 버튼을 명확하게 표시
  • 오류 상황에서도 불안감을 주지 않는 표현 사용

예를 들어 위치 정보를 가져오지 못한 경우 단순히 “오류 발생”이라고 표시하는 것보다, “현재 위치를 확인할 수 없습니다. 위치 권한 또는 GPS 상태를 확인해 주세요.”처럼 안내하는 것이 사용자에게 더 도움이 됩니다.


13. Android 권한 설정

지도어때는 위치 정보를 사용하기 때문에 Android 권한 설정이 필요합니다.

일반적으로 위치 기반 앱에서는 다음과 같은 권한을 확인해야 합니다.

  • ACCESS_FINE_LOCATION
  • ACCESS_COARSE_LOCATION
  • INTERNET
  • ACCESS_NETWORK_STATE

현재 위치를 정확하게 사용하려면 ACCESS_FINE_LOCATION 권한이 필요하고, 네트워크 기반 위치 또는 대략적인 위치를 사용할 경우 ACCESS_COARSE_LOCATION 권한을 사용할 수 있습니다.

지도 데이터를 불러오기 위해서는 인터넷 권한도 필요합니다.

권한 설정은 AndroidManifest.xml 또는 MAUI 프로젝트 설정에서 관리할 수 있습니다.


14. Google Play Console 배포

지도어때는 개발 완료 후 Google Play Console을 통해 프로덕션 출시를 진행했습니다.

배포 과정은 다음과 같습니다.

  1. 앱 빌드
  2. Android App Bundle 생성
  3. Google Play Console 앱 등록
  4. 앱 이름, 설명, 아이콘 등록
  5. 스크린샷 등록
  6. 개인정보처리방침 및 권한 설명 정리
  7. 테스트 진행
  8. 프로덕션 출시 신청
  9. 검토 완료 후 출시

지도 앱은 위치 권한을 사용하는 앱이기 때문에 Google Play 등록 시 권한 사용 목적을 명확히 설명하는 것이 중요합니다.


15. 지도어때 개발 시 주의한 점

지도어때를 개발하면서 특히 주의한 부분은 다음과 같습니다.

  • 위치 권한 안내를 명확하게 할 것
  • 권한 거부 시 앱이 종료되지 않게 할 것
  • 네트워크 오류를 고려할 것
  • 지도 로딩 실패 상황을 처리할 것
  • 화면이 작아도 버튼과 글자가 잘 보이게 할 것
  • 광고 없이 빠르게 사용할 수 있게 할 것
  • 불필요한 기능을 많이 넣지 말 것
  • Google Play 정책에 맞게 앱 설명과 기능을 정리할 것

앱은 기능이 많다고 무조건 좋은 것은 아닙니다. 지도어때는 필요한 기능을 중심으로 단순하게 구성하는 것을 목표로 했습니다.


16. 향후 개선 방향

지도어때는 기본 출시 이후에도 계속 보완할 수 있는 부분이 있습니다.

향후 개선 방향은 다음과 같습니다.

  • 즐겨찾기 위치 저장
  • 최근 조회 위치 저장
  • 위치 검색 기능 강화
  • 지도 확대/축소 편의성 개선
  • 외부 지도 앱 연동 강화
  • 지도 로딩 속도 개선
  • 오류 안내 메시지 개선
  • 태블릿 화면 대응
  • 다른 생활 편의 앱과 기능 연동

특히 기존에 개발한 고속도로어때, 국도어때, 버스정류소어때 등 위치 기반 앱과 연계하면 더 다양한 기능으로 확장할 수 있습니다.


17. 개발하면서 느낀 점

지도어때를 개발하면서 다시 느낀 점은, 위치 기반 앱은 단순해 보여도 고려해야 할 부분이 많다는 것입니다.

현재 위치를 표시하는 기능 하나만 보더라도 위치 권한, GPS 상태, 네트워크 연결, 지도 서비스 응답, 화면 구성, 예외 처리 등을 모두 고려해야 합니다.

또한 지도 앱은 사용자가 빠르게 정보를 확인하려고 실행하는 경우가 많기 때문에, 화면이 복잡하거나 오류 메시지가 불친절하면 사용성이 크게 떨어집니다.

그래서 지도어때는 복잡한 기능을 많이 넣기보다는, 기본 지도 확인 기능을 안정적으로 제공하는 방향으로 개발했습니다.


마무리

지도어때는 C#과 .NET MAUI를 기반으로 개발한 지도 기반 생활 편의 앱입니다.

XAML을 이용해 화면을 구성하고, C#으로 위치 권한, 현재 위치 조회, 지도 표시, 예외 처리 등을 구현했습니다.

작은 앱이지만 위치 기반 기능을 개발하면서 필요한 권한 처리, 지도 연동, 네트워크 예외 처리, Google Play 배포 과정 등을 경험할 수 있었습니다.

앞으로도 지도어때를 비롯한 생활 편의 앱들을 계속 보완하면서, 사용자가 부담 없이 사용할 수 있는 광고 없는 앱으로 다듬어 가겠습니다.

조그만 기술로 세상을 이롭게

반응형