확장성 테스트 (Scalability Test)
확장성 테스트 (Scalability Test) 확장성 테스트는 소프트웨어 시스템이 증가하는 부하나 규모에 얼마나 잘 대응할 수 있는지를 평가하는 성능 테스트의 한 유형이다. 이는 시스템의 확장 능력을 측정하고 검증하는 과정이다. 웹 서비스의 확장성 테스트 예시 코드: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 import time from concurrent.futures import ThreadPoolExecutor from monitoring import SystemMonitor class ScalabilityTest: def __init__(self): self.monitor = SystemMonitor() self.results = [] def test_vertical_scaling(self): """수직적 확장성 테스트 (단일 서버의 자원 증가에 따른 성능 변화 측정)""" # 서버 자원을 단계적으로 증가시키며 테스트 resource_configs = [ {"cpu_cores": 2, "memory": "2GB"}, {"cpu_cores": 4, "memory": "4GB"}, {"cpu_cores": 8, "memory": "8GB"} ] for config in resource_configs: # 서버 리소스 조정 self.adjust_server_resources(config) # 성능 측정 metrics = self.measure_performance() # 결과 기록 self.results.append({ "config": config, "metrics": metrics }) # 선형적 확장성 검증 self.verify_linear_scaling(config, metrics) def test_horizontal_scaling(self): """수평적 확장성 테스트 (서버 수 증가에 따른 성능 변화 측정)""" # 서버 인스턴스 수를 단계적으로 증가 for server_count in range(1, 6): # 서버 추가 self.add_server_instances(server_count) # 부하 테스트 실행 with ThreadPoolExecutor(max_workers=100) as executor: # 동시 요청 시뮬레이션 futures = [ executor.submit(self.simulate_request) for _ in range(1000) ] # 결과 수집 responses = [f.result() for f in futures] # 성능 메트릭 분석 self.analyze_scaling_metrics(server_count, responses) 특징과 목적 확장성 테스트의 주요 특징과 목적은 다음과 같다: ...