1 1 현재 서비스의 성장 상황과 기존 인프라 한계 - 100-hours-a-week/KTB4-13th-wiki GitHub Wiki
1-1. 현재 서비스의 성장 상황
1. 서비스 성장 상황과 가설
1.1. 성장 전 상황
서비스 변화
V2에서는 기존 검색·AI 추천·주문·결제에 다음 기능이 추가됩니다.
- 자연어 추천 후 추가 질문
- 이미지 업로드를 통한 도서 인식
- 리뷰 조회·작성·수정·삭제
- 인식한 도서를 저장하고 조회하는 나의 도서관
사용자는 추천 결과를 확인하는 데서 끝나지 않고, 추천 도서 3권의 상세와 리뷰를 비교한 뒤 구매하거나 나의 도서관에 저장합니다. 이에 따라 한 번 방문했을 때 머무는 시간과 서버 요청 수가 V1보다 증가합니다.
현재 인프라
- App EC2
t3.small1대: Nginx, Backend, MySQL - AI EC2
t3.small1대: 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에서는 기존 커뮤니티 홍보에 추천 결과 공유, 검색 유입, 출판사 캠페인과 독서 모임 제휴가 추가됩니다. 매월 초기 홍보와 비슷한 규모의 신규 가입자를 확보하되 유입 경로의 중복을 고려하여, 6개월 차 누적 가입자를 약 5천 명으로 설정합니다.
장기적으로는 유사 서비스의 공개 사례를 참고해 누적 가입자 20만 명까지 성장하는 상황을 설계 기준으로 사용합니다. 누적 가입자의 40%가 활동하고 한 명이 월평균 3일 방문한다고 보아, 최종 MAU는 8만 명, 평균 DAU는 8천 명으로 가정합니다. 자세한 근거와 계산은 2장에서 설명합니다.
1.3. 트래픽 가설
V2에서는 리뷰 조회, AI 추가 질문, 이미지 도서 인식과 나의 도서관 기능이 추가됩니다. 대표적인 검색·구매 세션은 백엔드 요청 약 15회이며, 사용자 증가와 저녁시간 이용 집중을 반영한 3년 차 평상시 Peak Traffic은 약 50 RPS로 예상합니다. 요청 수와 이용시간은 3장, Peak 계산은 4장에서 설명합니다.
2. 성장 후 사용자 규모
2.1. 성장 규모의 근거
플라이북은 2016년 약 2만 명이 이용했고, 이후 가입자 20만 명을 넘겼습니다. 개인화 추천, 독서 기록과 도서 구매를 제공한다는 점에서 북적북적과 가장 가까운 사례입니다. 따라서 1년 차는 플라이북의 초기 공개 이용자 2만 명, 3년 차는 공개 가입자 20만 명을 기준으로 잡습니다. 플라이북 이용자 사례
2.2. 성장 경로
초기에는 독서 커뮤니티에서 사용자를 확보하고, 이후 추천 결과 공유, 검색 유입, 출판사 캠페인과 독서 모임 제휴로 유입 경로를 확대합니다.
초기 홍보와 비슷한 규모인 약 900명이 매월 가입하면 6개월 누적 가입자는 5,400명입니다. 여러 경로에서 같은 사용자가 유입될 수 있다는 점을 고려해 6개월 차 기준은 약 5천 명으로 설정합니다.
900명 × 6개월 = 5,400명 → 중복 유입을 고려한 기준 약 5,000명
이후에는 1년 차 2만 명, 2년 차 8만 명, 3년 차 20만 명으로 성장한다고 가정합니다. 2년 차 8만 명은 1년 차와 3년 차 사이에서 인프라를 단계적으로 확장하기 위한 중간 기준입니다.
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 80,000명 × 월평균 이용일 3일 ÷ 30일 = 평균 DAU 8,000명
| 시점 | 누적 가입자 | MAU | 평균 DAU | 산정 기준 |
|---|---|---|---|---|
| 출시 첫 달 | 900명 | 360명 | 36명 | V1 기준 |
| 6개월 차 | 5,000명 | 2,000명 | 200명 | 초기 홍보 채널 확대 |
| 1년 차 | 20,000명 | 8,000명 | 800명 | 플라이북 초기 이용자 규모 |
| 2년 차 | 80,000명 | 32,000명 | 3,200명 | 단계적 확장을 위한 중간 기준 |
| 3년 차 목표 | 200,000명 | 80,000명 | 8,000명 | 플라이북 공개 가입자 규모 |
- 출시 첫 달 → 6개월 차: 약 5.6배
- 6개월 차 → 1년 차: 4배
- 1년 차 → 2년 차: 4배
- 2년 차 → 3년 차: 2.5배
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%가 저녁에 이용한다고 가정합니다. 저녁 이용 비율은 V1에서 참고한 나스미디어의 30대 모바일 인터넷 이용 시간대 자료를 유지하고, 대표 세션 이용시간은 20분을 적용합니다.
일일 백엔드 요청 = DAU × 15회
Peak RPS = DAU × 50% × 15회 ÷ 1,200초
| 시점 | 일일 백엔드 요청 | 평상시 Peak Traffic |
|---|---|---|
| 6개월 차 | 약 3,000회 | 약 1.25 RPS |
| 1년 차 | 약 12,000회 | 약 5 RPS |
| 2년 차 | 약 48,000회 | 약 20 RPS |
| 3년 차 목표 | 약 120,000회 | 약 50 RPS |
AI Server는 자연어 추천·추가 질문과 이미지 인식 요청만 처리합니다. 리뷰 조회에는 AI 요청이 발생하지 않습니다.
| 지표 | V1 | 6개월 차 | 3년 차 목표 |
|---|---|---|---|
| 누적 가입자 | 900명 | 5,000명 | 200,000명 |
| MAU | 360명 | 2,000명 | 80,000명 |
| 평균 DAU | 36명 | 200명 | 8,000명 |
| 세션당 백엔드 요청 | 6~12회 | 약 15회 | 약 15회 |
| 평상시 Peak Traffic | 0.18 RPS | 약 1.25 RPS | 약 50 RPS |