1. 프로젝트 개요
- 프로젝트 이름 : 도구인
- 프로젝트 개요
: 도구인은 개발자와 의뢰인 간의 원활한 소통과 협력을 돕기 위해 설계된 외주 플랫폼입니다. 이 플랫폼을 통해 개발자들은 외주 프로젝트를 쉽게 찾고 수주할 수 있으며, 의뢰인들은 프로젝트 의뢰 및 진행 상황을 간편하게 관리할 수 있습니다. 커뮤니티 기능을 통해 개발자들 간의 정보 공유와 네트워킹을 지원하여, 보다 효율적인 협력 환경을 조성하는 것을 목표로 합니다.
2. 테스트 목적
- 캐시 적용 전후 성능 차이를 비교하여 캐시 적용이 성능에 미치는 영향을 분석
- 3단계 부하 테스트(초기, 증가, 최대 부하)로 사용자 증가에 따른 서버의 안정성 검증
3. 테스트 환경
- 테스트 도구 : Locust
- 테스트 대상 : 마이페이지 API(/api/v1/mypages)
- 캐시 기술 : Local Cache (Ehcache 사용)
4. 테스트 시나리오
가. 초기 부하 단계
- 사용자 수 : 50명
- Ramp-up 시간 : 10초
- 목적 : 서버의 기본 성능을 확인하고, 소수의 사용자에서 캐시 적용 전후의 응답 속도 비교
나. 증가 단계(중간부하)
- 사용자 수 : 150명
- Ramp-up 시간 : 5초
- 목적 : 사용자 수가 증가할 때 캐시 전용 전후의 응답 속도와 서버 안정성을 평가
다. 최대 부하 단계
- 사용자 수 : 500명
- Ramp-up 시간 : 5초
- 목적 : 서버의 최대 성능 한계를 확인하고, 캐시 적용으로 서버가 최대 부하를 견딜 수 있는지 검증
5. 테스트 결과 요약
테스트 단계 | 캐시 적용 여부 | 평균 응답 시간(ms) | 95% 응답 시간(ms) | 최대 응답 시간(ms) | 초당 요쳥 수(RPS) |
초기 부하 (50명) |
적용 전 | 11.3 | 20 | 138 | 16.5 |
적용 후 | 8.8 | 16 | 149 | 16.3 | |
중간 부하 (150명) |
적용 전 | 9.31 | 18 | 112 | 49.7 |
적용 후 | 6.48 | 14 | 116 | 50.3 | |
최대 부하 (500명) |
적용 전 | 9.67 | 22 | 108 | 164.4 |
적용 후 | 6.99 | 19 | 190 | 165 |
6. 분석 결과
캐시 적용 전후의 성능 차이를 확인하고, 각 부하 단계에서의 서버 응답 성능을 비교하여 최적화 효과를 평가하는 데 중점을 두었습니다. 아래는 각 부하 단계별로 캐시 적용 전후의 성능 변화를 분석한 결과입니다.
가. 초기 부하 단계
- 캐시 적용 전
: 평균 응답 시간이 11.3ms, 95% 응답 시간이 20ms, 최대 응답 시간은 138ms로 나타났습니다. 초당 요청 수(RPS)는 16.5로 안정적으로 처리되었으나, 최대 응답 시간에서 일부 느린 응답이 발생했습니다. - 캐시 적용 후
: 평균 응답 시간은 8.8ms로 약 22% 감소하였고, 95% 응답 시간과 최대 응답 시간도 각각 16ms와 149ms로 개선되었습니다. RPS는 16.3으로 유지되며 안정적인 처리 성능을 보여주었습니다. - 결과 요약
: 초기 단계에서 캐시를 적용함으로써 평균 응답 시간이 약 22% 개선되었으며, 사용자 경험이 긍정적으로 향상될 수 있음을 확인할 수 있습니다.
나. 증가 단계(중간부하)
- 캐시 적용 전
: 평균 응답 시간이 9.31ms, 95% 응답 시간이 18ms, 최대 응답 시간은 112ms로 나타났습니다. 초당 요청 수(RPS)는 49.7로 처리 성능이 향상되었습니다. - 캐시 적용 후
: 평균 응답 시간은 6.48ms로 약 30% 개선되었으며, 95% 응답 시간과 최대 응답 시간도 각각 14ms와 116ms로 약간의 변화가 있었습니다. RPS는 50.3으로 소폭 증가하며 부하 처리 성능이 강화되었습니다. - 결과 요약
: 중간 부하 상황에서 캐시를 적용한 후 응답 시간이 30%가량 개선되었고, 안정적인 부하 처리 성능을 유지하여 사용자 요청이 많은 상황에서도 성능 개선이 효과적임을 알 수 있었습니다.
다. 최대 부하 단계
- 캐시 적용 전
: 평균 응답 시간이 9.67ms, 95% 응답 시간이 22ms, 최대 응답 시간은 108ms로 나타났으며, RPS는 164.4로 서버가 고부하를 안정적으로 처리할 수 있음을 확인했습니다. - 캐시 적용 후
: 평균 응답 시간은 6.99ms로 약 28% 개선되었고, 95% 응답 시간과 최대 응답 시간은 각각 19ms와 190ms로 소폭 변화했습니다. RPS는 165로 유지되었습니다. - 결과 요약
: 최대 부하 상황에서도 캐시 적용이 서버 응답 시간을 약 28% 개선시키는 효과가 있었으며, 초당 요청 수를 유지하여 안정적인 서버 처리 성능을 보장했습니다.
7. 테스트 최종 결론 및 배운점
이번 성능 테스트를 통해 캐시 적용이 서버 성능 최적화에 미치는 긍정적인 영향을 테스트를 통해 직접 확인할 수 있었습니다. 캐시를 적용함으로써 각 부하 단계에서 평균 응답 시간과 최대 응답 시간이 크게 개선되었으며, 특히 중간 및 최대 부하 상황에서 28~30%의 성능 향상 효과가 나타났습니다. 또한, RPS(초당 요청 수)가 일정하게 유지되며 서버가 고부하 상황에서도 안정적인 성능을 제공할 수 있음을 확인했습니다.
이 경험을 통해 캐시의 필요성을 이해하고 시스템 아키텍처 최적화 방안을 학습할 수 있었으며, 부하 단계별 성능 테스트 설계와 분석 능력도 향상되었습니다. 이번 경험은 실제 프로젝트에서 서버 리소스 효율성 및 안정성을 높이는 기술적 방안을 적용할 수 있는 기반을 마련하는 데 기여했습니다.
'TIL(Today I Learned)' 카테고리의 다른 글
[TIL] Local에서 Locust 설치 및 사용법 (2) | 2024.11.08 |
---|---|
[TIL] 마이페이지 성능 최적화 : 로컬 캐시(Ehcache) 적용 (0) | 2024.11.01 |
[Spring] 프로젝트에서 OAuth 소셜 로그인 적용하기: 카카오, 네이버, 구글, 깃허브 사례 (0) | 2024.10.29 |
[Spring] 스프링에서 알아두면 좋은 어노테이션(Annotation) 모음 (0) | 2024.10.26 |
[Spring Boot] 포스트맨으로 테스트하기 쉽게 환경변수 설정과 'Barere 접두사'를 제거한 순수한 토큰 헤더로 받기 (0) | 2024.10.25 |