프로젝트 소개2026.10 - 현재개발 중비연 · 1인 개발

숨길달린 길과 사진·추억이 쌓이는 러닝 기록 앱

숨길은 2026년 10월부터 개발 중인 러닝·기록 앱입니다. GPS 경로와 거리, 사진과 메모를 개인 기록으로 남기고 원하는 내용을 친구와 공유합니다. Flutter 앱과 TypeScript/Hono API를 연결하고, 기기 내 기록 보관과 업로드 재시도, 비공개 저장 및 공개 위치 숨김을 구현하고 있습니다. 정식 출시는 준비 중입니다.

프로젝트 소개

숨길은 2026년 10월부터 개발 중인 러닝·기록 앱입니다. GPS 경로와 거리, 사진과 메모를 개인 기록으로 남기고 원하는 내용을 친구와 공유합니다. Flutter 앱과 TypeScript/Hono API를 연결하고, 기기 내 기록 보관과 업로드 재시도, 비공개 저장 및 공개 위치 숨김을 구현하고 있습니다. 정식 출시는 준비 중입니다.

역할
서비스 기획, Flutter 앱·API 개발, 기록 동기화와 지도·사진·공유 구현
형태
비연 · 1인 개발
상태
개발 중

프로젝트 화면

개발 중인 화면이며 예시 러닝 기록이 포함되어 있습니다.

숨길 개발 화면에 표시된 달린 거리와 사진·장소 기록 예시
개발 화면 · 러닝 기록과 사진·추억 예시
숨길에서 예시 러닝 경로와 거리를 이미지로 공유하는 미리보기
개발 화면 · 예시 기록의 공유 미리보기

개발·운영 이력

  1. 숨길 개발 시작

    Flutter 앱과 API를 연결해 러닝 기록·사진·공유 흐름을 개발하고 있습니다.

  2. GPS 지도와 경로 성장 기능 구현

    GPS 구간별 날짜 누적과 지도 표식, 공개 범위·위치 숨김을 앱·API에 연결했습니다. 해당 기능은 운영 배포 전입니다.

구현한 기능

  • GPS 기반 러닝 경로·거리 기록과 건강 앱 기록 가져오기
  • 사진·메모와 장소별 기록, 월별 추억 카드와 공유 이미지
  • 기기 내 기록·사진 사본·초안 보관, 동기화 및 사진별 재시도
  • 기본 비공개 저장, 친구 공유와 공개 경로의 위치 숨김
  • GPS 경로 구간에 달린 날짜를 누적하는 지도 성장 기능

사용 기술

Flutter 앱에 Riverpod와 Drift를 사용하고, TypeScript/Hono API를 Firestore·비공개 Storage와 연결했습니다.

모바일 앱

언어·프레임워크

Dart

Flutter 앱의 학습·러닝 화면과 기기 내 기록 처리를 구현하는 언어입니다.

Flutter

iOS와 Android 앱 화면 및 기기 기능 연동을 함께 구성했습니다.

상태·로컬 저장

Riverpod

숨길의 앱 상태와 기록·지도 화면의 데이터 흐름을 관리합니다.

Drift

운동 기록과 전송 대기 작업을 기기 내 SQLite에 보관합니다.

백엔드

언어·프레임워크

TypeScript

프론트엔드와 Node.js 백엔드에서 타입 안정성을 확보하고 API 계약 변경을 추적하기 위해 사용했습니다.

Hono

숨길의 계정·기록·사진·공유 요청을 TypeScript API로 처리합니다.

서버 저장소

Firestore

계정별 기록과 동기화 상태를 서버에서 저장하고 관리합니다.

Cloud Storage

사진 파일을 비공개 저장소에 보관하고 API의 접근 검증과 연결합니다.

지도·배포

서비스

Naver Map

숨길에서 GPS 경로와 장소·성장 표식을 지도 위에 표시합니다.

Vercel

프로젝트 요구사항과 기존 구조에 맞춰 사용했습니다.

구조와 개선

기록 저장과 사진 전송을 분리하고 기기 내 데이터와 전송 대기 작업을 보존하도록 구성했습니다.

  • Flutter·Riverpod: 러닝·지도·기록 화면과 앱 상태 관리
  • Drift: 운동 기록·초안·사진 사본 및 전송 대기 작업을 로컬 저장
  • TypeScript·Hono API: 계정·세션 검증과 기록·사진·친구 공유 요청 처리
  • Firestore·비공개 Cloud Storage: 서버 기록과 사진 접근 권한 관리
  • 네이버 지도: GPS 경로와 장소·성장 표식 표시
  • 전송 대기 작업: 오프라인·부분 업로드 실패를 보존하고 재시도 시 중복 처리 방지

성과와 회고

  • 운동 기록 저장과 사진 업로드의 성공 여부를 독립적으로 관리해, 통신 실패에도 기록과 원본 사진을 보존하는 구조를 만들었습니다.
  • 사진·메모의 기본 비공개와 공개 경로의 위치 숨김을 함께 다루며 친구 공유 범위를 사용자가 선택하도록 구성했습니다.
  • 코드 구현, 내부 테스트 배포, 실외 GPS 검증과 정식 출시를 서로 다른 단계로 관리합니다. 현재 소개 이미지는 예시 데이터를 사용하는 개발 화면입니다.