Skip to content

프로그라피 8팀 케이크크 백엔드

Notifications You must be signed in to change notification settings

govl6113/cakk-BE

 
 

Repository files navigation

케이크크

프로젝트 설명

위치기반 케이크샵 지도 어플로, 원하는 케이크샵을 확인하고 상세정보를 확인할 수 있습니다. (현재 서울지역에서 서비스 중)

[케이크크 IOS 앱스토어 실적]

  • 기준일: 23.08.12
  • 총 노출 수: 2.9천
  • 총 다운로드 수(재설치 제외): 105건 -> 288건(2023.12.27 기준)
  • 전환율: 5.83%

기능

2030 2031


개발 내용

  1. admin 케이크샵 이미지 업로드
  2. admin 케이크샵 카테고리 업로드
  3. 케이크샵 리스트 조회
    1. 지역별로 조회
    2. 이 지역 재검색
  4. 케이크샵 상세 조회
  5. 케이크샵 카테고리 조회
  6. 케이크샵 관련 네이버 블로그 조회
  7. 케이크샵 관련 네이버 가게 정보 조회
  8. 랜덤 케이크 사진으로 피드 조회

개발하며 고민한 것들

어떻게 풀어나갔는지 👇에 기록했습니다.



기술스택

Backend: Java, Spring Boot

Database: queryDSL, JPA, PostgreSQL

CI/CD: Docker, Jenkins, Github actions

AWS: EC2, RDS, S3

Test: K6, Grafana, Prometheus

외부API : Naver 서비스 API

Etc: Swagger


시스템 아키텍처

pic2


ERD

pic1


Issue & PR

Issue click

PR click




실행 화면

  1. 내 위치 허용 안함 -> 지역 이동 -> 상세보기 -> 사진 -> 블로그 -> 북마크 저장
1.mov

  1. 내 위치 허용(허용하면 자동으로 내 위치 주변 케이크샵이 조회됨) -> 이 지역 재검색 -> 리스트 -> 상세보기 -> 블로그 -> 공유하기 (인스타그램)
2.mov

  1. 내 위치 허용(허용하면 자동으로 내 위치 주변 케이크샵이 조회됨) -> 이 지역 재검색 -> 리스트 -> 상세보기 -> 블로그 -> 공유하기 (카카오톡)
3.mov

  1. 필터링 -> 리스트 -> 상세보기 -> 필터링 해제
4.mov

  1. 이 지역 재검색 -> 리스트 -> 북마크 -> 내가 찜한 케이크샵 리스트 -> 북마크 해제
5.mov

  1. 피드 -> 케이크샵 방문 -> 북마크 -> 웹사이트 방문
6.mov

  1. 필터링 -> 리스트 -> 사진 확대 -> 필터링 해제
7.mov

  1. 이 지역 재검색 -> 상세보기 -> 사진 확대 -> 북마크
8.mov


성능 테스트

K6를 사용해 부하를 주고, Prometheus와 Grafana를 이용해 모니터링을 진행했습니다.

성능테스트 목표설정

1일 총 요청수 = 1,000,000(백만)
1일 평균 rps(request per second) = 1,000,000 (백만) / 43200(12시간) = 23rps
1일 최대 rps = 1일 평균 rps * 피크 시간 집중률 = 23rps * 50 = 1150 rps
즉, throughput은 23(1일 평균 rps) ~ 115(1일 최대 rps)가 나오게 됩니다. 이 정보를 통해서 VUser를 계산할 수 있습니다.

목표 rps = Vuser * 1초당 요청 횟수
Vuser = 목표 rps / 1초당 요청 횟수
Vuser = 목표 rps * (한 번의 시나리오를 완료하는데 걸리는 시간) / (시나리오 당 요청수 = 1이니까 제외)
Vuser = 목표 rps * (한 번의 시나리오를 완료하는데 걸리는 시간)
평균 Vuser = 23 * 0.1s = 2
최대 Vuser = 1150 * 0.1(0.02 WAS 로직처리 + DB조회 0.08)s = 115

참고: https://velog.io/@sontulip/performance-test#테스트의-목표

성능테스트 결과

성능테스트3

About

프로그라피 8팀 케이크크 백엔드

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 99.3%
  • Other 0.7%