팀프로젝트_PetHarmony

🔍 코드 리팩트링으로 성능 최적화 개선율 분석

이채림 2024. 9. 20. 01:27

개발을 하다 보면 기능 구현에 열중한 나머지 성능 최적화를 놓치는 경우가 많다.

특히, API 요청의 처리 속도를 개선하기 위해 리팩토링을 진행하였고,

그 결과를 바탕으로 성능 테스트 결과를 공유하고자 한다.

 

 

성능 테스트 방법

- Postman 을 사용하여 리팩토링 전후 각각 10번씩 API 요청을 보낸다.
- 각 요청에 대한 응답 시간을기록한다.
- 모든 응답 시간을 더한 후, 평균을 계산한다.
- 리팩토링 전후의 평균 응답 시간과 평균 처리량을 비교하여 개선율을 산출한다.

 

개선율 계산
(리팩토링 전 - 리팩토링 후) / 리팩토링 전 * 100 

 

리팩토링 전
리팩토링 후

 

더보기

로그인

1 2 3 4 5 6 7 8 9 10
591 ms 598 ms 611 ms 609 ms 604 ms 599 ms 638 ms 609 ms 612 ms 627 ms

 

Access Token 재발급

1 2 3 4 5 6 7 8 9 10
36 ms 35 ms 34 ms 33 ms 36 ms 35 ms 39 ms 38 ms 36 ms 37 ms

 

 

 


 데이터베이스 수준의 랜덤 샘플링 

https://chaereemee.tistory.com/33

 

🔍 데이터베이스 수준 랜덤 샘플링으로 성능 개선

애플리케이션에서 많은 데이터를 처리하고 이를 랜덤하게 선택해야 하는 경우, 흔히 사용하는 방법이 Collections.shuffle()이다.이 방식은 데이터를 메모리로 불러와 Java 컬렉션에서 랜덤하게 섞는

chaereemee.tistory.com

 

 

1) 메인페이지 : 유기동물 슬라이드(최대 18개 기준) 개선율 : 67.7 %

1 2 3 4 5 6 7 8 9 10
924 ms 934 ms 840 ms 1019 ms 984 ms 961 ms 1062 ms 982 ms 1041 ms 1004 ms
365 ms 315 ms 259 ms 298 ms 320 ms 271 ms 306 ms 311 ms 335 ms 369 ms

 

2) 메인페이지 : 유기동물 카드(최대 6개 기준) 목록 ✨ 개선율 : 98.9 %

1 2 3 4 5 6 7 8 9 10
33.26 s 33.70 s 30.62 s 36.13 s 35.64 s 35.03 s 37.54 s 34.51 s 37.23 s 36.29 s
364 ms 324 ms 369 ms 432 ms 356 ms 336 ms 381 ms 403 ms 373 ms 341 ms

 

 


 페이지네이션 

https://chaereemee.tistory.com/34

 

데이터베이스 최적화 및 페이지네이션 적용

데이터가 많아질수록 응답 시간이 길어진다는 것을 위에 이미지로 확인할 수 있다.데이터 양이 늘어날수록 응답 속도가 비례하여 느려진다.      서버 로그 를 확인해보면애플리케이션이

chaereemee.tistory.com

 

 

3) 마이페이지 : 좋아요 누른 유기동물 카드(10개 기준) 조회  개선율 : 53.3 %

1 2 3 4 5 6 7 8 9 10
998 ms 1029 ms 934 ms 1428 ms 837 ms 875 ms 841 ms 787 ms 841 ms 820 ms
468 ms 453 ms 424 ms 441 ms 460 ms 416 ms 387 ms 448 ms 445 ms 442 ms

 

4) 마이페이지 : 좋아요 누른 게시물(20개 기준) 조회  개선율 : 36.3 %

1 2 3 4 5 6 7 8 9 10
566 ms 519 ms 491 ms 548 ms 506 ms 523 ms 536 ms 630 ms 508 ms 593 ms
316 ms 337 ms 331 ms 347 ms 337 ms 343 ms 354 ms 364 ms 358 ms 369 ms

 

5) 마이페이지 : 작성한 댓글(20개 기준) 조회  개선율 : 51.3 %

1 2 3 4 5 6 7 8 9 10
444 ms 453 ms 431 ms 470 ms 447 ms 434 ms 468 ms 457 ms 425 ms 462 ms
219 ms 218 ms 204 ms 236 ms 196 ms 205 ms 227 ms 233 ms 221 ms 228 ms


6) 마이페이지 : 작성한 게시물(21개 기준) 조회 ✨ 개선율 : 23.2 

1 2 3 4 5 6 7 8 9 10
337 ms 331 ms 336 ms 349 ms 320 ms 366 ms 363 ms 358 ms 338 ms 318 ms
261 ms 260 ms 263 ms 258 ms 267 ms 267 ms 263 ms 250 ms 267 ms 268 ms

 

 

 

결론

리팩토링과 성능 최적화를 통해 API 응답 속도를 크게 향상 시킬 수 있었다.

앞으로도 성능을 지속적으로 개선하고 캐시 적용 등 추가적인 최적화를 통해 더 나은 사용자 경험(UX)을 제공할 계획이다.