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);

 

ㅇ 장점

  • 코드 재사용
  • 보안
  • 유지보수 용이
    비즈니스 로직을 데이터베이스 내부에서 처리함으로 데이터 처리 로직의 유지보수를 쉽게할 수 있다.
  • 트랜잭션 처리
    프로시저 내부에서 트랜잭션을 처리할 수 있으며, 복잡한 데이터 변경 작업을 한 번에 처리할 수 있다.