-
Notifications
You must be signed in to change notification settings - Fork 1
주문과 결제? 우리가 할게!
결제금액/주문내역/요청사항 관리? 그것도 우리가 할게!
헛걸음 하지 않도록 매진, 품절 메뉴 바로바로 알 수 있게 (가게 영업상태도)
예약 주문(Optional)
편의정보 등록
Tmap API
가게 위도, 경도 정보 저장
- 가까운 음식점 검색 기능 제공
- 가게 위치 정보 확인 제공
-
- POI (point-of-interest)
가게 - 최소주문금액, 영업여부. 여러 메뉴
메뉴 - 메뉴 설명, 가격, 인기메뉴 뱃지
옵션 그룹 - 기본, 조리선택 (기본선택여부, 배타선택여부)
옵션 - 이름, 가격
메뉴 1: N 옵션 그룹 1:N 옵션
주문 - 주문 시간, 주문 상태
주문 항목 1:N 주문옵션그룹 1:N 주문옵션
주문 & 메뉴
가게당 하나의 주문이 들어가고, 하나의 주문에 여러개의 메뉴 or 개수
장바구니는 앱(기기 local)에 존재 → 서버에 따로 저장X
주문 생성 → 주문하기() → 검증 로직
Validation 과정은 어떻게?
- 주문의 주문항목, 옵션그룹, 옵션 이름과 가격이 같은지
- 최소주문 이상인지
- 가게가 영업중인지
검색 기능
배민 첫페이지 UI 변천사
배달의 민족이 첫 등장할 때 정체성 : 전단지를 모아서 보자
검색창이 최상단에 보이도록 UI 개편, 실시간 인기 검색어 등 기능 고도화
음식 추천 기능
가게 오픈 알림 기능
예를 들어
월드컵 기간, 크리스마스 이브에 서버 다운
🧐 운영되는 서비스에 트래픽이 몰려 손실이 크다면?
🧐 대규모 트래픽을 안정적으로 처리하려면 배포 전에 어떤 일을 해야하는지?
→ 서버 성능테스트
클라이언트 부하 발생 → API 서버 → 외부 API, DB
- 요청을 얼마나 잘 처리하는지
- 병목이 어디서 발생하는지
평소보다 트래픽을 많이 받아야 하는 경우 성능테스트 실시
그럼 어떻게?
- 부하생성은 jMeter, nGrinder 등을 통해 테스트 가능
- 서버를 scale out하거나 외부API, DB변경할 경우 매번 변경하기 번거로움
- 테스트 할 때마다 지표를 관측하고 기록하는 것도 비용 소모
시나리오 구상 → 환경 구축 → 테스트 생성 및 수행 → 결과 지표 관측 및 기록 → 결과 분석
AWS CLI + Jenkins 를 통해 구현, Groovy script로 pipeline 구축 가능 + 슬랙에 결과 레포트 전송
But, 도구가 중요하진 않음.
🤓 트래픽이 많아 서버 성능 측정이 잦을 경우
🤓 피크타임과 그 외 시간 사이에 변동이 커서 scale out & scale in이 자주 일어나는 경우
→ 성능테스트 자동화 가능