Product, engineering, and growth

Tangly를 만들며 쌓이는 기술과 제품의 기록

광고 시스템, 피부 분석 제품, 운영 도구를 만들며 배운 내용을 나중에도 다시 꺼내볼 수 있게 남깁니다.

Latest Build Log

Vercel production deploy connected
Advertiser portal alpha opened
Subdomain routing shipped
Business/2026.04.24/9 min read

AI 피부 관리 앱 안에 광고 수익 모델 만들기

피부 분석, 샵, 콘텐츠 흐름 안에서 광고주와 배너, 노출수, 클릭수를 연결해 Tangly의 첫 수익 기반을 만든 과정입니다.

AdsRevenueMetrics

Feature notes

기능별 개발 기록

Business

2026.04.24

9 min read

AI 피부 관리 앱 안에 광고 수익 모델 만들기

피부 분석, 샵, 콘텐츠 흐름 안에서 광고주와 배너, 노출수, 클릭수를 연결해 Tangly의 첫 수익 기반을 만든 과정입니다.

AdsRevenueMetrics

Debugging

2026.05.05

6 min read

GitHub 푸시 후 Vercel 배포가 Blocked가 되었을 때

커밋은 올라갔지만 Vercel 자동 배포가 막혔던 상황에서, GitHub 작성자와 프로젝트 권한을 확인해 해결한 기록입니다.

GitHubVercelDeployment

Writing

2026.05.04

5 min read

블로그를 제품 기억장치로 쓰기

나중에 다시 봤을 때 왜 그렇게 만들었는지 떠올릴 수 있도록 블로그를 개발 기록으로 남기기 시작했습니다.

BlogDocumentationProduct Memory

Debugging

2026.05.04

7 min read

서브도메인은 연결됐는데 /admin이 404였던 이유

blog, ad, nacho 서브도메인을 나누는 과정에서 Vercel 404와 앱 내부 라우팅 문제를 구분해 해결한 기록입니다.

SubdomainRouting404

Debugging

2026.05.03

8 min read

도메인은 연결됐는데 접속이 거부될 때

tangly.kr과 www 도메인을 Vercel에 붙이며 DNS, 네임서버, SSL 발급 대기 상태를 구분해 해결한 기록입니다.

DNSSSLDomain

Infrastructure

2026.05.02

8 min read

Vercel과 서브도메인으로 서비스 입구 나누기

tangly.kr 아래에 관리자, 광고주, 블로그를 각각 다른 서브도메인으로 분리한 배포 기록입니다.

VercelDNSSubdomain

Debugging

2026.05.01

7 min read

배포는 성공했는데 화면이 안 뜰 때 환경변수부터 보기

Vercel 배포는 Ready였지만 관리자와 API가 기대처럼 동작하지 않았을 때, 환경변수를 하나씩 맞춰 해결한 기록입니다.

Environment VariablesProductionSupabase

Debugging

2026.04.30

6 min read

Vercel 빌드에서 next: command not found가 났을 때

GitHub 연동 배포 첫 시도에서 Next.js 실행 파일을 찾지 못해 실패했던 원인과, 프로젝트 설정을 다시 잡은 과정을 정리했습니다.

VercelBuildNext.js

Operations

2026.04.29

4 min read

광고 위치를 운영자가 이해하는 말로 바꾸기

내부 코드명으로 관리하던 광고 위치를 한글 드롭다운으로 바꿔 운영 실수를 줄인 과정입니다.

UXAdminAds

Analytics

2026.04.27

7 min read

광고주가 직접 확인하는 대시보드

광고주가 자신의 배너 목록, 노출수, 클릭수, CTR을 확인할 수 있는 별도 포털을 만든 기록입니다.

AdvertiserDashboardCTR

Infrastructure

2026.04.16

9 min read

Tangly가 Expo, Next.js, Vercel, Supabase를 쓰는 이유

모바일 앱과 운영 도구를 동시에 빠르게 만들기 위해 우리가 선택한 기술 스택과 각 도구가 Tangly에 맞았던 이유를 정리했습니다.

