HaeruBuddy — 갯벌·해안 안전 파트너 상세 설계서
상태: CURATED · ACTIVE 기술 스택: Flutter, Riverpod, drift(SQLite), MapLibre GL, geolocator, flutter_compass, Supabase 카테고리: Mobile App
1. 문제와 대상 사용자
갯벌과 갯바위에서는 물이 들어오는 속도를 체감하기 어려워, 빠져나올 시점을 놓치면 고립됩니다. HaeruBuddy는 밀물 시각을 미리 알리고 현재 위치와 방향을 잡아 주는 것을 첫 번째 목적으로 합니다. 대상은 갯벌 체험·해안 낚시처럼 조석의 영향을 직접 받는 활동을 하는 사용자입니다.
2. 핵심 기능
| 기능 | 설명 |
|---|---|
| 밀물 알람 | 조위 관측소 기준 물때를 계산해 빠져나올 시각을 미리 알림 |
| 생존 나침반 | 시야가 나쁠 때 진입 지점 방향을 유지하도록 방위를 표시 |
| 위치 공유 | 동행자끼리 현재 위치를 공유해 이탈을 확인 |
3. 기술 선택 이유
- Flutter: 단일 코드베이스로 iOS·Android를 함께 다루기 위해 선택했습니다.
- drift(SQLite): 통신이 끊기는 해안 환경을 전제로, 물때와 구역 데이터를 오프라인에서 조회할 수 있게 로컬에 둡니다.
- MapLibre GL + 공개 구역 데이터: 낚시 가능·금지 구역, 해양보호구역 같은 경계를 지도 위에 표시합니다.
- 백그라운드 서비스 · 로컬 알림: 앱을 보고 있지 않아도 알람이 도달해야 의미가 있습니다.
4. 현재 범위
- 조위 관측소 코드와 해안 구역(낚시 가능·금지, 해양보호구역, 공중화장실) 데이터셋을 적재한 상태입니다.
- 웹 아카이브에서는 개인·위치 데이터 없이 핵심 화면과 사용 흐름만 시연합니다. 실제 계정·위치·동행자 정보는 사용하지 않습니다.
5. 알려진 한계
- 안전 보조 도구이며 공식 안전 안내를 대체하지 않습니다. 실제 대피 판단은 현장 안내와 기상·조석 정보를 우선해야 합니다.
- 위치 정확도는 기기 GPS와 해안 지형에 영향을 받고, 나침반은 자기 간섭에 영향을 받습니다.
- 위치 공유는 동행자 간 신뢰를 전제로 하며, 배터리와 통신 상태에 따라 갱신이 지연될 수 있습니다.
6. 다음 검증
- 시연용 합성 데이터 세트 구성 및 실제 위치 참조 제거 확인
- 위치·알림 권한 고지와 데이터 처리 범위를 지원 페이지에 반영