이미 나간 앱들도 계속 돌아가야 하고, 심사를 계속 통과해야 하고, 열어볼 만한 상태로 남아야 합니다. 앱이 열 개일 때도 백 개일 때도요.
2026-09-02 갱신 · iOS · macOS · 안드로이드 · 웹
워크스페이스 하나에 여섯 개 도메인이 있고, 앱은 각각 자기 저장소를 씁니다. 공용 코드와 배포 레인, 규약은 특정 앱에 속하지 않고 따로 관리합니다.
네 플랫폼에 걸쳐 약 120개가 라이브입니다. iOS는 공용 레인 하나로 출시하고, 안드로이드는 Flutter 모노레포에서 나갑니다.
워크스페이스 안의 프로젝트 디렉터리 기준, 2026-09-02 집계. 실제 스토어에 올라간 수는 이보다 적습니다. 만들어두고 아직 제출하지 않은 것이 있습니다.
앱마다 다시 만들 이유가 없는 것들 — 결제, 분석, 리뷰 요청, 다국어, 개인정보 처리 — 은 공용 패키지에 있습니다. 한 번 고치면 그걸 쓰는 앱 전부에 반영됩니다.
반대로 사람이 실제로 보는 쪽은 공유하지 않습니다. 기능, 화면을 짜는 디자인 시스템, 그래픽, 그 앱만의 콘텐츠는 앱마다 따로 만듭니다. 백엔드도 같은 원칙이라 앱마다 자기 서버를 두고 공통부만 모듈 하나에서 가져옵니다.
전부 아래에 같은 코드가 있습니다.
출시 한 번은 빌드, 스크린샷, 26개 언어 메타데이터, 제출까지입니다. 전부 브라우저가 아니라 스토어 공식 API로 처리합니다.
앱마다 배포 스크립트를 두지 않고 공용 레인 하나를 씁니다. 앱별 값은 다시 적지 않고 이미 그 값을 들고 있는 파일에서 읽습니다. 사람이 하는 건 두 단계뿐입니다. 실기기에서 확인하는 것과, 출시 버튼을 누르는 것.
키워드 순위는 앱별·국가별로 매일 쌓아 시계열로 봅니다. 사용 이벤트는 자체 수집기로 받아, 같은 제품의 iOS와 안드로이드를 한 줄로 봅니다.
인하우스 서비스는 전부 Docker 이미지로 올립니다. 키워드 순위 집계, 사용 분석, 광고 지표 수집, 리포트, 에셋 생성용 GPU 작업, 그리고 그 전부를 조작하는 관리 콘솔까지 같은 방식입니다. 서비스 하나가 이미지 하나라 옮기고 되살리는 단위도 서비스 하나이고, 새로 하나 붙이는 것도 같은 절차입니다.
빌드와 배포는 CI가 처리하고, 서버 상태는 계속 수집해 이상이 생기면 알림이 옵니다.
반복되는 작업은 에이전트가 돌립니다. 출시 절차, 26개 언어 메타데이터 갱신, 정책이 하나 바뀌었을 때 앱 전체를 훑는 일 같은 것들입니다.
에이전트가 따르는 내용은 스킬로 적혀 있습니다. 스킬 44개와 에이전트 27개가 대상 코드와 같은 저장소에서 버전 관리되고, 도메인마다 있는 규약 파일이 그 도메인 전체에 걸리는 규칙을 담습니다. 스토어에서 한 번 걸렸던 동작도 여기에 단계로 남습니다.