[CS/데이터베이스] Stored Procedure (저장 프로시저) - 1부

황제연·2025년 4월 14일

CS학습

목록 보기
44/194
post-thumbnail

🔍스토어드 프로시저

스토어드 프로시저(Stored Procedure)는 데이터베이스에 미리 저장해 놓고 사용하는 SQL 집합입니다

보통 DB에 데이터의 데이터를 조작하기 위해 SQL을 작성해서 실행하는데, 이걸 자주 반복하게 되면 번거로워집니다
만약 Application Layer에서 SQL이 변경된다면 운영중인 서버를 중단하고 재배포해야하는 번거로움이 발생합니다

그래서 자주 쓰이는 SQL문들을 하나로 묶어서 DB에 저장하고,
나중에 이름만 호출하면 간편하게 실행할 수 있도록 한 것이 바로 스토어드 프로시저입니다

📌사용 방법

스토어드 프로시저 사용방법을 간단히 정리했습니다

🚀 프로시저 생성

CREATE PROCEDURE GetBoardList
	@boardNumber Int
AS
BEGIN
	SELECT * FROM Board WHERE boardNumber = @boardNumber
END

게시판 번호를 조회하는 프로시저입니다.
매개변수가 BoardNumber로 들어가며, 이를 활용할 수 있습니다

🚀 프로시저 호출

EXEC GetBoardList @boardNumber = 7

EXEC 키워드 + 프로시저 이름 + 파라미터를 통해 프로시저를 실행합니다
미리 작성해둔 프로시저 덕분에, 복잡한 SQL문을 매번 작성하지 않아도 됩니다

✨스토어드 프로시저를 사용하는 이유

앞서 살펴본 스토어드 프로시저는 다음과 같은 장점을 갖기 때문에 사용합니다

📌 성능

프로시저는 DB에서 미리 컴파일되어 저장됩니다
따라서 같은 SQL을 반복해서 호출할 때마다 매번 컴파일하지 않고 바로 실행 가능합니다
미리 컴파일된 실행계획을 재사용하기 때문에 SQL문을 직접 실행하는 것보다 더 빠릅니다

📌 운영의 용이성

SQL문이 변경될 때마다 운영 중인 서비스를 중단하고 재배포하는 과정이 번거롭습니다
프로시저를 사용하면 서비스 중단 없이 프로시저만 수정해서 즉시 반영할 수 있어 운영이 편리해집니다

📌 보안

프로시저는 접근 권한을 세부적으로 설정할 수 있습니다
특정 프로시저에 대해서만 실행 권한을 부여하면,
DB 테이블 전체에 직접 접근하지 않고도 필요한 작업만 수행할 수 있어 보안성을 높일 수 있습니다

📌 서버 <-> DB간 네트워크 트래픽 감소

프로시저는 DB 서버에서 직접 처리되기 때문에 서버와 DB 사이의 데이터 전송량이 줄어듭니다
SQL 쿼리를 연속적으로 DB에 보내지 않고, 저장된 프로시저를 반복해서 실행하면
서버와 DB간 네트워크 트래픽이 감소합니다

✍️ 정리

스토어드 프로시저는 데이터베이스에 미리 저장한 SQL의 집합입니다
자주 쓰이는 SQL을 미리 저장해두고 실행하기 때문에 성능적으로 빠르고, 서버와 DB 사이의 트래픽을 줄여줍니다
또한 SQL이 변경되어도 프로시저만 수정하면 서비스 중단 없이 바로 적용할 수 있어서 운영할 때도 편리합니다

참고

profile
Software Developer

0개의 댓글