🌿 중급 DB
Stored Procedure가 뭔가요?
쉽게 이해하기
패스트푸드점의 세트 메뉴 같아요. "1번 세트 주세요"라고 하면 버거, 감자튀김, 콜라가 한 번에 나오죠. 매번 하나씩 주문할 필요 없이 미리 정해진 조합을 빠르게 제공받을 수 있어요.
핵심 정리
데이터베이스에 미리 저장해둔 SQL 명령어 묶음으로, 반복되는 작업을 빠르게 처리할 수 있어요.
자세히 알아보기
Stored Procedure(저장 프로시저)는 데이터베이스 서버에 미리 저장해둔 SQL 명령어들의 집합이에요. 복잡한 여러 개의 쿼리를 하나의 프로시저로 만들어두면, 필요할 때마다 간단하게 호출할 수 있습니다.
예를 들어 '회원 탈퇴' 기능을 생각해볼까요. 회원 정보 삭제, 주문 내역 익명화, 포인트 정산, 로그 기록 등 여러 작업이 필요해요. 이걸 매번 여러 개의 쿼리로 실행하는 대신, 하나의 stored procedure로 만들어두면 'CALL withdraw_member(user_id)' 한 번으로 모든 작업을 처리할 수 있죠.
장점은 성능 향상과 보안이에요. 데이터베이스 서버 안에서 실행되므로 네트워크 통신이 줄어들고, SQL을 미리 컴파일해두므로 실행 속도가 빨라요. 또한 직접 SQL을 노출하지 않고 프로시저 이름만 호출하므로 보안에도 유리합니다.
하지만 단점도 있어요. 비즈니스 로직이 데이터베이스에 묶이게 되어 코드 관리가 어렵고, 데이터베이스 제품마다 문법이 달라 이식성이 떨어져요. 최근에는 ORM을 사용하는 추세라 stored procedure를 덜 쓰는 편이지만, 복잡한 배치 작업이나 대용량 데이터 처리에는 여전히 유용합니다.