엔지니어링 노트

지속 가능한 앱 개발을 위한 환경

이미 나간 앱들도 계속 돌아가야 하고, 심사를 계속 통과해야 하고, 열어볼 만한 상태로 남아야 합니다. 앱이 열 개일 때도 백 개일 때도요.

2026-09-02 갱신 · iOS · macOS · 안드로이드 · 웹

01구성

워크스페이스 하나에 여섯 개 도메인이 있고, 앱은 각각 자기 저장소를 씁니다. 공용 코드와 배포 레인, 규약은 특정 앱에 속하지 않고 따로 관리합니다.

네 플랫폼에 걸쳐 약 120개가 라이브입니다. iOS는 공용 레인 하나로 출시하고, 안드로이드는 Flutter 모노레포에서 나갑니다.

도메인별 프로젝트 수169
안드로이드 (Flutter)
114
iOS
30
웹 서비스
13
게임 (LÖVE)
9
macOS
3

워크스페이스 안의 프로젝트 디렉터리 기준, 2026-09-02 집계. 실제 스토어에 올라간 수는 이보다 적습니다. 만들어두고 아직 제출하지 않은 것이 있습니다.

유지 비용이 늘어나는 모양
앱마다 복사했을 때기반을 하나만 뒀을 때
관리에 드는 손 →낸 앱 수 →혼자 감당할 수 있는 선

02공유와 개별

앱마다 다시 만들 이유가 없는 것들 — 결제, 분석, 리뷰 요청, 다국어, 개인정보 처리 — 은 공용 패키지에 있습니다. 한 번 고치면 그걸 쓰는 앱 전부에 반영됩니다.

반대로 사람이 실제로 보는 쪽은 공유하지 않습니다. 기능, 화면을 짜는 디자인 시스템, 그래픽, 그 앱만의 콘텐츠는 앱마다 따로 만듭니다. 백엔드도 같은 원칙이라 앱마다 자기 서버를 두고 공통부만 모듈 하나에서 가져옵니다.

앱마다아무것과도 공유하지 않음
기능
디자인 시스템
그래픽
콘텐츠
공용결제분석리뷰 요청다국어개인정보

전부 아래에 같은 코드가 있습니다.

03출시

출시 한 번은 빌드, 스크린샷, 26개 언어 메타데이터, 제출까지입니다. 전부 브라우저가 아니라 스토어 공식 API로 처리합니다.

앱마다 배포 스크립트를 두지 않고 공용 레인 하나를 씁니다. 앱별 값은 다시 적지 않고 이미 그 값을 들고 있는 파일에서 읽습니다. 사람이 하는 건 두 단계뿐입니다. 실기기에서 확인하는 것과, 출시 버튼을 누르는 것.

01
빌드
서명과 버전까지
02
스크린샷
필요한 크기 전부
03
메타데이터
26개 언어
04
제출
브라우저 아니고 API로
사람
출시
사람이 누릅니다
사람이 하는 단계
실기기 확인
시뮬레이터는 코드가 도는지까지만 알려줍니다. 제스처가 어색한지, 실제 기기에서 레이아웃이 깨지는지는 알려주지 않습니다
출시
스토어 승인은 허락이지 일정이 아닙니다. 빌드는 손으로 출시할 때까지 대기합니다

04측정

키워드 순위는 앱별·국가별로 매일 쌓아 시계열로 봅니다. 사용 이벤트는 자체 수집기로 받아, 같은 제품의 iOS와 안드로이드를 한 줄로 봅니다.

키워드 순위
검색에 걸리는가, 어떤 말로?
앱·국가별 · 서버에서 매일 스냅샷
획득과 광고
광고비 대비 수익이 어떤가?
스토어와 AdMob에서 매일 수집
앱 안에서의 행동
설치 다음에는 무엇을 하는가?
자체 수집기 · 사내 SaaS에서 집계

05인프라

인하우스 서비스는 전부 Docker 이미지로 올립니다. 키워드 순위 집계, 사용 분석, 광고 지표 수집, 리포트, 에셋 생성용 GPU 작업, 그리고 그 전부를 조작하는 관리 콘솔까지 같은 방식입니다. 서비스 하나가 이미지 하나라 옮기고 되살리는 단위도 서비스 하나이고, 새로 하나 붙이는 것도 같은 절차입니다.

빌드와 배포는 CI가 처리하고, 서버 상태는 계속 수집해 이상이 생기면 알림이 옵니다.

공통 기술 스택
Go 1.26chiReact 19TypeScriptViteTailwind CSSTanStack QueryDocker
Docker 이미지로 도는 것들
리버스 프록시관리 콘솔ASO·리포트트렌드 수집기광고 지표제휴 링크커머스 연동LLM 게이트웨이콘텐츠 생성GPU 에셋 생성데이터베이스

06에이전트와 규약

반복되는 작업은 에이전트가 돌립니다. 출시 절차, 26개 언어 메타데이터 갱신, 정책이 하나 바뀌었을 때 앱 전체를 훑는 일 같은 것들입니다.

에이전트가 따르는 내용은 스킬로 적혀 있습니다. 스킬 44개와 에이전트 27개가 대상 코드와 같은 저장소에서 버전 관리되고, 도메인마다 있는 규약 파일이 그 도메인 전체에 걸리는 규칙을 담습니다. 스토어에서 한 번 걸렸던 동작도 여기에 단계로 남습니다.

work/
CLAUDE.md도메인마다 하나 — 프롬프트보다 이게 우선입니다
.claude/skills/일마다 적어둔 절차
ios-releaseios-paywallios-testweb-saas-bootstraplove-bootstrap+39 more
.claude/agents/그 절차를 실행하는 쪽
pentarab-routermac-appboard-builderweb-infra-admin-backend+24 more