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

발행: (2026년 2월 9일 오전 06:00 GMT+9)
6 분 소요
원문: Dev.to

Source: Dev.to

Cover image for I Built BreakFinder: Personalized Surf Forecasts + Full Garmin Ecosystem

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 아키텍처
  • 예측 알고리즘
  • 제가 다르게 할 것
  • 솔로 개발자로서 구축하기

이야기해요! 🏄‍♂️

Back to Blog

관련 글

더 보기 »

Good Code의 조용한 죽음

‘Good Code™’란 무엇인가? Good Code는 읽고 이해하기 쉬운 코드이다. 개발하고 유지보수하기에 즐겁다. 특정한 이유를 위해 존재한다—그리고 n...

좋은 코드의 조용한 죽음

저는 경력을 시작하기 전부터, 중학생 시절 어릴 때부터 “Good Code™”를 작성하는 데 열정을 가지고 있습니다. “Good Code”란 무엇인가…