지역화폐 가맹점 지도 kakao map api와 Cursor로 만들기

https://www.xn--hq1bj85a5xcba399jnud.info/

소개

저번에는 Softr와 Airtable을 연동해 지역화폐 가맹점 지도를 만들었습니다. 하지만 사용자가 보기 좋은 UI를 만들기가 생각보다 어려웠고, 특히 Map API 연동에 제약이 많았습니다. 그래서 더 나은 사용자 경험을 제공하기 위해 UI 위주 툴인 v0, Lovable, Stitch를 활용해 디자인을 먼저 해보고, 최종 결과물을 Cursor로 옮겨 개발을 이어갔습니다.

진행 방법

🛠 사용한 도구

  • v0 / Lovable / Stitch: UI 설계와 비교용으로 사용

  • Cursor: 실제 개발 및 API, DB 연동 작업 진행

  • Kakao Map API: 지도 표시

  • Kakao Rest API: 주소 -> 좌표 변환

  • Supabase: 지역화폐 가맹점 데이터 저장

🔧 주요 작업 흐름

  • UI를 다양한 도구(Lovable, v0, Stitch)로 시도하고, 가장 보기 좋은 결과를 Cursor로 가져옴

  • Cursor에서 Kakao Map API 키를 연결해 지도를 띄우고 기능 개선

  • 가맹점 CSV 데이터를 Supabase에 업로드

  • Kakao의 Geocoding API를 별도로 사용해 주소를 좌표로 변환

우선 UI 툴에 입력할 프롬프트를 GPT에게 요청했습니다.

Google Maps Korea
다음은 Lovable, Stitch, v0와 같은 UI 디자인 툴에서 **지역화폐 가맹점 검색 지도 서비스**를 위한 UI 디자인을 요청할 때 사용할 수 있는 명확하고 구체적인 프롬프트입니다:

---

## 📌 **UI 디자인 요청 프롬프트 (한글)**

**프로젝트 목적**
국내 여행자들이 지역화폐를 사용하는 가맹점을 지도에서 쉽게 찾고, 가맹점 정보를 직관적으로 확인할 수 있는 모바일 우선 웹서비스 제작.

**필요한 화면 구성**

1. **메인 화면 (지도 기반)**

   * Naver Map, Google Map과 유사한 레이아웃 (제공된 사진 참고)
   * 전체 화면의 70% 이상을 차지하는 지도 영역
   * 지도 위에 가맹점 위치를 나타내는 직관적이고 깔끔한 마커 디자인 필요
   * 왼쪽 또는 상단에 위치 검색 및 필터 기능 제공

     * 검색 필터: 지역(시·군), 업종(카페, 식당, 숙박 등), 키워드
     * 검색창 입력 즉시 결과 업데이트 및 지도에 표시
   * 사용자가 지도의 마커 클릭 시 해당 가맹점 간략 정보(이름, 업종, 평점 등) 표시 팝업 또는 사이드 패널 디자인
   * 상세정보 클릭 유도를 위한 버튼 제공 ("상세 보기")

2. **가맹점 상세 정보 화면 (별도 화면 또는 팝업)**

   * 가맹점의 상세정보 (상호명, 주소, 전화번호, 영업시간, 간단한 소개 등)
   * 외부 리뷰 사이트(네이버, 구글, 카카오)로 이동할 수 있는 버튼 또는 링크 제공
   * 모바일 화면에서도 직관적이고 빠르게 정보를 확인할 수 있는 간결한 레이아웃 필수

**참고할 디자인 예시**

* 제공된 첨부 이미지 (Naver Map, Google Map) 스타일 참고
* 전체적으로 깔끔하고 직관적인 디자인 (색상은 여행 또는 가성비 소비 느낌 강조)

**최종 디자인 활용 계획**

* 디자인을 export 하여 Bubble.io 플랫폼으로 임포트해 개발 예정
* 프론트엔드: Bubble.io, 지도 API: Kakao Maps API, 데이터 출처: 공공데이터포털

**추가 요구사항**

* UI는 모바일 화면에서의 최적화를 반드시 우선 고려할 것
* 불필요한 복잡한 요소 배제, 최소한의 탭과 버튼으로 높은 직관성 유지
* 디자인 Export 시 Bubble.io와 호환 가능한 포맷으로 제공 (SVG, PNG, 컬러코드 등)

---

## 📌 **UI 디자인 요청 프롬프트 (영문 버전 - 필요 시)**

```
Objective:
Design a mobile-first web app for finding local merchants accepting regional currency, providing an intuitive map-based search interface.

Screen Requirements:
1. Main Screen (Map-based):
   - Similar UI layout as Naver Map or Google Map (refer to attached screenshots).
   - Large interactive map (covering at least 70% of the screen).
   - Clear markers indicating merchant locations.
   - Search bar with filters (location, business category, keyword).
   - Clickable map markers showing brief merchant info (name, category, rating), and "View Details" button/link.

2. Merchant Detail Screen:
   - Merchant's detailed info (name, address, phone, hours, description).
   - Links or buttons redirecting to external review pages (Naver, Google, Kakao).

Design Reference:
- Attached screenshots (Naver Map, Google Map) style.
- Clean, intuitive, minimal design focusing on usability.

Implementation Plan:
- UI will be exported and integrated into Bubble.io.
- Frontend: Bubble.io, Map API: Kakao Maps, Data Source: Korea public data portal.

Additional Requirements:
- Mobile-optimized layout must be prioritized.
- Export design assets compatible with Bubble.io (SVG, PNG, color codes).
```

