HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
[New] 타일러팀
[New] 타일러팀
/
코코아 헤어샵
코코아 헤어샵
/
📚
회의록
/
✔️
(2022.07.05)
✔️

(2022.07.05)

타일러님 답변

  • 타임아웃이 발생한다면 그것을 해결할 만한 다른 방법은 없을지
  • (가능한 예약 조회하기 맞죠?) 응답속도를 줄이기 위해 외부적 요인(DB) 말고 내부적 요인 (코드)에서 개선해볼만한 부분은 없을지 (개선하면서 문제는 적절하게 처리 가능하지 않을지?)
    • 성능테스트를 어떤식으로 했는지 (부하를 얼마나 주었는지)
      • 10분에 걸쳐서 일정한 요청을 지속적으로 보냄
    • 적당히 부하 준것 같은게 TPS인지?
      • CPU, RAM 사용량?
    • 어떤게 평균 TPS일지? 그 기준은?
      • 10분~60분 단위로 테스트를 진행했을 때 나타나는 평균값?
    • 부하는 언제까지 줘야 하는지?
      • 시나리오에 따라 다르다고 생각함
    • 타임아웃은 왜 나는건지? DB쿼리의 성능은 나오는건지? (실행계획, 인덱스 등)
      • 여러가지 요인이 존재함
    • 과도한 부하를 줄 필요가 없다면 성능테스트를 왜 하는지?
      • 과도한 부하가 필요 없더라도 사용자 만족도를 위해서 해야함.
      •  
         
         

    목표1

    정적과 동적 중에 어떤 방법이 더 나은지
    • CPU사용량 같게 맞추고 → TPS차이 (70퍼)
    • Response Time

    목표2

    동적 개선방식
     
     
    정적 조회
    @Query("select distinct d from Designer d join fetch d.reservationTimes r " + "where d.hairshop.id = :hairshopId and r.date = :date and r.reserved = false") List<Designer> findDesignerFetchJoinByHairshopIdAndDate(@Param("hairshopId") Long hairshopId, @Param("date") LocalDate date);
     
    동적 조회
    @Query(value = "SELECT distinct d from Designer d left join fetch d.reservations r where d.hairshop.id = :hairshopId and r.date=:date") List<Designer> findByHairshopIdAndDate(@Param("hairshopId") Long hairshopId, @Param("date") LocalDate date);
    List<Designer> findByHairshopId(Long hairshopId);