제가 만든 BreakFinder: 맞춤형 서프 예보 + 전체 Garmin 생태계
Source: Dev.to

BreakFinder 만들기: 맞춤형 서핑 예보 + 전체 Garmin 통합
저는 서퍼들이 실제로 필요로 하는 무언가를 만들려고 노력했습니다. 오늘은 기술적인 여정을 공유하고, 잘 된 점과 다르게 했으면 하는 점을 이야기하려 합니다.
문제
저는 서퍼입니다. 예보를 계속 확인합니다. 하지만 문제는 이렇습니다:
A 6 ft beach break ≠ a 6 ft reef break
대부분의 예보 앱은 파도 크기와 바람 방향을 보여줍니다—멋지지만—그 파도가 your 실력 수준에 맞는지, 혹은 위험한 상황에 빠질지 알려주지는 않습니다. 그래서 저는 이를 해결하기 위해 두 달 동안 BreakFinder를 만들었습니다.
해결책: 세 가지 기둥
개인 맞춤 상태 점수
일반적인 예보 대신, BreakFinder는 다음을 기반으로 개인 맞춤 상태 점수를 제공합니다:
- 선호하는 파도 높이 범위
- 선호하는 풍향
- 선호하는 조류
- 선호하는 파주기
예시
- 예보: “6 ft 스웰, 15 kt 오프쇼어 바람”
- 내 앱: “🟢 오늘 당신에게 완벽합니다” (내가 중급자이고 4‑6 ft를 선호하기 때문에)
- 초보자에게: “🔴 레벨에 비해 너무 큽니다”
전체 Garmin 통합 (100+ 기기)
가장 어려운 부분이었습니다. 저는 Garmin 시계를 사용하고 정확한 세션 추적을 원했기 때문에 Garmin과 통합했습니다.
포함 내용
- 5개의 Connect IQ 앱 (Forecast, Session Tracker, Surf Skate Tracker, Watch Face, Breath Training)
- 파도 카운팅 (오늘 잡은 파도의 수)
- 세션 후 데이터 동기화가 BreakFinder 계정에 전송
어려웠던 이유
Garmin의 Connect IQ SDK는 강력하지만 문서가 부족합니다. 저는 다음을 해야 했습니다:
- 100개 이상의 다양한 시계 모델 지원 (각 모델마다 다른 기능 보유)
- 오프라인 기능 처리 (시계 저장 용량 제한)
- 배터리 수명 최적화 (시계 배터리를 소모하면 안 됨)
- 특정 기능을 지원하지 않는 기기용 대체 로직 구축
가치가 있었을까? 아마도.
실력 수준별 스팟 매칭
1 500개 이상의 스팟 데이터베이스에는 난이도 등급이 포함되어 있습니다. 여행을 계획할 때 다음과 같이 표시됩니다:
- 초보자 스팟: 부드러운 비치 브레이크
- 중급자: 약간 위험이 있는 리프
- 고급자: 강한 브레이크 (Sunset, Pipe 지역)
기술 스택
풀스택
- Rails 7 (API + 모놀리식)
- Hotwire (Turbo + Stimulus)
- PostgreSQL 사용자 데이터 및 스팟용
- Redis 예보 캐싱용
- 이벤트 기반 아키텍처
외부 서비스
- Garmin Connect IQ SDK (C++)
- OpenMeteo (첫 7일 예보 데이터)
- NOAA (8–16일 예보 데이터, 직접 겪은 고충을 블로그에 기록할 가치가 있음)
- Geocoder (Ruby gem)
- Leaflet (스팟 지도용)
DevOps
- Docker (개발 환경용)
- Hetzner + Kamal (매우 쉽고 저렴함)
- GitHub Actions (CI/CD용)
현재 지표 (2 개월 차)
- 5 000 다운로드 (Garmin IQ Store)
- 3.9★ 평점 (솔직한 리뷰; 100개 이상의 기기를 지원하므로 일부 quirks와 초기‑버전 문제(예: 파도 카운트 누락) 존재)
- 1 000+ 등록된 서퍼
What’s Next
Business Side (Launching Feb 2026)
저는 지역 가이드 운영자를 위한 마켓플레이스를 구축하고 있습니다.
- 소규모 서프 샵, 가이드, 팀이 스스로 등록할 수 있습니다
- 여행 서퍼들이 직접 찾아볼 수 있습니다
- 공정한 가격 (€19‑€299 /월, 비즈니스당, 알고리즘 함정 없음)
- 예약 플랫폼처럼 30 % 수수료가 없습니다
수익 모델: 개인 서퍼는 월 €5를 지불할 수 있고, 지역 비즈니스는 고객에게 다가가기 위해 월 €50‑200을 지불할 수 있습니다.
다른 솔로 개발자를 위해
- 깊이 이해하고 있는 틈새 시장을 선택하세요 (저는 서핑 중독자입니다)
- 초기에 하나의 지표에 집중하세요 (제 경우: Garmin 지원)
- 기술 여정에 대해 쓰세요 (단순히 마케팅 관점만이 아니라)
링크
질문이 있나요?
모든 댓글을 읽습니다. 다음에 대해 물어보세요:
- Garmin APIs
- Rails 아키텍처
- 예측 알고리즘
- 제가 다르게 할 것
- 솔로 개발자로서 구축하기
이야기해요! 🏄♂️