최근 공공데이터를 활용해서 여행 관련 정보를 간단하게 조회할 수 있는 앱 근처여행어때를 개발했습니다.
근처여행어때는 현재 위치 또는 사용자가 입력한 지역을 기준으로 주변 여행지, 정원/자연 명소, 축제/행사 정보를 조회하는 생활형 여행 정보 앱입니다.
복잡한 회원가입이나 별도 서버 없이 앱에서 바로 공공데이터 API를 호출하는 구조로 만들었고, 누구나 쉽게 근처 여행 정보를 확인할 수 있도록 구성했습니다.
1. 앱 개발 목적
여행 앱은 많지만, 막상 가까운 곳에 어떤 여행지가 있는지 빠르게 확인하려고 하면 생각보다 번거로운 경우가 많습니다.
그래서 이번 앱은 다음 목적을 기준으로 개발했습니다.
- 내 현재 위치 주변의 여행지를 바로 조회
- 지역명을 입력해서 해당 지역 주변 여행지 확인
- 정원, 자연공원, 수목원, 숲길 등 자연 명소 별도 조회
- 지역과 월을 선택해서 축제/행사 정보 확인
- 상세 정보와 지도 앱 연결 지원
- 오류가 발생해도 앱이 종료되지 않도록 안정성 보완
앱 이름은 기능을 직관적으로 알 수 있도록 근처여행어때로 정했습니다.
2. 개발 환경
이번 앱은 C# .NET MAUI 기반으로 개발했습니다.
.NET MAUI는 하나의 C# 코드로 Android, iOS, Windows 등 여러 플랫폼 앱을 만들 수 있는 개발 프레임워크입니다.
이번에는 우선 Android 앱 출시를 목표로 개발했으며, 화면 구성은 XAML, 기능 처리는 C# Code Behind 방식으로 구현했습니다.
개발 구성은 다음과 같습니다.
- 개발 언어: C#
- 개발 프레임워크: .NET MAUI
- 화면 구성: XAML
- 대상 플랫폼: Android
- 데이터 연동: 공공데이터포털 OpenAPI
- 서버/DB: 사용하지 않음
- 지도 연결: 외부 지도 앱 실행 방식
초기에는 서버와 DB 없이 단순하고 가볍게 동작하는 구조를 목표로 했습니다.
3. 앱 화면 구성
근처여행어때는 하단 탭 방식으로 구성했습니다.
주요 탭은 다음과 같습니다.
1) 내 주변
현재 GPS 위치 또는 입력한 지역명을 기준으로 주변 여행지를 조회합니다.
예를 들어 창원, 해운대, 경복궁, 여수처럼 지역명이나 장소명을 입력하면, 해당 위치를 찾은 후 그 좌표를 기준으로 10km 이내 여행지를 조회합니다.
또한 현위치 조회 버튼을 누르면 휴대폰 GPS 기준으로 주변 여행지를 바로 조회합니다.
2) 정원/자연
정원, 자연공원, 수목원, 식물원, 숲, 휴양림, 습지 등 자연 중심의 장소를 조회하는 화면입니다.
기본 조회 방식은 내 주변과 동일합니다.
- 입력 위치 기준 조회
- 현재 GPS 기준 조회
- 10km 이내 결과 조회
조회 결과 중에서 자연 관련 키워드를 기준으로 한 번 더 필터링해서 정원/자연 명소 중심으로 보여주도록 구성했습니다.
3) 축제/행사
축제/행사는 지역, 년도, 월을 선택해서 조회할 수 있도록 구성했습니다.
예를 들어 다음과 같은 조건으로 조회할 수 있습니다.
- 전국 / 2026년 / 10월
- 부산 / 2026년 / 10월
- 경남 / 2026년 / 4월
전국을 선택하면 지역 조건 없이 전체 축제/행사를 조회하고, 특정 지역을 선택하면 해당 지역 코드 기준으로 조회합니다.
4) 안내
앱 사용 방법, 데이터 출처, IT만물상 바로가기, Copyright 정보를 표시하는 안내 화면입니다.
4. 사용한 공공데이터 API
근처여행어때에서 사용한 핵심 API는 한국관광공사 TourAPI 국문 관광정보 서비스입니다.
주요 호출 API는 다음과 같습니다.
기능사용 API설명
| 입력 위치 찾기 | searchKeyword2 | 입력한 지역명/장소명으로 관광 정보를 검색하고 좌표를 확인 |
| 내 주변 여행지 조회 | locationBasedList2 | 위도/경도 기준 반경 내 관광정보 조회 |
| 정원/자연 조회 | locationBasedList2 | 위치 기반 조회 후 자연 관련 키워드로 필터링 |
| 축제/행사 조회 | searchFestival2 | 행사 시작일/종료일, 지역 조건 기준 축제 조회 |
이번 앱은 별도의 자체 DB를 만들지 않고, 앱에서 API를 호출한 뒤 응답 데이터를 바로 화면에 표시하는 방식으로 구성했습니다.
5. API 호출 구조
앱의 기본 API 호출 흐름은 다음과 같습니다.
사용자 입력 또는 GPS 위치 확인
↓
위도/경도 좌표 확보
↓
한국관광공사 TourAPI 호출
↓
JSON 응답 파싱
↓
목록 화면에 표시
↓
상세보기 또는 지도 앱 연결
입력 위치 조회의 경우는 한 단계가 더 있습니다.
지역명 입력
↓
searchKeyword2 호출
↓
검색 결과 중 좌표가 있는 항목 선택
↓
locationBasedList2 호출
↓
10km 이내 여행지 표시
예를 들어 사용자가 해운대를 입력하면 먼저 searchKeyword2로 해운대 관련 관광정보를 찾고, 그 결과의 좌표를 기준으로 다시 locationBasedList2를 호출해서 주변 여행지를 가져오는 구조입니다.
6. 위치 기반 조회 방식
내 주변 여행지 조회는 locationBasedList2 API를 사용했습니다.
주요 파라미터는 다음과 같습니다.
mapX: 경도
mapY: 위도
radius: 조회 반경
arrange: 정렬 조건
numOfRows: 조회 건수
pageNo: 페이지 번호
MobileOS: OS 구분
MobileApp: 앱 이름
serviceKey: 인증키
_type: json
이번 앱에서는 반경을 10km로 설정했습니다.
radius = 10000
이렇게 하면 현재 위치 또는 입력 위치 기준으로 10km 이내의 관광 정보를 조회할 수 있습니다.
7. 정원/자연 조회 처리
TourAPI에는 관광지 정보가 다양하게 포함되어 있습니다.
정원/자연 탭에서는 위치 기반으로 관광지를 조회한 뒤, 다음과 같은 키워드를 기준으로 자연 관련 장소만 추려서 표시했습니다.
정원
공원
자연
수목원
식물원
생태
숲
휴양림
산림
국립공원
도립공원
군립공원
둘레길
탐방
습지
이 방식은 서버나 별도 DB 없이도 자연 명소 중심으로 결과를 보여줄 수 있다는 장점이 있습니다.
다만 키워드 기반 필터이기 때문에 모든 자연 명소를 완벽하게 분류하는 것은 아닙니다. 향후에는 분류체계 코드나 자체 태그 정보를 활용해서 정확도를 높일 수 있습니다.
8. 축제/행사 조회 방식
축제/행사는 searchFestival2 API를 사용했습니다.
사용자가 지역, 년도, 월을 선택하면 해당 월의 시작일과 마지막 날짜를 계산해서 조회합니다.
예를 들어 2026년 10월을 선택하면 다음처럼 요청합니다.
eventStartDate = 20261001
eventEndDate = 20261031
부산을 선택한 경우에는 지역 코드도 함께 전달합니다.
lDongRegnCd = 26
전국을 선택한 경우에는 지역 코드를 전달하지 않고 전체 기준으로 조회합니다.
9. 지도 앱 연결
조회 결과에는 지도 버튼을 넣었습니다.
지도 버튼을 누르면 앱 내부에서 별도 지도를 구현하지 않고, 휴대폰에 설치된 외부 지도 앱을 실행합니다.
Android에서는 다음과 같은 geo: URI 형식을 사용했습니다.
geo:위도,경도?q=위도,경도(장소명)
이 방식은 별도 지도 SDK를 붙이지 않아도 되고, 사용자가 평소 사용하는 지도 앱을 바로 활용할 수 있다는 장점이 있습니다.
10. 오류 처리와 안정성 보완
공공데이터 API를 사용하는 앱은 네트워크 상태나 인증키, 제공기관 응답 상태에 따라 오류가 발생할 수 있습니다.
그래서 이번 앱에서는 다음 상황을 중점적으로 처리했습니다.
- 네트워크 오류
- 응답 지연
- API 인증키 오류
- JSON 파싱 오류
- 위치 권한 거부
- GPS 위치 확인 실패
- 조회 결과 없음
- 지도 앱 실행 실패
오류가 발생해도 앱이 강제로 종료되지 않고, 사용자에게 팝업 메시지로 안내하도록 처리했습니다.
특히 출시 전 테스트에서는 위치 권한을 거부하거나 네트워크가 불안정한 상황에서도 앱이 종료되지 않는지 확인했습니다.
11. 앱 아이콘과 스플래시 이미지
Google Play 등록을 위해 앱 전용 아이콘과 그래픽 이미지도 별도로 만들었습니다.
앱 아이콘은 여행, 위치, 자연, 축제 이미지를 연상할 수 있도록 구성했습니다.
또한 앱 실행 초기 로딩 화면에서도 기본 MAUI 이미지가 아닌 근처여행어때 전용 이미지를 사용했습니다.
Google Play 등록용 이미지도 다음 기준에 맞춰 준비했습니다.
- 앱 아이콘: 512 x 512px
- 그래픽 이미지: 1024 x 500px
- 휴대전화 스크린샷
- 7인치 태블릿 스크린샷
- 10인치 태블릿 스크린샷
12. 개발하면서 느낀 점
공공데이터를 활용하면 생각보다 빠르게 실용적인 앱을 만들 수 있습니다.
특히 여행정보처럼 전국 단위 데이터가 필요한 경우, 자체적으로 데이터를 수집하고 관리하는 것은 쉽지 않습니다.
하지만 한국관광공사 TourAPI를 활용하면 관광지, 축제, 숙박, 음식점, 문화시설 등 다양한 정보를 OpenAPI 형태로 조회할 수 있어 앱 개발 초기 단계에서 매우 유용합니다.
다만 실제 앱으로 출시하려면 단순히 API를 호출하는 것만으로는 부족합니다.
다음 부분이 중요했습니다.
- API 키 관리
- 응답 오류 처리
- 위치 권한 처리
- 네트워크 장애 대응
- 조회 결과 없음 처리
- 사용자 화면 구성
- Google Play 이미지와 설명 자료 준비
결국 앱 개발은 기능 구현뿐 아니라, 사용자가 오류 상황에서도 불편하지 않게 사용할 수 있도록 다듬는 과정이 중요하다는 것을 다시 느꼈습니다.
13. 마무리
근처여행어때는 공공데이터를 활용해서 만든 간단한 여행 정보 앱입니다.
현재 위치나 입력한 지역을 기준으로 주변 여행지, 정원/자연 명소, 축제/행사를 빠르게 확인할 수 있도록 구성했습니다.
앞으로는 다음 기능도 추가할 수 있을 것 같습니다.
- 즐겨찾기 기능
- 여행 코스 자동 구성
- 날씨 정보 연동
- AI 기반 여행지 추천
- 가족/연인/아이와 함께 가기 좋은 장소 추천
- 방문자수 기반 인기 여행지 추천
공공데이터와 모바일 앱을 잘 조합하면 생활에 도움이 되는 작은 앱을 빠르게 만들 수 있습니다.
조그만 기술로 세상을 이롭게.
'조그만 기술로 세상을 이롭게 > 근처여행어때' 카테고리의 다른 글
| Near Travel – Discover Beautiful Places in Korea Around You (0) | 2026.06.23 |
|---|---|
| 국토부 제공 공공데이터 종류 및 특징 정리 (0) | 2026.06.23 |
| 근처여행어때 비공개 테스트 진행 중입니다 (0) | 2026.06.22 |