부하테스트를 어떤 방법으로 접근할까?
문제
•
팀원이랑 부하테스트 할 때, 어떤 방식으로 할 것인가?
◦
한 사람이 모든 시나리오를 돌리며 공유
▪
장점
•
모든 사람이 어떤 결과가 나오는지 공유가능
▪
단점
•
한 명이 하다보니, 모든 시나리오를 테스트 하기가 어려움
◦
시나리오마다 각자 테스팅
▪
장점
•
각자 시나리오마다 여러 케이스를 던질 수 있음
▪
단점
•
어떤 케이스가 어떤 예외가 발생하는지 모를 수 있음
•
어떻게 부하테스트 이후 모니터링을 할 수 있을까??
해결방안
•
팀원이랑 부하테스트 할 때, 어떤 방식으로 할 것인가?
◦
한 사람이 여러 시나리오를 하나의 스레드로 테스트하기로 함
•
어떻게 부하테스트 이후 모니터링을 할 수 있을까??
1.
트래픽 스파이크가 튈 수 있는 상황을 추출
2.
'우리 시스템이 어디까지 만족시켜야하는가?'를 정리
3.
모니터링 툴을 사용
•
트래픽 처리 :: JMeter
•
모니터링 :: Actuator(스프링 헬스체크) + Micrometer(지표수집) + Grafana(시각화)
@Transactional 의 위치는 어떻게 하는 게 좋을까??
문제
•
@Transactional 의 위치는 어떻게 하는 게 좋을까??
해결방안
•
Service Layer 가 Command/Query 로 나눠져있으므로 클래스 레벨로 @Transactional 의 위치를 통일하자!!