이번 단계에서는 Taxi Driver App에 화장실 지도 기능을 추가했다.
택시 운행 중에는 쉬는 시간이나 화장실 위치를 빠르게 확인해야 하는 상황이 생길 수 있다.
그래서 단순한 급여 계산기 기능에서 끝나는 것이 아니라, 실제 택시기사에게 도움이 될 수 있는 부가 기능으로 화장실 지도 기능을 만들어보기로 했다.
이번 작업의 핵심은 네이버맵 API를 적용하고, 지도 위에서 화장실 정보를 확인하거나 직접 등록할 수 있는 구조를 만드는 것이었다.

1. 네이버맵 API 적용
먼저 네이버 클라우드 플랫폼에서 네이버맵 API 키를 발급받았다.
발급받은 키를 Codex가 안내한 위치에 넣었고, 기본적인 지도 화면이 표시되는 것까지 확인했다.
처음 완성된 화면은 아주 기본적인 디자인이었다.
지도는 표시되었고, 화장실 정보를 등록하는 화면도 만들어졌지만, 실제로 사용하기에는 부족한 부분이 많았다.
기능적으로는 지도 기능이 시작된 단계였지만, 아직 사용자가 편하게 쓸 수 있는 형태는 아니었다.
2. 처음 구현된 화장실 등록 방식의 문제
가장 먼저 이상하다고 느낀 부분은 화장실 등록 방식이었다.
처음 구현된 화면에서는 화장실을 등록할 때 사용자가 위도와 경도를 직접 텍스트로 입력해야 했다.
하지만 실제 사용자가 화장실을 등록하면서 위도와 경도를 직접 입력하는 일은 거의 없다.
예를 들어 어떤 화장실을 등록하려고 할 때, 사용자는 보통 주소를 검색하거나 지도에서 위치를 클릭한다.
그런데 위도와 경도를 직접 입력하라고 하면 사용자는 먼저 좌표를 따로 찾아야 하고, 입력 과정에서 실수할 가능성도 높아진다.
그래서 이 방식은 실제 앱으로 사용하기에는 적절하지 않다고 판단했다.
3. 주소 검색 또는 지도 클릭 방식으로 변경 요청
Codex에게 화장실 등록 방식을 다시 수정해달라고 요청했다.
핵심은 다음과 같았다.
| 기존 방식 | 변경 요청 |
|---|---|
| 위도·경도를 텍스트로 직접 입력 | 주소 검색으로 위치 선택 |
| 사용자가 좌표를 직접 찾아야 함 | 지도에서 클릭하면 위도·경도 자동 입력 |
| 입력 실수 가능성 높음 | 선택한 위치를 기반으로 좌표 저장 |
즉, 사용자가 직접 좌표를 입력하는 것이 아니라,
주소를 검색하거나 지도에서 위치를 클릭하면 그 위치의 위도·경도값을 받아오는 방식으로 바꾸는 것이 목표였다.
이 부분은 단순한 UI 수정이 아니라, 실제 사용성을 크게 바꾸는 부분이었다.
지도 기능이 들어간 앱이라면 위치 정보 입력은 최대한 자연스러워야 한다.
사용자가 좌표를 알고 있어야만 등록할 수 있는 구조라면, 기능이 있어도 실제로 쓰기 어렵다.
4. 지도 확대/축소 기능 확인
지도 기능에서 또 하나 중요하게 확인한 부분은 줌 기능이었다.
지도는 단순히 표시되는 것만으로는 부족하다.
사용자가 주변 위치를 확인하거나 특정 장소를 자세히 보려면 확대와 축소가 자연스럽게 되어야 한다.
그래서 Codex에게 지도 확대/축소가 가능하도록 확인하고 수정해달라고 요청했다.
지도 기능은 화면에 표시되는 순간보다, 실제로 사용자가 움직이고 확대하고 위치를 찾는 과정에서 사용성이 드러난다.
이번 단계에서는 지도가 단순 이미지처럼 보이는 것이 아니라, 실제 지도처럼 조작될 수 있도록 만드는 것이 중요했다.
5. 좋아요/싫어요 기능 수정
화장실 상세 화면에는 좋아요와 싫어요 기능도 추가했다.
처음에는 단순히 버튼을 누르면 숫자가 증가하는 방식에 가까웠다.
하지만 이런 방식은 한 사용자가 여러 번 클릭할 수 있는 문제가 있다.
그래서 좋아요와 싫어요는 계정당 1회만 클릭 가능하도록 변경했다.
또 다시 같은 버튼을 누르면 취소되는 토글 방식으로 바꾸었다.
| 동작 | 변경 후 방식 |
|---|---|
| 좋아요 클릭 | 좋아요 1회 반영 |
| 좋아요 다시 클릭 | 좋아요 취소 |
| 싫어요 클릭 | 싫어요 1회 반영 |
| 싫어요 다시 클릭 | 싫어요 취소 |
| 같은 계정 반복 클릭 | 중복 반영 방지 |
이렇게 바꾸면 사용자 반응 데이터가 더 신뢰할 수 있는 형태가 된다.
단순히 클릭 수만 늘어나는 방식보다, 계정 기준으로 반응을 제한하는 방식이 실제 서비스에 더 적합하다고 판단했다.
6. 댓글 작성, 수정, 삭제 기능 추가
화장실 상세 화면에는 댓글 기능도 추가했다.
단순히 위치만 보여주는 것보다, 실제 사용자의 후기가 있으면 정보의 활용도가 더 높아질 수 있다.
예를 들어 화장실이 실제로 사용 가능한지, 깨끗한지, 운영 시간이 맞는지 같은 정보는 지도 정보만으로는 알기 어렵다.
이런 부분은 사용자의 댓글을 통해 보완할 수 있다.
그래서 화장실 상세 화면에서 다음 기능을 추가하도록 요청했다.
- 댓글 작성
- 댓글 수정
- 댓글 삭제
이 기능이 들어가면서 화장실 지도는 단순 위치 표시 기능에서 조금 더 커뮤니티적인 정보 기능으로 확장되었다.
7. 주소 검색에서 발견한 문제
주소 검색 기능을 확인하던 중, 실제 존재하는 주소가 검색되지 않는 문제가 있었다.
예를 들어 천중로 56-6을 검색했지만 원하는 결과가 나오지 않았다.
이 부분은 단순한 코드 문제일 수도 있고, 네이버맵 API의 검색 방식이나 주소 데이터 처리 방식과 관련된 문제일 수도 있다.
그래서 주소 검색 기능은 단순히 입력창만 만드는 것으로 끝낼 수 없다는 것을 알게 되었다.
실제 주소가 검색되는지, 도로명 주소와 지번 주소를 모두 처리할 수 있는지, 검색 결과가 없을 때 사용자가 직접 지도에서 위치를 선택할 수 있는지까지 고려해야 했다.
이 과정에서 주소 검색과 지도 클릭 방식을 함께 제공하는 것이 더 안정적이라고 판단했다.
8. 공공데이터 기반 화장실 마스터 정보 준비
화장실 정보를 사용자가 직접 등록하는 것만으로는 데이터가 부족할 수 있다.
그래서 기본 데이터로 사용할 수 있는 화장실 마스터 정보가 필요했다.
이를 위해 공공데이터를 찾아보았고, 다음과 같은 곳에서 CSV 파일을 다운로드했다.
| 데이터 출처 | 목적 |
|---|---|
| 공공데이터포털 | 전국 단위 공중화장실 데이터 확보 |
| 경기데이터드림 | 경기도 지역 화장실 데이터 확보 |
| 서울열린데이터광장 | 서울 지역 화장실 데이터 확보 |
다운로드한 CSV 파일은 그대로 사용하기 어렵기 때문에 정제가 필요했다.
컬럼명이 다르거나, 주소 형식이 다르거나, 위도·경도 정보가 없는 경우도 있을 수 있다.
따라서 Codex에게 데이터를 정제하고 앱에 넣을 수 있는 형태로 가공하도록 요청했다.
이번 단계에서는 단순히 화면을 만드는 것뿐만 아니라, 실제 서비스에 필요한 기초 데이터를 준비하는 작업도 함께 진행했다.
9. Codex와 티키타카하며 기능을 구체화한 과정
이번 화장실 지도 기능은 한 번에 완성된 것이 아니었다.
처음에는 네이버맵 API를 연결하고 기본 화면을 만드는 수준이었다.
하지만 직접 사용해보면서 부족한 부분이 계속 보였고, 그때마다 Codex에게 원하는 방향을 구체적으로 다시 요청했다.
이번에 Codex와 주고받으며 수정한 내용은 다음과 같다.
| 수정 요청 | 목적 |
|---|---|
| 지도 줌 기능 확인 | 실제 지도처럼 조작 가능하게 만들기 |
| 위도·경도 직접 입력 제거 | 사용자가 좌표를 몰라도 등록 가능하게 만들기 |
| 주소 검색 기능 추가 | 주소 기반 위치 선택 가능하게 만들기 |
| 지도 클릭으로 좌표 선택 | 검색이 안 되는 주소도 직접 선택 가능하게 만들기 |
| 좋아요/싫어요 토글 처리 | 계정당 1회 반응만 반영 |
| 댓글 작성/수정/삭제 | 상세 정보 보완 |
| 공공데이터 CSV 정제 | 기본 화장실 데이터 확보 |
이번 과정에서 느낀 점은, AI에게 개발을 맡길 때도 사람이 원하는 기능을 계속 구체화해야 한다는 것이다.
처음 결과가 완벽하지 않더라도, 사용해보고 문제를 찾고, 다시 요청하고, 수정 결과를 확인하는 과정을 반복하면 원하는 형태에 가까워질 수 있었다.
10. Gemini를 활용한 디자인 수정
기능 구현이 어느 정도 끝난 뒤에는 Gemini에게 디자인 수정도 요청했다.
Codex가 기능 구현에 강점이 있다면, Gemini는 화면 구성이나 디자인 방향을 정리하는 데 활용할 수 있다고 판단했다.
처음 화면은 기능 중심으로 만들어져 있어서 다소 기본적인 느낌이 강했다.
그래서 버튼 배치, 상세 화면 구성, 정보 표시 방식 등을 더 보기 좋게 다듬는 방향으로 디자인 수정을 요청했다.
이번 작업에서는 AI 도구를 하나만 사용한 것이 아니라,
Codex는 기능 구현 중심으로, Gemini는 디자인 개선 방향을 잡는 데 활용했다.
이렇게 역할을 나눠서 사용하니 작업 흐름이 더 효율적이었다.
11. 이번 단계에서 완성된 부분
이번 Step 6에서는 화장실 지도 기능의 주요 흐름을 어느 정도 완성했다.
정리하면 다음과 같다.
- 네이버맵 API 적용
- 기본 지도 화면 구현
- 지도 확대/축소 확인
- 화장실 등록 기능 구현
- 주소 검색 또는 지도 클릭 기반 위치 선택 방식으로 개선
- 좋아요/싫어요 토글 방식 적용
- 댓글 작성/수정/삭제 기능 추가
- 공공데이터 기반 화장실 마스터 정보 준비
- Gemini를 활용한 디자인 개선 요청
처음에는 단순히 지도 하나를 붙이는 작업처럼 보였지만, 실제로는 생각보다 고려해야 할 부분이 많았다.
특히 위치 기반 기능은 사용자가 직접 입력하는 방식보다, 지도와 검색을 통해 자연스럽게 선택할 수 있는 구조가 훨씬 중요하다는 것을 느꼈다.
12. APK 공개 대신 시연 기록으로 남기기
이번 단계에서 앱 기능이 어느 정도 완성되었기 때문에, APK 파일을 블로그에 올릴지 고민했다.
하지만 아직 개인 개발 단계이고, 네이버맵 API 키나 테스트 데이터가 포함될 수 있기 때문에 APK를 공개적으로 배포하는 것은 적절하지 않다고 판단했다.
대신 블로그에는 기능이 동작하는 화면을 캡처하거나, 짧은 시연 영상 또는 GIF로 남기는 방식이 더 안전하다고 생각했다.
증거 자료로는 다음 화면을 남기면 충분할 것 같다.
| 자료 | 보여줄 내용 |
|---|---|
| 지도 메인 화면 | 네이버맵 API 적용 결과 |
| 화장실 마커 화면 | 지도 위 화장실 위치 표시 |
| 화장실 등록 화면 | 주소 검색 또는 지도 클릭 기반 등록 |
| 화장실 상세 화면 | 좋아요/싫어요, 댓글 기능 |
| 디자인 수정 후 화면 | Gemini를 활용한 UI 개선 결과 |
APK 파일을 직접 올리는 것보다, 이런 방식으로 기능 구현 결과를 기록하는 것이 블로그 글의 목적에도 더 잘 맞는다고 판단했다.
이번 단계에서 느낀 점
이번 Step 6을 진행하면서 지도 기능은 단순히 API를 연결하는 것에서 끝나지 않는다는 것을 느꼈다.
네이버맵 API를 적용하고 지도를 띄우는 것 자체는 시작에 불과했다.
실제로 사용자가 화장실을 등록하고, 위치를 찾고, 상세 정보를 확인하고, 반응을 남기는 흐름까지 생각해야 했다.
특히 위도와 경도를 직접 입력하는 방식은 개발 과정에서는 간단할 수 있지만, 실제 사용자 입장에서는 거의 사용할 수 없는 방식이었다.
이번에도 결국 중요한 것은 사용자의 입장에서 기능을 다시 보는 것이었다.
Codex는 내가 요청한 기능을 빠르게 구현해주었지만,
어떤 방식이 실제로 자연스러운지, 어떤 입력 방식이 말이 되는지, 어떤 기능이 더 필요한지는 사람이 판단해야 했다.
이번 화장실 지도 기능은 그런 점에서 AI와 계속 티키타카하며 원하는 형태로 다듬어간 작업이었다.
시리즈를 마무리하며
이번 Part 6을 끝으로 Taxi Driver App 개발 기록을 마무리하려고 한다.
처음에는 AI를 활용해 실제 앱을 어디까지 만들 수 있을지 확인해보고 싶었다.
단순히 코드를 자동으로 생성하는 수준이 아니라, 사람이 기획과 판단을 맡고 AI가 구현을 보조했을 때 어느 정도의 결과물이 나오는지 직접 확인하는 것이 목적이었다.
그 과정에서 급여 계산기 기능을 만들고, 입력값 검증과 UI 보정을 거쳤으며, 마지막으로 네이버맵 API를 활용한 화장실 지도 기능까지 구현해보았다.
완성도 측면에서 보면 아직 실제 서비스로 배포할 수준이라고 말하기는 어렵다.
하지만 개인 개발 기록으로는 충분히 의미 있는 결과였다고 생각한다.
이번 시리즈를 통해 가장 크게 느낀 점은 AI가 코드를 빠르게 만들어주더라도, 앱의 방향성과 완성도를 결정하는 것은 결국 사람이라는 점이다.
Codex는 기능 구현을 빠르게 도와주었고, Gemini는 디자인 개선 방향을 잡는 데 도움을 주었다.
하지만 어떤 기능이 필요한지, 어떤 입력 방식이 말이 되는지, 어떤 부분이 사용자에게 불편할지는 직접 사용해보고 판단해야 했다.
특히 위도와 경도를 직접 입력하도록 만든 초기 화장실 등록 방식은 기능적으로는 동작했지만, 실제 사용자 입장에서는 적절하지 않았다.
이처럼 AI가 만든 결과물은 그대로 받아들이기보다, 사람이 계속 검증하고 수정 방향을 제시해야 원하는 형태에 가까워졌다.
결국 이번 개발은 “AI가 앱을 대신 만들어준다”기보다는,
사람이 문제를 정의하고 AI와 티키타카하면서 결과물을 다듬어가는 과정에 가까웠다.
APK 파일을 공개적으로 배포하지는 않을 예정이다.
아직 개인 개발 단계이고, 네이버맵 API 키나 테스트 데이터가 포함될 수 있기 때문에 블로그에는 화면 캡처와 시연 기록 중심으로 남기려고 한다.
이번 시리즈는 여기서 마무리하지만, AI 개발 도구를 활용해 실제 문제를 해결해보는 실험은 계속 이어갈 생각이다.
다음에는 새로운 앱이나 다른 주제로, 이번 경험을 바탕으로 조금 더 명확한 기획과 검증 과정을 적용해보고 싶다.
'AI 개발 기록' 카테고리의 다른 글
| [Taxi Driver App] AI와 함께 만든 택시기사 앱 개발 기록 전체 목차 (0) | 2026.07.01 |
|---|---|
| [Taxi Driver App] 작은 보정이 앱의 완성도를 바꾸는 지점 - Part 5.5 (0) | 2026.06.27 |
| [Taxi Driver App] 계산은 됐지만, 제품은 아니었다 – Part 5 (0) | 2026.06.26 |
| [Taxi Driver App] Step 2~4를 연속 수행하며 앱이 형태를 갖추기 시작한 순간 – Part 4 (1) | 2026.01.28 |
| [Taxi Driver App] AI가 제안한 Step 1을 그대로 따라가 보니, 프로젝트를 시작할 수 있는 상태가 만들어졌다 - PART 3 (0) | 2026.01.24 |