MySQL과 같은 DB를 개인 프로젝트나 토이 프로젝트에서 사용할 때는 DB 성능이 느려지는 경우가 거의 없다. 하지만 실제 현업에서 DB를 사용하다보면 성능이 느려지는 경우를 꼭 한 번씩은 만난다. 크게 3가지 요인 때문에 성능의 저하를 경험한다.
DB 성능이 느려졌다면 서비스를 사용할 때 가장 먼저 체감할 수 있다. 실제 서비스를 사용하다보면 데이터 자체가 늦게 로딩되는 걸 볼 수 있다. 서비스를 사용하는 입장에서 조금만 답답하다고 느껴지면 바로 이탈하게 되고, 사용자 이탈은 회사의 큰 손실로 이어지게 된다.
그러다보니 개발자 기술 면접에서 DB 성능 개선 시 필요한 기초 개념(인덱스, 실행 계획 등)과 DB 성능 개선 경험을 자주 물어보는 추세이다.
DB 성능 개선은 회사에서 DBA(데이터베이스 관리자)가 맡아서 한다고 생각하는 분들이 있다. 실제 그렇게 역할이 나눠져있는 회사가 존재한다. 하지만 DBA가 있는 회사에 가더라도 백엔드 개발자가 DB에 관련된 업무를 안 하는 게 아니다. 백엔드 개발자와 DBA가 같이 협업하면서 진행하는 경우도 있고, 기본적인 DB 성능 개선 작업은 백엔드 개발자가 직접 하는 경우도 있다.
최근 많은 IT 서비스 기업의 회사 트렌드를 보면, 백엔드 개발자는 DB를 설계하는 것부터 성능 개선을 하는 것까지는 기본 소양으로 여겨지고 있다. (시간이 가면 갈수록 수준이 올라가는 것 같다…) 실제 IT 서비스 기업에 다니고 있는 신입 백엔드 개발자와 얘기해보면 알겠지만, 많은 분들이 어느 정도의 DB 성능 개선은 스스로 다 할 줄 안다.
따라서 경쟁력 있는 개발자가 되려면 DB 성능 개선에 관련된 개념을 배우고, DB 성능 개선 경험을 쌓을 필요가 있다.