고민을 내려놓으면,
위로가 하나씩 쌓여요
익명으로 고민이나 소원을 원석으로 올리면, 다른 사람들이 위로의 말을 조약돌로 하나씩 얹어줍니다. 조약돌이 지정 개수에 도달하면 돌탑이 완결됩니다.
- 원석: 10~500자, 태그 1개 필수, 완결 조건 선택
- 조약돌: 10~300자, 1인 1원석 1조약돌
- 30일 후 자동 삭제 — 이야기에 생명주기를 부여
소중한 위로를
영원히 간직해요
전통 탁본(拓本)처럼 마음에 남는 글을 스냅샷으로 보관합니다. 원본이 삭제되어도 탁본은 사라지지 않습니다. 원석 작성자는 마음에 드는 조약돌에 쪽지를 끼워 감사를 전할 수 있습니다.
- 탁본: 원본 삭제 후에도 영구 보존
- 한지·화선지 느낌의 베이지 그라데이션 UI
- 쪽지: 조약돌에 첨부되는 단방향 감사 메시지
신뢰할 수 있는
익명의 공간
닉네임·프로필 없이 익명 캐릭터(쉐도우)로만 활동합니다. 조약돌 작성·출석 체크·탁본 받기로 선함 포인트를 쌓고, 커뮤니티 원칙을 함께 지킵니다.
- Apple App Store Guideline 1.2 (UGC Safety) 충족
- 콘텐츠 차단·사용자 차단·신고·이의 신청
- 만 19세 이상, 이메일·소셜 로그인(Apple·Google)
배경
“당신이 쌓은 돌 하나가 누군가의 하루를 버티게 합니다.”
길가의 돌탑 문화에서 영감을 받았습니다. 지나는 이마다 돌을 하나씩 얹으며 안녕을 빌었던 전통처럼, 사용자들이 익명의 공간에서 고민이나 소원을 내려놓고, 타인의 이야기 위에 위로를 얹을 수 있는 서비스를 만들었습니다.
SNS에는 자신을 드러내기 어렵고, 가까운 지인에게는 솔직하기 어려운 순간이 있습니다. 선함연구소를 창업하고, 이 간극을 해소하기 위해 완전한 익명성을 보장하면서도 진심 어린 위로가 오가는 커뮤니티를 기획·설계·개발·운영하고 있습니다.
2026년 3월 iOS App Store, Google Play에 정식 출시했습니다.
서비스 구조
돌들의 숲 (Turborepo 모노레포)
├── 웹 앱 (frontend) — 실제 앱 UI (React SPA)
├── 네이티브 쉘 (native) — iOS / Android WebView 하이브리드
├── 백엔드 (backend) — GraphQL API 서버
├── 랜딩 (landing) — 서비스 소개 · 다운로드 안내
└── 어드민 (admin) — 내부 운영 관리 도구네이티브 앱은 Expo WebView Shell로 앱스토어 배포를 담당하고, 실제 UI는 React 웹 앱이 렌더링합니다. 소셜 로그인·광고·추적 권한 등 네이티브 기능은 WebView 브릿지(window.nativeBridge)를 통해 웹 앱에 노출하며, 웹 앱 업데이트는 앱스토어 심사 없이 바로 배포할 수 있습니다.
핵심 은유 체계
| 서비스 용어 | 은유 | 의미 |
|---|---|---|
| 원석 | 마음에 담은 돌 | 사용자가 숲에 내려놓는 고민이나 소원 |
| 조약돌 | 함께 쌓아가는 작은 돌 | 원석에 올려놓는 위로·응원 답변 |
| 탁본 | 돌에 새긴 흔적을 종이에 옮기는 전통 | 인상 깊은 글의 영구 스냅샷 |
| 선함 | 쌓인 선한 행동들 | 활동으로 획득하는 포인트 단위 |
| 돌탑 완결 | 충분한 돌이 쌓인 탑 | 지정 개수 이상의 조약돌이 쌓인 상태 |
주요 기능
원석 · 조약돌 시스템
서비스의 핵심입니다. 사용자는 고민이나 소원을 원석으로 올리고, 다른 사용자가 위로·응원을 조약돌로 쌓아줍니다. 조약돌이 지정 개수에 도달하면 돌탑이 완결됩니다.
원석은 수정·삭제 없이 숨김 처리만 가능합니다. 진정성 있는 기록으로 남기기 위한 의도적인 설계입니다. 생성 후 30일이 지나면 자동 삭제되어 이야기의 생명주기를 만듭니다.
탁본 (Rubbing)
마음에 남는 글을 스냅샷으로 영구 보관합니다. 원본이 삭제되어도 탁본은 사라지지 않습니다. 한지·화선지 느낌의 베이지 그라데이션과 먹물 텍스트 효과로 아날로그 탁본의 정서를 디지털로 재현했습니다.
쪽지 끼워넣기
원석 작성자가 마음에 드는 조약돌에 감사·반응 메시지를 끼워 넣을 수 있습니다. 1:1 DM이 아니라 조약돌(콘텐츠)에 첨부되는 개념으로, 서비스의 익명성 원칙을 유지합니다. 두루마리 펼쳐지는 애니메이션과 종이 재질 텍스처 바텀시트로 표현됩니다.
선함 포인트 & 인앱결제
| 획득 행동 | 선함 |
|---|---|
| 조약돌 작성 | +1 |
| 내 글이 탁본됨 | +1 |
| 출석 체크 (1일 1회) | +1 |
획득한 선함으로 탁본 슬롯을 추가할 수 있습니다. 무과금 사용자도 모든 핵심 기능을 이용할 수 있도록 결제는 ‘후원’ 또는 ‘편의 가속’으로 포지셔닝했습니다.
완전 익명 운영
닉네임·프로필 사진 없이 익명 캐릭터(쉐도우)로만 활동합니다. 이메일 인증과 소셜 로그인(Apple·Google)을 지원하며, 계정 정보는 서비스 내부에서 노출되지 않습니다. 만 19세 이상만 가입 가능합니다.
인증 UX (Sticky Active Field)
iOS WebView에서 비 user-gesture 컨텍스트의 focus()가 무시되는 제약을 해결하기 위해, 단일 물리 input 엘리먼트를 step 간 재사용해 iOS 포커스 연속성을 확보했습니다. 활성 필드는 키보드 바로 위에 고정되고, 완료된 값은 마스킹 칩으로 누적됩니다.
안전 및 모더레이션
Apple App Store Guideline 1.2(UGC Safety)를 충족합니다. 콘텐츠 차단(발길질), 사용자 차단, 신고·이의 신청, 누적 신고 기반 자동 제재 단계를 갖추고 있습니다.
담당 역할 & 기여
- 전체 기획 및 아키텍처 설계 — 서비스 개념 수립부터 모노레포 구조·기술 스택 선정까지
- React 웹 앱 개발 — TanStack Router 기반 SPA, GraphQL + Relay 데이터 레이어, Three.js 3D 시각화
- Expo 네이티브 쉘 개발 — WebView 기반 iOS·Android 동시 배포, 소셜 로그인·AdMob·추적 권한 연동
- Cloudflare Workers 백엔드 개발 — GraphQL API 서버 구현 (Hono + GraphQL Yoga + Pothos)
- 데이터베이스 설계 — Prisma 스키마 설계 및 마이그레이션 관리
- 랜딩 페이지 개발 — Astro 기반 서비스 소개 및 앱 다운로드 안내
- 내부 어드민 개발 — 콘텐츠 관리·사용자 지원을 위한 운영 관리 도구
- 앱스토어 배포 및 운영 — iOS App Store, Google Play 출시 및 EAS 빌드 파이프라인 구성
기술 스택
| 레이어 | 기술 |
|---|---|
| 웹 앱 | React 19, Vite, TypeScript, TanStack Router, Relay, Tailwind CSS v4, Three.js |
| 네이티브 쉘 | Expo SDK 55, React Native, react-native-webview |
| 백엔드 | Cloudflare Workers, Hono, GraphQL Yoga, Pothos, Prisma |
| 데이터베이스 | Cloudflare D1 (SQLite) |
| 인프라 | Cloudflare (Workers, D1, KV, Durable Objects) |
| 이메일 | Resend |
| 랜딩 | Astro 5, Tailwind CSS |
| 모노레포 | Turborepo, Bun |
기술 선택 이유
- WebView 하이브리드 아키텍처: 소셜 로그인·광고·추적 권한 등 네이티브 기능은 Expo Shell이 담당하고, 앱 UI는 React 웹 앱이 렌더링합니다. 웹 앱 배포와 앱스토어 배포를 분리해 1인 운영에서도 빠른 이터레이션이 가능합니다.
- Cloudflare Workers: 서버 관리 부담 없이 글로벌 엣지 배포가 가능합니다. 콜드 스타트 없는 서버리스 환경으로 소규모 운영 비용을 최소화했습니다.
- Durable Objects: 서버리스 환경에서 WebSocket 실시간 구독(알림)과 분산 Rate Limiting을 상태 있는 DO 인스턴스로 처리했습니다.
- GraphQL + Relay: 데이터 의존성을 컴포넌트 레벨에서 선언해 오버페칭을 방지하고 타입 안전성을 극대화합니다. 클라이언트·서버 스키마를 단일 패키지(
graphql-schema)로 공유합니다. - Prisma + D1: 서버리스 환경에 최적화된 SQLite 기반 DB로, 마이그레이션 관리와 타입 안전한 쿼리를 지원합니다.
성과 & 수치
- 2026년 3월 iOS App Store, Google Play 정식 출시
- 백엔드·프론트·네이티브 독립 버전 관리로 웹 앱은 앱스토어 심사 없이 즉시 배포
- Cloudflare 서버리스 아키텍처로 서버 운영 비용 최소화
- 1인 개발·운영으로 기획부터 배포까지 전 사이클 담당