대용량 트래픽 경험해보기(1/14) - 주제 및 분석
대용량 트래픽에 대한 처리 경험이 없었다. 트래픽이 변화하면서 발생하는 이슈에 대해서 처리할 수 있는 경험이 필요했다. 실제 운영할 서비스는 아니지만, 만들고 싶었던 서비스를 설계부터 배포까지 대용량 트래픽에 대한 처리 과정을 테스트와 모니터링 등 다양한 도구들을 통해서 어떠한 과정을 통해서 트러블 슈팅을 했느지를 적어보려한다.
대용량 트래픽
사실 대용량 트래픽이란 말은 추상적이다. 대용량에 대한 명확한 기준이 없다고 본다. 어떠한 서비스가 국내에서는 대용량 트래픽에 포함되나 인구가 많은 나라의 경우를 비교했을 때는 대용량이 아닐 수 있다. 인구가 훨씬 더 많은 나라의 경우도 이와 같을 것이다.
그래서 경험해보고자 하는 것은 신규 서비스를 개발할 때 어떠한 기준으로 서비스 환경을 구축하고 내가 알고 있는 기술로 어느정도로 운영될 수 있는지 그리고 성능에 미치지 못할 경우 트러블 슈팅을 할지 경험해보고자 하며, 그 과정에서 비용을 줄여 운영할 수 있는 방법을 또한 알고자 한다.
이에, 내가 서비스를 개발하고 테스트해볼 주제는 국내 여행 플래너 서비스를 주제로 대용량 트래픽을 경험해보고자 한다.
국내 여행 플래너
제주 여행을 가면서 어디에 가서 무엇을 할 것인가에 대한 여러 계획을 세웠지만, 카톡방에 올려둔 기록을 찾아 사용하거나 기억에 의존하였다. 게다가 일정을 세우더라도 매번 다시 찾아 네비게이션에 주소를 등록하고 운전해야했다.
여행관련 서비스로 여다
라는 서비스를 확인해보았을 때 AI로 사용자의 취향에 맞게 설정해주는 서비스였다. 내가 개발하고자 하는 서비스는 이러한 서비스가 아닌, 사용자가 여행 정보와 일정을 등록하고, 등록한 일정을 통해 쉽게 네이게이션을 실행해주는 서비스이다.
이렇게 나누어진 두 작업을 한 서비스로 편리하게 하면 좋겠다는 생각 주제를 삼게 되었다.
요구사항 명세서
개발 전 초기 버전의 요구사항 명세서를 작성해보았을 때 아래와 같다.
기능 정의서
구분 | 주 기능 | 상세기능 | 설명 |
---|---|---|---|
1. 회원 | 1.1 SNS 회원가입 | 1.1.1 카카오톡, 네이버, 구글 인증 및 가입 | |
1.2 SNS 로그인 | |||
2. 홈 | 2.1 여행 정보 표기 (제목, 상태, 기간, 여행지역) | 2.1.1 여행 정보 표기 | - 상단에 여행타이틀 표기 - D-Day, 여행중, 여행종료 상태 표기 - 기간 표기 - 여행 도시 표기 - 제목, 기간, 도시 개별 편집 (드롭박스) |
2.1.2 여행 정보 현황 | - 여행 정보 하단에 등록된 일정 현황 출력 - 선택하면 상단에 정보들 변경 - 여행 일정 요약 현황의 상단에 바를 추가 및 [나의 여행(+)] 추가 - 길게 선택하면 삭제 | ||
2.1.2 여행 일정 등록 기능 | - 여행 제목명 입력(입력하지 않는 경우 선택한 도시 나열 후 뒤에 ‘여행’ 표기 (최대 3개 도시 나열 및 외 N곳 여행으로 표기) - 국내 도시 선택(필수, 다중 선택 가능) - 캘린더로 선택해서 날짜 영역 등록(필수) - 중복 일정 불가 - 도시 선택 → 일정 선택 → 여행제목 입력(필수 아님) | ||
2.1.3 여행 정보별 일정 현황 조회 | - 상세 조회시 제목 → 지도 → 날짜별 현황 조회 - 일자를 선택하면 지도에 가야하는 위치들을 마킹 및 일정 순으로 경로 표기 - 현재 일자에 맞게 포커스(현재 일자에 맞지 않으면 일정 첫 일자 포커스) | ||
3. 여행 세부 일정 | 3.1 여행 세부일정 현황 | 3.1.1 일자별 일정 현황 | - 여행 장소 추가 (검색) - 여행 장소 삭제 (길게 선택) - 장소명, 구분(식당 등), 주소 표기 - 클릭하면 하단에 작게 창 올라오고 아래와 같이 구성 [우진 해장국] [음식점] [주소] [연락처] [삭제하기] [길찾기] - 거리순 재정렬 - [장소 추가], [거리순 재정렬] 버튼 |
3.1.2 일별일정 순서 변경 기능 | - Drag & Drop으로 변경 불가능하면 세부 현황 우측에 상하 이동 버튼으로 변경 |
Use Case
ER Diagram
유사 서비스 분석
여행 일정 플래너의 주제를 가진 트리플
이라는 서비스가 있다. 만들고자 하는 기능은 기본으로 포함하고 있으며 추가적으로 호텔, 항공 예약 및 결제 등 다양한 기능들도 있었다. 유사 시스템이 없는 경우에 기준을 잡기가 너무 모호하다고 판단했었지만, 다행히 있어 트리플
서비스가 어느정도의 트래픽을 갖고 있는지 확인했다.
트래픽 분석
혁신의 숲(https://www.innoforest.co.kr에서 트리플 서비스의 트래픽 정보를 보았다. (비로그인은 1일 1회 조회가 가능하다.)
2022년 4월에 시작으로 2024년 3월까지 최대 고유 방문자 수는 99.6만이다. 이전에는 트래픽으로 보았지만 지금은 고유 방문자 수로 표시하는 것 같다. (고유 방문자 : 중복되지 않는 사용자)
트리플 서비스의 경우 해외 여행도 포함하고 있기에 국내 여행만을 기준으로 고유 방문자 수를 확인하기 위해서 아래 사이트를 확인해보았다.
https://www.globaldata.com/store/report/south-korea-tourism-source-market-analysis/
2023년에 내국인 국내여행 비율은 전체 인구에서 89%가 국내 여행을 갔다고 하여, 고유방문자 중 89%가 국내여행을 목적으로 서비스를 사용한다고 생각하고 계산했을 때 아래와 같다.
연/월 | 고유 방문자 수 | 국내여행 고유 방문자 수 (고유 방문자 수 * 0.89) | 일 평균 고유 방문자 수 (국내여행 고유 방문자 수 / 30) | ||||
---|---|---|---|---|---|---|---|
2023/1 | 754,000 | 671,060 | 22,369 | ||||
2023/2 | 725,000 | 645,250 | 21,508 | ||||
2023/3 | 648,000 | 576,720 | 19,224 | ||||
2023/4 | 712,000 | 633,680 | 21,123 | ||||
2023/5 | 796,000 | 708,440 | 23,615 | ||||
2023/6 | 859,000 | 764,510 | 25,484 | ||||
2023/7 | 996,000 | 886,440 | 29,548 | ||||
2023/8 | 954,000 | 849,060 | 28,302 | ||||
2023/9 | 800,000 | 712,000 | 23,733 | ||||
2023/10 | 808,000 | 719,120 | 23,971 | ||||
2023/11 | 902,000 | 802,780 | 26,759 | ||||
2023/12 | 977,000 | 869,530 | 28,984평균 | 827,583 | 736,549 | 24,552 | |
위 결과를 통해 1일 서비스를 이용하는 순 방문자수 (DAU : Daily Avtive User)는 평균 24,552명이며, 약 25,000
의 방문자 수를 통해 추후 목표 RPS 계산 및 부하 테스트를 진행해보고자 한다.