Day 49 · 1/5
🌿 중급 DB

데이터베이스 커서란?

쉽게 이해하기

책을 읽을 때 손가락으로 줄을 짚어가며 읽는 것과 같아요. 커서는 데이터베이스에서 결과를 한 번에 다 가져오지 않고, 한 줄씩 순서대로 읽을 수 있게 해주는 도구예요. 메모리가 부족할 때 특히 유용해요.

핵심 정리

대용량 데이터를 한 줄씩 읽을 수 있게 해주는 포인터예요.

자세히 알아보기

데이터베이스 커서(Cursor)는 쿼리 결과를 한 번에 모두 가져오지 않고, 한 행씩 순차적으로 처리할 수 있게 해주는 데이터베이스 객체예요. 예를 들어, 100만 건의 사용자 데이터를 처리해야 한다면, 모든 데이터를 메모리에 올리면 서버가 다운될 수 있어요. 이럴 때 커서를 사용하면 한 번에 몇 개씩만 읽어서 처리하고, 다음 데이터로 넘어가는 방식으로 안전하게 처리할 수 있어요. 실무에서는 대용량 데이터 마이그레이션, 배치 작업, 리포트 생성 등에 사용돼요. 다만 커서는 일반 쿼리보다 느리고 리소스를 많이 사용하기 때문에, 꼭 필요한 경우에만 사용하는 게 좋아요. 대부분의 경우 LIMIT와 OFFSET을 활용한 페이징 방식이 더 효율적이에요. 최근에는 ORM에서 커서 대신 스트리밍 방식을 제공하는 경우가 많아요. Node.js의 Sequelize나 Python의 SQLAlchemy 같은 라이브러리에서 대용량 데이터를 안전하게 처리하는 방법을 제공하고 있어요.