---

이 프롬프트로 명확한 가이드를 제공하면,
UI 디자인 툴에서 원하는 결과를 효율적으로 얻으실 수 있을 것입니다.

추가적인 내용이 필요하면 말씀해주세요!

google map과 naver map 사진을 참고 이미지로 제공하고, 한글 프롬프트로 요청한 결과입니다.

영어 프롬프트와 큰 차이는 없었습니다.

lovable

지도를 보여주는 한국 앱의 스크린 샷

V0

한국어 버전의 스크린 샷

Stitch는 기본 모드에서는 이미지를 첨부할 수 없고 좌측 상단에서 Experimental Mode로 변경하면 이미지를 1개 첨부할 수 있습니다.

단어 스티치가있는 화면의 스크린 샷

결과

Google 검색 한국 - 스크린 샷

Lovable과 V0는 요청한 기능을 잘 표현해줬지만 stitch는 뭔가 제가 사용법을 잘 모르는 것인지 만족스럽지 못한 결과가 나왔습니다.

V0가 더 모바일에 친화적인 UI를 제공한 것 같아 V0에서 만들어준 UI를 code로 받아서 cursor에게 넘겨주고 GPT에서 지금까지 대화한 내용을 요약하고, 요약한 내용을 기반으로 PRD 문서와 브랜드맵을 만들어서 cursor에게 본격적인 "해줘"를 시작합니다.

진행 과정

초기에 cursor를 F드라이브에 설치했는데 경로 설정에 문제가 생길 수 있을까봐

cursor 삭제 후 C드라이브에 재설치 -> 한글 이름의 폴더 안에 위치하고 있어서 경로를 찾는 문제 발생 -> 영어 이름의 폴더로 옮겨 다시 개발 요청

Kakao map api key를 제공하고 ui와 연동 요청 -> Kakao Devlopers에 localhost:3000 도메인 등록록

임의로 지정한 가맹점 위치를 사용해서 짜잘한 UI 기능, 오류 수정

-> 지역화폐 가맹점 데이터 CSV 파일 supabase에 업로드 -> 업로드 과정에서 primary columns에 가맹점 이름을 설정하였는데 중복값이 있어 업로드 실패 -> 순번 입력으로 해결

웹 사이트 설정의 스크린 샷

-> supabase 연동을 위해 프로젝트 URL, API key 제공하고 연동을 시도하였는데 실패 -> 테이블의 정확한 이름과 schema를 제공하고, 위 사진 상단의 RLS 설정을 끄고 다시 시도하여 성공

-> 실제 가맹점의 이름은 나오기 시작했지만 엉뚱한 위치에 마커가 찍혀있음 -> kakao developers에서 REST API를 사용해 (주소->좌표) 변환(Geocode) 기능을 사용해야 하는 것을 확인하고 관련 정보를 cursor에게 제공하여 해결

그것에 빨간 핀이있는 도시지도
한국의 도시 위치를 보여주는지도

지금은 임시로 데이터베이스의 상위 500개 가맹점만 한번에 좌표를 받아오는데 최초 실행시 로딩이 오래걸려서 검색할 때 좌표를 받아오고 데이터베이스에 저장해서 로딩 속도를 줄여보는 것을 고려하고 있습니다.

추가로 공공데이터에 입력 되어있는 정보와 일치해야 검색 결과를 불러오는데 특정 키워드별로 데이터를 구분할 수 있는 방법이 있는지 확인해봐야 할 것 같습니다.

예를 들면 "빵집" 이라는 키워드를 검색하였을 때, 베이커리, 제과점, 카페 등이 검색 필터링에 걸려야 할 것 같은데 데이터를 어떻게 가공해야 할지 모르겠네요.

결과와 배운 점

  • 개발자가 아니어도 Cursor로 원하는 기능을 구현할 수 있다는 자신감을 얻었어요 💪

  • Supabase에 데이터를 올릴 때, 중복된 가맹점 이름을 primary key로 지정해 실패했던 경험 → 순번 추가로 해결

  • 처음엔 Cursor에서 Kakao Map API로 지도를 잘 띄우는 줄 알았는데, Geocode 변환은 별도 REST API가 필요하다는 걸 몰라 한참 헤맸습니다 😵

  • 이상하다는 느낌이 들었을 때 공식 문서를 다시 확인하는 습관의 중요성을 크게 느꼈습니다

도움 받은 글

오프 모임에서 Michelle Yu 님께서 잘 알려주셔서 시도해볼 수 있었습니다 감사합니다 ^^


💬 하고 싶은 게 있다면 일단 Cursor에게 말해보세요. "해줘." 😄

3
1개의 답글

👉 이 게시글도 읽어보세요