학습목표
- 서버 성능 테스트 / 부하 테스트 / 스트레스 테스트 가 차이가 있다는 것 이해하기
- 서버 테스트 항목이 실제 프로덕트에 어떤 의미가 있을까? 스스로 정리해보기
- 서버 테스트 프로세스 체험하기 (계획 - 실행 - 결과 분석/보고서 - 개선 - 재 테스트 계획 - 실행 - 결과 분석 - 개선 - ...)
1. Introduction
Tip. 🍯 학습꿀팁 을 참고해서 적은 시간 높은 효율로 배우는 방법을 연구해 봅시다! 시간을 소중히! 잠 줄이지 맙시다!
1-1. 서버 부하 테스트 왜 하나요?
- 우리가 만든 서비스 실제 상황에서도 잘 동작할까? 궁금하다! 우리는 내 환경에서만 잘 동작하는 프로그램이 아니라 실제 상황에서 잘 동작하는 프로덕트 를 만들어야한다. 나 혼자 점심 때우려고 만드는 음식을 레스토랑에서 300명에게 팔 수는 없으니까!
- 주로 아래를 중점적으로 파악합니다.
- 실제 장비(서버)에서 어느 정도 부하 Load 를 견뎌줄 수 있는가
- 실제 사용 시나리오 (예. 콘서트 티켓팅시에 서버가 터지지 않는가, 백신 예약시 전국민이 몰렸을 때 예약시스템이 버텨주는가,...) 에서 동작할 것인가
- 병목지점 파악 - 유독 성능이 느린 곳
- (특히 cloud 사용의 경우) 장애 상황에서 리포트 시스템이 동작하는가, 자동으로 리소스 조정이 되는가
- 테스트를 설계하고 원인을 파악해 개선하는 것은 코드레벨에서 발생되는 성능 문제, DB, 서버 아키텍쳐, OS 문제 등등 굉장히 넓은 범위에서 바라보아야 합니다. 원인 파악은 상당한 경험과 지식을 필요로 합니다.
- 때문에 여기서는 기본적인 서버 테스트 프로세스를 체험하는 것을 목표로 합니다. 기초 내용을 꼭 알아두고 점검하는 습관을 들이면서 작업한다면 점차 경험이 쌓일 거에요.
1-2. Server Performance Test? Load Test? Stress Test? 차이가 뭘까?
1-3. 실제로는 이렇게 진행되죠
결제 시스템 성능, 부하, 스트레스 테스트 | 우아한형제들 기술블로그