1 1 현재 서비스의 성장 상황 - 100-hours-a-week/KTB4-13th-wiki GitHub Wiki

1-1. 현재 서비스의 성장 상황

1. 서비스 성장 상황과 가설

1.1. 성장 전 상황

서비스 변화

V2에서는 기존 검색·AI 추천·주문·결제에 다음 기능이 추가됩니다.

  • 자연어 추천 후 추가 질문
  • 이미지 업로드를 통한 도서 인식
  • 리뷰 조회·작성·수정·삭제
  • 인식한 도서를 저장하고 조회하는 나의 도서관

사용자는 추천 결과를 확인하는 데서 끝나지 않고, 추천 도서 3권의 상세와 리뷰를 비교한 뒤 구매하거나 나의 도서관에 저장합니다. 이에 따라 한 번 방문했을 때 머무는 시간과 서버 요청 수가 V1보다 증가합니다.

현재 인프라

  • App EC2 t3.small 1대: Nginx, Backend, MySQL
  • AI EC2 t3.small 1대: AI Server, Vector DB
  • EC2별 Docker Compose 운영
  • 같은 역할을 대신할 서버 없음

팀 상황

  • 개발자 6명
  • 인프라 담당자 2명도 개발 병행
  • 서버 증가에 맞춰 운영 인력을 같은 비율로 늘리기 어려움

고려사항

  • 사용자 증가뿐 아니라 V2 기능 추가로 세션당 요청 수도 증가함
  • Backend와 DB, AI Server와 Vector DB가 각각 같은 EC2의 자원을 공유함
  • EC2 장애나 Recreate 배포 중에는 해당 역할의 처리 용량이 0이 됨
  • 서버를 늘리면 배포·상태 확인·장애 복구도 함께 자동화해야 함

1.2. 성장 가설

V1에서는 독서 커뮤니티 홍보를 통해 초기 가입자 약 900명을 확보하는 상황을 가정했습니다.

V2에서는 기존 커뮤니티 홍보에 추천 결과 공유, 검색 유입, 출판사 캠페인과 독서 모임 제휴가 추가됩니다. 초기 유입 채널을 확장하여 1년 차 누적 가입자 2만 명을 확보하고, 이후 서비스 인지도와 제휴 채널을 단계적으로 확대하는 성장 경로를 사용합니다.

장기적으로는 국내 대표 독서 플랫폼인 밀리의서재를 벤치마크하여 7년 차 목표 MAU를 100만 명으로 설정합니다. 밀리의서재는 2017년 서비스를 시작한 뒤 2024년 10월 MAU 100만 명을 넘겼습니다. 북적북적도 단기간에 같은 규모에 도달한다고 가정하지 않고, 약 7년에 걸친 장기 성장 및 인프라 설계 목표로 사용합니다. 밀리의서재 MAU 사례

한 명이 월평균 3일 방문한다고 보면 MAU 100만 명일 때 평균 DAU는 10만 명입니다. 또한 기존과 동일하게 누적 가입자의 40%가 MAU로 활동한다고 가정하면 목표 달성에 필요한 누적 가입자는 약 250만 명입니다. 자세한 근거와 계산은 2장에서 설명합니다.

1.3. 트래픽 가설

V2에서는 리뷰 조회, AI 추가 질문, 이미지 도서 인식과 나의 도서관 기능이 추가됩니다. 대표적인 검색·구매 세션은 백엔드 요청 약 15회이며, 사용자 증가와 저녁 시간 이용 집중을 반영한 7년 차 평상시 Peak Traffic은 약 625 RPS로 예상합니다.

다만 캠페인, 푸시 알림, 추천 결과 공유 등으로 요청이 순간적으로 몰릴 수 있으므로 인프라는 평상시 Peak의 2배인 약 1,250 RPS를 처리할 수 있도록 설계합니다. 요청 수와 이용 시간은 3장, Peak 계산은 4장에서 설명합니다.

2. 성장 후 사용자 규모

2.1. 성장 규모의 근거

밀리의서재는 개인화된 도서 추천과 독서 콘텐츠를 제공한다는 점에서 북적북적이 지향하는 서비스와 유사합니다. 모바일인덱스 자료에 따르면 밀리의서재의 MAU는 2024년 10월 100만 명을 넘었습니다. 따라서 북적북적도 장기적인 서비스 성장과 인프라 확장의 최종 기준을 MAU 100만 명으로 설정합니다. 밀리의서재 MAU 사례

