본문으로 건너뛰기
Hooney
English

제품 · 운영 중

Firstage

직접 창업한 Firstage에서 사진과 장소로 일상을 쌓는 Journey를 중심으로 여러 서비스와 그 서비스들이 함께 쓰는 모듈까지 혼자 기획하고 개발해 운영합니다.

166포토북 편집기에서 고를 수 있는 지면 레이아웃 수 (테마 10종)

기간
2025.05 ~ 현재
역할
Founder
Firstage 공개 홈페이지 첫 화면. 흩어진 사진들 사이에 'Your days, collected. Your stories, shared.'라는 제목이 있다.

핵심 가치

사진을 올리면 찍은 시각과 장소가 이어져, 흩어진 일상을 다시 찾고 가까운 사람과 나눌 수 있습니다.

성과

  • 사진 원본을 먼저 안전하게 저장하고, 미리보기와 촬영 장소 읽기 같은 무거운 작업은 뒤에서 따로 처리
  • AI가 지면 구성을 제안하고, 실제 배치는 늘 같은 결과를 내는 규칙이 맡는 포토북 편집기
  • 포토북 테마 10종과 지면 레이아웃 166개 제공
  • 웹은 운영 중이고, iOS 앱은 출시 전 내부 테스트 중

기술 스택

  • Next.js
  • React
  • TypeScript
  • Capacitor
  • NestJS
  • PostgreSQL
  • Drizzle ORM
  • BullMQ
  • Konva
  • MapLibre GL
  • Cloudflare Workers
  • Kubernetes

배경

Firstage는 개인과 커플, 가족이 찍은 사진과 다녀온 장소를 모아 일상을 다시 꺼내 보게 하는 서비스입니다. 외국인 대상 여행 콘텐츠 사이트로 시작해 광고와 SEO 유입을 실험한 뒤, 사진에서 장소, 피드, 공유 공간과 지도로 이어지는 흐름으로 제품의 중심을 옮겼습니다. 기획, 프론트엔드, 백엔드, 인프라와 운영을 제가 혼자 맡습니다.

결정과 구현

  • 사진 업로드는 원본을 먼저 저장하는 경로로 설계했습니다. 미리보기, HEIC 변환, EXIF와 역지오코딩은 BullMQ 워커가 뒤에서 처리해 무거운 후처리와 원본 보존의 책임을 나눴습니다.
  • 촬영 시각과 GPS를 타임라인, 장소 앨범, 지도 탐색으로 연결했습니다. 위치 정보가 없는 사진은 좌표를 지어내지 않고 별도 묶음으로 남깁니다.
  • 기록을 포토북과 인쇄물로 만드는 사업 방향에 맞춰 캔버스 편집 엔진을 직접 만들었습니다. AI가 계획과 편집 의도를 구조화해 돌려주면 좌표, 사진 배치, 도련과 DPI 판정은 결정론 엔진이 맡습니다. 편집 테마 10종과 레이아웃 166개를 배포했습니다.
  • 웹과 모바일이 같은 화면과 기능을 쓰도록 Next.js 웹에 Capacitor 모바일 셸을 연결했습니다. 네이티브 생명주기와 업로드 복구는 따로 다룹니다.
  • 2026년 9월에 프론트엔드를 Cloudflare Workers로, 백엔드를 직접 운영하는 Kubernetes(K3s)로 옮겼고 Prometheus와 Grafana로 상태를 봅니다.
  • AI 에이전트(Codex, Claude Code)와 함께 개발하는 방식을 저장소 안의 규칙, 스킬, 자동 검사로 만들었습니다. 외부 제출, 결제, 배포는 제가 승인합니다.

현재 상태

웹 서비스는 운영 중이고, iOS 앱은 TestFlight 내부 테스트 단계입니다. 인쇄 주문은 결제 연동까지 배포했지만 가맹 계약과 실물 검수 전이라 아직 열지 않았습니다.

Firstage 사진 화면. 휴대폰에 2026년 9월과 2025년 9월에 찍은 사진이 날짜별로 모여 있다.
Firstage 장소 화면. 지구본 지도 아래에 서울 종로에서 찍은 사진이 장소별로 모여 있다.
Firstage 공간 화면. 'Seoul at an Easy Pace' 공간에 여러 사람이 올린 사진과 댓글 수가 함께 보인다.
Firstage 기록 화면. 사진 아래에 'A slow day in Seoul'이라는 짧은 글과 댓글이 달려 있다.
Firstage 매거진 화면. 휴대폰과 웹에서 'A morning walk through Gyeongbokgung' 이야기를 사진과 글로 읽는다.
Firstage 포토북 화면. 경복궁 사진을 표지로 쓴 포토북 양옆에 고른 사진들이 떠 있다.