특정 회원이 찜한 병원 목록을 가져오는 과정에서 정렬이 필요함을 느꼈다.
이때, 아래 두 방식 중 어느 방식이 더 빠를까?
고민 거리를 꺼내기에 앞서 프로젝트 구성
- 플랫폼에는 회원과 병원이 존재한다.
- 플랫폼에는 찜하기 기능이 존재 → 회원은 (자주 가는, 혹은 관심이 가는) 병원을 찜할 수 있다.
- → 따라서 회원별 찜한 병원 목록이 존재하며, 마이페이지에서 확인할 수 있다.
→ 이 방식은 정렬하는 SQL 문을 직접 작성해야 한다는 특징이 있다.
→ 특정 회원의 찜한 병원 목록을 가져온 뒤, Java의 컬렉션 내장 메소드를 이용해 로직에서 정렬하였다.
💡 특별한 이유가 없다면 SQL로 직접 정렬 로직을 작성해 가져오자.
→ 이를 성능 차이로 직접 보고 느끼기 위해 테스트 코드를 작성하였다.
→ 두 방식의 테스트는 동일한 테스트 데이터를 가진 조건으로 진행하였습니다.
SQL로 정렬된 목록을 가져올 경우, 10ms밖에 걸리지 않는 작업이
SQL로 목록을 가져온 후, 로직에서 정렬할 경우 239ms나 소요된 것을 볼 수 있습니다.
이건 정말 유용하네요 감사합니다.