페이지 번호를 포기해야 할 때, OFFSET과 커서 페이지네이션의 갈림길관리자 목록 화면에서 1페이지는 40ms, 900페이지는 4초가 나오는 상황을 본 적이 있습니다. 쿼리는 똑같습니다. 인덱스도 그대로입니다. 바뀐 건 OFFSET 뒤에 붙은 숫자 하나뿐입니다. 이때 개발자가 가장 먼저 손대는 곳은 보통 인덱스인데, 정작 문제는 인덱스가 아니라 "건너뛰기"라는 동작 자체에 있습니다.이 글은 목록 API를 만들 때 OFFSET 방식과 커서 방식 중 무엇을 고를지 판단하는 순서를 정리한 것입니다. 성능 비교표를 만드는 것이 목적이 아니라, "우리 화면이 정말 페이지 번호를 필요로 하는가"부터 되묻는 쪽에 가깝습니다. MySQL, PostgreSQL 공식 문서와 Laravel 페이지네이션 문서를 기준으로 삼..
AWS RDS 비용 줄이는 방법 및 최적화 하기 서론 ( 안 읽어도 됨) 현재 필자가 다니는 회사는 예약관리 서비스를 하고 있습니다. 처음 입사 했을 때는 사용자가 그리 많지 않아서 T시리즈를 이용해도 문제가 없었지만, 입사 후 갑자기 폭팔적인 서비스 성장으로 인해 순간 동접 1만을 넘는 거대한 서비스가 되었고, 현재 해당 분야 업계 1위가 되었습니다. 서비스 성장은 언제나 즐겁지만, 스타트업들의 개발 코드는 여기서부터 문제입니다. 서비스를 위한 기능 추가만 하다보니 코드가 그렇게 깔끔하지 않을 뿐더러, ORM 코드들의 최적화되지 않은 쿼리도 문제였습니다. 이 문제는 우리 회사도 다르지 않았습니다. 처음 MariaDB 를 사용하고 있었는데.. DB 의 CPU 가 90프로를 넘기는 경우가 종종 있었고, 업..
