DB
DB Stored Procedure 저장 프로시저
차가운개발
2024. 10. 10. 12:26
저장 프로시저는 데이터베이스에 저장되어 있는 미리 컴파일된 SQL 코드의 집합으로 필요할 때 호출하여 반복적으로 사용할 수 있는 프로그램 단위다. 복잡한 SQL 작업을 수행할 때 유용하며, DB 서버에서 직접 실행되기 때문에 성능 상의 이점도 가지고 있다. 쉽게 비유하자면 매크로를 정의해두고 매크로를 실행시키는 것이라고 할 수 있다.
ㅇ 저장 프로시저의 특징
- 재사용 가능
한번 작성한 SQL 코드 블록을 여러 곳에서 재사용할 수 있어 코드의 중복을 줄일 수 있다. - 성능 향상
미리 컴파일되기 때문에, 복잡한 쿼리나 연산을 효율적으로 수행할 수 있다. - 보안성
저장 프로시저는 DB 객체에 직접 접근할 수 있는 권한을 제어할 수 있어, 사용자가 직접 쿼리를 작성하지 않고 필요한 작업을 수행할 수 있다. - 비즈니스 로직 캡슐화
DB 관련 로직을 저장 프로시저에 캡슐화하여 애플리케이션의 로직을 분리할 수 있다.
ㅇ 구성
- 입력 매개변수
호출될 때 외부에서 전달받는 값 - 출력 매개변수
실행 후 외부로 값을 반환하는데 사용 - SQL 쿼리
예시
DELIMITER $$
CREATE PROCEDURE UpdateAndFetchEmployee(IN empId INT)
BEGIN
UPDATE Employees SET Salary = Salary + 500 WHERE EmployeeID = empId;
SELECT * FROM Employees WHERE EmployeeID = empId;
SELECT COUNT(*) AS EmployeeCount FROM Employees;
END $$
DELIMITER ;
호출
CALL UpdateAndFetchEmployee(123);
ㅇ 장점
- 코드 재사용
- 보안
- 유지보수 용이
비즈니스 로직을 데이터베이스 내부에서 처리함으로 데이터 처리 로직의 유지보수를 쉽게할 수 있다. - 트랜잭션 처리
프로시저 내부에서 트랜잭션을 처리할 수 있으며, 복잡한 데이터 변경 작업을 한 번에 처리할 수 있다.