ExpoNext.jsVercelSupabase

AI

2026.04.08

8 min read

해외 시장을 위한 AI 모델 전략

한국 중심의 AI 피부 분석을 글로벌 사용자에게 확장하기 위해 언어, 지역, 모델 등급, 비용 정책을 어떻게 나눠갈지 정리했습니다.

GlobalAI ModelLocalization

Infrastructure

2026.04.02

6 min read

한국과 글로벌 시장을 나눠서 생각하기

콘텐츠와 광고, 샵 데이터를 시장별로 다룰 수 있게 market과 locale 흐름을 만든 이유를 정리했습니다.

LocaleMarketGlobal

AI

2026.03.18

7 min read

AI 개인화를 위해 사용자 기억을 쌓기

한 번의 분석 결과를 넘어서 최근 리포트 흐름, 주의 태그, 관심 포커스를 기억해 더 개인적인 피부 관리 문장을 만드는 과정입니다.

PersonalizationAI MemoryRetention

AI

2026.03.12

8 min read

AI 비용을 줄이기 위한 캐시와 모델 정책

AI 분석 품질을 유지하면서도 호출 비용을 줄이기 위해 리포트 캐시, 모델 등급, 지역별 정책을 나눠 적용한 기록입니다.

AI CostCacheModel Policy

AI

2026.03.07

9 min read

AI 피부 리포트가 만들어지는 흐름

사진, OX 응답, 추천 데이터, 사용자 프로필을 모아 Tangly의 AI 피부 코치 리포트를 생성하는 과정을 정리했습니다.

AI ReportSkin AnalysisOpenAI

Engineering

2026.03.04

8 min read

리포트 랩으로 분석 품질을 점검하기

피부 분석 결과가 안정적으로 생성되는지 확인하기 위해 리포트 랩과 통계 화면을 만든 기록입니다.

ReportQualityAI

Operations

2026.02.18

5 min read

푸시 알림을 조심스럽게 운영하기

사용자에게 다시 돌아올 이유를 전달하기 위해 푸시 등록과 관리자 발송 흐름을 만든 기록입니다.

PushRetentionAdmin

Product

2026.02.06

8 min read

큐브 지갑으로 보상 흐름 만들기

앱 안에서 미션, 소비, 환불, 거래 내역을 다룰 수 있는 큐브 지갑의 첫 구조를 만든 기록입니다.

CubeRewardWallet

Product

2026.02.03

7 min read

주간 루틴 체크로 관리 습관 만들기

분석 결과를 일회성으로 끝내지 않고 사용자의 주간 관리 습관으로 이어가기 위한 루틴 기능 기록입니다.

RoutineWeeklyHabit

Commerce

2026.01.14

7 min read

샵 검색과 상품 탐색의 첫 구조

상품 목록, 검색어, 카테고리, 할인 화면을 통해 Tangly의 커머스 탐색 흐름을 만든 기록입니다.

ShopSearchProducts

Commerce

2026.01.11

7 min read

세일 알림을 콘텐츠처럼 관리하기

샵 경험을 강화하기 위해 세일 알림 카테고리와 이벤트를 나누고, 운영자가 직접 관리할 수 있게 만든 과정입니다.

ShopSale AlarmCommerce

Product

2026.01.08

6 min read

미션 기능으로 사용자의 첫 행동 만들기

사용자가 앱에 들어온 뒤 무엇을 하면 좋을지 안내하기 위해 미션 기능을 만들고 관리 화면을 붙인 기록입니다.

MissionsEngagementOnboarding

Operations

2026.01.06

6 min read

이벤트를 앱 안에서 유연하게 운영하기

이벤트 목록, 이미지, 노출 기간, 활성 상태를 관리하며 앱 콘텐츠를 더 빠르게 바꾸기 위한 흐름을 정리했습니다.

EventsContentAdmin

Product

2026.01.04

7 min read

홈과 샵을 위한 배너 관리 시스템

