1인 개발로 낚시 지도 서비스를 만들고 있습니다. 이번 개발일지는 지도에서 '한 번 클릭했을 때 무엇을 보여줄 것인가'라는, 사소해 보이지만 두 번이나 다시 손대게 된 문제에 대한 기록입니다.
👋 오늘의 개발 근황
7월 중순 두 주 동안 DanFish 작업의 대부분은 지도 클릭 패널 한 곳에 몰렸습니다. 7월 14일에 클릭 동작을 새로 설계해 배포했고, 나흘 뒤인 18일에 그 설계가 만든 빈틈을 다시 메웠습니다. 같은 날 커뮤니티 화면 라이트 테마 개편도 운영에 반영되면서, 한 주 사이에 배포가 세 번 나갔습니다.
기능을 새로 얹는 것보다 이미 내보낸 결정을 되돌아보는 시간이 더 길었던 기간이었습니다.
🎯 이 프로젝트는 무엇인가
DanFish는 전국 낚시 포인트를 지도 위에 올리고, 각 지점의 기상과 조석 데이터를 묶어 그날의 낚시 여건을 점수로 보여주는 웹 서비스입니다. 현재 지도에 올라간 포인트는 2,100곳 남짓이고, 금어기와 금지구역도 함께 표시합니다.
데이터 수집은 별도 파이프라인이 주기적으로 돌면서 채우고, 화면은 그 결과를 지도 한 장에 눌러 담는 구조입니다. 사용자가 가장 오래 머무는 화면이 지도이기 때문에, 지도에서의 클릭 한 번이 서비스 경험의 대부분을 좌우합니다.
🛠️ 이번 주 뭐가 바뀌었나
- 지도 클릭 동작 재설계: 이전에는 클릭하면 가장 가까운 낚시터 상세가 자동으로 열렸습니다. 그런데 그 낚시터가 지도상 어디에 있는지 알 수 없다는 문제가 있었습니다. 그래서 클릭을 '클릭한 좌표 + 반경 1km 안의 낚시터 목록'을 보여주는 방식으로 바꿨습니다.
- 백엔드는 손대지 않았습니다. 반경 검색 API가 이미 있었기 때문에 프론트엔드에서 호출부만 새로 붙였고, 항목을 누르면 기존 상세 패널이 그대로 열리도록 연결했습니다.
- 지수 설명에 남아 있던 오래된 출처 표기를 걷어냈습니다. 예전에 쓰다가 정리한 외부 데이터가 문구에만 잔재로 남아 있던 경우였습니다.
- 나흘 뒤 정정: 1km 안에 낚시터가 없으면 '없습니다' 한 줄만 남고 클릭 지점의 낚시 정보까지 통째로 사라졌습니다. 목록을 보여주는 데만 집중하다 클릭 지점 자체의 정보를 빠뜨린 것이었습니다.
- 고쳐서, 반경 검색과 좌표 기준 조회를 동시에 던지고 한쪽이 실패해도 나머지는 살리도록 바꿨습니다. 이제 낚시터 유무와 상관없이 클릭 지점의 지수 카드와 그 지역 인기 어종이 항상 먼저 나옵니다.
- 커뮤니티 화면 라이트 테마 개편이 같은 날 운영에 반영됐습니다. 지도 영역과 건드린 파일이 겹치지 않아 병합 충돌 없이 합쳐졌습니다.
📸 화면으로 보는 변화
아래는 현재 운영 중인 지도 화면입니다. 날짜 탭으로 일주일치 예보를 넘겨볼 수 있고, 초록색 원은 지수 점수, 붉은 표식은 금지구역입니다. 우측 상단에는 이달의 어종 안내가 붙어 있습니다.
💭 만들면서 느낀 점
이번 정정에서 배운 건 기능을 바꿀 때는 무엇이 추가되는지보다 무엇이 조용히 사라지는지를 먼저 확인해야 한다는 것이었습니다. 14일 배포는 요구사항을 그대로 만족했고 빌드도 통과했지만, '낚시터가 없는 좌표'라는 경우를 화면으로 직접 열어보지 않았습니다. 목록이 비는 상황을 코드로는 처리했으면서 사용자가 그때 무엇을 보게 되는지는 상상하지 않은 셈입니다.
두 API를 병행 호출하도록 바꾸면서 한쪽 실패가 전체를 무너뜨리지 않게 만든 것도 같은 맥락입니다. 화면 하나가 여러 데이터에 의존하기 시작하면, 실패했을 때 무엇을 남길지가 곧 설계입니다.
혼자 만들면 배포 속도는 빠르지만 검토자가 없습니다. 그래서 요즘은 배포 후에 실제 화면을 직접 열어 클릭해 보는 시간을 일부러 확보하고 있습니다. 나흘이 걸린 이번 발견도 결국 화면을 눌러보다 나왔습니다.
🔗 직접 써보기
지도에서 아무 바다나 눌러보면 그 지점의 낚시 여건 점수와 반경 1km 안의 낚시터 목록을 함께 볼 수 있습니다. 회원가입 없이도 지도와 지수는 그대로 열립니다.
'단감의 개발일지' 카테고리의 다른 글
| 새 기능을 다 만들어놓고 배포를 미루는 이유 | 단여행 개발일지 7월 (0) | 2026.07.13 |
|---|---|
| 텅 빈 커뮤니티를 어떻게 채울까 | 낚시 앱 만드는 1인 개발자의 콜드스타트 고민기 (0) | 2026.07.10 |
| 낚시 지도앱 커뮤니티를 처음부터 다시 손본 한 주 | 1인 개발 근황 (0) | 2026.07.06 |
| 1인 개발 근황 | 부산 여행 AI가 '회의'와 '회'를 구분하기까지 (0) | 2026.07.03 |
| 반려견 산책 앱에 산책기록을 붙이다 | 1인 개발 단펫 6월 근황과 구글 정책의 벽 (0) | 2026.06.29 |