페이징 처리를 안하면 어떻게 될까?

koomin·2024년 9월 2일
11
post-thumbnail

페이징 처리에 대해서 알고 있는가? 아마 웹 서비스를 개발하는 분들이라면 대부분은 알 것이라고 생각한다. 또한 페이징 처리를 왜 해야되는지도 대부분 알 것이라고 생각한다.하지만 실제로 페이징 처리를 안했을 때의 결과를 직접 경험해본 사람은 많이 없을것같다.

그래서 내가 직접 페이징 처리를 안했을 때 겪은 사례를 공유하려고 한다.

어쩌다 페이징 처리를 안했을까?

물론 나도 페이징 처리를 왜 해야되는지는 알고 있었다. 페이징 처리를 안한이유는 간단한다.

까먹었다….

간단하게 RDB를 이용한 랭킹 시스템을 테스트해보다가 페이징 처리를 깜박했다.

결과는?

페이징 처리를 깜박한 상태로 랭킹의 유저수를 증가 시키면서 부하를 걸어보았다.

Jmeter 를 사용해 200명의 user 로 5초동안 3번 반복해서 요청을 보내보도록 테스트 했다.

처음에는 잘 나왔겠지하고 데이터 2만개를 조회하는 결과를 확인 해보았더니

실패가 이렇게 많이….?

절반이 넘는 요청들이 실행되지도 않고 실패했다. 알고보니 코드에서 페이징 처리하는 코드를 빼먹은 것이었다.

속도도 평균 28500ms 로 굉장히 느렸다.

실제로도 약 2만 건의 데이터가 전송이 되었다.

다른게 문제인거 아닌가?

다른 부분에서 문제가 터졌을 수도 있어서 동일 조건에서 페이징처리를 하여 30개의 데이터만 반환하도록 수정하고 테스트를 해보았다.

결과는 전부 성공이었다.

속도도 페이징 처리를 안했을때 보다는 훨씬 빨랐다. 때문에 페이징 처리가 속도 저하와 실패의 원인이라고 확신했다.

테스트 환경은 t3.small EC2 1대, t3.small RDS 1대로 이루어졌다.

결론

결론은 간단하다. 페이징 처리를 해야한다!

한건 씩 처리하는 것은 페이징 처리를 하지 않아도 컴퓨터가 적당히 버텨서 결과를 반환해준다. 하지만 위의 경우처럼 연속적으로 요청 할 때는 다르다. 실제로 우리가 서비스를 하게 되면 많은 유저들이 서버에 데이터를 조회하는 요청을 보낼 것이다. 이때 위처럼 페이징 처리를 하지 않으면 장애로 이어질 수 있다.

위 경험을 토대로 느낀 페이징 처리를 안 했을 때의 문제점은 다음과 같다.

  • 속도가 느리다.
    • 속도가 느리면 어플의 로딩속도가 느려진다. 따라서 사용자 경험에 문제가 생긴다.
  • 네트워크 전송량이 커진다.
    • aws 등에서 아웃바운드 트래픽은 비용이 든다. 따라서 전송량이 크면 돈이 많이 나간다.
  • 서버와 DB 서버의 부하가 증가한다.
    • 다른 요청을 지연되게 처리하거나 처리 할 수 없다.
profile
개발 지식 수집하기. 직접 경험해본 내용을 기록합니다.

0개의 댓글