카카오 부트캠프/과정 정리

카카오테크 부트캠프 : 웹 서버 성능 벤치마킹, 어떻게 해야 할까?

BCSJH 2025. 4. 23. 10:53

제주도의 마지막 날은 웹 서버 벤치마킹 테스트를 진행하며 마무리하게 되었다. 정량적인 데이터를 도출하는 것은 중요하다는 것을 알고 있었지만 처음에는 감이 잘 잡히지 않아 막막함이 컸다. 무엇부터 시작해야 할지, 어떻게 테스트를 설계해야 할지 난감했는데, 제프가 과거에 진행했던 사례를 공유해주셨다.

제프는 주차 별로 벤치마킹 주제를 정해 3~4주간 같은 주제를 반복적으로 실험했고 그 결과를 피피티로 정리해 발표했다고 한다. 발표했던 피피티를 보여주시면서 설명해주셨는데 과정과 실험 설계부터 결과 공유까지 보여주셨다.

벤치마킹을 설계할 때 가장 중요한 첫 단계는 ‘무엇을 측정할 것인지’를 명확히 설정하는 것이다. 예를 들어, 요청부터 응답까지의 지연 시간(Latency), 요청 실패율(Error Rate), 데이터 크기에 따른 응답 속도 차이, 사용자 수 증가에 따른 성능 저하, CPU 사용률, 처리량(Throughput), 요청 처리 속도 등이 주요 지표로 사용된다. 이러한 기준을 바탕으로 특정 조건에서 시스템이 어떻게 반응하는지를 수치로 분석할 수 있다고 했다.

실험은 동일한 네트워크 환경을 구성한 뒤 A/B 테스트를 적용하여 비교 분석을 진행하였고 Google Web Search Delay 실험을 참고해 어떤 요소가 응답 속도에 영향을 주는지도 살펴보았다. 나아가 단순히 웹 서버에만 국한되지 않고 백엔드 데이터베이스 구조까지 벤치마킹 범위를 확장해 MySQL, MariaDB, PostgreSQL 간의 성능 차이를 분석한 부분도 보여주셨다. Range Scan이 CPU에 미치는 영향, 쿼리 캐시 사용 시의 성능 변화, 스레드 풀 설정 여부에 따른 처리량 차이 등 다양한 실험을 통해 구체적인 성능 차이를 확인할 수 있었다. 쿼리 캐시의 경우, 항상 성능을 향상시킬 것이라고 막연히 생각하고 있었지만 제프의 실험 결과를 보고 오히려 역효과를 줄 수도 있다는 점을 알게 되었다.  쿼리 캐시는 항상 좋은 결과를 가져다 줄 거라고 생각했는데 이런 테스트를 진행해보긴 해야겠구나 싶었다. 알아야 할게 정말 많은데 이걸 언제 다 머릿속에 넣을 수 있을까 싶다. 배워야 할 것이 정말 많다는 생각이 들었고 지금껏 열심히 살아왔다고 생각했지만 이 교육을 들으며 오히려 내가 얼마나 나태하게 지냈는지를 돌아보게 되는 하루였다.

사실 과거의 자료들을 찾기도 힘들고, 그것을 공유하는 것에는 결코 쉬운 일이 아니었을 텐데... 수강생들을 위해 공유해주신 제프에게 감사했다. 해당 벤치마킹을 진행할 때 레오도 함께 진행하셨다고 들었는데 레오는 어떻게 하셨을지 궁금했다. 기회가 된다면 레오의 사례도 꼭!!! 들어보고 싶다. 벤치마킹 테스트 꼭 진행해서 나중에 제프처럼 공유해서 도움을 주고 싶다. 시작이 반이라고 하니까 기획부터 진행해봐야겠다.

 

#카카오 #kakao #카카오테크부트캠프 #카테부 #카테부커뮤니티