HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
[New] 타일러팀
[New] 타일러팀
/
코코아 헤어샵
코코아 헤어샵
/
🧬
성능 테스트
/
🌉
예약 가능날짜 성능 분석
🌉

예약 가능날짜 성능 분석

환경

GCP

  • 모든 테스트가 같은 환경에서 진행되도록 성능테스트 용도로 GCP서버를 개설하고 그 위에서 진행
  • CPU : 4Core
  • MEM : 16GB
 

Tool

  • JMeter
 

예상

  • 동적 예약계산은 매번 예약완료를 가져와서 예약가능한 시간에서 제외한 시간을 보여주기 때문에 예약완료의 정도에 따라 성능이 달라질 것입니다.
  • 정적 예약계산은 매번 예약상태를 저장 해놓은 테이블만 조회하기 때문에 예약완료의 정도에 관계없이 어느정도 일정한 성능을 보일 것 입니다.
  • 따라서 일정 수준 이상의 예약이 차면 정적예약계산이 동적예약계산보다 성능이 더 좋게 나올 것입니다.
 

결과

  • 한달치 예약 (7200개) 기준으로 진행
ㅤ
예약 0%
예약 25%
예약 50%
예약 75%
예약 100%
동적 예약계산
500 / 60 / 150
500 / 60 / 120
500 / 60 / 90
500 / 60 / 80
500 / 60 / 60
TPS
1092
780
586
484
400
정적 예약계산
500 / 60 / 90
500 / 60 / 100
500 / 60 / 110
500 / 60 / 150
500 / 60 / 210
TPS
546
656
779
985
1369

동적 예약계산 vs 정적 예약계산

1-1. 동적 예약계산 0%

결과
notion image
notion image
notion image

1-2. 정적 예약계산 0%

결과
notion image
notion image
notion image
 

2-1. 동적 예약계산 25%

결과
notion image
notion image
notion image

2-2. 정적 예약계산 25%

결과
notion image
notion image
notion image
 

3-1. 동적 예약계산 50%

결과
notion image
notion image
notion image
 

3-2. 정적 예약계산 50%

결과
notion image
notion image
notion image
 

4-1. 동적 예약계산 75%

결과
notion image
notion image
notion image
 

4-2. 정적 예약계산 75%

결과
notion image
notion image
notion image

5-1. 동적 예약계산 100%

결과
notion image
notion image
notion image
 

5-2. 정적 예약계산 100%

결과
notion image
notion image
notion image
 
 

결론

1) 예상과 달랐던 점
  • 정적성능이 예약률에 따라 향상되었다.
    • → 예약이 되어있지 않은 컬럼들만 가져와서 조인을 하기때문에 그 규모가 점점 줄어들은 것으로 예측
 
2) 예상과 같았던 점
  • 정적성능이 예약률 50%부터 동적을 역전했다.
    • → 예약이 많아질 수록 동적으로 계산할 양이 늘어나기 때문에
 
3) 동적은 유지보수가 더 편함
  • 계산할 날짜에 제한없다.
  • 추가 테이블 필요하지않다.
 
4) 정적은 추가테이블 관리가 필요함
  • @Scheduled로 하루에 한번씩 레코드 추가가 필요하다.
  • Reservation Table과 ReservationTime Table의 data의 동일성(Sync)에 주의가 필요하다.
 
5) 예약정도에따라서 동적 정적의 성능이 다르기 때문에 서비스의 특성에 따라서 고려해볼 필요가 있음
  • 예약률이 높고 비즈니스 규모가 작다면 정적이 적합할 수 있다.
  • 카카오헤어샵처럼 여러 샵을 관리하는 경우 규모가 크기 때문에 테이블 관리를 할 필요가 없는 동적이 더 적합할 수 있다.