MAU 100만 명은 출시 직후의 예상 규모가 아니라 추천 품질 개선, 콘텐츠 축적, 검색 유입 확대, 출판사 캠페인 및 독서 모임 제휴가 충분히 이루어진 이후의 장기 목표입니다. 이 목표를 사용해 현재의 단일 서버 구조가 어느 시점에 한계에 도달하는지 판단하고, 단계적인 확장 구조를 설계합니다.

2.2. 성장 경로

초기에는 독서 커뮤니티에서 사용자를 확보하고, 이후 추천 결과 공유, 검색 유입, 출판사 캠페인과 독서 모임 제휴로 유입 경로를 확대합니다.

이후에는 1년 차 누적 가입자 2만 명, 2년 차 8만 명, 3년 차 20만 명으로 성장한다고 가정합니다. 4년 차부터 검색 유입, 추천 결과 공유, 출판사 캠페인과 독서 모임 제휴가 본격적으로 확대되어 4년 차 50만 명, 5년 차 100만 명, 6년 차 175만 명, 7년 차 250만 명에 도달하는 경로를 사용합니다.

2.3. MAU와 DAU

V1과 같은 기준을 사용합니다.

  • MAU: 누적 가입자의 40%
  • 평균 이용일: 월 3일
  • 평균 DAU: MAU × 3 ÷ 30

MAU는 최근 30일 안에 검색, 추천, 상세·리뷰 조회, 도서관 저장 또는 구매 중 하나를 수행한 사용자입니다. V1에서는 Userpilot의 평균 사용자 활성화율 37.5%를 참고해 40%를 적용했습니다. 활성화율과 MAU는 같은 지표가 아니므로 트래픽 산정을 위한 초기값으로 사용하고, 출시 후 실제 30일 활동 사용자 비율로 교체합니다. Userpilot Product Metrics Benchmark

월 3일은 매일 사용하는 서비스보다 책을 찾거나 추천이 필요할 때 방문하는 서비스 특성을 반영한 값입니다.

MAU 1,000,000명 × 월평균 이용일 3일 ÷ 30일 = 평균 DAU 100,000명

시점 누적 가입자 MAU 평균 DAU 산정 기준
출시 첫 달 900명 360명 36명 V1 기준
1년 차 20,000명 8,000명 800명 초기 성장 검증
2년 차 80,000명 32,000명 3,200명 단계적 확장을 위한 중간 기준
3년 차 200,000명 80,000명 8,000명 초기 대규모 서비스 전환
4년 차 500,000명 200,000명 20,000명 검색·제휴 유입 확대
5년 차 1,000,000명 400,000명 40,000명 콘텐츠와 제휴 채널 확장
6년 차 1,750,000명 700,000명 70,000명 대규모 성장 단계
7년 차 목표 2,500,000명 1,000,000명 100,000명 밀리의서재 성장 기간·MAU 벤치마크
  • 출시 첫 달 → 1년 차: 누적 가입자 약 22.2배
  • 1년 차 → 2년 차: 누적 가입자 4배
  • 2년 차 → 3년 차: 누적 가입자 2.5배
  • 3년 차 → 4년 차: 누적 가입자 2.5배
  • 4년 차 → 5년 차: 누적 가입자 2배
  • 5년 차 → 6년 차: 누적 가입자 1.75배
  • 6년 차 → 7년 차: 누적 가입자 약 1.43배

4년 차 이후의 성장은 커뮤니티 홍보만으로 달성하는 것이 아니라 검색 유입, 추천 결과 공유, 출판사 캠페인, 독서 모임 제휴와 서비스 인지도 상승이 함께 작동하는 상황을 전제로 합니다.

3. 대표 사용자 행동과 요청량

화면 흐름에서 서버 처리가 필요한 행동을 요청 수에 포함하고, 단순 화면 이동과 이미지 촬영은 제외합니다.

3.1. 대표 사용자 흐름

유형 대표 사용자 흐름
일반 검색·구매 로그인 → 홈 → 검색·재검색 → 검색 결과 → 도서 3권 상세·리뷰 비교 → 장바구니 → 주문·결제
AI 추천·구매 로그인 → 홈 → 자연어 추천 → 추천 결과 → 추가 질문 → 도서 3권 상세·리뷰 비교 → 장바구니 → 주문·결제
리뷰 이용 로그인 → 검색 또는 AI 추천 → 도서 상세 → 리뷰 목록·상세 조회 → 리뷰 작성·수정·삭제
이미지 도서 인식 로그인 → 이미지 촬영·선택 → 업로드 → 도서 인식 → 결과 확인 → 나의 도서관 저장
나의 도서관 조회 로그인 → 마이페이지 → 나의 도서관 → 저장 도서 목록 → 도서 상세·리뷰 조회

