Topic

Cursor (커서)

JackerLab 2026. 4. 17. 06:52
728x90
반응형

개요

커서(Cursor)는 데이터베이스에서 SELECT 쿼리 결과를 한 행(row)씩 순차적으로 처리하기 위한 메커니즘이다. 일반적으로 SQL은 집합 기반(Set-based) 처리 방식을 사용하지만, 특정 상황에서는 행 단위 처리가 필요하며 이때 커서를 사용한다. 주로 복잡한 비즈니스 로직, 반복 처리, 조건 기반 데이터 수정 등에서 활용된다.


1. 개념 및 정의

커서는 쿼리 결과 집합(Result Set)을 대상으로 한 행씩 접근하고 처리할 수 있도록 하는 데이터베이스 객체이다. 즉, 전체 데이터를 한 번에 처리하는 것이 아니라, 각 행을 순차적으로 읽고 처리하는 반복 구조를 제공한다.

커서는 선언(DECLARE), 열기(OPEN), 데이터 추출(FETCH), 종료(CLOSE)의 과정을 통해 동작한다.


2. 특징

구분 설명 비고
행 단위 처리 한 행씩 순차 처리 반복 작업
절차적 방식 Procedural SQL 활용 PL/SQL, T-SQL
유연성 복잡한 로직 구현 가능 조건 처리
성능 저하 집합 처리보다 느림 사용 주의
제어 가능 반복 흐름 제어 가능 루프 구조

한줄 요약: 커서는 행 단위 반복 처리를 위한 절차적 데이터 처리 도구이다.


3. 구성 요소

구성 요소 설명 기술 요소
DECLARE 커서 선언 쿼리 정의
OPEN 커서 활성화 실행 준비
FETCH 데이터 추출 행 단위 처리
CLOSE 커서 종료 리소스 해제
LOOP 반복 처리 조건 기반 흐름

한줄 요약: 커서는 선언, 실행, 반복, 종료 단계로 구성된다.


4. 기술 요소

기술 설명 활용
PL/SQL Cursor Oracle 커서 DB 처리
T-SQL Cursor SQL Server 커서 반복 처리
FOR LOOP 반복 구조 자동 커서
FETCH NEXT 다음 행 이동 데이터 처리
Cursor Type Static, Dynamic 등 성능/기능 선택

한줄 요약: 다양한 DB 환경에서 커서는 절차적 SQL과 함께 사용된다.


5. 장점 및 이점

항목 효과 상세 설명
유연성 복잡한 로직 구현 조건 처리 가능
정밀 제어 행 단위 제어 세밀한 처리
순차 처리 데이터 흐름 관리 단계별 수행
이벤트 처리 특정 조건 대응 비즈니스 로직
DB 내부 처리 애플리케이션 의존 감소 성능 최적화 가능

한줄 요약: 커서는 복잡한 로직과 세밀한 데이터 처리를 가능하게 한다.


6. 주요 활용 사례 및 고려사항

활용 사례 설명 고려사항
데이터 변환 행별 데이터 가공 성능 저하
배치 처리 반복 작업 수행 대량 데이터 비효율
복잡 로직 조건 기반 처리 코드 복잡성
로그 처리 이벤트 기록 관리 필요
금융 시스템 트랜잭션 처리 정확성 요구

한줄 요약: 커서는 특정 상황에서 유용하지만 성능과 유지보수를 고려해야 한다.


7. 결론

커서는 데이터베이스에서 행 단위 처리를 가능하게 하는 강력한 도구로, 복잡한 비즈니스 로직을 구현할 때 유용하다. 그러나 집합 기반 처리보다 성능이 떨어질 수 있으므로, 꼭 필요한 경우에만 사용하는 것이 바람직하다. 현대 시스템에서는 가능한 한 집합 연산을 우선 사용하고, 커서는 보완적인 수단으로 활용하는 전략이 권장된다.

728x90
반응형