홈, 샵, 스트립, 케어 영역에 들어가는 배너를 운영자가 직접 등록하고 순서를 조정할 수 있게 만든 과정입니다.

BannerCMSMobile

Operations

2026.01.02

8 min read

운영자가 직접 관리하는 첫 관리자 콘솔

앱 운영에 필요한 배너, 이벤트, 미션, 알림을 코드 수정 없이 다루기 위해 관리자 콘솔을 만든 기록입니다.

AdminBackofficeOperations

Product

2025.12.24

6 min read

데일리 고민과 OX로 사용자 상태 이해하기

사용자의 피부 고민과 간단한 응답을 통해 개인화의 재료를 모으기 시작한 기록입니다.

Daily ConcernProfile OXPersonalization

Product

2025.12.21

7 min read

피부, 트러블, 눈가 분석을 나눠서 다루기

피부 분석을 하나의 결과로 뭉치지 않고 관심사별 분석 경험으로 나눈 이유를 정리했습니다.

SkinTroubleEye Wrinkle

Product

2025.12.20

5 min read

프로필은 사용자의 작은 소유감이다

닉네임과 프로필 사진을 수정할 수 있게 만들며 사용자에게 자기 공간의 감각을 주려 했던 기록입니다.

ProfileIdentityMobile

Product

2025.12.19

7 min read

추천 기능의 첫 버전은 설명 가능해야 한다

피부 분석과 루틴 데이터를 바탕으로 추천을 만들 때, 결과보다 이유를 먼저 생각한 기록입니다.

RecommendationPersonalizationUX

Debugging

2025.12.18

6 min read

Expo와 Next.js를 같이 둘 때 lint와 asset 타입을 맞추기

초기 모바일 앱과 웹 앱이 같은 저장소 안에 있을 때 lint, 이미지 컴포넌트, 폰트/이미지 타입 선언을 정리한 기록입니다.

ExpoLintTypeScript

Product

2025.12.17

6 min read

퍼스널 컬러를 가벼운 진입 기능으로 두기

피부 분석보다 부담이 낮은 퍼스널 컬러 경험을 통해 사용자가 Tangly에 쉽게 들어오도록 만든 기록입니다.

Personal ColorOnboardingBeauty

Product

2025.12.16

6 min read

주간 리포트와 아카이브 흐름 만들기

사용자가 자신의 변화를 이어서 볼 수 있도록 주간 리포트와 보관 흐름을 만든 이유를 정리했습니다.

Weekly ReportRetentionArchive

Debugging

2025.12.15

6 min read

추천 API가 sessionId를 못 찾던 문제

분석 세션 추천 API에서 동적 라우트 파라미터가 비어 보이던 상황을 URL 기반 보조 파싱으로 해결한 기록입니다.

RecommendationAPIRoute Handler

Debugging

2025.12.13

7 min read

Storage 업로드는 됐는데 photos insert가 실패했던 문제

파일은 올라갔지만 photos 테이블 기록이 남지 않던 상황에서, 서버 전용 키와 id 생성 책임을 정리한 기록입니다.

SupabaseDatabaseUpload

Engineering

2025.12.10

8 min read

분석 세션을 제품의 중심 흐름으로 만들기

사진 업로드부터 분석 결과, 추천, 리포트까지 이어지는 흐름을 하나의 세션 단위로 묶어간 기록입니다.

AnalysisSessionPipeline

Engineering

2025.12.09

6 min read

이미지 업로드를 여러 기능의 기반으로 만들기

분석 사진, 배너 이미지, 이벤트 이미지처럼 여러 기능이 의존하는 업로드 흐름을 안정화한 기록입니다.

UploadImageStorage

Debugging

2025.12.09

7 min read

이미지 업로드가 실패할 때 테스트 페이지부터 만든 이유

초기 Supabase Storage 업로드가 조용히 실패하던 문제를 업로드 테스트 페이지와 자세한 에러 응답으로 좁혀간 기록입니다.

SupabaseUploadDiagnostics