project list 조회 기능은 현제 3차 refactoring까지 진행된 상태이다 그 중 query 측정 대상은 2,차 3차 refactoring이다
2차 refactoring이후 느려진 query를 최적화하기 위한 3차 refactoring의 결과를 정확히 측정하기 위함이고 이후 4차 refactoring을 진행할 지 여부를 판단하기 위해서 정확한 query 속도를 측정하게 되었다
2차 refactoring 3차 refactoring
다양한 방법들을 조사했지만 안그래도 부족한 배포 서버 위에 무언가를 추가로 올리는 것은 별로 하고싶지 않았기에 test code를 작성하여 측정하기로 생각했다
원래라면 배포 서버 위에서 측정해야 하는 것이 맞지만 배포 서버에 올라가 있는 프로젝트가 졸업 작품 한 개가 아니기 때문에 다른 프로젝트의 영향을 받을 수 있다고 판단해서 개인 pc에서 test 코드를 돌려서 확인하기로 결정했다
정확한 측정을 위해 더미 data를 생성하는 코드부터 작생했다 db에 data를 직접 넣는 방법도 존재하겠지만 join된 table들의 fk값을 모두 신경쓰기 귀찮고 더미 data를 넣는 과정은 시간이 오래 걸려도 상관없기 때문에 이또한 test코드로 작성해버렸다
@Test
public void insertUser100() {
for(int i = 0; i < 100; i++){
userService.saveUser(getDummyDto());
}
}
이전 user service의 save함수를 그대로 가져다 쓸 수 있었기 때문에 더미 dto를 만드는 함수만 구현하면 됬다
| n차 refactoring | 내가 생성한 project 조회 | funding data 포함 |
|---|---|---|
| 2차 refactoring | 946ms | 1118ms |
| 3차 refactoring | 21ms | 344ms |