본문 바로가기
글모아

글모아 프로젝트 개선점 1

by 989898 2025. 10. 14.

현재 특정 커뮤니티의 최신글을 불러오는 api를 호출할 때 1초정도의 대기 시간 후 응답을 받는 것이 확인 되었음.

 

왜 그렇게 오래걸리는 지 확인을 해보니까 HTTP/1.1의 동시 연결 제한(6개) 때문에 6개의 요청을 보내고 응답을 받아야만 그 다음의 요청이 가능하기 때문이었음.

 

지금 13개의 커뮤니티에 대한 데이터를 요청하고 받고 있으니 6개, 6개, 1개 이렇게 요청 응답을 받고 있어서 오래걸리던것.

 

해결 방법으로는 HTTP/2를 사용하면 6개의 요청이 아닌 그 이상의 요청을 보낼 수 있음.근데 찾아보니까 SSL 인증해야되고 귀찮다..

 

그래서 나는 REDIS로 캐싱 처리해서 조회 속도를 향상시키로 결정했다.


2025-10-15

 

사용자들이 자주 이용할 것 같은 1 ~ 5페이지는 redis에 미리 저장시켜서 캐싱을 시켜놓아서 조회성능을 향상시키고 

 

그 이후에 페이지는 db에서 커버링 인덱스를 적용시켜 조회 성능을 향상시키기로 했다.

세컨더리 인덱스를 만들고 커버링 인덱스를 적용하기 전의 조회 속도
세컨더리 인덱스를 만들고 커버링 인덱스를 적용한 후의 조회 속도

 

조회성능이 매우 빨라진 것을 확인할 수 있었음.

 

해당 쿼리는 조회 서버의 repository에 native 쿼리로 적용할 예정이다.

 

근데 인덱스를 설정해주니 커버링 인덱스를 사용하지 않더라도 조회속도가 엄청 빨라졌다.

 

redis랑 커버링 인덱스를 굳이 설정 해야하나싶네...


기존 jpa에서 제공해주는 메서드대신 native query로 변경하고 나서 조회속도

 

최신글을 처음 조회할 때 대략 0.76초가 걸린다.

오늘의 추천수를 조회할 때에는 0.84초

오늘의 조회수를 조회할 때는 0.8초 정도

 

여기서 각 api가 db에서 사용할 쿼리문에 맞는 인덱스를 적용하고 나서 다시 테스트를 해봄.

최신글의 경우는 0.11초

 

 

추천글은 0.109초

 

 

조회글 api는 0.096초가 걸린것을 확인

 

커버링 인덱스를 통한 조회속도는 성능 향상에 큰 도움이 되는 것을 다시 한번 느끼게 됨.

 

1~5 페이지는 redis를 이용한 캐시를 통해서 조회성능을 더 향상시킬 계획이다.