3.2. 세션별 요청 수

  • 일반 검색·구매: 백엔드 약 15회
  • AI 추천·구매: 백엔드 약 16회, AI Server 약 3회
  • 리뷰 이용: 백엔드 약 10회, AI 요청 없음
  • 이미지 인식·도서관 저장: 백엔드 약 10회, AI Server 1회, S3 1회
  • 나의 도서관 조회: 백엔드 약 8회

전체 트래픽은 일반 검색·구매 흐름의 백엔드 요청 15회를 대표값으로 사용합니다.

로그인 1회 + 홈 1회 + 검색·재검색 2회 + 검색 결과 1회 + 도서 3권의 상세·리뷰 6회 + 장바구니 1회 + 주문·결제 2회 + 결제 결과 1회 = 15회

3.3. 사용자 한 명의 예상 이용 시간

일반 탐색: 약 20분

홈·검색 3분 → 결과 확인 2분 → 도서 3권 상세·리뷰 비교 15분

AI 추천: 약 20분

홈 1분 → 자연어 추천·추가 질문 5분 → 결과 확인 2분 → 도서 3권 상세·리뷰 비교 12분

주문·결제 포함: 약 30분

도서 탐색 20분 → 장바구니 2분 → 주문·결제 7분 → 결과 확인 1분

이미지 인식: 약 5분

촬영·선택 30초 → 업로드·인식 1분 → 결과 확인 30초 → 도서관 저장 30초 → 상세·리뷰 확인 2분 30초

이용 시간은 V2 화면 흐름을 순서대로 수행하는 시간을 합산했습니다.

4. 예상 Peak Traffic

V1과 동일하게 DAU의 50%가 저녁 시간대의 특정 20분 구간에 집중된다고 가정합니다. 저녁 이용 비율은 V1에서 참고한 나스미디어의 30대 모바일 인터넷 이용 시간대 자료를 유지하고, 대표 세션 이용 시간은 20분을 적용합니다.

일일 백엔드 요청 = DAU × 15회
평상시 Peak RPS = DAU × 50% × 15회 ÷ 1,200초

7년 차 목표의 계산은 다음과 같습니다.

일일 백엔드 요청
= 100,000명 × 15회
= 1,500,000회

평상시 Peak RPS
= 100,000명 × 50% × 15회 ÷ 1,200초
= 625 RPS
시점 평균 DAU 일일 백엔드 요청 평상시 Peak Traffic
1년 차 800명 약 12,000회 약 5 RPS
2년 차 3,200명 약 48,000회 약 20 RPS
3년 차 8,000명 약 120,000회 약 50 RPS
4년 차 20,000명 약 300,000회 약 125 RPS
5년 차 40,000명 약 600,000회 약 250 RPS
6년 차 70,000명 약 1,050,000회 약 438 RPS
7년 차 목표 100,000명 약 1,500,000회 약 625 RPS

평상시 Peak 625 RPS는 가정에 따른 예상치입니다. 캠페인, 푸시 알림, 추천 결과 공유 등으로 평상시보다 요청이 순간적으로 증가할 수 있으므로 목표 인프라는 다음과 같이 여유 용량을 둡니다.

구분 산정 방식 백엔드 트래픽
일평균 1,500,000회 ÷ 86,400초 약 17.4 RPS
평상시 Peak 트래픽 가설 약 625 RPS
확장 판단 기준 평상시 Peak × 1.5 약 940 RPS
권장 설계 기준 평상시 Peak × 2 약 1,250 RPS

따라서 7년 차에는 평상시 Peak Traffic을 약 625 RPS로 예상하고, 인프라는 최소 1,250 RPS를 처리할 수 있도록 설계합니다. 실제 증설 시점과 서버 수는 운영 지표와 부하 테스트 결과를 기준으로 조정합니다.

AI Server는 자연어 추천·추가 질문과 이미지 인식 요청만 처리합니다. 리뷰 조회에는 AI 요청이 발생하지 않습니다. AI 트래픽은 기능별 이용 비율이 확정되어야 별도로 산정할 수 있으므로, 출시 후 AI 추천 세션 비율과 이미지 인식 사용률을 측정하여 용량 계획에 반영합니다.

지표 V1 1년 차 7년 차 목표
누적 가입자 900명 20,000명 2,500,000명
MAU 360명 8,000명 1,000,000명
평균 DAU 36명 800명 100,000명
세션당 백엔드 요청 6~12회 약 15회 약 15회
평상시 Peak Traffic 약 0.18 RPS 약 5 RPS 약 625 RPS
권장 설계 Traffic - 약 10 RPS 약 1,250 RPS